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 role(&self) -> Option<Role> {
1642        support::child(&self.syntax)
1643    }
1644    #[inline]
1645    pub fn server_name(&self) -> Option<ServerName> {
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 user_token(&self) -> Option<SyntaxToken> {
1662        support::token(&self.syntax, SyntaxKind::USER_KW)
1663    }
1664}
1665
1666#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1667pub struct AlterView {
1668    pub(crate) syntax: SyntaxNode,
1669}
1670impl AlterView {
1671    #[inline]
1672    pub fn path(&self) -> Option<Path> {
1673        support::child(&self.syntax)
1674    }
1675    #[inline]
1676    pub fn alter_token(&self) -> Option<SyntaxToken> {
1677        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1678    }
1679    #[inline]
1680    pub fn view_token(&self) -> Option<SyntaxToken> {
1681        support::token(&self.syntax, SyntaxKind::VIEW_KW)
1682    }
1683}
1684
1685#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1686pub struct Analyze {
1687    pub(crate) syntax: SyntaxNode,
1688}
1689impl Analyze {
1690    #[inline]
1691    pub fn option_item_list(&self) -> Option<OptionItemList> {
1692        support::child(&self.syntax)
1693    }
1694    #[inline]
1695    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
1696        support::child(&self.syntax)
1697    }
1698    #[inline]
1699    pub fn analyse_token(&self) -> Option<SyntaxToken> {
1700        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
1701    }
1702    #[inline]
1703    pub fn analyze_token(&self) -> Option<SyntaxToken> {
1704        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
1705    }
1706    #[inline]
1707    pub fn verbose_token(&self) -> Option<SyntaxToken> {
1708        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
1709    }
1710}
1711
1712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1713pub struct AnyFn {
1714    pub(crate) syntax: SyntaxNode,
1715}
1716impl AnyFn {
1717    #[inline]
1718    pub fn expr(&self) -> Option<Expr> {
1719        support::child(&self.syntax)
1720    }
1721    #[inline]
1722    pub fn select_variant(&self) -> Option<SelectVariant> {
1723        support::child(&self.syntax)
1724    }
1725    #[inline]
1726    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1727        support::token(&self.syntax, SyntaxKind::L_PAREN)
1728    }
1729    #[inline]
1730    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1731        support::token(&self.syntax, SyntaxKind::R_PAREN)
1732    }
1733    #[inline]
1734    pub fn any_token(&self) -> Option<SyntaxToken> {
1735        support::token(&self.syntax, SyntaxKind::ANY_KW)
1736    }
1737}
1738
1739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1740pub struct Arg {
1741    pub(crate) syntax: SyntaxNode,
1742}
1743impl Arg {
1744    #[inline]
1745    pub fn expr(&self) -> Option<Expr> {
1746        support::child(&self.syntax)
1747    }
1748}
1749
1750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1751pub struct ArgList {
1752    pub(crate) syntax: SyntaxNode,
1753}
1754impl ArgList {
1755    #[inline]
1756    pub fn args(&self) -> AstChildren<Expr> {
1757        support::children(&self.syntax)
1758    }
1759    #[inline]
1760    pub fn expr(&self) -> Option<Expr> {
1761        support::child(&self.syntax)
1762    }
1763    #[inline]
1764    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1765        support::token(&self.syntax, SyntaxKind::L_PAREN)
1766    }
1767    #[inline]
1768    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1769        support::token(&self.syntax, SyntaxKind::R_PAREN)
1770    }
1771    #[inline]
1772    pub fn star_token(&self) -> Option<SyntaxToken> {
1773        support::token(&self.syntax, SyntaxKind::STAR)
1774    }
1775    #[inline]
1776    pub fn all_token(&self) -> Option<SyntaxToken> {
1777        support::token(&self.syntax, SyntaxKind::ALL_KW)
1778    }
1779    #[inline]
1780    pub fn distinct_token(&self) -> Option<SyntaxToken> {
1781        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
1782    }
1783    #[inline]
1784    pub fn variadic_token(&self) -> Option<SyntaxToken> {
1785        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
1786    }
1787}
1788
1789#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1790pub struct ArrayExpr {
1791    pub(crate) syntax: SyntaxNode,
1792}
1793impl ArrayExpr {
1794    #[inline]
1795    pub fn exprs(&self) -> AstChildren<Expr> {
1796        support::children(&self.syntax)
1797    }
1798    #[inline]
1799    pub fn select(&self) -> Option<Select> {
1800        support::child(&self.syntax)
1801    }
1802    #[inline]
1803    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1804        support::token(&self.syntax, SyntaxKind::L_PAREN)
1805    }
1806    #[inline]
1807    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1808        support::token(&self.syntax, SyntaxKind::R_PAREN)
1809    }
1810    #[inline]
1811    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1812        support::token(&self.syntax, SyntaxKind::L_BRACK)
1813    }
1814    #[inline]
1815    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1816        support::token(&self.syntax, SyntaxKind::R_BRACK)
1817    }
1818    #[inline]
1819    pub fn array_token(&self) -> Option<SyntaxToken> {
1820        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1821    }
1822}
1823
1824#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1825pub struct ArrayType {
1826    pub(crate) syntax: SyntaxNode,
1827}
1828impl ArrayType {
1829    #[inline]
1830    pub fn expr(&self) -> Option<Expr> {
1831        support::child(&self.syntax)
1832    }
1833    #[inline]
1834    pub fn name_ref(&self) -> Option<NameRef> {
1835        support::child(&self.syntax)
1836    }
1837    #[inline]
1838    pub fn ty(&self) -> Option<Type> {
1839        support::child(&self.syntax)
1840    }
1841    #[inline]
1842    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1843        support::token(&self.syntax, SyntaxKind::L_BRACK)
1844    }
1845    #[inline]
1846    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1847        support::token(&self.syntax, SyntaxKind::R_BRACK)
1848    }
1849    #[inline]
1850    pub fn array_token(&self) -> Option<SyntaxToken> {
1851        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1852    }
1853}
1854
1855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1856pub struct AsFuncOption {
1857    pub(crate) syntax: SyntaxNode,
1858}
1859impl AsFuncOption {
1860    #[inline]
1861    pub fn definition(&self) -> Option<Literal> {
1862        support::child(&self.syntax)
1863    }
1864    #[inline]
1865    pub fn link_symbol(&self) -> Option<Literal> {
1866        support::child(&self.syntax)
1867    }
1868    #[inline]
1869    pub fn obj_file(&self) -> Option<Literal> {
1870        support::child(&self.syntax)
1871    }
1872    #[inline]
1873    pub fn comma_token(&self) -> Option<SyntaxToken> {
1874        support::token(&self.syntax, SyntaxKind::COMMA)
1875    }
1876    #[inline]
1877    pub fn as_token(&self) -> Option<SyntaxToken> {
1878        support::token(&self.syntax, SyntaxKind::AS_KW)
1879    }
1880}
1881
1882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1883pub struct AsName {
1884    pub(crate) syntax: SyntaxNode,
1885}
1886impl AsName {
1887    #[inline]
1888    pub fn name(&self) -> Option<Name> {
1889        support::child(&self.syntax)
1890    }
1891    #[inline]
1892    pub fn as_token(&self) -> Option<SyntaxToken> {
1893        support::token(&self.syntax, SyntaxKind::AS_KW)
1894    }
1895}
1896
1897#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1898pub struct AtTimeZone {
1899    pub(crate) syntax: SyntaxNode,
1900}
1901impl AtTimeZone {
1902    #[inline]
1903    pub fn at_token(&self) -> Option<SyntaxToken> {
1904        support::token(&self.syntax, SyntaxKind::AT_KW)
1905    }
1906    #[inline]
1907    pub fn time_token(&self) -> Option<SyntaxToken> {
1908        support::token(&self.syntax, SyntaxKind::TIME_KW)
1909    }
1910    #[inline]
1911    pub fn zone_token(&self) -> Option<SyntaxToken> {
1912        support::token(&self.syntax, SyntaxKind::ZONE_KW)
1913    }
1914}
1915
1916#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1917pub struct AttachPartition {
1918    pub(crate) syntax: SyntaxNode,
1919}
1920impl AttachPartition {
1921    #[inline]
1922    pub fn partition_type(&self) -> Option<PartitionType> {
1923        support::child(&self.syntax)
1924    }
1925    #[inline]
1926    pub fn path(&self) -> Option<Path> {
1927        support::child(&self.syntax)
1928    }
1929    #[inline]
1930    pub fn attach_token(&self) -> Option<SyntaxToken> {
1931        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
1932    }
1933    #[inline]
1934    pub fn partition_token(&self) -> Option<SyntaxToken> {
1935        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
1936    }
1937}
1938
1939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1940pub struct AttributeList {
1941    pub(crate) syntax: SyntaxNode,
1942}
1943impl AttributeList {
1944    #[inline]
1945    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
1946        support::children(&self.syntax)
1947    }
1948    #[inline]
1949    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1950        support::token(&self.syntax, SyntaxKind::L_PAREN)
1951    }
1952    #[inline]
1953    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1954        support::token(&self.syntax, SyntaxKind::R_PAREN)
1955    }
1956}
1957
1958#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1959pub struct AttributeOption {
1960    pub(crate) syntax: SyntaxNode,
1961}
1962impl AttributeOption {
1963    #[inline]
1964    pub fn attribute_value(&self) -> Option<AttributeValue> {
1965        support::child(&self.syntax)
1966    }
1967    #[inline]
1968    pub fn name(&self) -> Option<Name> {
1969        support::child(&self.syntax)
1970    }
1971    #[inline]
1972    pub fn dot_token(&self) -> Option<SyntaxToken> {
1973        support::token(&self.syntax, SyntaxKind::DOT)
1974    }
1975    #[inline]
1976    pub fn eq_token(&self) -> Option<SyntaxToken> {
1977        support::token(&self.syntax, SyntaxKind::EQ)
1978    }
1979}
1980
1981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1982pub struct AttributeValue {
1983    pub(crate) syntax: SyntaxNode,
1984}
1985impl AttributeValue {
1986    #[inline]
1987    pub fn literal(&self) -> Option<Literal> {
1988        support::child(&self.syntax)
1989    }
1990    #[inline]
1991    pub fn op(&self) -> Option<Op> {
1992        support::child(&self.syntax)
1993    }
1994    #[inline]
1995    pub fn ty(&self) -> Option<Type> {
1996        support::child(&self.syntax)
1997    }
1998    #[inline]
1999    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2000        support::token(&self.syntax, SyntaxKind::L_PAREN)
2001    }
2002    #[inline]
2003    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2004        support::token(&self.syntax, SyntaxKind::R_PAREN)
2005    }
2006    #[inline]
2007    pub fn none_token(&self) -> Option<SyntaxToken> {
2008        support::token(&self.syntax, SyntaxKind::NONE_KW)
2009    }
2010    #[inline]
2011    pub fn operator_token(&self) -> Option<SyntaxToken> {
2012        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2013    }
2014}
2015
2016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2017pub struct Begin {
2018    pub(crate) syntax: SyntaxNode,
2019}
2020impl Begin {
2021    #[inline]
2022    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
2023        support::child(&self.syntax)
2024    }
2025    #[inline]
2026    pub fn begin_token(&self) -> Option<SyntaxToken> {
2027        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2028    }
2029    #[inline]
2030    pub fn start_token(&self) -> Option<SyntaxToken> {
2031        support::token(&self.syntax, SyntaxKind::START_KW)
2032    }
2033    #[inline]
2034    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2035        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2036    }
2037    #[inline]
2038    pub fn work_token(&self) -> Option<SyntaxToken> {
2039        support::token(&self.syntax, SyntaxKind::WORK_KW)
2040    }
2041}
2042
2043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2044pub struct BeginFuncOption {
2045    pub(crate) syntax: SyntaxNode,
2046}
2047impl BeginFuncOption {
2048    #[inline]
2049    pub fn return_func_option(&self) -> Option<ReturnFuncOption> {
2050        support::child(&self.syntax)
2051    }
2052    #[inline]
2053    pub fn stmt(&self) -> Option<Stmt> {
2054        support::child(&self.syntax)
2055    }
2056    #[inline]
2057    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2058        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2059    }
2060}
2061
2062#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2063pub struct BeginFuncOptionList {
2064    pub(crate) syntax: SyntaxNode,
2065}
2066impl BeginFuncOptionList {
2067    #[inline]
2068    pub fn begin_func_options(&self) -> AstChildren<BeginFuncOption> {
2069        support::children(&self.syntax)
2070    }
2071    #[inline]
2072    pub fn atomic_token(&self) -> Option<SyntaxToken> {
2073        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
2074    }
2075    #[inline]
2076    pub fn begin_token(&self) -> Option<SyntaxToken> {
2077        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2078    }
2079    #[inline]
2080    pub fn end_token(&self) -> Option<SyntaxToken> {
2081        support::token(&self.syntax, SyntaxKind::END_KW)
2082    }
2083}
2084
2085#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2086pub struct BetweenExpr {
2087    pub(crate) syntax: SyntaxNode,
2088}
2089impl BetweenExpr {
2090    #[inline]
2091    pub fn and_token(&self) -> Option<SyntaxToken> {
2092        support::token(&self.syntax, SyntaxKind::AND_KW)
2093    }
2094    #[inline]
2095    pub fn between_token(&self) -> Option<SyntaxToken> {
2096        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
2097    }
2098}
2099
2100#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2101pub struct BinExpr {
2102    pub(crate) syntax: SyntaxNode,
2103}
2104impl BinExpr {
2105    #[inline]
2106    pub fn op(&self) -> Option<Op> {
2107        support::child(&self.syntax)
2108    }
2109}
2110
2111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2112pub struct BitType {
2113    pub(crate) syntax: SyntaxNode,
2114}
2115impl BitType {
2116    #[inline]
2117    pub fn arg_list(&self) -> Option<ArgList> {
2118        support::child(&self.syntax)
2119    }
2120    #[inline]
2121    pub fn bit_token(&self) -> Option<SyntaxToken> {
2122        support::token(&self.syntax, SyntaxKind::BIT_KW)
2123    }
2124    #[inline]
2125    pub fn varying_token(&self) -> Option<SyntaxToken> {
2126        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2127    }
2128}
2129
2130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2131pub struct Call {
2132    pub(crate) syntax: SyntaxNode,
2133}
2134impl Call {
2135    #[inline]
2136    pub fn arg_list(&self) -> Option<ArgList> {
2137        support::child(&self.syntax)
2138    }
2139    #[inline]
2140    pub fn path(&self) -> Option<Path> {
2141        support::child(&self.syntax)
2142    }
2143    #[inline]
2144    pub fn call_token(&self) -> Option<SyntaxToken> {
2145        support::token(&self.syntax, SyntaxKind::CALL_KW)
2146    }
2147}
2148
2149#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2150pub struct CallExpr {
2151    pub(crate) syntax: SyntaxNode,
2152}
2153impl CallExpr {
2154    #[inline]
2155    pub fn all_fn(&self) -> Option<AllFn> {
2156        support::child(&self.syntax)
2157    }
2158    #[inline]
2159    pub fn any_fn(&self) -> Option<AnyFn> {
2160        support::child(&self.syntax)
2161    }
2162    #[inline]
2163    pub fn arg_list(&self) -> Option<ArgList> {
2164        support::child(&self.syntax)
2165    }
2166    #[inline]
2167    pub fn exists_fn(&self) -> Option<ExistsFn> {
2168        support::child(&self.syntax)
2169    }
2170    #[inline]
2171    pub fn expr(&self) -> Option<Expr> {
2172        support::child(&self.syntax)
2173    }
2174    #[inline]
2175    pub fn extract_fn(&self) -> Option<ExtractFn> {
2176        support::child(&self.syntax)
2177    }
2178    #[inline]
2179    pub fn filter_clause(&self) -> Option<FilterClause> {
2180        support::child(&self.syntax)
2181    }
2182    #[inline]
2183    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
2184        support::child(&self.syntax)
2185    }
2186    #[inline]
2187    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
2188        support::child(&self.syntax)
2189    }
2190    #[inline]
2191    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
2192        support::child(&self.syntax)
2193    }
2194    #[inline]
2195    pub fn json_fn(&self) -> Option<JsonFn> {
2196        support::child(&self.syntax)
2197    }
2198    #[inline]
2199    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
2200        support::child(&self.syntax)
2201    }
2202    #[inline]
2203    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
2204        support::child(&self.syntax)
2205    }
2206    #[inline]
2207    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
2208        support::child(&self.syntax)
2209    }
2210    #[inline]
2211    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
2212        support::child(&self.syntax)
2213    }
2214    #[inline]
2215    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
2216        support::child(&self.syntax)
2217    }
2218    #[inline]
2219    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
2220        support::child(&self.syntax)
2221    }
2222    #[inline]
2223    pub fn over_clause(&self) -> Option<OverClause> {
2224        support::child(&self.syntax)
2225    }
2226    #[inline]
2227    pub fn overlay_fn(&self) -> Option<OverlayFn> {
2228        support::child(&self.syntax)
2229    }
2230    #[inline]
2231    pub fn position_fn(&self) -> Option<PositionFn> {
2232        support::child(&self.syntax)
2233    }
2234    #[inline]
2235    pub fn some_fn(&self) -> Option<SomeFn> {
2236        support::child(&self.syntax)
2237    }
2238    #[inline]
2239    pub fn substring_fn(&self) -> Option<SubstringFn> {
2240        support::child(&self.syntax)
2241    }
2242    #[inline]
2243    pub fn trim_fn(&self) -> Option<TrimFn> {
2244        support::child(&self.syntax)
2245    }
2246    #[inline]
2247    pub fn within_clause(&self) -> Option<WithinClause> {
2248        support::child(&self.syntax)
2249    }
2250    #[inline]
2251    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
2252        support::child(&self.syntax)
2253    }
2254    #[inline]
2255    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
2256        support::child(&self.syntax)
2257    }
2258    #[inline]
2259    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
2260        support::child(&self.syntax)
2261    }
2262    #[inline]
2263    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
2264        support::child(&self.syntax)
2265    }
2266    #[inline]
2267    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
2268        support::child(&self.syntax)
2269    }
2270    #[inline]
2271    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
2272        support::child(&self.syntax)
2273    }
2274    #[inline]
2275    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
2276        support::child(&self.syntax)
2277    }
2278}
2279
2280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2281pub struct Cascade {
2282    pub(crate) syntax: SyntaxNode,
2283}
2284impl Cascade {
2285    #[inline]
2286    pub fn cascade_token(&self) -> Option<SyntaxToken> {
2287        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
2288    }
2289}
2290
2291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2292pub struct CaseExpr {
2293    pub(crate) syntax: SyntaxNode,
2294}
2295impl CaseExpr {
2296    #[inline]
2297    pub fn else_clause(&self) -> Option<ElseClause> {
2298        support::child(&self.syntax)
2299    }
2300    #[inline]
2301    pub fn expr(&self) -> Option<Expr> {
2302        support::child(&self.syntax)
2303    }
2304    #[inline]
2305    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
2306        support::child(&self.syntax)
2307    }
2308    #[inline]
2309    pub fn case_token(&self) -> Option<SyntaxToken> {
2310        support::token(&self.syntax, SyntaxKind::CASE_KW)
2311    }
2312}
2313
2314#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2315pub struct CastExpr {
2316    pub(crate) syntax: SyntaxNode,
2317}
2318impl CastExpr {
2319    #[inline]
2320    pub fn colon_colon(&self) -> Option<ColonColon> {
2321        support::child(&self.syntax)
2322    }
2323    #[inline]
2324    pub fn expr(&self) -> Option<Expr> {
2325        support::child(&self.syntax)
2326    }
2327    #[inline]
2328    pub fn literal(&self) -> Option<Literal> {
2329        support::child(&self.syntax)
2330    }
2331    #[inline]
2332    pub fn ty(&self) -> Option<Type> {
2333        support::child(&self.syntax)
2334    }
2335    #[inline]
2336    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2337        support::token(&self.syntax, SyntaxKind::L_PAREN)
2338    }
2339    #[inline]
2340    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2341        support::token(&self.syntax, SyntaxKind::R_PAREN)
2342    }
2343    #[inline]
2344    pub fn as_token(&self) -> Option<SyntaxToken> {
2345        support::token(&self.syntax, SyntaxKind::AS_KW)
2346    }
2347    #[inline]
2348    pub fn cast_token(&self) -> Option<SyntaxToken> {
2349        support::token(&self.syntax, SyntaxKind::CAST_KW)
2350    }
2351    #[inline]
2352    pub fn treat_token(&self) -> Option<SyntaxToken> {
2353        support::token(&self.syntax, SyntaxKind::TREAT_KW)
2354    }
2355}
2356
2357#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2358pub struct CastSig {
2359    pub(crate) syntax: SyntaxNode,
2360}
2361impl CastSig {
2362    #[inline]
2363    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2364        support::token(&self.syntax, SyntaxKind::L_PAREN)
2365    }
2366    #[inline]
2367    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2368        support::token(&self.syntax, SyntaxKind::R_PAREN)
2369    }
2370    #[inline]
2371    pub fn as_token(&self) -> Option<SyntaxToken> {
2372        support::token(&self.syntax, SyntaxKind::AS_KW)
2373    }
2374}
2375
2376#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2377pub struct CharType {
2378    pub(crate) syntax: SyntaxNode,
2379}
2380impl CharType {
2381    #[inline]
2382    pub fn arg_list(&self) -> Option<ArgList> {
2383        support::child(&self.syntax)
2384    }
2385    #[inline]
2386    pub fn char_token(&self) -> Option<SyntaxToken> {
2387        support::token(&self.syntax, SyntaxKind::CHAR_KW)
2388    }
2389    #[inline]
2390    pub fn character_token(&self) -> Option<SyntaxToken> {
2391        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
2392    }
2393    #[inline]
2394    pub fn nchar_token(&self) -> Option<SyntaxToken> {
2395        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2396    }
2397    #[inline]
2398    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2399        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2400    }
2401    #[inline]
2402    pub fn varying_token(&self) -> Option<SyntaxToken> {
2403        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2404    }
2405}
2406
2407#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2408pub struct CheckConstraint {
2409    pub(crate) syntax: SyntaxNode,
2410}
2411impl CheckConstraint {
2412    #[inline]
2413    pub fn constraint_name(&self) -> Option<ConstraintName> {
2414        support::child(&self.syntax)
2415    }
2416    #[inline]
2417    pub fn expr(&self) -> Option<Expr> {
2418        support::child(&self.syntax)
2419    }
2420    #[inline]
2421    pub fn no_inherit(&self) -> Option<NoInherit> {
2422        support::child(&self.syntax)
2423    }
2424    #[inline]
2425    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2426        support::token(&self.syntax, SyntaxKind::L_PAREN)
2427    }
2428    #[inline]
2429    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2430        support::token(&self.syntax, SyntaxKind::R_PAREN)
2431    }
2432    #[inline]
2433    pub fn check_token(&self) -> Option<SyntaxToken> {
2434        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2435    }
2436}
2437
2438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2439pub struct Checkpoint {
2440    pub(crate) syntax: SyntaxNode,
2441}
2442impl Checkpoint {
2443    #[inline]
2444    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
2445        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
2446    }
2447}
2448
2449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2450pub struct Close {
2451    pub(crate) syntax: SyntaxNode,
2452}
2453impl Close {
2454    #[inline]
2455    pub fn name_ref(&self) -> Option<NameRef> {
2456        support::child(&self.syntax)
2457    }
2458    #[inline]
2459    pub fn close_token(&self) -> Option<SyntaxToken> {
2460        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
2461    }
2462}
2463
2464#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2465pub struct Cluster {
2466    pub(crate) syntax: SyntaxNode,
2467}
2468impl Cluster {
2469    #[inline]
2470    pub fn option_item_list(&self) -> Option<OptionItemList> {
2471        support::child(&self.syntax)
2472    }
2473    #[inline]
2474    pub fn path(&self) -> Option<Path> {
2475        support::child(&self.syntax)
2476    }
2477    #[inline]
2478    pub fn using_method(&self) -> Option<UsingMethod> {
2479        support::child(&self.syntax)
2480    }
2481    #[inline]
2482    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2483        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2484    }
2485    #[inline]
2486    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2487        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2488    }
2489}
2490
2491#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2492pub struct ClusterOn {
2493    pub(crate) syntax: SyntaxNode,
2494}
2495impl ClusterOn {
2496    #[inline]
2497    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2498        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2499    }
2500    #[inline]
2501    pub fn on_token(&self) -> Option<SyntaxToken> {
2502        support::token(&self.syntax, SyntaxKind::ON_KW)
2503    }
2504}
2505
2506#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2507pub struct Collate {
2508    pub(crate) syntax: SyntaxNode,
2509}
2510impl Collate {
2511    #[inline]
2512    pub fn path(&self) -> Option<Path> {
2513        support::child(&self.syntax)
2514    }
2515    #[inline]
2516    pub fn collate_token(&self) -> Option<SyntaxToken> {
2517        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
2518    }
2519}
2520
2521#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2522pub struct ColonColon {
2523    pub(crate) syntax: SyntaxNode,
2524}
2525impl ColonColon {
2526    #[inline]
2527    pub fn colon_token(&self) -> Option<SyntaxToken> {
2528        support::token(&self.syntax, SyntaxKind::COLON)
2529    }
2530}
2531
2532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2533pub struct ColonEq {
2534    pub(crate) syntax: SyntaxNode,
2535}
2536impl ColonEq {
2537    #[inline]
2538    pub fn colon_token(&self) -> Option<SyntaxToken> {
2539        support::token(&self.syntax, SyntaxKind::COLON)
2540    }
2541    #[inline]
2542    pub fn eq_token(&self) -> Option<SyntaxToken> {
2543        support::token(&self.syntax, SyntaxKind::EQ)
2544    }
2545}
2546
2547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2548pub struct Column {
2549    pub(crate) syntax: SyntaxNode,
2550}
2551impl Column {
2552    #[inline]
2553    pub fn collate(&self) -> Option<Collate> {
2554        support::child(&self.syntax)
2555    }
2556    #[inline]
2557    pub fn compression_method(&self) -> Option<CompressionMethod> {
2558        support::child(&self.syntax)
2559    }
2560    #[inline]
2561    pub fn constraint(&self) -> Option<ColumnConstraint> {
2562        support::child(&self.syntax)
2563    }
2564    #[inline]
2565    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
2566        support::child(&self.syntax)
2567    }
2568    #[inline]
2569    pub fn enforced(&self) -> Option<Enforced> {
2570        support::child(&self.syntax)
2571    }
2572    #[inline]
2573    pub fn index_expr(&self) -> Option<IndexExpr> {
2574        support::child(&self.syntax)
2575    }
2576    #[inline]
2577    pub fn initially_deferred_constraint_option(
2578        &self,
2579    ) -> Option<InitiallyDeferredConstraintOption> {
2580        support::child(&self.syntax)
2581    }
2582    #[inline]
2583    pub fn initially_immediate_constraint_option(
2584        &self,
2585    ) -> Option<InitiallyImmediateConstraintOption> {
2586        support::child(&self.syntax)
2587    }
2588    #[inline]
2589    pub fn name(&self) -> Option<Name> {
2590        support::child(&self.syntax)
2591    }
2592    #[inline]
2593    pub fn name_ref(&self) -> Option<NameRef> {
2594        support::child(&self.syntax)
2595    }
2596    #[inline]
2597    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
2598        support::child(&self.syntax)
2599    }
2600    #[inline]
2601    pub fn not_enforced(&self) -> Option<NotEnforced> {
2602        support::child(&self.syntax)
2603    }
2604    #[inline]
2605    pub fn storage(&self) -> Option<Storage> {
2606        support::child(&self.syntax)
2607    }
2608    #[inline]
2609    pub fn ty(&self) -> Option<Type> {
2610        support::child(&self.syntax)
2611    }
2612    #[inline]
2613    pub fn with_options(&self) -> Option<WithOptions> {
2614        support::child(&self.syntax)
2615    }
2616    #[inline]
2617    pub fn period_token(&self) -> Option<SyntaxToken> {
2618        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
2619    }
2620}
2621
2622#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2623pub struct ColumnList {
2624    pub(crate) syntax: SyntaxNode,
2625}
2626impl ColumnList {
2627    #[inline]
2628    pub fn columns(&self) -> AstChildren<Column> {
2629        support::children(&self.syntax)
2630    }
2631    #[inline]
2632    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2633        support::token(&self.syntax, SyntaxKind::L_PAREN)
2634    }
2635    #[inline]
2636    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2637        support::token(&self.syntax, SyntaxKind::R_PAREN)
2638    }
2639}
2640
2641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2642pub struct CommentOn {
2643    pub(crate) syntax: SyntaxNode,
2644}
2645impl CommentOn {
2646    #[inline]
2647    pub fn literal(&self) -> Option<Literal> {
2648        support::child(&self.syntax)
2649    }
2650    #[inline]
2651    pub fn name_ref(&self) -> Option<NameRef> {
2652        support::child(&self.syntax)
2653    }
2654    #[inline]
2655    pub fn path(&self) -> Option<Path> {
2656        support::child(&self.syntax)
2657    }
2658    #[inline]
2659    pub fn comment_token(&self) -> Option<SyntaxToken> {
2660        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
2661    }
2662    #[inline]
2663    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2664        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2665    }
2666    #[inline]
2667    pub fn domain_token(&self) -> Option<SyntaxToken> {
2668        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
2669    }
2670    #[inline]
2671    pub fn is_token(&self) -> Option<SyntaxToken> {
2672        support::token(&self.syntax, SyntaxKind::IS_KW)
2673    }
2674    #[inline]
2675    pub fn null_token(&self) -> Option<SyntaxToken> {
2676        support::token(&self.syntax, SyntaxKind::NULL_KW)
2677    }
2678    #[inline]
2679    pub fn on_token(&self) -> Option<SyntaxToken> {
2680        support::token(&self.syntax, SyntaxKind::ON_KW)
2681    }
2682    #[inline]
2683    pub fn table_token(&self) -> Option<SyntaxToken> {
2684        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2685    }
2686}
2687
2688#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2689pub struct Commit {
2690    pub(crate) syntax: SyntaxNode,
2691}
2692impl Commit {
2693    #[inline]
2694    pub fn literal(&self) -> Option<Literal> {
2695        support::child(&self.syntax)
2696    }
2697    #[inline]
2698    pub fn and_token(&self) -> Option<SyntaxToken> {
2699        support::token(&self.syntax, SyntaxKind::AND_KW)
2700    }
2701    #[inline]
2702    pub fn chain_token(&self) -> Option<SyntaxToken> {
2703        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
2704    }
2705    #[inline]
2706    pub fn commit_token(&self) -> Option<SyntaxToken> {
2707        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
2708    }
2709    #[inline]
2710    pub fn no_token(&self) -> Option<SyntaxToken> {
2711        support::token(&self.syntax, SyntaxKind::NO_KW)
2712    }
2713    #[inline]
2714    pub fn prepared_token(&self) -> Option<SyntaxToken> {
2715        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
2716    }
2717    #[inline]
2718    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2719        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2720    }
2721    #[inline]
2722    pub fn work_token(&self) -> Option<SyntaxToken> {
2723        support::token(&self.syntax, SyntaxKind::WORK_KW)
2724    }
2725}
2726
2727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2728pub struct CompoundSelect {
2729    pub(crate) syntax: SyntaxNode,
2730}
2731impl CompoundSelect {
2732    #[inline]
2733    pub fn except_token(&self) -> Option<SyntaxToken> {
2734        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
2735    }
2736    #[inline]
2737    pub fn intersect_token(&self) -> Option<SyntaxToken> {
2738        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
2739    }
2740    #[inline]
2741    pub fn union_token(&self) -> Option<SyntaxToken> {
2742        support::token(&self.syntax, SyntaxKind::UNION_KW)
2743    }
2744}
2745
2746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2747pub struct CompressionMethod {
2748    pub(crate) syntax: SyntaxNode,
2749}
2750impl CompressionMethod {
2751    #[inline]
2752    pub fn compression_token(&self) -> Option<SyntaxToken> {
2753        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
2754    }
2755    #[inline]
2756    pub fn default_token(&self) -> Option<SyntaxToken> {
2757        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
2758    }
2759    #[inline]
2760    pub fn ident_token(&self) -> Option<SyntaxToken> {
2761        support::token(&self.syntax, SyntaxKind::IDENT)
2762    }
2763}
2764
2765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2766pub struct ConflictDoNothing {
2767    pub(crate) syntax: SyntaxNode,
2768}
2769impl ConflictDoNothing {
2770    #[inline]
2771    pub fn do_token(&self) -> Option<SyntaxToken> {
2772        support::token(&self.syntax, SyntaxKind::DO_KW)
2773    }
2774    #[inline]
2775    pub fn nothing_token(&self) -> Option<SyntaxToken> {
2776        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
2777    }
2778}
2779
2780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2781pub struct ConflictDoUpdateSet {
2782    pub(crate) syntax: SyntaxNode,
2783}
2784impl ConflictDoUpdateSet {
2785    #[inline]
2786    pub fn set_clause(&self) -> Option<SetClause> {
2787        support::child(&self.syntax)
2788    }
2789    #[inline]
2790    pub fn where_clause(&self) -> Option<WhereClause> {
2791        support::child(&self.syntax)
2792    }
2793    #[inline]
2794    pub fn do_token(&self) -> Option<SyntaxToken> {
2795        support::token(&self.syntax, SyntaxKind::DO_KW)
2796    }
2797    #[inline]
2798    pub fn update_token(&self) -> Option<SyntaxToken> {
2799        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
2800    }
2801}
2802
2803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2804pub struct ConflictIndexItem {
2805    pub(crate) syntax: SyntaxNode,
2806}
2807impl ConflictIndexItem {
2808    #[inline]
2809    pub fn collate(&self) -> Option<Collate> {
2810        support::child(&self.syntax)
2811    }
2812    #[inline]
2813    pub fn expr(&self) -> Option<Expr> {
2814        support::child(&self.syntax)
2815    }
2816    #[inline]
2817    pub fn ident_token(&self) -> Option<SyntaxToken> {
2818        support::token(&self.syntax, SyntaxKind::IDENT)
2819    }
2820}
2821
2822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2823pub struct ConflictIndexItemList {
2824    pub(crate) syntax: SyntaxNode,
2825}
2826impl ConflictIndexItemList {
2827    #[inline]
2828    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
2829        support::children(&self.syntax)
2830    }
2831    #[inline]
2832    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2833        support::token(&self.syntax, SyntaxKind::L_PAREN)
2834    }
2835    #[inline]
2836    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2837        support::token(&self.syntax, SyntaxKind::R_PAREN)
2838    }
2839}
2840
2841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2842pub struct ConflictOnConstraint {
2843    pub(crate) syntax: SyntaxNode,
2844}
2845impl ConflictOnConstraint {
2846    #[inline]
2847    pub fn name_ref(&self) -> Option<NameRef> {
2848        support::child(&self.syntax)
2849    }
2850    #[inline]
2851    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2852        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2853    }
2854    #[inline]
2855    pub fn on_token(&self) -> Option<SyntaxToken> {
2856        support::token(&self.syntax, SyntaxKind::ON_KW)
2857    }
2858}
2859
2860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2861pub struct ConflictOnIndex {
2862    pub(crate) syntax: SyntaxNode,
2863}
2864impl ConflictOnIndex {
2865    #[inline]
2866    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
2867        support::child(&self.syntax)
2868    }
2869    #[inline]
2870    pub fn where_clause(&self) -> Option<WhereClause> {
2871        support::child(&self.syntax)
2872    }
2873}
2874
2875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2876pub struct ConstraintExclusion {
2877    pub(crate) syntax: SyntaxNode,
2878}
2879impl ConstraintExclusion {
2880    #[inline]
2881    pub fn expr(&self) -> Option<Expr> {
2882        support::child(&self.syntax)
2883    }
2884    #[inline]
2885    pub fn op(&self) -> Option<Op> {
2886        support::child(&self.syntax)
2887    }
2888    #[inline]
2889    pub fn with_token(&self) -> Option<SyntaxToken> {
2890        support::token(&self.syntax, SyntaxKind::WITH_KW)
2891    }
2892}
2893
2894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2895pub struct ConstraintExclusionList {
2896    pub(crate) syntax: SyntaxNode,
2897}
2898impl ConstraintExclusionList {
2899    #[inline]
2900    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
2901        support::children(&self.syntax)
2902    }
2903    #[inline]
2904    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2905        support::token(&self.syntax, SyntaxKind::L_PAREN)
2906    }
2907    #[inline]
2908    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2909        support::token(&self.syntax, SyntaxKind::R_PAREN)
2910    }
2911}
2912
2913#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2914pub struct ConstraintIncludeClause {
2915    pub(crate) syntax: SyntaxNode,
2916}
2917impl ConstraintIncludeClause {
2918    #[inline]
2919    pub fn include_token(&self) -> Option<SyntaxToken> {
2920        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
2921    }
2922}
2923
2924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2925pub struct ConstraintIndexMethod {
2926    pub(crate) syntax: SyntaxNode,
2927}
2928impl ConstraintIndexMethod {
2929    #[inline]
2930    pub fn using_token(&self) -> Option<SyntaxToken> {
2931        support::token(&self.syntax, SyntaxKind::USING_KW)
2932    }
2933}
2934
2935#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2936pub struct ConstraintIndexTablespace {
2937    pub(crate) syntax: SyntaxNode,
2938}
2939impl ConstraintIndexTablespace {
2940    #[inline]
2941    pub fn name_ref(&self) -> Option<NameRef> {
2942        support::child(&self.syntax)
2943    }
2944    #[inline]
2945    pub fn index_token(&self) -> Option<SyntaxToken> {
2946        support::token(&self.syntax, SyntaxKind::INDEX_KW)
2947    }
2948    #[inline]
2949    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
2950        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
2951    }
2952    #[inline]
2953    pub fn using_token(&self) -> Option<SyntaxToken> {
2954        support::token(&self.syntax, SyntaxKind::USING_KW)
2955    }
2956}
2957
2958#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2959pub struct ConstraintName {
2960    pub(crate) syntax: SyntaxNode,
2961}
2962impl ConstraintName {
2963    #[inline]
2964    pub fn name(&self) -> Option<Name> {
2965        support::child(&self.syntax)
2966    }
2967    #[inline]
2968    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2969        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2970    }
2971}
2972
2973#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2974pub struct Copy {
2975    pub(crate) syntax: SyntaxNode,
2976}
2977impl Copy {
2978    #[inline]
2979    pub fn column_list(&self) -> Option<ColumnList> {
2980        support::child(&self.syntax)
2981    }
2982    #[inline]
2983    pub fn literal(&self) -> Option<Literal> {
2984        support::child(&self.syntax)
2985    }
2986    #[inline]
2987    pub fn path(&self) -> Option<Path> {
2988        support::child(&self.syntax)
2989    }
2990    #[inline]
2991    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
2992        support::child(&self.syntax)
2993    }
2994    #[inline]
2995    pub fn where_clause(&self) -> Option<WhereClause> {
2996        support::child(&self.syntax)
2997    }
2998    #[inline]
2999    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3000        support::token(&self.syntax, SyntaxKind::L_PAREN)
3001    }
3002    #[inline]
3003    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3004        support::token(&self.syntax, SyntaxKind::R_PAREN)
3005    }
3006    #[inline]
3007    pub fn binary_token(&self) -> Option<SyntaxToken> {
3008        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3009    }
3010    #[inline]
3011    pub fn copy_token(&self) -> Option<SyntaxToken> {
3012        support::token(&self.syntax, SyntaxKind::COPY_KW)
3013    }
3014    #[inline]
3015    pub fn from_token(&self) -> Option<SyntaxToken> {
3016        support::token(&self.syntax, SyntaxKind::FROM_KW)
3017    }
3018    #[inline]
3019    pub fn program_token(&self) -> Option<SyntaxToken> {
3020        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3021    }
3022    #[inline]
3023    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3024        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3025    }
3026    #[inline]
3027    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3028        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3029    }
3030    #[inline]
3031    pub fn to_token(&self) -> Option<SyntaxToken> {
3032        support::token(&self.syntax, SyntaxKind::TO_KW)
3033    }
3034    #[inline]
3035    pub fn with_token(&self) -> Option<SyntaxToken> {
3036        support::token(&self.syntax, SyntaxKind::WITH_KW)
3037    }
3038}
3039
3040#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3041pub struct CopyOption {
3042    pub(crate) syntax: SyntaxNode,
3043}
3044impl CopyOption {
3045    #[inline]
3046    pub fn name(&self) -> Option<Name> {
3047        support::child(&self.syntax)
3048    }
3049}
3050
3051#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3052pub struct CopyOptionList {
3053    pub(crate) syntax: SyntaxNode,
3054}
3055impl CopyOptionList {
3056    #[inline]
3057    pub fn copy_options(&self) -> AstChildren<CopyOption> {
3058        support::children(&self.syntax)
3059    }
3060    #[inline]
3061    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3062        support::token(&self.syntax, SyntaxKind::L_PAREN)
3063    }
3064    #[inline]
3065    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3066        support::token(&self.syntax, SyntaxKind::R_PAREN)
3067    }
3068}
3069
3070#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3071pub struct CostFuncOption {
3072    pub(crate) syntax: SyntaxNode,
3073}
3074impl CostFuncOption {
3075    #[inline]
3076    pub fn cost_token(&self) -> Option<SyntaxToken> {
3077        support::token(&self.syntax, SyntaxKind::COST_KW)
3078    }
3079}
3080
3081#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3082pub struct CreateAccessMethod {
3083    pub(crate) syntax: SyntaxNode,
3084}
3085impl CreateAccessMethod {
3086    #[inline]
3087    pub fn handler_clause(&self) -> Option<HandlerClause> {
3088        support::child(&self.syntax)
3089    }
3090    #[inline]
3091    pub fn name(&self) -> Option<Path> {
3092        support::child(&self.syntax)
3093    }
3094    #[inline]
3095    pub fn access_token(&self) -> Option<SyntaxToken> {
3096        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3097    }
3098    #[inline]
3099    pub fn create_token(&self) -> Option<SyntaxToken> {
3100        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3101    }
3102    #[inline]
3103    pub fn index_token(&self) -> Option<SyntaxToken> {
3104        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3105    }
3106    #[inline]
3107    pub fn method_token(&self) -> Option<SyntaxToken> {
3108        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3109    }
3110    #[inline]
3111    pub fn table_token(&self) -> Option<SyntaxToken> {
3112        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3113    }
3114    #[inline]
3115    pub fn type_token(&self) -> Option<SyntaxToken> {
3116        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3117    }
3118}
3119
3120#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3121pub struct CreateAggregate {
3122    pub(crate) syntax: SyntaxNode,
3123}
3124impl CreateAggregate {
3125    #[inline]
3126    pub fn or_replace(&self) -> Option<OrReplace> {
3127        support::child(&self.syntax)
3128    }
3129    #[inline]
3130    pub fn param_list(&self) -> Option<ParamList> {
3131        support::child(&self.syntax)
3132    }
3133    #[inline]
3134    pub fn path(&self) -> Option<Path> {
3135        support::child(&self.syntax)
3136    }
3137    #[inline]
3138    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3139        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3140    }
3141    #[inline]
3142    pub fn create_token(&self) -> Option<SyntaxToken> {
3143        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3144    }
3145}
3146
3147#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3148pub struct CreateCast {
3149    pub(crate) syntax: SyntaxNode,
3150}
3151impl CreateCast {
3152    #[inline]
3153    pub fn cast_sig(&self) -> Option<CastSig> {
3154        support::child(&self.syntax)
3155    }
3156    #[inline]
3157    pub fn function_sig(&self) -> Option<FunctionSig> {
3158        support::child(&self.syntax)
3159    }
3160    #[inline]
3161    pub fn as_token(&self) -> Option<SyntaxToken> {
3162        support::token(&self.syntax, SyntaxKind::AS_KW)
3163    }
3164    #[inline]
3165    pub fn assignment_token(&self) -> Option<SyntaxToken> {
3166        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
3167    }
3168    #[inline]
3169    pub fn cast_token(&self) -> Option<SyntaxToken> {
3170        support::token(&self.syntax, SyntaxKind::CAST_KW)
3171    }
3172    #[inline]
3173    pub fn create_token(&self) -> Option<SyntaxToken> {
3174        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3175    }
3176    #[inline]
3177    pub fn function_token(&self) -> Option<SyntaxToken> {
3178        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3179    }
3180    #[inline]
3181    pub fn implicit_token(&self) -> Option<SyntaxToken> {
3182        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
3183    }
3184    #[inline]
3185    pub fn inout_token(&self) -> Option<SyntaxToken> {
3186        support::token(&self.syntax, SyntaxKind::INOUT_KW)
3187    }
3188    #[inline]
3189    pub fn with_token(&self) -> Option<SyntaxToken> {
3190        support::token(&self.syntax, SyntaxKind::WITH_KW)
3191    }
3192    #[inline]
3193    pub fn without_token(&self) -> Option<SyntaxToken> {
3194        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
3195    }
3196}
3197
3198#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3199pub struct CreateCollation {
3200    pub(crate) syntax: SyntaxNode,
3201}
3202impl CreateCollation {
3203    #[inline]
3204    pub fn path(&self) -> Option<Path> {
3205        support::child(&self.syntax)
3206    }
3207    #[inline]
3208    pub fn collation_token(&self) -> Option<SyntaxToken> {
3209        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3210    }
3211    #[inline]
3212    pub fn create_token(&self) -> Option<SyntaxToken> {
3213        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3214    }
3215}
3216
3217#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3218pub struct CreateConversion {
3219    pub(crate) syntax: SyntaxNode,
3220}
3221impl CreateConversion {
3222    #[inline]
3223    pub fn literal(&self) -> Option<Literal> {
3224        support::child(&self.syntax)
3225    }
3226    #[inline]
3227    pub fn path(&self) -> Option<Path> {
3228        support::child(&self.syntax)
3229    }
3230    #[inline]
3231    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3232        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3233    }
3234    #[inline]
3235    pub fn create_token(&self) -> Option<SyntaxToken> {
3236        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3237    }
3238    #[inline]
3239    pub fn default_token(&self) -> Option<SyntaxToken> {
3240        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3241    }
3242    #[inline]
3243    pub fn for_token(&self) -> Option<SyntaxToken> {
3244        support::token(&self.syntax, SyntaxKind::FOR_KW)
3245    }
3246    #[inline]
3247    pub fn from_token(&self) -> Option<SyntaxToken> {
3248        support::token(&self.syntax, SyntaxKind::FROM_KW)
3249    }
3250    #[inline]
3251    pub fn to_token(&self) -> Option<SyntaxToken> {
3252        support::token(&self.syntax, SyntaxKind::TO_KW)
3253    }
3254}
3255
3256#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3257pub struct CreateDatabase {
3258    pub(crate) syntax: SyntaxNode,
3259}
3260impl CreateDatabase {
3261    #[inline]
3262    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
3263        support::child(&self.syntax)
3264    }
3265    #[inline]
3266    pub fn name(&self) -> Option<Name> {
3267        support::child(&self.syntax)
3268    }
3269    #[inline]
3270    pub fn create_token(&self) -> Option<SyntaxToken> {
3271        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3272    }
3273    #[inline]
3274    pub fn database_token(&self) -> Option<SyntaxToken> {
3275        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3276    }
3277}
3278
3279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3280pub struct CreateDatabaseOption {
3281    pub(crate) syntax: SyntaxNode,
3282}
3283impl CreateDatabaseOption {
3284    #[inline]
3285    pub fn literal(&self) -> Option<Literal> {
3286        support::child(&self.syntax)
3287    }
3288    #[inline]
3289    pub fn eq_token(&self) -> Option<SyntaxToken> {
3290        support::token(&self.syntax, SyntaxKind::EQ)
3291    }
3292    #[inline]
3293    pub fn connection_token(&self) -> Option<SyntaxToken> {
3294        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
3295    }
3296    #[inline]
3297    pub fn default_token(&self) -> Option<SyntaxToken> {
3298        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3299    }
3300    #[inline]
3301    pub fn encoding_token(&self) -> Option<SyntaxToken> {
3302        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
3303    }
3304    #[inline]
3305    pub fn ident_token(&self) -> Option<SyntaxToken> {
3306        support::token(&self.syntax, SyntaxKind::IDENT)
3307    }
3308    #[inline]
3309    pub fn limit_token(&self) -> Option<SyntaxToken> {
3310        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
3311    }
3312    #[inline]
3313    pub fn owner_token(&self) -> Option<SyntaxToken> {
3314        support::token(&self.syntax, SyntaxKind::OWNER_KW)
3315    }
3316    #[inline]
3317    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3318        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3319    }
3320    #[inline]
3321    pub fn template_token(&self) -> Option<SyntaxToken> {
3322        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3323    }
3324}
3325
3326#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3327pub struct CreateDatabaseOptionList {
3328    pub(crate) syntax: SyntaxNode,
3329}
3330impl CreateDatabaseOptionList {
3331    #[inline]
3332    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
3333        support::children(&self.syntax)
3334    }
3335    #[inline]
3336    pub fn with_token(&self) -> Option<SyntaxToken> {
3337        support::token(&self.syntax, SyntaxKind::WITH_KW)
3338    }
3339}
3340
3341#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3342pub struct CreateDomain {
3343    pub(crate) syntax: SyntaxNode,
3344}
3345impl CreateDomain {
3346    #[inline]
3347    pub fn collate(&self) -> Option<Collate> {
3348        support::child(&self.syntax)
3349    }
3350    #[inline]
3351    pub fn constraints(&self) -> AstChildren<Constraint> {
3352        support::children(&self.syntax)
3353    }
3354    #[inline]
3355    pub fn path(&self) -> Option<Path> {
3356        support::child(&self.syntax)
3357    }
3358    #[inline]
3359    pub fn ty(&self) -> Option<Type> {
3360        support::child(&self.syntax)
3361    }
3362    #[inline]
3363    pub fn as_token(&self) -> Option<SyntaxToken> {
3364        support::token(&self.syntax, SyntaxKind::AS_KW)
3365    }
3366    #[inline]
3367    pub fn create_token(&self) -> Option<SyntaxToken> {
3368        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3369    }
3370    #[inline]
3371    pub fn domain_token(&self) -> Option<SyntaxToken> {
3372        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3373    }
3374}
3375
3376#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3377pub struct CreateEventTrigger {
3378    pub(crate) syntax: SyntaxNode,
3379}
3380impl CreateEventTrigger {
3381    #[inline]
3382    pub fn call_expr(&self) -> Option<CallExpr> {
3383        support::child(&self.syntax)
3384    }
3385    #[inline]
3386    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
3387        support::child(&self.syntax)
3388    }
3389    #[inline]
3390    pub fn name(&self) -> Option<Name> {
3391        support::child(&self.syntax)
3392    }
3393    #[inline]
3394    pub fn name_ref(&self) -> Option<NameRef> {
3395        support::child(&self.syntax)
3396    }
3397    #[inline]
3398    pub fn create_token(&self) -> Option<SyntaxToken> {
3399        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3400    }
3401    #[inline]
3402    pub fn event_token(&self) -> Option<SyntaxToken> {
3403        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3404    }
3405    #[inline]
3406    pub fn execute_token(&self) -> Option<SyntaxToken> {
3407        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
3408    }
3409    #[inline]
3410    pub fn function_token(&self) -> Option<SyntaxToken> {
3411        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3412    }
3413    #[inline]
3414    pub fn on_token(&self) -> Option<SyntaxToken> {
3415        support::token(&self.syntax, SyntaxKind::ON_KW)
3416    }
3417    #[inline]
3418    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3419        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3420    }
3421    #[inline]
3422    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3423        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3424    }
3425}
3426
3427#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3428pub struct CreateExtension {
3429    pub(crate) syntax: SyntaxNode,
3430}
3431impl CreateExtension {
3432    #[inline]
3433    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3434        support::child(&self.syntax)
3435    }
3436    #[inline]
3437    pub fn name(&self) -> Option<Name> {
3438        support::child(&self.syntax)
3439    }
3440    #[inline]
3441    pub fn create_token(&self) -> Option<SyntaxToken> {
3442        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3443    }
3444    #[inline]
3445    pub fn extension_token(&self) -> Option<SyntaxToken> {
3446        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3447    }
3448}
3449
3450#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3451pub struct CreateForeignDataWrapper {
3452    pub(crate) syntax: SyntaxNode,
3453}
3454impl CreateForeignDataWrapper {
3455    #[inline]
3456    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3457        support::child(&self.syntax)
3458    }
3459    #[inline]
3460    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
3461        support::child(&self.syntax)
3462    }
3463    #[inline]
3464    pub fn name(&self) -> Option<Name> {
3465        support::child(&self.syntax)
3466    }
3467    #[inline]
3468    pub fn create_token(&self) -> Option<SyntaxToken> {
3469        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3470    }
3471    #[inline]
3472    pub fn data_token(&self) -> Option<SyntaxToken> {
3473        support::token(&self.syntax, SyntaxKind::DATA_KW)
3474    }
3475    #[inline]
3476    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3477        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3478    }
3479    #[inline]
3480    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3481        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3482    }
3483}
3484
3485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3486pub struct CreateForeignTable {
3487    pub(crate) syntax: SyntaxNode,
3488}
3489impl CreateForeignTable {
3490    #[inline]
3491    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3492        support::child(&self.syntax)
3493    }
3494    #[inline]
3495    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3496        support::child(&self.syntax)
3497    }
3498    #[inline]
3499    pub fn inherits(&self) -> Option<Inherits> {
3500        support::child(&self.syntax)
3501    }
3502    #[inline]
3503    pub fn partition_of(&self) -> Option<PartitionOf> {
3504        support::child(&self.syntax)
3505    }
3506    #[inline]
3507    pub fn partition_type(&self) -> Option<PartitionType> {
3508        support::child(&self.syntax)
3509    }
3510    #[inline]
3511    pub fn path(&self) -> Option<Path> {
3512        support::child(&self.syntax)
3513    }
3514    #[inline]
3515    pub fn server_name(&self) -> Option<ServerName> {
3516        support::child(&self.syntax)
3517    }
3518    #[inline]
3519    pub fn table_arg_list(&self) -> Option<TableArgList> {
3520        support::child(&self.syntax)
3521    }
3522    #[inline]
3523    pub fn create_token(&self) -> Option<SyntaxToken> {
3524        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3525    }
3526    #[inline]
3527    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3528        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3529    }
3530    #[inline]
3531    pub fn table_token(&self) -> Option<SyntaxToken> {
3532        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3533    }
3534}
3535
3536#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3537pub struct CreateFunction {
3538    pub(crate) syntax: SyntaxNode,
3539}
3540impl CreateFunction {
3541    #[inline]
3542    pub fn option_list(&self) -> Option<FuncOptionList> {
3543        support::child(&self.syntax)
3544    }
3545    #[inline]
3546    pub fn or_replace(&self) -> Option<OrReplace> {
3547        support::child(&self.syntax)
3548    }
3549    #[inline]
3550    pub fn param_list(&self) -> Option<ParamList> {
3551        support::child(&self.syntax)
3552    }
3553    #[inline]
3554    pub fn path(&self) -> Option<Path> {
3555        support::child(&self.syntax)
3556    }
3557    #[inline]
3558    pub fn ret_type(&self) -> Option<RetType> {
3559        support::child(&self.syntax)
3560    }
3561    #[inline]
3562    pub fn create_token(&self) -> Option<SyntaxToken> {
3563        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3564    }
3565    #[inline]
3566    pub fn function_token(&self) -> Option<SyntaxToken> {
3567        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3568    }
3569}
3570
3571#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3572pub struct CreateGroup {
3573    pub(crate) syntax: SyntaxNode,
3574}
3575impl CreateGroup {
3576    #[inline]
3577    pub fn name(&self) -> Option<Name> {
3578        support::child(&self.syntax)
3579    }
3580    #[inline]
3581    pub fn role_option_list(&self) -> Option<RoleOptionList> {
3582        support::child(&self.syntax)
3583    }
3584    #[inline]
3585    pub fn create_token(&self) -> Option<SyntaxToken> {
3586        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3587    }
3588    #[inline]
3589    pub fn group_token(&self) -> Option<SyntaxToken> {
3590        support::token(&self.syntax, SyntaxKind::GROUP_KW)
3591    }
3592}
3593
3594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3595pub struct CreateIndex {
3596    pub(crate) syntax: SyntaxNode,
3597}
3598impl CreateIndex {
3599    #[inline]
3600    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
3601        support::child(&self.syntax)
3602    }
3603    #[inline]
3604    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3605        support::child(&self.syntax)
3606    }
3607    #[inline]
3608    pub fn name(&self) -> Option<Name> {
3609        support::child(&self.syntax)
3610    }
3611    #[inline]
3612    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
3613        support::child(&self.syntax)
3614    }
3615    #[inline]
3616    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
3617        support::child(&self.syntax)
3618    }
3619    #[inline]
3620    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
3621        support::child(&self.syntax)
3622    }
3623    #[inline]
3624    pub fn relation_name(&self) -> Option<RelationName> {
3625        support::child(&self.syntax)
3626    }
3627    #[inline]
3628    pub fn tablespace(&self) -> Option<Tablespace> {
3629        support::child(&self.syntax)
3630    }
3631    #[inline]
3632    pub fn using_method(&self) -> Option<UsingMethod> {
3633        support::child(&self.syntax)
3634    }
3635    #[inline]
3636    pub fn where_clause(&self) -> Option<WhereClause> {
3637        support::child(&self.syntax)
3638    }
3639    #[inline]
3640    pub fn with_params(&self) -> Option<WithParams> {
3641        support::child(&self.syntax)
3642    }
3643    #[inline]
3644    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
3645        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
3646    }
3647    #[inline]
3648    pub fn create_token(&self) -> Option<SyntaxToken> {
3649        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3650    }
3651    #[inline]
3652    pub fn index_token(&self) -> Option<SyntaxToken> {
3653        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3654    }
3655    #[inline]
3656    pub fn on_token(&self) -> Option<SyntaxToken> {
3657        support::token(&self.syntax, SyntaxKind::ON_KW)
3658    }
3659    #[inline]
3660    pub fn unique_token(&self) -> Option<SyntaxToken> {
3661        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
3662    }
3663}
3664
3665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3666pub struct CreateLanguage {
3667    pub(crate) syntax: SyntaxNode,
3668}
3669impl CreateLanguage {
3670    #[inline]
3671    pub fn name(&self) -> Option<Name> {
3672        support::child(&self.syntax)
3673    }
3674    #[inline]
3675    pub fn or_replace(&self) -> Option<OrReplace> {
3676        support::child(&self.syntax)
3677    }
3678    #[inline]
3679    pub fn path(&self) -> Option<Path> {
3680        support::child(&self.syntax)
3681    }
3682    #[inline]
3683    pub fn create_token(&self) -> Option<SyntaxToken> {
3684        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3685    }
3686    #[inline]
3687    pub fn handler_token(&self) -> Option<SyntaxToken> {
3688        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
3689    }
3690    #[inline]
3691    pub fn inline_token(&self) -> Option<SyntaxToken> {
3692        support::token(&self.syntax, SyntaxKind::INLINE_KW)
3693    }
3694    #[inline]
3695    pub fn language_token(&self) -> Option<SyntaxToken> {
3696        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3697    }
3698    #[inline]
3699    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3700        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3701    }
3702    #[inline]
3703    pub fn trusted_token(&self) -> Option<SyntaxToken> {
3704        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
3705    }
3706    #[inline]
3707    pub fn validator_token(&self) -> Option<SyntaxToken> {
3708        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
3709    }
3710}
3711
3712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3713pub struct CreateMaterializedView {
3714    pub(crate) syntax: SyntaxNode,
3715}
3716impl CreateMaterializedView {
3717    #[inline]
3718    pub fn column_list(&self) -> Option<ColumnList> {
3719        support::child(&self.syntax)
3720    }
3721    #[inline]
3722    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3723        support::child(&self.syntax)
3724    }
3725    #[inline]
3726    pub fn path(&self) -> Option<Path> {
3727        support::child(&self.syntax)
3728    }
3729    #[inline]
3730    pub fn query(&self) -> Option<SelectVariant> {
3731        support::child(&self.syntax)
3732    }
3733    #[inline]
3734    pub fn tablespace(&self) -> Option<Tablespace> {
3735        support::child(&self.syntax)
3736    }
3737    #[inline]
3738    pub fn using_method(&self) -> Option<UsingMethod> {
3739        support::child(&self.syntax)
3740    }
3741    #[inline]
3742    pub fn with_data(&self) -> Option<WithData> {
3743        support::child(&self.syntax)
3744    }
3745    #[inline]
3746    pub fn with_no_data(&self) -> Option<WithNoData> {
3747        support::child(&self.syntax)
3748    }
3749    #[inline]
3750    pub fn with_params(&self) -> Option<WithParams> {
3751        support::child(&self.syntax)
3752    }
3753    #[inline]
3754    pub fn as_token(&self) -> Option<SyntaxToken> {
3755        support::token(&self.syntax, SyntaxKind::AS_KW)
3756    }
3757    #[inline]
3758    pub fn create_token(&self) -> Option<SyntaxToken> {
3759        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3760    }
3761    #[inline]
3762    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3763        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3764    }
3765    #[inline]
3766    pub fn view_token(&self) -> Option<SyntaxToken> {
3767        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3768    }
3769}
3770
3771#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3772pub struct CreateOperator {
3773    pub(crate) syntax: SyntaxNode,
3774}
3775impl CreateOperator {
3776    #[inline]
3777    pub fn attribute_list(&self) -> Option<AttributeList> {
3778        support::child(&self.syntax)
3779    }
3780    #[inline]
3781    pub fn op(&self) -> Option<Op> {
3782        support::child(&self.syntax)
3783    }
3784    #[inline]
3785    pub fn path(&self) -> Option<Path> {
3786        support::child(&self.syntax)
3787    }
3788    #[inline]
3789    pub fn create_token(&self) -> Option<SyntaxToken> {
3790        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3791    }
3792    #[inline]
3793    pub fn operator_token(&self) -> Option<SyntaxToken> {
3794        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3795    }
3796}
3797
3798#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3799pub struct CreateOperatorClass {
3800    pub(crate) syntax: SyntaxNode,
3801}
3802impl CreateOperatorClass {
3803    #[inline]
3804    pub fn name_ref(&self) -> Option<NameRef> {
3805        support::child(&self.syntax)
3806    }
3807    #[inline]
3808    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
3809        support::child(&self.syntax)
3810    }
3811    #[inline]
3812    pub fn path(&self) -> Option<Path> {
3813        support::child(&self.syntax)
3814    }
3815    #[inline]
3816    pub fn ty(&self) -> Option<Type> {
3817        support::child(&self.syntax)
3818    }
3819    #[inline]
3820    pub fn as_token(&self) -> Option<SyntaxToken> {
3821        support::token(&self.syntax, SyntaxKind::AS_KW)
3822    }
3823    #[inline]
3824    pub fn class_token(&self) -> Option<SyntaxToken> {
3825        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3826    }
3827    #[inline]
3828    pub fn create_token(&self) -> Option<SyntaxToken> {
3829        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3830    }
3831    #[inline]
3832    pub fn default_token(&self) -> Option<SyntaxToken> {
3833        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3834    }
3835    #[inline]
3836    pub fn family_token(&self) -> Option<SyntaxToken> {
3837        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3838    }
3839    #[inline]
3840    pub fn for_token(&self) -> Option<SyntaxToken> {
3841        support::token(&self.syntax, SyntaxKind::FOR_KW)
3842    }
3843    #[inline]
3844    pub fn operator_token(&self) -> Option<SyntaxToken> {
3845        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3846    }
3847    #[inline]
3848    pub fn type_token(&self) -> Option<SyntaxToken> {
3849        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3850    }
3851    #[inline]
3852    pub fn using_token(&self) -> Option<SyntaxToken> {
3853        support::token(&self.syntax, SyntaxKind::USING_KW)
3854    }
3855}
3856
3857#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3858pub struct CreateOperatorFamily {
3859    pub(crate) syntax: SyntaxNode,
3860}
3861impl CreateOperatorFamily {
3862    #[inline]
3863    pub fn name_ref(&self) -> Option<NameRef> {
3864        support::child(&self.syntax)
3865    }
3866    #[inline]
3867    pub fn path(&self) -> Option<Path> {
3868        support::child(&self.syntax)
3869    }
3870    #[inline]
3871    pub fn create_token(&self) -> Option<SyntaxToken> {
3872        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3873    }
3874    #[inline]
3875    pub fn family_token(&self) -> Option<SyntaxToken> {
3876        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3877    }
3878    #[inline]
3879    pub fn operator_token(&self) -> Option<SyntaxToken> {
3880        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3881    }
3882    #[inline]
3883    pub fn using_token(&self) -> Option<SyntaxToken> {
3884        support::token(&self.syntax, SyntaxKind::USING_KW)
3885    }
3886}
3887
3888#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3889pub struct CreatePolicy {
3890    pub(crate) syntax: SyntaxNode,
3891}
3892impl CreatePolicy {
3893    #[inline]
3894    pub fn expr(&self) -> Option<Expr> {
3895        support::child(&self.syntax)
3896    }
3897    #[inline]
3898    pub fn name(&self) -> Option<Name> {
3899        support::child(&self.syntax)
3900    }
3901    #[inline]
3902    pub fn on_table(&self) -> Option<OnTable> {
3903        support::child(&self.syntax)
3904    }
3905    #[inline]
3906    pub fn role_list(&self) -> Option<RoleList> {
3907        support::child(&self.syntax)
3908    }
3909    #[inline]
3910    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3911        support::token(&self.syntax, SyntaxKind::L_PAREN)
3912    }
3913    #[inline]
3914    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3915        support::token(&self.syntax, SyntaxKind::R_PAREN)
3916    }
3917    #[inline]
3918    pub fn all_token(&self) -> Option<SyntaxToken> {
3919        support::token(&self.syntax, SyntaxKind::ALL_KW)
3920    }
3921    #[inline]
3922    pub fn as_token(&self) -> Option<SyntaxToken> {
3923        support::token(&self.syntax, SyntaxKind::AS_KW)
3924    }
3925    #[inline]
3926    pub fn check_token(&self) -> Option<SyntaxToken> {
3927        support::token(&self.syntax, SyntaxKind::CHECK_KW)
3928    }
3929    #[inline]
3930    pub fn create_token(&self) -> Option<SyntaxToken> {
3931        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3932    }
3933    #[inline]
3934    pub fn delete_token(&self) -> Option<SyntaxToken> {
3935        support::token(&self.syntax, SyntaxKind::DELETE_KW)
3936    }
3937    #[inline]
3938    pub fn for_token(&self) -> Option<SyntaxToken> {
3939        support::token(&self.syntax, SyntaxKind::FOR_KW)
3940    }
3941    #[inline]
3942    pub fn ident_token(&self) -> Option<SyntaxToken> {
3943        support::token(&self.syntax, SyntaxKind::IDENT)
3944    }
3945    #[inline]
3946    pub fn insert_token(&self) -> Option<SyntaxToken> {
3947        support::token(&self.syntax, SyntaxKind::INSERT_KW)
3948    }
3949    #[inline]
3950    pub fn policy_token(&self) -> Option<SyntaxToken> {
3951        support::token(&self.syntax, SyntaxKind::POLICY_KW)
3952    }
3953    #[inline]
3954    pub fn select_token(&self) -> Option<SyntaxToken> {
3955        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3956    }
3957    #[inline]
3958    pub fn to_token(&self) -> Option<SyntaxToken> {
3959        support::token(&self.syntax, SyntaxKind::TO_KW)
3960    }
3961    #[inline]
3962    pub fn update_token(&self) -> Option<SyntaxToken> {
3963        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3964    }
3965    #[inline]
3966    pub fn using_token(&self) -> Option<SyntaxToken> {
3967        support::token(&self.syntax, SyntaxKind::USING_KW)
3968    }
3969    #[inline]
3970    pub fn with_token(&self) -> Option<SyntaxToken> {
3971        support::token(&self.syntax, SyntaxKind::WITH_KW)
3972    }
3973}
3974
3975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3976pub struct CreateProcedure {
3977    pub(crate) syntax: SyntaxNode,
3978}
3979impl CreateProcedure {
3980    #[inline]
3981    pub fn option_list(&self) -> Option<FuncOptionList> {
3982        support::child(&self.syntax)
3983    }
3984    #[inline]
3985    pub fn or_replace(&self) -> Option<OrReplace> {
3986        support::child(&self.syntax)
3987    }
3988    #[inline]
3989    pub fn param_list(&self) -> Option<ParamList> {
3990        support::child(&self.syntax)
3991    }
3992    #[inline]
3993    pub fn path(&self) -> Option<Path> {
3994        support::child(&self.syntax)
3995    }
3996    #[inline]
3997    pub fn create_token(&self) -> Option<SyntaxToken> {
3998        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3999    }
4000    #[inline]
4001    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4002        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4003    }
4004}
4005
4006#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4007pub struct CreatePublication {
4008    pub(crate) syntax: SyntaxNode,
4009}
4010impl CreatePublication {
4011    #[inline]
4012    pub fn name(&self) -> Option<Name> {
4013        support::child(&self.syntax)
4014    }
4015    #[inline]
4016    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
4017        support::children(&self.syntax)
4018    }
4019    #[inline]
4020    pub fn with_params(&self) -> Option<WithParams> {
4021        support::child(&self.syntax)
4022    }
4023    #[inline]
4024    pub fn all_token(&self) -> Option<SyntaxToken> {
4025        support::token(&self.syntax, SyntaxKind::ALL_KW)
4026    }
4027    #[inline]
4028    pub fn create_token(&self) -> Option<SyntaxToken> {
4029        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4030    }
4031    #[inline]
4032    pub fn for_token(&self) -> Option<SyntaxToken> {
4033        support::token(&self.syntax, SyntaxKind::FOR_KW)
4034    }
4035    #[inline]
4036    pub fn publication_token(&self) -> Option<SyntaxToken> {
4037        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4038    }
4039    #[inline]
4040    pub fn tables_token(&self) -> Option<SyntaxToken> {
4041        support::token(&self.syntax, SyntaxKind::TABLES_KW)
4042    }
4043}
4044
4045#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4046pub struct CreateRole {
4047    pub(crate) syntax: SyntaxNode,
4048}
4049impl CreateRole {
4050    #[inline]
4051    pub fn name(&self) -> Option<Name> {
4052        support::child(&self.syntax)
4053    }
4054    #[inline]
4055    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4056        support::child(&self.syntax)
4057    }
4058    #[inline]
4059    pub fn create_token(&self) -> Option<SyntaxToken> {
4060        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4061    }
4062    #[inline]
4063    pub fn role_token(&self) -> Option<SyntaxToken> {
4064        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4065    }
4066}
4067
4068#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4069pub struct CreateRule {
4070    pub(crate) syntax: SyntaxNode,
4071}
4072impl CreateRule {
4073    #[inline]
4074    pub fn name(&self) -> Option<Name> {
4075        support::child(&self.syntax)
4076    }
4077    #[inline]
4078    pub fn or_replace(&self) -> Option<OrReplace> {
4079        support::child(&self.syntax)
4080    }
4081    #[inline]
4082    pub fn path(&self) -> Option<Path> {
4083        support::child(&self.syntax)
4084    }
4085    #[inline]
4086    pub fn stmt(&self) -> Option<Stmt> {
4087        support::child(&self.syntax)
4088    }
4089    #[inline]
4090    pub fn stmts(&self) -> AstChildren<Stmt> {
4091        support::children(&self.syntax)
4092    }
4093    #[inline]
4094    pub fn where_clause(&self) -> Option<WhereClause> {
4095        support::child(&self.syntax)
4096    }
4097    #[inline]
4098    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4099        support::token(&self.syntax, SyntaxKind::L_PAREN)
4100    }
4101    #[inline]
4102    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4103        support::token(&self.syntax, SyntaxKind::R_PAREN)
4104    }
4105    #[inline]
4106    pub fn also_token(&self) -> Option<SyntaxToken> {
4107        support::token(&self.syntax, SyntaxKind::ALSO_KW)
4108    }
4109    #[inline]
4110    pub fn as_token(&self) -> Option<SyntaxToken> {
4111        support::token(&self.syntax, SyntaxKind::AS_KW)
4112    }
4113    #[inline]
4114    pub fn create_token(&self) -> Option<SyntaxToken> {
4115        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4116    }
4117    #[inline]
4118    pub fn delete_token(&self) -> Option<SyntaxToken> {
4119        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4120    }
4121    #[inline]
4122    pub fn do_token(&self) -> Option<SyntaxToken> {
4123        support::token(&self.syntax, SyntaxKind::DO_KW)
4124    }
4125    #[inline]
4126    pub fn ident_token(&self) -> Option<SyntaxToken> {
4127        support::token(&self.syntax, SyntaxKind::IDENT)
4128    }
4129    #[inline]
4130    pub fn insert_token(&self) -> Option<SyntaxToken> {
4131        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4132    }
4133    #[inline]
4134    pub fn instead_token(&self) -> Option<SyntaxToken> {
4135        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
4136    }
4137    #[inline]
4138    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4139        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4140    }
4141    #[inline]
4142    pub fn on_token(&self) -> Option<SyntaxToken> {
4143        support::token(&self.syntax, SyntaxKind::ON_KW)
4144    }
4145    #[inline]
4146    pub fn rule_token(&self) -> Option<SyntaxToken> {
4147        support::token(&self.syntax, SyntaxKind::RULE_KW)
4148    }
4149    #[inline]
4150    pub fn select_token(&self) -> Option<SyntaxToken> {
4151        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4152    }
4153    #[inline]
4154    pub fn to_token(&self) -> Option<SyntaxToken> {
4155        support::token(&self.syntax, SyntaxKind::TO_KW)
4156    }
4157    #[inline]
4158    pub fn update_token(&self) -> Option<SyntaxToken> {
4159        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4160    }
4161}
4162
4163#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4164pub struct CreateSchema {
4165    pub(crate) syntax: SyntaxNode,
4166}
4167impl CreateSchema {
4168    #[inline]
4169    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4170        support::child(&self.syntax)
4171    }
4172    #[inline]
4173    pub fn name(&self) -> Option<Name> {
4174        support::child(&self.syntax)
4175    }
4176    #[inline]
4177    pub fn schema_authorization(&self) -> Option<SchemaAuthorization> {
4178        support::child(&self.syntax)
4179    }
4180    #[inline]
4181    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
4182        support::children(&self.syntax)
4183    }
4184    #[inline]
4185    pub fn create_token(&self) -> Option<SyntaxToken> {
4186        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4187    }
4188    #[inline]
4189    pub fn schema_token(&self) -> Option<SyntaxToken> {
4190        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4191    }
4192}
4193
4194#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4195pub struct CreateSequence {
4196    pub(crate) syntax: SyntaxNode,
4197}
4198impl CreateSequence {
4199    #[inline]
4200    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4201        support::child(&self.syntax)
4202    }
4203    #[inline]
4204    pub fn path(&self) -> Option<Path> {
4205        support::child(&self.syntax)
4206    }
4207    #[inline]
4208    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
4209        support::children(&self.syntax)
4210    }
4211    #[inline]
4212    pub fn create_token(&self) -> Option<SyntaxToken> {
4213        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4214    }
4215    #[inline]
4216    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4217        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4218    }
4219    #[inline]
4220    pub fn temp_token(&self) -> Option<SyntaxToken> {
4221        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4222    }
4223    #[inline]
4224    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4225        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4226    }
4227    #[inline]
4228    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4229        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4230    }
4231}
4232
4233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4234pub struct CreateServer {
4235    pub(crate) syntax: SyntaxNode,
4236}
4237impl CreateServer {
4238    #[inline]
4239    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4240        support::child(&self.syntax)
4241    }
4242    #[inline]
4243    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4244        support::child(&self.syntax)
4245    }
4246    #[inline]
4247    pub fn literal(&self) -> Option<Literal> {
4248        support::child(&self.syntax)
4249    }
4250    #[inline]
4251    pub fn name(&self) -> Option<Name> {
4252        support::child(&self.syntax)
4253    }
4254    #[inline]
4255    pub fn name_ref(&self) -> Option<NameRef> {
4256        support::child(&self.syntax)
4257    }
4258    #[inline]
4259    pub fn create_token(&self) -> Option<SyntaxToken> {
4260        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4261    }
4262    #[inline]
4263    pub fn data_token(&self) -> Option<SyntaxToken> {
4264        support::token(&self.syntax, SyntaxKind::DATA_KW)
4265    }
4266    #[inline]
4267    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4268        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4269    }
4270    #[inline]
4271    pub fn server_token(&self) -> Option<SyntaxToken> {
4272        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4273    }
4274    #[inline]
4275    pub fn type_token(&self) -> Option<SyntaxToken> {
4276        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4277    }
4278    #[inline]
4279    pub fn version_token(&self) -> Option<SyntaxToken> {
4280        support::token(&self.syntax, SyntaxKind::VERSION_KW)
4281    }
4282    #[inline]
4283    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4284        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4285    }
4286}
4287
4288#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4289pub struct CreateStatistics {
4290    pub(crate) syntax: SyntaxNode,
4291}
4292impl CreateStatistics {
4293    #[inline]
4294    pub fn from_table(&self) -> Option<FromTable> {
4295        support::child(&self.syntax)
4296    }
4297    #[inline]
4298    pub fn name_refs(&self) -> AstChildren<NameRef> {
4299        support::children(&self.syntax)
4300    }
4301    #[inline]
4302    pub fn path(&self) -> Option<Path> {
4303        support::child(&self.syntax)
4304    }
4305    #[inline]
4306    pub fn create_token(&self) -> Option<SyntaxToken> {
4307        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4308    }
4309    #[inline]
4310    pub fn on_token(&self) -> Option<SyntaxToken> {
4311        support::token(&self.syntax, SyntaxKind::ON_KW)
4312    }
4313    #[inline]
4314    pub fn statistics_token(&self) -> Option<SyntaxToken> {
4315        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
4316    }
4317}
4318
4319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4320pub struct CreateSubscription {
4321    pub(crate) syntax: SyntaxNode,
4322}
4323impl CreateSubscription {
4324    #[inline]
4325    pub fn literal(&self) -> Option<Literal> {
4326        support::child(&self.syntax)
4327    }
4328    #[inline]
4329    pub fn name(&self) -> Option<Name> {
4330        support::child(&self.syntax)
4331    }
4332    #[inline]
4333    pub fn name_refs(&self) -> AstChildren<NameRef> {
4334        support::children(&self.syntax)
4335    }
4336    #[inline]
4337    pub fn with_params(&self) -> Option<WithParams> {
4338        support::child(&self.syntax)
4339    }
4340    #[inline]
4341    pub fn connection_token(&self) -> Option<SyntaxToken> {
4342        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
4343    }
4344    #[inline]
4345    pub fn create_token(&self) -> Option<SyntaxToken> {
4346        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4347    }
4348    #[inline]
4349    pub fn publication_token(&self) -> Option<SyntaxToken> {
4350        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4351    }
4352    #[inline]
4353    pub fn subscription_token(&self) -> Option<SyntaxToken> {
4354        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
4355    }
4356}
4357
4358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4359pub struct CreateTable {
4360    pub(crate) syntax: SyntaxNode,
4361}
4362impl CreateTable {
4363    #[inline]
4364    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4365        support::child(&self.syntax)
4366    }
4367    #[inline]
4368    pub fn inherits(&self) -> Option<Inherits> {
4369        support::child(&self.syntax)
4370    }
4371    #[inline]
4372    pub fn of_type(&self) -> Option<OfType> {
4373        support::child(&self.syntax)
4374    }
4375    #[inline]
4376    pub fn on_commit(&self) -> Option<OnCommit> {
4377        support::child(&self.syntax)
4378    }
4379    #[inline]
4380    pub fn partition_by(&self) -> Option<PartitionBy> {
4381        support::child(&self.syntax)
4382    }
4383    #[inline]
4384    pub fn partition_of(&self) -> Option<PartitionOf> {
4385        support::child(&self.syntax)
4386    }
4387    #[inline]
4388    pub fn path(&self) -> Option<Path> {
4389        support::child(&self.syntax)
4390    }
4391    #[inline]
4392    pub fn table_arg_list(&self) -> Option<TableArgList> {
4393        support::child(&self.syntax)
4394    }
4395    #[inline]
4396    pub fn tablespace(&self) -> Option<Tablespace> {
4397        support::child(&self.syntax)
4398    }
4399    #[inline]
4400    pub fn using_method(&self) -> Option<UsingMethod> {
4401        support::child(&self.syntax)
4402    }
4403    #[inline]
4404    pub fn with_params(&self) -> Option<WithParams> {
4405        support::child(&self.syntax)
4406    }
4407    #[inline]
4408    pub fn without_oids(&self) -> Option<WithoutOids> {
4409        support::child(&self.syntax)
4410    }
4411    #[inline]
4412    pub fn create_token(&self) -> Option<SyntaxToken> {
4413        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4414    }
4415    #[inline]
4416    pub fn global_token(&self) -> Option<SyntaxToken> {
4417        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4418    }
4419    #[inline]
4420    pub fn local_token(&self) -> Option<SyntaxToken> {
4421        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4422    }
4423    #[inline]
4424    pub fn table_token(&self) -> Option<SyntaxToken> {
4425        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4426    }
4427    #[inline]
4428    pub fn temp_token(&self) -> Option<SyntaxToken> {
4429        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4430    }
4431    #[inline]
4432    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4433        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4434    }
4435    #[inline]
4436    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4437        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4438    }
4439}
4440
4441#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4442pub struct CreateTableAs {
4443    pub(crate) syntax: SyntaxNode,
4444}
4445impl CreateTableAs {
4446    #[inline]
4447    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4448        support::child(&self.syntax)
4449    }
4450    #[inline]
4451    pub fn on_commit(&self) -> Option<OnCommit> {
4452        support::child(&self.syntax)
4453    }
4454    #[inline]
4455    pub fn path(&self) -> Option<Path> {
4456        support::child(&self.syntax)
4457    }
4458    #[inline]
4459    pub fn query(&self) -> Option<SelectVariant> {
4460        support::child(&self.syntax)
4461    }
4462    #[inline]
4463    pub fn tablespace(&self) -> Option<Tablespace> {
4464        support::child(&self.syntax)
4465    }
4466    #[inline]
4467    pub fn using_method(&self) -> Option<UsingMethod> {
4468        support::child(&self.syntax)
4469    }
4470    #[inline]
4471    pub fn with_data(&self) -> Option<WithData> {
4472        support::child(&self.syntax)
4473    }
4474    #[inline]
4475    pub fn with_no_data(&self) -> Option<WithNoData> {
4476        support::child(&self.syntax)
4477    }
4478    #[inline]
4479    pub fn with_params(&self) -> Option<WithParams> {
4480        support::child(&self.syntax)
4481    }
4482    #[inline]
4483    pub fn without_oids(&self) -> Option<WithoutOids> {
4484        support::child(&self.syntax)
4485    }
4486    #[inline]
4487    pub fn as_token(&self) -> Option<SyntaxToken> {
4488        support::token(&self.syntax, SyntaxKind::AS_KW)
4489    }
4490    #[inline]
4491    pub fn create_token(&self) -> Option<SyntaxToken> {
4492        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4493    }
4494    #[inline]
4495    pub fn global_token(&self) -> Option<SyntaxToken> {
4496        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4497    }
4498    #[inline]
4499    pub fn local_token(&self) -> Option<SyntaxToken> {
4500        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4501    }
4502    #[inline]
4503    pub fn table_token(&self) -> Option<SyntaxToken> {
4504        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4505    }
4506    #[inline]
4507    pub fn temp_token(&self) -> Option<SyntaxToken> {
4508        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4509    }
4510    #[inline]
4511    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4512        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4513    }
4514    #[inline]
4515    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4516        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4517    }
4518}
4519
4520#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4521pub struct CreateTablespace {
4522    pub(crate) syntax: SyntaxNode,
4523}
4524impl CreateTablespace {
4525    #[inline]
4526    pub fn literal(&self) -> Option<Literal> {
4527        support::child(&self.syntax)
4528    }
4529    #[inline]
4530    pub fn name(&self) -> Option<Name> {
4531        support::child(&self.syntax)
4532    }
4533    #[inline]
4534    pub fn role(&self) -> Option<Role> {
4535        support::child(&self.syntax)
4536    }
4537    #[inline]
4538    pub fn with_params(&self) -> Option<WithParams> {
4539        support::child(&self.syntax)
4540    }
4541    #[inline]
4542    pub fn create_token(&self) -> Option<SyntaxToken> {
4543        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4544    }
4545    #[inline]
4546    pub fn location_token(&self) -> Option<SyntaxToken> {
4547        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
4548    }
4549    #[inline]
4550    pub fn owner_token(&self) -> Option<SyntaxToken> {
4551        support::token(&self.syntax, SyntaxKind::OWNER_KW)
4552    }
4553    #[inline]
4554    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4555        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4556    }
4557}
4558
4559#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4560pub struct CreateTextSearchConfiguration {
4561    pub(crate) syntax: SyntaxNode,
4562}
4563impl CreateTextSearchConfiguration {
4564    #[inline]
4565    pub fn attribute_list(&self) -> Option<AttributeList> {
4566        support::child(&self.syntax)
4567    }
4568    #[inline]
4569    pub fn path(&self) -> Option<Path> {
4570        support::child(&self.syntax)
4571    }
4572    #[inline]
4573    pub fn configuration_token(&self) -> Option<SyntaxToken> {
4574        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
4575    }
4576    #[inline]
4577    pub fn create_token(&self) -> Option<SyntaxToken> {
4578        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4579    }
4580    #[inline]
4581    pub fn search_token(&self) -> Option<SyntaxToken> {
4582        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4583    }
4584    #[inline]
4585    pub fn text_token(&self) -> Option<SyntaxToken> {
4586        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4587    }
4588}
4589
4590#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4591pub struct CreateTextSearchDictionary {
4592    pub(crate) syntax: SyntaxNode,
4593}
4594impl CreateTextSearchDictionary {
4595    #[inline]
4596    pub fn attribute_list(&self) -> Option<AttributeList> {
4597        support::child(&self.syntax)
4598    }
4599    #[inline]
4600    pub fn path(&self) -> Option<Path> {
4601        support::child(&self.syntax)
4602    }
4603    #[inline]
4604    pub fn create_token(&self) -> Option<SyntaxToken> {
4605        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4606    }
4607    #[inline]
4608    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
4609        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
4610    }
4611    #[inline]
4612    pub fn search_token(&self) -> Option<SyntaxToken> {
4613        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4614    }
4615    #[inline]
4616    pub fn text_token(&self) -> Option<SyntaxToken> {
4617        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4618    }
4619}
4620
4621#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4622pub struct CreateTextSearchParser {
4623    pub(crate) syntax: SyntaxNode,
4624}
4625impl CreateTextSearchParser {
4626    #[inline]
4627    pub fn attribute_list(&self) -> Option<AttributeList> {
4628        support::child(&self.syntax)
4629    }
4630    #[inline]
4631    pub fn path(&self) -> Option<Path> {
4632        support::child(&self.syntax)
4633    }
4634    #[inline]
4635    pub fn create_token(&self) -> Option<SyntaxToken> {
4636        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4637    }
4638    #[inline]
4639    pub fn parser_token(&self) -> Option<SyntaxToken> {
4640        support::token(&self.syntax, SyntaxKind::PARSER_KW)
4641    }
4642    #[inline]
4643    pub fn search_token(&self) -> Option<SyntaxToken> {
4644        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4645    }
4646    #[inline]
4647    pub fn text_token(&self) -> Option<SyntaxToken> {
4648        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4649    }
4650}
4651
4652#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4653pub struct CreateTextSearchTemplate {
4654    pub(crate) syntax: SyntaxNode,
4655}
4656impl CreateTextSearchTemplate {
4657    #[inline]
4658    pub fn attribute_list(&self) -> Option<AttributeList> {
4659        support::child(&self.syntax)
4660    }
4661    #[inline]
4662    pub fn path(&self) -> Option<Path> {
4663        support::child(&self.syntax)
4664    }
4665    #[inline]
4666    pub fn create_token(&self) -> Option<SyntaxToken> {
4667        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4668    }
4669    #[inline]
4670    pub fn search_token(&self) -> Option<SyntaxToken> {
4671        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4672    }
4673    #[inline]
4674    pub fn template_token(&self) -> Option<SyntaxToken> {
4675        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4676    }
4677    #[inline]
4678    pub fn text_token(&self) -> Option<SyntaxToken> {
4679        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4680    }
4681}
4682
4683#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4684pub struct CreateTransform {
4685    pub(crate) syntax: SyntaxNode,
4686}
4687impl CreateTransform {
4688    #[inline]
4689    pub fn from_func(&self) -> Option<TransformFromFunc> {
4690        support::child(&self.syntax)
4691    }
4692    #[inline]
4693    pub fn language(&self) -> Option<NameRef> {
4694        support::child(&self.syntax)
4695    }
4696    #[inline]
4697    pub fn or_replace(&self) -> Option<OrReplace> {
4698        support::child(&self.syntax)
4699    }
4700    #[inline]
4701    pub fn to_func(&self) -> Option<TransformToFunc> {
4702        support::child(&self.syntax)
4703    }
4704    #[inline]
4705    pub fn ty(&self) -> Option<Type> {
4706        support::child(&self.syntax)
4707    }
4708    #[inline]
4709    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4710        support::token(&self.syntax, SyntaxKind::L_PAREN)
4711    }
4712    #[inline]
4713    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4714        support::token(&self.syntax, SyntaxKind::R_PAREN)
4715    }
4716    #[inline]
4717    pub fn comma_token(&self) -> Option<SyntaxToken> {
4718        support::token(&self.syntax, SyntaxKind::COMMA)
4719    }
4720    #[inline]
4721    pub fn create_token(&self) -> Option<SyntaxToken> {
4722        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4723    }
4724    #[inline]
4725    pub fn for_token(&self) -> Option<SyntaxToken> {
4726        support::token(&self.syntax, SyntaxKind::FOR_KW)
4727    }
4728    #[inline]
4729    pub fn language_token(&self) -> Option<SyntaxToken> {
4730        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4731    }
4732    #[inline]
4733    pub fn transform_token(&self) -> Option<SyntaxToken> {
4734        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
4735    }
4736}
4737
4738#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4739pub struct CreateTrigger {
4740    pub(crate) syntax: SyntaxNode,
4741}
4742impl CreateTrigger {
4743    #[inline]
4744    pub fn call_expr(&self) -> Option<CallExpr> {
4745        support::child(&self.syntax)
4746    }
4747    #[inline]
4748    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
4749        support::child(&self.syntax)
4750    }
4751    #[inline]
4752    pub fn from_table(&self) -> Option<FromTable> {
4753        support::child(&self.syntax)
4754    }
4755    #[inline]
4756    pub fn initially_deferred_constraint_option(
4757        &self,
4758    ) -> Option<InitiallyDeferredConstraintOption> {
4759        support::child(&self.syntax)
4760    }
4761    #[inline]
4762    pub fn initially_immediate_constraint_option(
4763        &self,
4764    ) -> Option<InitiallyImmediateConstraintOption> {
4765        support::child(&self.syntax)
4766    }
4767    #[inline]
4768    pub fn name(&self) -> Option<Name> {
4769        support::child(&self.syntax)
4770    }
4771    #[inline]
4772    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
4773        support::child(&self.syntax)
4774    }
4775    #[inline]
4776    pub fn on_table(&self) -> Option<OnTable> {
4777        support::child(&self.syntax)
4778    }
4779    #[inline]
4780    pub fn or_replace(&self) -> Option<OrReplace> {
4781        support::child(&self.syntax)
4782    }
4783    #[inline]
4784    pub fn referencing(&self) -> Option<Referencing> {
4785        support::child(&self.syntax)
4786    }
4787    #[inline]
4788    pub fn timing(&self) -> Option<Timing> {
4789        support::child(&self.syntax)
4790    }
4791    #[inline]
4792    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
4793        support::child(&self.syntax)
4794    }
4795    #[inline]
4796    pub fn when_condition(&self) -> Option<WhenCondition> {
4797        support::child(&self.syntax)
4798    }
4799    #[inline]
4800    pub fn constraint_token(&self) -> Option<SyntaxToken> {
4801        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
4802    }
4803    #[inline]
4804    pub fn create_token(&self) -> Option<SyntaxToken> {
4805        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4806    }
4807    #[inline]
4808    pub fn each_token(&self) -> Option<SyntaxToken> {
4809        support::token(&self.syntax, SyntaxKind::EACH_KW)
4810    }
4811    #[inline]
4812    pub fn execute_token(&self) -> Option<SyntaxToken> {
4813        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4814    }
4815    #[inline]
4816    pub fn for_token(&self) -> Option<SyntaxToken> {
4817        support::token(&self.syntax, SyntaxKind::FOR_KW)
4818    }
4819    #[inline]
4820    pub fn function_token(&self) -> Option<SyntaxToken> {
4821        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4822    }
4823    #[inline]
4824    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4825        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4826    }
4827    #[inline]
4828    pub fn row_token(&self) -> Option<SyntaxToken> {
4829        support::token(&self.syntax, SyntaxKind::ROW_KW)
4830    }
4831    #[inline]
4832    pub fn statement_token(&self) -> Option<SyntaxToken> {
4833        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
4834    }
4835    #[inline]
4836    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4837        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4838    }
4839}
4840
4841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4842pub struct CreateType {
4843    pub(crate) syntax: SyntaxNode,
4844}
4845impl CreateType {
4846    #[inline]
4847    pub fn attribute_list(&self) -> Option<AttributeList> {
4848        support::child(&self.syntax)
4849    }
4850    #[inline]
4851    pub fn column_list(&self) -> Option<ColumnList> {
4852        support::child(&self.syntax)
4853    }
4854    #[inline]
4855    pub fn path(&self) -> Option<Path> {
4856        support::child(&self.syntax)
4857    }
4858    #[inline]
4859    pub fn variant_list(&self) -> Option<VariantList> {
4860        support::child(&self.syntax)
4861    }
4862    #[inline]
4863    pub fn as_token(&self) -> Option<SyntaxToken> {
4864        support::token(&self.syntax, SyntaxKind::AS_KW)
4865    }
4866    #[inline]
4867    pub fn create_token(&self) -> Option<SyntaxToken> {
4868        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4869    }
4870    #[inline]
4871    pub fn enum_token(&self) -> Option<SyntaxToken> {
4872        support::token(&self.syntax, SyntaxKind::ENUM_KW)
4873    }
4874    #[inline]
4875    pub fn range_token(&self) -> Option<SyntaxToken> {
4876        support::token(&self.syntax, SyntaxKind::RANGE_KW)
4877    }
4878    #[inline]
4879    pub fn type_token(&self) -> Option<SyntaxToken> {
4880        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4881    }
4882}
4883
4884#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4885pub struct CreateUser {
4886    pub(crate) syntax: SyntaxNode,
4887}
4888impl CreateUser {
4889    #[inline]
4890    pub fn name(&self) -> Option<Name> {
4891        support::child(&self.syntax)
4892    }
4893    #[inline]
4894    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4895        support::child(&self.syntax)
4896    }
4897    #[inline]
4898    pub fn create_token(&self) -> Option<SyntaxToken> {
4899        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4900    }
4901    #[inline]
4902    pub fn user_token(&self) -> Option<SyntaxToken> {
4903        support::token(&self.syntax, SyntaxKind::USER_KW)
4904    }
4905}
4906
4907#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4908pub struct CreateUserMapping {
4909    pub(crate) syntax: SyntaxNode,
4910}
4911impl CreateUserMapping {
4912    #[inline]
4913    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4914        support::child(&self.syntax)
4915    }
4916    #[inline]
4917    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4918        support::child(&self.syntax)
4919    }
4920    #[inline]
4921    pub fn role(&self) -> Option<Role> {
4922        support::child(&self.syntax)
4923    }
4924    #[inline]
4925    pub fn server_name(&self) -> Option<ServerName> {
4926        support::child(&self.syntax)
4927    }
4928    #[inline]
4929    pub fn create_token(&self) -> Option<SyntaxToken> {
4930        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4931    }
4932    #[inline]
4933    pub fn for_token(&self) -> Option<SyntaxToken> {
4934        support::token(&self.syntax, SyntaxKind::FOR_KW)
4935    }
4936    #[inline]
4937    pub fn mapping_token(&self) -> Option<SyntaxToken> {
4938        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
4939    }
4940    #[inline]
4941    pub fn user_token(&self) -> Option<SyntaxToken> {
4942        support::token(&self.syntax, SyntaxKind::USER_KW)
4943    }
4944}
4945
4946#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4947pub struct CreateView {
4948    pub(crate) syntax: SyntaxNode,
4949}
4950impl CreateView {
4951    #[inline]
4952    pub fn column_list(&self) -> Option<ColumnList> {
4953        support::child(&self.syntax)
4954    }
4955    #[inline]
4956    pub fn or_replace(&self) -> Option<OrReplace> {
4957        support::child(&self.syntax)
4958    }
4959    #[inline]
4960    pub fn path(&self) -> Option<Path> {
4961        support::child(&self.syntax)
4962    }
4963    #[inline]
4964    pub fn query(&self) -> Option<SelectVariant> {
4965        support::child(&self.syntax)
4966    }
4967    #[inline]
4968    pub fn with_params(&self) -> Option<WithParams> {
4969        support::child(&self.syntax)
4970    }
4971    #[inline]
4972    pub fn as_token(&self) -> Option<SyntaxToken> {
4973        support::token(&self.syntax, SyntaxKind::AS_KW)
4974    }
4975    #[inline]
4976    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
4977        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
4978    }
4979    #[inline]
4980    pub fn check_token(&self) -> Option<SyntaxToken> {
4981        support::token(&self.syntax, SyntaxKind::CHECK_KW)
4982    }
4983    #[inline]
4984    pub fn create_token(&self) -> Option<SyntaxToken> {
4985        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4986    }
4987    #[inline]
4988    pub fn local_token(&self) -> Option<SyntaxToken> {
4989        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4990    }
4991    #[inline]
4992    pub fn option_token(&self) -> Option<SyntaxToken> {
4993        support::token(&self.syntax, SyntaxKind::OPTION_KW)
4994    }
4995    #[inline]
4996    pub fn recursive_token(&self) -> Option<SyntaxToken> {
4997        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
4998    }
4999    #[inline]
5000    pub fn temp_token(&self) -> Option<SyntaxToken> {
5001        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5002    }
5003    #[inline]
5004    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5005        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5006    }
5007    #[inline]
5008    pub fn view_token(&self) -> Option<SyntaxToken> {
5009        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5010    }
5011    #[inline]
5012    pub fn with_token(&self) -> Option<SyntaxToken> {
5013        support::token(&self.syntax, SyntaxKind::WITH_KW)
5014    }
5015}
5016
5017#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5018pub struct CustomOp {
5019    pub(crate) syntax: SyntaxNode,
5020}
5021impl CustomOp {
5022    #[inline]
5023    pub fn bang_token(&self) -> Option<SyntaxToken> {
5024        support::token(&self.syntax, SyntaxKind::BANG)
5025    }
5026    #[inline]
5027    pub fn pound_token(&self) -> Option<SyntaxToken> {
5028        support::token(&self.syntax, SyntaxKind::POUND)
5029    }
5030    #[inline]
5031    pub fn percent_token(&self) -> Option<SyntaxToken> {
5032        support::token(&self.syntax, SyntaxKind::PERCENT)
5033    }
5034    #[inline]
5035    pub fn amp_token(&self) -> Option<SyntaxToken> {
5036        support::token(&self.syntax, SyntaxKind::AMP)
5037    }
5038    #[inline]
5039    pub fn star_token(&self) -> Option<SyntaxToken> {
5040        support::token(&self.syntax, SyntaxKind::STAR)
5041    }
5042    #[inline]
5043    pub fn plus_token(&self) -> Option<SyntaxToken> {
5044        support::token(&self.syntax, SyntaxKind::PLUS)
5045    }
5046    #[inline]
5047    pub fn minus_token(&self) -> Option<SyntaxToken> {
5048        support::token(&self.syntax, SyntaxKind::MINUS)
5049    }
5050    #[inline]
5051    pub fn slash_token(&self) -> Option<SyntaxToken> {
5052        support::token(&self.syntax, SyntaxKind::SLASH)
5053    }
5054    #[inline]
5055    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
5056        support::token(&self.syntax, SyntaxKind::L_ANGLE)
5057    }
5058    #[inline]
5059    pub fn eq_token(&self) -> Option<SyntaxToken> {
5060        support::token(&self.syntax, SyntaxKind::EQ)
5061    }
5062    #[inline]
5063    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5064        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5065    }
5066    #[inline]
5067    pub fn question_token(&self) -> Option<SyntaxToken> {
5068        support::token(&self.syntax, SyntaxKind::QUESTION)
5069    }
5070    #[inline]
5071    pub fn at_token(&self) -> Option<SyntaxToken> {
5072        support::token(&self.syntax, SyntaxKind::AT)
5073    }
5074    #[inline]
5075    pub fn caret_token(&self) -> Option<SyntaxToken> {
5076        support::token(&self.syntax, SyntaxKind::CARET)
5077    }
5078    #[inline]
5079    pub fn backtick_token(&self) -> Option<SyntaxToken> {
5080        support::token(&self.syntax, SyntaxKind::BACKTICK)
5081    }
5082    #[inline]
5083    pub fn pipe_token(&self) -> Option<SyntaxToken> {
5084        support::token(&self.syntax, SyntaxKind::PIPE)
5085    }
5086    #[inline]
5087    pub fn tilde_token(&self) -> Option<SyntaxToken> {
5088        support::token(&self.syntax, SyntaxKind::TILDE)
5089    }
5090}
5091
5092#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5093pub struct Deallocate {
5094    pub(crate) syntax: SyntaxNode,
5095}
5096impl Deallocate {
5097    #[inline]
5098    pub fn name_ref(&self) -> Option<NameRef> {
5099        support::child(&self.syntax)
5100    }
5101    #[inline]
5102    pub fn all_token(&self) -> Option<SyntaxToken> {
5103        support::token(&self.syntax, SyntaxKind::ALL_KW)
5104    }
5105    #[inline]
5106    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
5107        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
5108    }
5109    #[inline]
5110    pub fn prepare_token(&self) -> Option<SyntaxToken> {
5111        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
5112    }
5113}
5114
5115#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5116pub struct Declare {
5117    pub(crate) syntax: SyntaxNode,
5118}
5119impl Declare {
5120    #[inline]
5121    pub fn name(&self) -> Option<Name> {
5122        support::child(&self.syntax)
5123    }
5124    #[inline]
5125    pub fn query(&self) -> Option<SelectVariant> {
5126        support::child(&self.syntax)
5127    }
5128    #[inline]
5129    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
5130        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
5131    }
5132    #[inline]
5133    pub fn binary_token(&self) -> Option<SyntaxToken> {
5134        support::token(&self.syntax, SyntaxKind::BINARY_KW)
5135    }
5136    #[inline]
5137    pub fn cursor_token(&self) -> Option<SyntaxToken> {
5138        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
5139    }
5140    #[inline]
5141    pub fn declare_token(&self) -> Option<SyntaxToken> {
5142        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
5143    }
5144    #[inline]
5145    pub fn for_token(&self) -> Option<SyntaxToken> {
5146        support::token(&self.syntax, SyntaxKind::FOR_KW)
5147    }
5148    #[inline]
5149    pub fn hold_token(&self) -> Option<SyntaxToken> {
5150        support::token(&self.syntax, SyntaxKind::HOLD_KW)
5151    }
5152    #[inline]
5153    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
5154        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
5155    }
5156    #[inline]
5157    pub fn no_token(&self) -> Option<SyntaxToken> {
5158        support::token(&self.syntax, SyntaxKind::NO_KW)
5159    }
5160    #[inline]
5161    pub fn scroll_token(&self) -> Option<SyntaxToken> {
5162        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
5163    }
5164    #[inline]
5165    pub fn with_token(&self) -> Option<SyntaxToken> {
5166        support::token(&self.syntax, SyntaxKind::WITH_KW)
5167    }
5168    #[inline]
5169    pub fn without_token(&self) -> Option<SyntaxToken> {
5170        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5171    }
5172}
5173
5174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5175pub struct DefaultConstraint {
5176    pub(crate) syntax: SyntaxNode,
5177}
5178impl DefaultConstraint {
5179    #[inline]
5180    pub fn expr(&self) -> Option<Expr> {
5181        support::child(&self.syntax)
5182    }
5183    #[inline]
5184    pub fn name_ref(&self) -> Option<NameRef> {
5185        support::child(&self.syntax)
5186    }
5187    #[inline]
5188    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5189        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5190    }
5191    #[inline]
5192    pub fn default_token(&self) -> Option<SyntaxToken> {
5193        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5194    }
5195}
5196
5197#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5198pub struct Deferrable {
5199    pub(crate) syntax: SyntaxNode,
5200}
5201impl Deferrable {
5202    #[inline]
5203    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5204        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5205    }
5206}
5207
5208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5209pub struct DeferrableConstraintOption {
5210    pub(crate) syntax: SyntaxNode,
5211}
5212impl DeferrableConstraintOption {
5213    #[inline]
5214    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5215        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5216    }
5217}
5218
5219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5220pub struct Delete {
5221    pub(crate) syntax: SyntaxNode,
5222}
5223impl Delete {
5224    #[inline]
5225    pub fn alias(&self) -> Option<Alias> {
5226        support::child(&self.syntax)
5227    }
5228    #[inline]
5229    pub fn relation_name(&self) -> Option<RelationName> {
5230        support::child(&self.syntax)
5231    }
5232    #[inline]
5233    pub fn returning_clause(&self) -> Option<ReturningClause> {
5234        support::child(&self.syntax)
5235    }
5236    #[inline]
5237    pub fn using_clause(&self) -> Option<UsingClause> {
5238        support::child(&self.syntax)
5239    }
5240    #[inline]
5241    pub fn where_clause(&self) -> Option<WhereClause> {
5242        support::child(&self.syntax)
5243    }
5244    #[inline]
5245    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
5246        support::child(&self.syntax)
5247    }
5248    #[inline]
5249    pub fn with_clause(&self) -> Option<WithClause> {
5250        support::child(&self.syntax)
5251    }
5252    #[inline]
5253    pub fn delete_token(&self) -> Option<SyntaxToken> {
5254        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5255    }
5256    #[inline]
5257    pub fn from_token(&self) -> Option<SyntaxToken> {
5258        support::token(&self.syntax, SyntaxKind::FROM_KW)
5259    }
5260}
5261
5262#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5263pub struct DeleteRows {
5264    pub(crate) syntax: SyntaxNode,
5265}
5266impl DeleteRows {
5267    #[inline]
5268    pub fn delete_token(&self) -> Option<SyntaxToken> {
5269        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5270    }
5271    #[inline]
5272    pub fn rows_token(&self) -> Option<SyntaxToken> {
5273        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5274    }
5275}
5276
5277#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5278pub struct DependsOnExtension {
5279    pub(crate) syntax: SyntaxNode,
5280}
5281impl DependsOnExtension {
5282    #[inline]
5283    pub fn name_ref(&self) -> Option<NameRef> {
5284        support::child(&self.syntax)
5285    }
5286    #[inline]
5287    pub fn depends_token(&self) -> Option<SyntaxToken> {
5288        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
5289    }
5290    #[inline]
5291    pub fn extension_token(&self) -> Option<SyntaxToken> {
5292        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5293    }
5294    #[inline]
5295    pub fn on_token(&self) -> Option<SyntaxToken> {
5296        support::token(&self.syntax, SyntaxKind::ON_KW)
5297    }
5298}
5299
5300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5301pub struct DetachPartition {
5302    pub(crate) syntax: SyntaxNode,
5303}
5304impl DetachPartition {
5305    #[inline]
5306    pub fn detach_token(&self) -> Option<SyntaxToken> {
5307        support::token(&self.syntax, SyntaxKind::DETACH_KW)
5308    }
5309    #[inline]
5310    pub fn partition_token(&self) -> Option<SyntaxToken> {
5311        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
5312    }
5313}
5314
5315#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5316pub struct DisableRls {
5317    pub(crate) syntax: SyntaxNode,
5318}
5319impl DisableRls {
5320    #[inline]
5321    pub fn disable_token(&self) -> Option<SyntaxToken> {
5322        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5323    }
5324    #[inline]
5325    pub fn level_token(&self) -> Option<SyntaxToken> {
5326        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
5327    }
5328    #[inline]
5329    pub fn row_token(&self) -> Option<SyntaxToken> {
5330        support::token(&self.syntax, SyntaxKind::ROW_KW)
5331    }
5332    #[inline]
5333    pub fn security_token(&self) -> Option<SyntaxToken> {
5334        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
5335    }
5336}
5337
5338#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5339pub struct DisableRule {
5340    pub(crate) syntax: SyntaxNode,
5341}
5342impl DisableRule {
5343    #[inline]
5344    pub fn disable_token(&self) -> Option<SyntaxToken> {
5345        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5346    }
5347    #[inline]
5348    pub fn rule_token(&self) -> Option<SyntaxToken> {
5349        support::token(&self.syntax, SyntaxKind::RULE_KW)
5350    }
5351}
5352
5353#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5354pub struct DisableTrigger {
5355    pub(crate) syntax: SyntaxNode,
5356}
5357impl DisableTrigger {
5358    #[inline]
5359    pub fn disable_token(&self) -> Option<SyntaxToken> {
5360        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5361    }
5362    #[inline]
5363    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5364        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5365    }
5366}
5367
5368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5369pub struct Discard {
5370    pub(crate) syntax: SyntaxNode,
5371}
5372impl Discard {
5373    #[inline]
5374    pub fn all_token(&self) -> Option<SyntaxToken> {
5375        support::token(&self.syntax, SyntaxKind::ALL_KW)
5376    }
5377    #[inline]
5378    pub fn discard_token(&self) -> Option<SyntaxToken> {
5379        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
5380    }
5381    #[inline]
5382    pub fn plans_token(&self) -> Option<SyntaxToken> {
5383        support::token(&self.syntax, SyntaxKind::PLANS_KW)
5384    }
5385    #[inline]
5386    pub fn sequences_token(&self) -> Option<SyntaxToken> {
5387        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
5388    }
5389    #[inline]
5390    pub fn temp_token(&self) -> Option<SyntaxToken> {
5391        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5392    }
5393    #[inline]
5394    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5395        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5396    }
5397}
5398
5399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5400pub struct DistinctClause {
5401    pub(crate) syntax: SyntaxNode,
5402}
5403impl DistinctClause {
5404    #[inline]
5405    pub fn exprs(&self) -> AstChildren<Expr> {
5406        support::children(&self.syntax)
5407    }
5408    #[inline]
5409    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5410        support::token(&self.syntax, SyntaxKind::L_PAREN)
5411    }
5412    #[inline]
5413    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5414        support::token(&self.syntax, SyntaxKind::R_PAREN)
5415    }
5416    #[inline]
5417    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5418        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5419    }
5420    #[inline]
5421    pub fn on_token(&self) -> Option<SyntaxToken> {
5422        support::token(&self.syntax, SyntaxKind::ON_KW)
5423    }
5424}
5425
5426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5427pub struct Do {
5428    pub(crate) syntax: SyntaxNode,
5429}
5430impl Do {
5431    #[inline]
5432    pub fn do_token(&self) -> Option<SyntaxToken> {
5433        support::token(&self.syntax, SyntaxKind::DO_KW)
5434    }
5435}
5436
5437#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5438pub struct DoubleType {
5439    pub(crate) syntax: SyntaxNode,
5440}
5441impl DoubleType {
5442    #[inline]
5443    pub fn double_token(&self) -> Option<SyntaxToken> {
5444        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
5445    }
5446    #[inline]
5447    pub fn precision_token(&self) -> Option<SyntaxToken> {
5448        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
5449    }
5450}
5451
5452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5453pub struct Drop {
5454    pub(crate) syntax: SyntaxNode,
5455}
5456impl Drop {
5457    #[inline]
5458    pub fn drop_token(&self) -> Option<SyntaxToken> {
5459        support::token(&self.syntax, SyntaxKind::DROP_KW)
5460    }
5461}
5462
5463#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5464pub struct DropAccessMethod {
5465    pub(crate) syntax: SyntaxNode,
5466}
5467impl DropAccessMethod {
5468    #[inline]
5469    pub fn if_exists(&self) -> Option<IfExists> {
5470        support::child(&self.syntax)
5471    }
5472    #[inline]
5473    pub fn name_ref(&self) -> Option<NameRef> {
5474        support::child(&self.syntax)
5475    }
5476    #[inline]
5477    pub fn access_token(&self) -> Option<SyntaxToken> {
5478        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
5479    }
5480    #[inline]
5481    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5482        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5483    }
5484    #[inline]
5485    pub fn drop_token(&self) -> Option<SyntaxToken> {
5486        support::token(&self.syntax, SyntaxKind::DROP_KW)
5487    }
5488    #[inline]
5489    pub fn method_token(&self) -> Option<SyntaxToken> {
5490        support::token(&self.syntax, SyntaxKind::METHOD_KW)
5491    }
5492    #[inline]
5493    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5494        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5495    }
5496}
5497
5498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5499pub struct DropAggregate {
5500    pub(crate) syntax: SyntaxNode,
5501}
5502impl DropAggregate {
5503    #[inline]
5504    pub fn aggregates(&self) -> AstChildren<Aggregate> {
5505        support::children(&self.syntax)
5506    }
5507    #[inline]
5508    pub fn if_exists(&self) -> Option<IfExists> {
5509        support::child(&self.syntax)
5510    }
5511    #[inline]
5512    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
5513        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
5514    }
5515    #[inline]
5516    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5517        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5518    }
5519    #[inline]
5520    pub fn drop_token(&self) -> Option<SyntaxToken> {
5521        support::token(&self.syntax, SyntaxKind::DROP_KW)
5522    }
5523    #[inline]
5524    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5525        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5526    }
5527}
5528
5529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5530pub struct DropCast {
5531    pub(crate) syntax: SyntaxNode,
5532}
5533impl DropCast {
5534    #[inline]
5535    pub fn cast_sig(&self) -> Option<CastSig> {
5536        support::child(&self.syntax)
5537    }
5538    #[inline]
5539    pub fn if_exists(&self) -> Option<IfExists> {
5540        support::child(&self.syntax)
5541    }
5542    #[inline]
5543    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5544        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5545    }
5546    #[inline]
5547    pub fn cast_token(&self) -> Option<SyntaxToken> {
5548        support::token(&self.syntax, SyntaxKind::CAST_KW)
5549    }
5550    #[inline]
5551    pub fn drop_token(&self) -> Option<SyntaxToken> {
5552        support::token(&self.syntax, SyntaxKind::DROP_KW)
5553    }
5554    #[inline]
5555    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5556        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5557    }
5558}
5559
5560#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5561pub struct DropCollation {
5562    pub(crate) syntax: SyntaxNode,
5563}
5564impl DropCollation {
5565    #[inline]
5566    pub fn if_exists(&self) -> Option<IfExists> {
5567        support::child(&self.syntax)
5568    }
5569    #[inline]
5570    pub fn paths(&self) -> AstChildren<Path> {
5571        support::children(&self.syntax)
5572    }
5573    #[inline]
5574    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5575        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5576    }
5577    #[inline]
5578    pub fn collation_token(&self) -> Option<SyntaxToken> {
5579        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
5580    }
5581    #[inline]
5582    pub fn drop_token(&self) -> Option<SyntaxToken> {
5583        support::token(&self.syntax, SyntaxKind::DROP_KW)
5584    }
5585    #[inline]
5586    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5587        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5588    }
5589}
5590
5591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5592pub struct DropColumn {
5593    pub(crate) syntax: SyntaxNode,
5594}
5595impl DropColumn {
5596    #[inline]
5597    pub fn if_exists(&self) -> Option<IfExists> {
5598        support::child(&self.syntax)
5599    }
5600    #[inline]
5601    pub fn name_ref(&self) -> Option<NameRef> {
5602        support::child(&self.syntax)
5603    }
5604    #[inline]
5605    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5606        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5607    }
5608    #[inline]
5609    pub fn column_token(&self) -> Option<SyntaxToken> {
5610        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
5611    }
5612    #[inline]
5613    pub fn drop_token(&self) -> Option<SyntaxToken> {
5614        support::token(&self.syntax, SyntaxKind::DROP_KW)
5615    }
5616    #[inline]
5617    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5618        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5619    }
5620}
5621
5622#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5623pub struct DropConstraint {
5624    pub(crate) syntax: SyntaxNode,
5625}
5626impl DropConstraint {
5627    #[inline]
5628    pub fn if_exists(&self) -> Option<IfExists> {
5629        support::child(&self.syntax)
5630    }
5631    #[inline]
5632    pub fn name_ref(&self) -> Option<NameRef> {
5633        support::child(&self.syntax)
5634    }
5635    #[inline]
5636    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5637        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5638    }
5639    #[inline]
5640    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5641        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5642    }
5643    #[inline]
5644    pub fn drop_token(&self) -> Option<SyntaxToken> {
5645        support::token(&self.syntax, SyntaxKind::DROP_KW)
5646    }
5647    #[inline]
5648    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5649        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5650    }
5651}
5652
5653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5654pub struct DropConversion {
5655    pub(crate) syntax: SyntaxNode,
5656}
5657impl DropConversion {
5658    #[inline]
5659    pub fn if_exists(&self) -> Option<IfExists> {
5660        support::child(&self.syntax)
5661    }
5662    #[inline]
5663    pub fn path(&self) -> Option<Path> {
5664        support::child(&self.syntax)
5665    }
5666    #[inline]
5667    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5668        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5669    }
5670    #[inline]
5671    pub fn conversion_token(&self) -> Option<SyntaxToken> {
5672        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
5673    }
5674    #[inline]
5675    pub fn drop_token(&self) -> Option<SyntaxToken> {
5676        support::token(&self.syntax, SyntaxKind::DROP_KW)
5677    }
5678    #[inline]
5679    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5680        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5681    }
5682}
5683
5684#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5685pub struct DropDatabase {
5686    pub(crate) syntax: SyntaxNode,
5687}
5688impl DropDatabase {
5689    #[inline]
5690    pub fn if_exists(&self) -> Option<IfExists> {
5691        support::child(&self.syntax)
5692    }
5693    #[inline]
5694    pub fn name_ref(&self) -> Option<NameRef> {
5695        support::child(&self.syntax)
5696    }
5697    #[inline]
5698    pub fn database_token(&self) -> Option<SyntaxToken> {
5699        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
5700    }
5701    #[inline]
5702    pub fn drop_token(&self) -> Option<SyntaxToken> {
5703        support::token(&self.syntax, SyntaxKind::DROP_KW)
5704    }
5705}
5706
5707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5708pub struct DropDefault {
5709    pub(crate) syntax: SyntaxNode,
5710}
5711impl DropDefault {
5712    #[inline]
5713    pub fn default_token(&self) -> Option<SyntaxToken> {
5714        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5715    }
5716    #[inline]
5717    pub fn drop_token(&self) -> Option<SyntaxToken> {
5718        support::token(&self.syntax, SyntaxKind::DROP_KW)
5719    }
5720}
5721
5722#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5723pub struct DropDomain {
5724    pub(crate) syntax: SyntaxNode,
5725}
5726impl DropDomain {
5727    #[inline]
5728    pub fn if_exists(&self) -> Option<IfExists> {
5729        support::child(&self.syntax)
5730    }
5731    #[inline]
5732    pub fn paths(&self) -> AstChildren<Path> {
5733        support::children(&self.syntax)
5734    }
5735    #[inline]
5736    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5737        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5738    }
5739    #[inline]
5740    pub fn domain_token(&self) -> Option<SyntaxToken> {
5741        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
5742    }
5743    #[inline]
5744    pub fn drop_token(&self) -> Option<SyntaxToken> {
5745        support::token(&self.syntax, SyntaxKind::DROP_KW)
5746    }
5747    #[inline]
5748    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5749        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5750    }
5751}
5752
5753#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5754pub struct DropEventTrigger {
5755    pub(crate) syntax: SyntaxNode,
5756}
5757impl DropEventTrigger {
5758    #[inline]
5759    pub fn if_exists(&self) -> Option<IfExists> {
5760        support::child(&self.syntax)
5761    }
5762    #[inline]
5763    pub fn name_ref(&self) -> Option<NameRef> {
5764        support::child(&self.syntax)
5765    }
5766    #[inline]
5767    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5768        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5769    }
5770    #[inline]
5771    pub fn drop_token(&self) -> Option<SyntaxToken> {
5772        support::token(&self.syntax, SyntaxKind::DROP_KW)
5773    }
5774    #[inline]
5775    pub fn event_token(&self) -> Option<SyntaxToken> {
5776        support::token(&self.syntax, SyntaxKind::EVENT_KW)
5777    }
5778    #[inline]
5779    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5780        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5781    }
5782    #[inline]
5783    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5784        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5785    }
5786}
5787
5788#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5789pub struct DropExpression {
5790    pub(crate) syntax: SyntaxNode,
5791}
5792impl DropExpression {
5793    #[inline]
5794    pub fn if_exists(&self) -> Option<IfExists> {
5795        support::child(&self.syntax)
5796    }
5797    #[inline]
5798    pub fn drop_token(&self) -> Option<SyntaxToken> {
5799        support::token(&self.syntax, SyntaxKind::DROP_KW)
5800    }
5801    #[inline]
5802    pub fn expression_token(&self) -> Option<SyntaxToken> {
5803        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
5804    }
5805}
5806
5807#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5808pub struct DropExtension {
5809    pub(crate) syntax: SyntaxNode,
5810}
5811impl DropExtension {
5812    #[inline]
5813    pub fn if_exists(&self) -> Option<IfExists> {
5814        support::child(&self.syntax)
5815    }
5816    #[inline]
5817    pub fn name_refs(&self) -> AstChildren<NameRef> {
5818        support::children(&self.syntax)
5819    }
5820    #[inline]
5821    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5822        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5823    }
5824    #[inline]
5825    pub fn drop_token(&self) -> Option<SyntaxToken> {
5826        support::token(&self.syntax, SyntaxKind::DROP_KW)
5827    }
5828    #[inline]
5829    pub fn extension_token(&self) -> Option<SyntaxToken> {
5830        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5831    }
5832    #[inline]
5833    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5834        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5835    }
5836}
5837
5838#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5839pub struct DropForeignDataWrapper {
5840    pub(crate) syntax: SyntaxNode,
5841}
5842impl DropForeignDataWrapper {
5843    #[inline]
5844    pub fn if_exists(&self) -> Option<IfExists> {
5845        support::child(&self.syntax)
5846    }
5847    #[inline]
5848    pub fn name_refs(&self) -> AstChildren<NameRef> {
5849        support::children(&self.syntax)
5850    }
5851    #[inline]
5852    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5853        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5854    }
5855    #[inline]
5856    pub fn data_token(&self) -> Option<SyntaxToken> {
5857        support::token(&self.syntax, SyntaxKind::DATA_KW)
5858    }
5859    #[inline]
5860    pub fn drop_token(&self) -> Option<SyntaxToken> {
5861        support::token(&self.syntax, SyntaxKind::DROP_KW)
5862    }
5863    #[inline]
5864    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5865        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5866    }
5867    #[inline]
5868    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5869        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5870    }
5871    #[inline]
5872    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
5873        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
5874    }
5875}
5876
5877#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5878pub struct DropForeignTable {
5879    pub(crate) syntax: SyntaxNode,
5880}
5881impl DropForeignTable {
5882    #[inline]
5883    pub fn if_exists(&self) -> Option<IfExists> {
5884        support::child(&self.syntax)
5885    }
5886    #[inline]
5887    pub fn path(&self) -> Option<Path> {
5888        support::child(&self.syntax)
5889    }
5890    #[inline]
5891    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5892        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5893    }
5894    #[inline]
5895    pub fn drop_token(&self) -> Option<SyntaxToken> {
5896        support::token(&self.syntax, SyntaxKind::DROP_KW)
5897    }
5898    #[inline]
5899    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5900        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5901    }
5902    #[inline]
5903    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5904        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5905    }
5906    #[inline]
5907    pub fn table_token(&self) -> Option<SyntaxToken> {
5908        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5909    }
5910}
5911
5912#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5913pub struct DropFunction {
5914    pub(crate) syntax: SyntaxNode,
5915}
5916impl DropFunction {
5917    #[inline]
5918    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
5919        support::child(&self.syntax)
5920    }
5921    #[inline]
5922    pub fn if_exists(&self) -> Option<IfExists> {
5923        support::child(&self.syntax)
5924    }
5925    #[inline]
5926    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5927        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5928    }
5929    #[inline]
5930    pub fn drop_token(&self) -> Option<SyntaxToken> {
5931        support::token(&self.syntax, SyntaxKind::DROP_KW)
5932    }
5933    #[inline]
5934    pub fn function_token(&self) -> Option<SyntaxToken> {
5935        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5936    }
5937    #[inline]
5938    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5939        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5940    }
5941}
5942
5943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5944pub struct DropGroup {
5945    pub(crate) syntax: SyntaxNode,
5946}
5947impl DropGroup {
5948    #[inline]
5949    pub fn if_exists(&self) -> Option<IfExists> {
5950        support::child(&self.syntax)
5951    }
5952    #[inline]
5953    pub fn name_refs(&self) -> AstChildren<NameRef> {
5954        support::children(&self.syntax)
5955    }
5956    #[inline]
5957    pub fn drop_token(&self) -> Option<SyntaxToken> {
5958        support::token(&self.syntax, SyntaxKind::DROP_KW)
5959    }
5960    #[inline]
5961    pub fn group_token(&self) -> Option<SyntaxToken> {
5962        support::token(&self.syntax, SyntaxKind::GROUP_KW)
5963    }
5964}
5965
5966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5967pub struct DropIdentity {
5968    pub(crate) syntax: SyntaxNode,
5969}
5970impl DropIdentity {
5971    #[inline]
5972    pub fn if_exists(&self) -> Option<IfExists> {
5973        support::child(&self.syntax)
5974    }
5975    #[inline]
5976    pub fn drop_token(&self) -> Option<SyntaxToken> {
5977        support::token(&self.syntax, SyntaxKind::DROP_KW)
5978    }
5979    #[inline]
5980    pub fn identity_token(&self) -> Option<SyntaxToken> {
5981        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
5982    }
5983}
5984
5985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5986pub struct DropIndex {
5987    pub(crate) syntax: SyntaxNode,
5988}
5989impl DropIndex {
5990    #[inline]
5991    pub fn if_exists(&self) -> Option<IfExists> {
5992        support::child(&self.syntax)
5993    }
5994    #[inline]
5995    pub fn paths(&self) -> AstChildren<Path> {
5996        support::children(&self.syntax)
5997    }
5998    #[inline]
5999    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6000        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6001    }
6002    #[inline]
6003    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6004        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6005    }
6006    #[inline]
6007    pub fn drop_token(&self) -> Option<SyntaxToken> {
6008        support::token(&self.syntax, SyntaxKind::DROP_KW)
6009    }
6010    #[inline]
6011    pub fn index_token(&self) -> Option<SyntaxToken> {
6012        support::token(&self.syntax, SyntaxKind::INDEX_KW)
6013    }
6014    #[inline]
6015    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6016        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6017    }
6018}
6019
6020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6021pub struct DropLanguage {
6022    pub(crate) syntax: SyntaxNode,
6023}
6024impl DropLanguage {
6025    #[inline]
6026    pub fn if_exists(&self) -> Option<IfExists> {
6027        support::child(&self.syntax)
6028    }
6029    #[inline]
6030    pub fn name_ref(&self) -> Option<NameRef> {
6031        support::child(&self.syntax)
6032    }
6033    #[inline]
6034    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6035        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6036    }
6037    #[inline]
6038    pub fn drop_token(&self) -> Option<SyntaxToken> {
6039        support::token(&self.syntax, SyntaxKind::DROP_KW)
6040    }
6041    #[inline]
6042    pub fn language_token(&self) -> Option<SyntaxToken> {
6043        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6044    }
6045    #[inline]
6046    pub fn procedural_token(&self) -> Option<SyntaxToken> {
6047        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
6048    }
6049    #[inline]
6050    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6051        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6052    }
6053}
6054
6055#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6056pub struct DropMaterializedView {
6057    pub(crate) syntax: SyntaxNode,
6058}
6059impl DropMaterializedView {
6060    #[inline]
6061    pub fn if_exists(&self) -> Option<IfExists> {
6062        support::child(&self.syntax)
6063    }
6064    #[inline]
6065    pub fn paths(&self) -> AstChildren<Path> {
6066        support::children(&self.syntax)
6067    }
6068    #[inline]
6069    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6070        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6071    }
6072    #[inline]
6073    pub fn drop_token(&self) -> Option<SyntaxToken> {
6074        support::token(&self.syntax, SyntaxKind::DROP_KW)
6075    }
6076    #[inline]
6077    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6078        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6079    }
6080    #[inline]
6081    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6082        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6083    }
6084    #[inline]
6085    pub fn view_token(&self) -> Option<SyntaxToken> {
6086        support::token(&self.syntax, SyntaxKind::VIEW_KW)
6087    }
6088}
6089
6090#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6091pub struct DropNotNull {
6092    pub(crate) syntax: SyntaxNode,
6093}
6094impl DropNotNull {
6095    #[inline]
6096    pub fn drop_token(&self) -> Option<SyntaxToken> {
6097        support::token(&self.syntax, SyntaxKind::DROP_KW)
6098    }
6099    #[inline]
6100    pub fn not_token(&self) -> Option<SyntaxToken> {
6101        support::token(&self.syntax, SyntaxKind::NOT_KW)
6102    }
6103    #[inline]
6104    pub fn null_token(&self) -> Option<SyntaxToken> {
6105        support::token(&self.syntax, SyntaxKind::NULL_KW)
6106    }
6107}
6108
6109#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6110pub struct DropOpClassOption {
6111    pub(crate) syntax: SyntaxNode,
6112}
6113impl DropOpClassOption {
6114    #[inline]
6115    pub fn literal(&self) -> Option<Literal> {
6116        support::child(&self.syntax)
6117    }
6118    #[inline]
6119    pub fn param_list(&self) -> Option<ParamList> {
6120        support::child(&self.syntax)
6121    }
6122    #[inline]
6123    pub fn function_token(&self) -> Option<SyntaxToken> {
6124        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6125    }
6126    #[inline]
6127    pub fn operator_token(&self) -> Option<SyntaxToken> {
6128        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6129    }
6130}
6131
6132#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6133pub struct DropOpClassOptionList {
6134    pub(crate) syntax: SyntaxNode,
6135}
6136impl DropOpClassOptionList {
6137    #[inline]
6138    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
6139        support::children(&self.syntax)
6140    }
6141}
6142
6143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6144pub struct DropOpClassOptions {
6145    pub(crate) syntax: SyntaxNode,
6146}
6147impl DropOpClassOptions {
6148    #[inline]
6149    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
6150        support::child(&self.syntax)
6151    }
6152    #[inline]
6153    pub fn drop_token(&self) -> Option<SyntaxToken> {
6154        support::token(&self.syntax, SyntaxKind::DROP_KW)
6155    }
6156}
6157
6158#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6159pub struct DropOperator {
6160    pub(crate) syntax: SyntaxNode,
6161}
6162impl DropOperator {
6163    #[inline]
6164    pub fn if_exists(&self) -> Option<IfExists> {
6165        support::child(&self.syntax)
6166    }
6167    #[inline]
6168    pub fn op_sig_list(&self) -> Option<OpSigList> {
6169        support::child(&self.syntax)
6170    }
6171    #[inline]
6172    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6173        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6174    }
6175    #[inline]
6176    pub fn drop_token(&self) -> Option<SyntaxToken> {
6177        support::token(&self.syntax, SyntaxKind::DROP_KW)
6178    }
6179    #[inline]
6180    pub fn operator_token(&self) -> Option<SyntaxToken> {
6181        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6182    }
6183    #[inline]
6184    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6185        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6186    }
6187}
6188
6189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6190pub struct DropOperatorClass {
6191    pub(crate) syntax: SyntaxNode,
6192}
6193impl DropOperatorClass {
6194    #[inline]
6195    pub fn if_exists(&self) -> Option<IfExists> {
6196        support::child(&self.syntax)
6197    }
6198    #[inline]
6199    pub fn name_ref(&self) -> Option<NameRef> {
6200        support::child(&self.syntax)
6201    }
6202    #[inline]
6203    pub fn path(&self) -> Option<Path> {
6204        support::child(&self.syntax)
6205    }
6206    #[inline]
6207    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6208        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6209    }
6210    #[inline]
6211    pub fn class_token(&self) -> Option<SyntaxToken> {
6212        support::token(&self.syntax, SyntaxKind::CLASS_KW)
6213    }
6214    #[inline]
6215    pub fn drop_token(&self) -> Option<SyntaxToken> {
6216        support::token(&self.syntax, SyntaxKind::DROP_KW)
6217    }
6218    #[inline]
6219    pub fn operator_token(&self) -> Option<SyntaxToken> {
6220        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6221    }
6222    #[inline]
6223    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6224        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6225    }
6226    #[inline]
6227    pub fn using_token(&self) -> Option<SyntaxToken> {
6228        support::token(&self.syntax, SyntaxKind::USING_KW)
6229    }
6230}
6231
6232#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6233pub struct DropOperatorFamily {
6234    pub(crate) syntax: SyntaxNode,
6235}
6236impl DropOperatorFamily {
6237    #[inline]
6238    pub fn if_exists(&self) -> Option<IfExists> {
6239        support::child(&self.syntax)
6240    }
6241    #[inline]
6242    pub fn name_ref(&self) -> Option<NameRef> {
6243        support::child(&self.syntax)
6244    }
6245    #[inline]
6246    pub fn path(&self) -> Option<Path> {
6247        support::child(&self.syntax)
6248    }
6249    #[inline]
6250    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6251        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6252    }
6253    #[inline]
6254    pub fn drop_token(&self) -> Option<SyntaxToken> {
6255        support::token(&self.syntax, SyntaxKind::DROP_KW)
6256    }
6257    #[inline]
6258    pub fn family_token(&self) -> Option<SyntaxToken> {
6259        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
6260    }
6261    #[inline]
6262    pub fn operator_token(&self) -> Option<SyntaxToken> {
6263        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6264    }
6265    #[inline]
6266    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6267        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6268    }
6269    #[inline]
6270    pub fn using_token(&self) -> Option<SyntaxToken> {
6271        support::token(&self.syntax, SyntaxKind::USING_KW)
6272    }
6273}
6274
6275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6276pub struct DropOwned {
6277    pub(crate) syntax: SyntaxNode,
6278}
6279impl DropOwned {
6280    #[inline]
6281    pub fn role_list(&self) -> Option<RoleList> {
6282        support::child(&self.syntax)
6283    }
6284    #[inline]
6285    pub fn by_token(&self) -> Option<SyntaxToken> {
6286        support::token(&self.syntax, SyntaxKind::BY_KW)
6287    }
6288    #[inline]
6289    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6290        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6291    }
6292    #[inline]
6293    pub fn drop_token(&self) -> Option<SyntaxToken> {
6294        support::token(&self.syntax, SyntaxKind::DROP_KW)
6295    }
6296    #[inline]
6297    pub fn owned_token(&self) -> Option<SyntaxToken> {
6298        support::token(&self.syntax, SyntaxKind::OWNED_KW)
6299    }
6300    #[inline]
6301    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6302        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6303    }
6304}
6305
6306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6307pub struct DropPolicy {
6308    pub(crate) syntax: SyntaxNode,
6309}
6310impl DropPolicy {
6311    #[inline]
6312    pub fn if_exists(&self) -> Option<IfExists> {
6313        support::child(&self.syntax)
6314    }
6315    #[inline]
6316    pub fn name_ref(&self) -> Option<NameRef> {
6317        support::child(&self.syntax)
6318    }
6319    #[inline]
6320    pub fn on_table(&self) -> Option<OnTable> {
6321        support::child(&self.syntax)
6322    }
6323    #[inline]
6324    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6325        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6326    }
6327    #[inline]
6328    pub fn drop_token(&self) -> Option<SyntaxToken> {
6329        support::token(&self.syntax, SyntaxKind::DROP_KW)
6330    }
6331    #[inline]
6332    pub fn policy_token(&self) -> Option<SyntaxToken> {
6333        support::token(&self.syntax, SyntaxKind::POLICY_KW)
6334    }
6335    #[inline]
6336    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6337        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6338    }
6339}
6340
6341#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6342pub struct DropProcedure {
6343    pub(crate) syntax: SyntaxNode,
6344}
6345impl DropProcedure {
6346    #[inline]
6347    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6348        support::child(&self.syntax)
6349    }
6350    #[inline]
6351    pub fn if_exists(&self) -> Option<IfExists> {
6352        support::child(&self.syntax)
6353    }
6354    #[inline]
6355    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6356        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6357    }
6358    #[inline]
6359    pub fn drop_token(&self) -> Option<SyntaxToken> {
6360        support::token(&self.syntax, SyntaxKind::DROP_KW)
6361    }
6362    #[inline]
6363    pub fn procedure_token(&self) -> Option<SyntaxToken> {
6364        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
6365    }
6366    #[inline]
6367    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6368        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6369    }
6370}
6371
6372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6373pub struct DropPublication {
6374    pub(crate) syntax: SyntaxNode,
6375}
6376impl DropPublication {
6377    #[inline]
6378    pub fn if_exists(&self) -> Option<IfExists> {
6379        support::child(&self.syntax)
6380    }
6381    #[inline]
6382    pub fn name_refs(&self) -> AstChildren<NameRef> {
6383        support::children(&self.syntax)
6384    }
6385    #[inline]
6386    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6387        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6388    }
6389    #[inline]
6390    pub fn drop_token(&self) -> Option<SyntaxToken> {
6391        support::token(&self.syntax, SyntaxKind::DROP_KW)
6392    }
6393    #[inline]
6394    pub fn publication_token(&self) -> Option<SyntaxToken> {
6395        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
6396    }
6397    #[inline]
6398    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6399        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6400    }
6401}
6402
6403#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6404pub struct DropRole {
6405    pub(crate) syntax: SyntaxNode,
6406}
6407impl DropRole {
6408    #[inline]
6409    pub fn if_exists(&self) -> Option<IfExists> {
6410        support::child(&self.syntax)
6411    }
6412    #[inline]
6413    pub fn name_refs(&self) -> AstChildren<NameRef> {
6414        support::children(&self.syntax)
6415    }
6416    #[inline]
6417    pub fn drop_token(&self) -> Option<SyntaxToken> {
6418        support::token(&self.syntax, SyntaxKind::DROP_KW)
6419    }
6420    #[inline]
6421    pub fn role_token(&self) -> Option<SyntaxToken> {
6422        support::token(&self.syntax, SyntaxKind::ROLE_KW)
6423    }
6424}
6425
6426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6427pub struct DropRoutine {
6428    pub(crate) syntax: SyntaxNode,
6429}
6430impl DropRoutine {
6431    #[inline]
6432    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6433        support::child(&self.syntax)
6434    }
6435    #[inline]
6436    pub fn if_exists(&self) -> Option<IfExists> {
6437        support::child(&self.syntax)
6438    }
6439    #[inline]
6440    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6441        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6442    }
6443    #[inline]
6444    pub fn drop_token(&self) -> Option<SyntaxToken> {
6445        support::token(&self.syntax, SyntaxKind::DROP_KW)
6446    }
6447    #[inline]
6448    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6449        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6450    }
6451    #[inline]
6452    pub fn routine_token(&self) -> Option<SyntaxToken> {
6453        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
6454    }
6455}
6456
6457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6458pub struct DropRule {
6459    pub(crate) syntax: SyntaxNode,
6460}
6461impl DropRule {
6462    #[inline]
6463    pub fn if_exists(&self) -> Option<IfExists> {
6464        support::child(&self.syntax)
6465    }
6466    #[inline]
6467    pub fn name_ref(&self) -> Option<NameRef> {
6468        support::child(&self.syntax)
6469    }
6470    #[inline]
6471    pub fn on_table(&self) -> Option<OnTable> {
6472        support::child(&self.syntax)
6473    }
6474    #[inline]
6475    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6476        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6477    }
6478    #[inline]
6479    pub fn drop_token(&self) -> Option<SyntaxToken> {
6480        support::token(&self.syntax, SyntaxKind::DROP_KW)
6481    }
6482    #[inline]
6483    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6484        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6485    }
6486    #[inline]
6487    pub fn rule_token(&self) -> Option<SyntaxToken> {
6488        support::token(&self.syntax, SyntaxKind::RULE_KW)
6489    }
6490}
6491
6492#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6493pub struct DropSchema {
6494    pub(crate) syntax: SyntaxNode,
6495}
6496impl DropSchema {
6497    #[inline]
6498    pub fn if_exists(&self) -> Option<IfExists> {
6499        support::child(&self.syntax)
6500    }
6501    #[inline]
6502    pub fn name_refs(&self) -> AstChildren<NameRef> {
6503        support::children(&self.syntax)
6504    }
6505    #[inline]
6506    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6507        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6508    }
6509    #[inline]
6510    pub fn drop_token(&self) -> Option<SyntaxToken> {
6511        support::token(&self.syntax, SyntaxKind::DROP_KW)
6512    }
6513    #[inline]
6514    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6515        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6516    }
6517    #[inline]
6518    pub fn schema_token(&self) -> Option<SyntaxToken> {
6519        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
6520    }
6521}
6522
6523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6524pub struct DropSequence {
6525    pub(crate) syntax: SyntaxNode,
6526}
6527impl DropSequence {
6528    #[inline]
6529    pub fn if_exists(&self) -> Option<IfExists> {
6530        support::child(&self.syntax)
6531    }
6532    #[inline]
6533    pub fn paths(&self) -> AstChildren<Path> {
6534        support::children(&self.syntax)
6535    }
6536    #[inline]
6537    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6538        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6539    }
6540    #[inline]
6541    pub fn drop_token(&self) -> Option<SyntaxToken> {
6542        support::token(&self.syntax, SyntaxKind::DROP_KW)
6543    }
6544    #[inline]
6545    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6546        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6547    }
6548    #[inline]
6549    pub fn sequence_token(&self) -> Option<SyntaxToken> {
6550        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
6551    }
6552}
6553
6554#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6555pub struct DropServer {
6556    pub(crate) syntax: SyntaxNode,
6557}
6558impl DropServer {
6559    #[inline]
6560    pub fn if_exists(&self) -> Option<IfExists> {
6561        support::child(&self.syntax)
6562    }
6563    #[inline]
6564    pub fn name_ref(&self) -> Option<NameRef> {
6565        support::child(&self.syntax)
6566    }
6567    #[inline]
6568    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6569        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6570    }
6571    #[inline]
6572    pub fn drop_token(&self) -> Option<SyntaxToken> {
6573        support::token(&self.syntax, SyntaxKind::DROP_KW)
6574    }
6575    #[inline]
6576    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6577        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6578    }
6579    #[inline]
6580    pub fn server_token(&self) -> Option<SyntaxToken> {
6581        support::token(&self.syntax, SyntaxKind::SERVER_KW)
6582    }
6583}
6584
6585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6586pub struct DropStatistics {
6587    pub(crate) syntax: SyntaxNode,
6588}
6589impl DropStatistics {
6590    #[inline]
6591    pub fn if_exists(&self) -> Option<IfExists> {
6592        support::child(&self.syntax)
6593    }
6594    #[inline]
6595    pub fn paths(&self) -> AstChildren<Path> {
6596        support::children(&self.syntax)
6597    }
6598    #[inline]
6599    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6600        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6601    }
6602    #[inline]
6603    pub fn drop_token(&self) -> Option<SyntaxToken> {
6604        support::token(&self.syntax, SyntaxKind::DROP_KW)
6605    }
6606    #[inline]
6607    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6608        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6609    }
6610    #[inline]
6611    pub fn statistics_token(&self) -> Option<SyntaxToken> {
6612        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
6613    }
6614}
6615
6616#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6617pub struct DropSubscription {
6618    pub(crate) syntax: SyntaxNode,
6619}
6620impl DropSubscription {
6621    #[inline]
6622    pub fn if_exists(&self) -> Option<IfExists> {
6623        support::child(&self.syntax)
6624    }
6625    #[inline]
6626    pub fn name_ref(&self) -> Option<NameRef> {
6627        support::child(&self.syntax)
6628    }
6629    #[inline]
6630    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6631        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6632    }
6633    #[inline]
6634    pub fn drop_token(&self) -> Option<SyntaxToken> {
6635        support::token(&self.syntax, SyntaxKind::DROP_KW)
6636    }
6637    #[inline]
6638    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6639        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6640    }
6641    #[inline]
6642    pub fn subscription_token(&self) -> Option<SyntaxToken> {
6643        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
6644    }
6645}
6646
6647#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6648pub struct DropTable {
6649    pub(crate) syntax: SyntaxNode,
6650}
6651impl DropTable {
6652    #[inline]
6653    pub fn if_exists(&self) -> Option<IfExists> {
6654        support::child(&self.syntax)
6655    }
6656    #[inline]
6657    pub fn path(&self) -> Option<Path> {
6658        support::child(&self.syntax)
6659    }
6660    #[inline]
6661    pub fn comma_token(&self) -> Option<SyntaxToken> {
6662        support::token(&self.syntax, SyntaxKind::COMMA)
6663    }
6664    #[inline]
6665    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6666        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6667    }
6668    #[inline]
6669    pub fn drop_token(&self) -> Option<SyntaxToken> {
6670        support::token(&self.syntax, SyntaxKind::DROP_KW)
6671    }
6672    #[inline]
6673    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6674        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6675    }
6676    #[inline]
6677    pub fn table_token(&self) -> Option<SyntaxToken> {
6678        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6679    }
6680}
6681
6682#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6683pub struct DropTablespace {
6684    pub(crate) syntax: SyntaxNode,
6685}
6686impl DropTablespace {
6687    #[inline]
6688    pub fn if_exists(&self) -> Option<IfExists> {
6689        support::child(&self.syntax)
6690    }
6691    #[inline]
6692    pub fn name_ref(&self) -> Option<NameRef> {
6693        support::child(&self.syntax)
6694    }
6695    #[inline]
6696    pub fn drop_token(&self) -> Option<SyntaxToken> {
6697        support::token(&self.syntax, SyntaxKind::DROP_KW)
6698    }
6699    #[inline]
6700    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
6701        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
6702    }
6703}
6704
6705#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6706pub struct DropTextSearchConfig {
6707    pub(crate) syntax: SyntaxNode,
6708}
6709impl DropTextSearchConfig {
6710    #[inline]
6711    pub fn if_exists(&self) -> Option<IfExists> {
6712        support::child(&self.syntax)
6713    }
6714    #[inline]
6715    pub fn path(&self) -> Option<Path> {
6716        support::child(&self.syntax)
6717    }
6718    #[inline]
6719    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6720        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6721    }
6722    #[inline]
6723    pub fn configuration_token(&self) -> Option<SyntaxToken> {
6724        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
6725    }
6726    #[inline]
6727    pub fn drop_token(&self) -> Option<SyntaxToken> {
6728        support::token(&self.syntax, SyntaxKind::DROP_KW)
6729    }
6730    #[inline]
6731    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6732        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6733    }
6734    #[inline]
6735    pub fn search_token(&self) -> Option<SyntaxToken> {
6736        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6737    }
6738    #[inline]
6739    pub fn text_token(&self) -> Option<SyntaxToken> {
6740        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6741    }
6742}
6743
6744#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6745pub struct DropTextSearchDict {
6746    pub(crate) syntax: SyntaxNode,
6747}
6748impl DropTextSearchDict {
6749    #[inline]
6750    pub fn if_exists(&self) -> Option<IfExists> {
6751        support::child(&self.syntax)
6752    }
6753    #[inline]
6754    pub fn path(&self) -> Option<Path> {
6755        support::child(&self.syntax)
6756    }
6757    #[inline]
6758    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6759        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6760    }
6761    #[inline]
6762    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
6763        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
6764    }
6765    #[inline]
6766    pub fn drop_token(&self) -> Option<SyntaxToken> {
6767        support::token(&self.syntax, SyntaxKind::DROP_KW)
6768    }
6769    #[inline]
6770    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6771        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6772    }
6773    #[inline]
6774    pub fn search_token(&self) -> Option<SyntaxToken> {
6775        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6776    }
6777    #[inline]
6778    pub fn text_token(&self) -> Option<SyntaxToken> {
6779        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6780    }
6781}
6782
6783#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6784pub struct DropTextSearchParser {
6785    pub(crate) syntax: SyntaxNode,
6786}
6787impl DropTextSearchParser {
6788    #[inline]
6789    pub fn if_exists(&self) -> Option<IfExists> {
6790        support::child(&self.syntax)
6791    }
6792    #[inline]
6793    pub fn path(&self) -> Option<Path> {
6794        support::child(&self.syntax)
6795    }
6796    #[inline]
6797    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6798        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6799    }
6800    #[inline]
6801    pub fn drop_token(&self) -> Option<SyntaxToken> {
6802        support::token(&self.syntax, SyntaxKind::DROP_KW)
6803    }
6804    #[inline]
6805    pub fn parser_token(&self) -> Option<SyntaxToken> {
6806        support::token(&self.syntax, SyntaxKind::PARSER_KW)
6807    }
6808    #[inline]
6809    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6810        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6811    }
6812    #[inline]
6813    pub fn search_token(&self) -> Option<SyntaxToken> {
6814        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6815    }
6816    #[inline]
6817    pub fn text_token(&self) -> Option<SyntaxToken> {
6818        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6819    }
6820}
6821
6822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6823pub struct DropTextSearchTemplate {
6824    pub(crate) syntax: SyntaxNode,
6825}
6826impl DropTextSearchTemplate {
6827    #[inline]
6828    pub fn if_exists(&self) -> Option<IfExists> {
6829        support::child(&self.syntax)
6830    }
6831    #[inline]
6832    pub fn path(&self) -> Option<Path> {
6833        support::child(&self.syntax)
6834    }
6835    #[inline]
6836    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6837        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6838    }
6839    #[inline]
6840    pub fn drop_token(&self) -> Option<SyntaxToken> {
6841        support::token(&self.syntax, SyntaxKind::DROP_KW)
6842    }
6843    #[inline]
6844    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6845        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6846    }
6847    #[inline]
6848    pub fn search_token(&self) -> Option<SyntaxToken> {
6849        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6850    }
6851    #[inline]
6852    pub fn template_token(&self) -> Option<SyntaxToken> {
6853        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
6854    }
6855    #[inline]
6856    pub fn text_token(&self) -> Option<SyntaxToken> {
6857        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6858    }
6859}
6860
6861#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6862pub struct DropTransform {
6863    pub(crate) syntax: SyntaxNode,
6864}
6865impl DropTransform {
6866    #[inline]
6867    pub fn if_exists(&self) -> Option<IfExists> {
6868        support::child(&self.syntax)
6869    }
6870    #[inline]
6871    pub fn language(&self) -> Option<NameRef> {
6872        support::child(&self.syntax)
6873    }
6874    #[inline]
6875    pub fn ty(&self) -> Option<Type> {
6876        support::child(&self.syntax)
6877    }
6878    #[inline]
6879    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6880        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6881    }
6882    #[inline]
6883    pub fn drop_token(&self) -> Option<SyntaxToken> {
6884        support::token(&self.syntax, SyntaxKind::DROP_KW)
6885    }
6886    #[inline]
6887    pub fn for_token(&self) -> Option<SyntaxToken> {
6888        support::token(&self.syntax, SyntaxKind::FOR_KW)
6889    }
6890    #[inline]
6891    pub fn language_token(&self) -> Option<SyntaxToken> {
6892        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6893    }
6894    #[inline]
6895    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6896        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6897    }
6898    #[inline]
6899    pub fn transform_token(&self) -> Option<SyntaxToken> {
6900        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
6901    }
6902}
6903
6904#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6905pub struct DropTrigger {
6906    pub(crate) syntax: SyntaxNode,
6907}
6908impl DropTrigger {
6909    #[inline]
6910    pub fn if_exists(&self) -> Option<IfExists> {
6911        support::child(&self.syntax)
6912    }
6913    #[inline]
6914    pub fn on_table(&self) -> Option<OnTable> {
6915        support::child(&self.syntax)
6916    }
6917    #[inline]
6918    pub fn path(&self) -> Option<Path> {
6919        support::child(&self.syntax)
6920    }
6921    #[inline]
6922    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6923        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6924    }
6925    #[inline]
6926    pub fn drop_token(&self) -> Option<SyntaxToken> {
6927        support::token(&self.syntax, SyntaxKind::DROP_KW)
6928    }
6929    #[inline]
6930    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6931        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6932    }
6933    #[inline]
6934    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6935        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6936    }
6937}
6938
6939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6940pub struct DropType {
6941    pub(crate) syntax: SyntaxNode,
6942}
6943impl DropType {
6944    #[inline]
6945    pub fn if_exists(&self) -> Option<IfExists> {
6946        support::child(&self.syntax)
6947    }
6948    #[inline]
6949    pub fn paths(&self) -> AstChildren<Path> {
6950        support::children(&self.syntax)
6951    }
6952    #[inline]
6953    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6954        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6955    }
6956    #[inline]
6957    pub fn drop_token(&self) -> Option<SyntaxToken> {
6958        support::token(&self.syntax, SyntaxKind::DROP_KW)
6959    }
6960    #[inline]
6961    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6962        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6963    }
6964    #[inline]
6965    pub fn type_token(&self) -> Option<SyntaxToken> {
6966        support::token(&self.syntax, SyntaxKind::TYPE_KW)
6967    }
6968}
6969
6970#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6971pub struct DropUser {
6972    pub(crate) syntax: SyntaxNode,
6973}
6974impl DropUser {
6975    #[inline]
6976    pub fn if_exists(&self) -> Option<IfExists> {
6977        support::child(&self.syntax)
6978    }
6979    #[inline]
6980    pub fn name_refs(&self) -> AstChildren<NameRef> {
6981        support::children(&self.syntax)
6982    }
6983    #[inline]
6984    pub fn drop_token(&self) -> Option<SyntaxToken> {
6985        support::token(&self.syntax, SyntaxKind::DROP_KW)
6986    }
6987    #[inline]
6988    pub fn user_token(&self) -> Option<SyntaxToken> {
6989        support::token(&self.syntax, SyntaxKind::USER_KW)
6990    }
6991}
6992
6993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6994pub struct DropUserMapping {
6995    pub(crate) syntax: SyntaxNode,
6996}
6997impl DropUserMapping {
6998    #[inline]
6999    pub fn if_exists(&self) -> Option<IfExists> {
7000        support::child(&self.syntax)
7001    }
7002    #[inline]
7003    pub fn role(&self) -> Option<Role> {
7004        support::child(&self.syntax)
7005    }
7006    #[inline]
7007    pub fn server_name(&self) -> Option<ServerName> {
7008        support::child(&self.syntax)
7009    }
7010    #[inline]
7011    pub fn drop_token(&self) -> Option<SyntaxToken> {
7012        support::token(&self.syntax, SyntaxKind::DROP_KW)
7013    }
7014    #[inline]
7015    pub fn for_token(&self) -> Option<SyntaxToken> {
7016        support::token(&self.syntax, SyntaxKind::FOR_KW)
7017    }
7018    #[inline]
7019    pub fn mapping_token(&self) -> Option<SyntaxToken> {
7020        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
7021    }
7022    #[inline]
7023    pub fn user_token(&self) -> Option<SyntaxToken> {
7024        support::token(&self.syntax, SyntaxKind::USER_KW)
7025    }
7026}
7027
7028#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7029pub struct DropView {
7030    pub(crate) syntax: SyntaxNode,
7031}
7032impl DropView {
7033    #[inline]
7034    pub fn if_exists(&self) -> Option<IfExists> {
7035        support::child(&self.syntax)
7036    }
7037    #[inline]
7038    pub fn path(&self) -> Option<Path> {
7039        support::child(&self.syntax)
7040    }
7041    #[inline]
7042    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7043        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7044    }
7045    #[inline]
7046    pub fn drop_token(&self) -> Option<SyntaxToken> {
7047        support::token(&self.syntax, SyntaxKind::DROP_KW)
7048    }
7049    #[inline]
7050    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7051        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7052    }
7053    #[inline]
7054    pub fn view_token(&self) -> Option<SyntaxToken> {
7055        support::token(&self.syntax, SyntaxKind::VIEW_KW)
7056    }
7057}
7058
7059#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7060pub struct ElseClause {
7061    pub(crate) syntax: SyntaxNode,
7062}
7063impl ElseClause {
7064    #[inline]
7065    pub fn expr(&self) -> Option<Expr> {
7066        support::child(&self.syntax)
7067    }
7068    #[inline]
7069    pub fn else_token(&self) -> Option<SyntaxToken> {
7070        support::token(&self.syntax, SyntaxKind::ELSE_KW)
7071    }
7072}
7073
7074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7075pub struct EnableAlwaysRule {
7076    pub(crate) syntax: SyntaxNode,
7077}
7078impl EnableAlwaysRule {
7079    #[inline]
7080    pub fn always_token(&self) -> Option<SyntaxToken> {
7081        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7082    }
7083    #[inline]
7084    pub fn enable_token(&self) -> Option<SyntaxToken> {
7085        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7086    }
7087    #[inline]
7088    pub fn rule_token(&self) -> Option<SyntaxToken> {
7089        support::token(&self.syntax, SyntaxKind::RULE_KW)
7090    }
7091}
7092
7093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7094pub struct EnableAlwaysTrigger {
7095    pub(crate) syntax: SyntaxNode,
7096}
7097impl EnableAlwaysTrigger {
7098    #[inline]
7099    pub fn always_token(&self) -> Option<SyntaxToken> {
7100        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7101    }
7102    #[inline]
7103    pub fn enable_token(&self) -> Option<SyntaxToken> {
7104        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7105    }
7106    #[inline]
7107    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7108        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7109    }
7110}
7111
7112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7113pub struct EnableReplicaRule {
7114    pub(crate) syntax: SyntaxNode,
7115}
7116impl EnableReplicaRule {
7117    #[inline]
7118    pub fn enable_token(&self) -> Option<SyntaxToken> {
7119        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7120    }
7121    #[inline]
7122    pub fn replica_token(&self) -> Option<SyntaxToken> {
7123        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7124    }
7125    #[inline]
7126    pub fn rule_token(&self) -> Option<SyntaxToken> {
7127        support::token(&self.syntax, SyntaxKind::RULE_KW)
7128    }
7129}
7130
7131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7132pub struct EnableReplicaTrigger {
7133    pub(crate) syntax: SyntaxNode,
7134}
7135impl EnableReplicaTrigger {
7136    #[inline]
7137    pub fn enable_token(&self) -> Option<SyntaxToken> {
7138        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7139    }
7140    #[inline]
7141    pub fn replica_token(&self) -> Option<SyntaxToken> {
7142        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7143    }
7144    #[inline]
7145    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7146        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7147    }
7148}
7149
7150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7151pub struct EnableRls {
7152    pub(crate) syntax: SyntaxNode,
7153}
7154impl EnableRls {
7155    #[inline]
7156    pub fn enable_token(&self) -> Option<SyntaxToken> {
7157        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7158    }
7159    #[inline]
7160    pub fn level_token(&self) -> Option<SyntaxToken> {
7161        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7162    }
7163    #[inline]
7164    pub fn row_token(&self) -> Option<SyntaxToken> {
7165        support::token(&self.syntax, SyntaxKind::ROW_KW)
7166    }
7167    #[inline]
7168    pub fn security_token(&self) -> Option<SyntaxToken> {
7169        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7170    }
7171}
7172
7173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7174pub struct EnableRule {
7175    pub(crate) syntax: SyntaxNode,
7176}
7177impl EnableRule {
7178    #[inline]
7179    pub fn enable_token(&self) -> Option<SyntaxToken> {
7180        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7181    }
7182    #[inline]
7183    pub fn rule_token(&self) -> Option<SyntaxToken> {
7184        support::token(&self.syntax, SyntaxKind::RULE_KW)
7185    }
7186}
7187
7188#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7189pub struct EnableTrigger {
7190    pub(crate) syntax: SyntaxNode,
7191}
7192impl EnableTrigger {
7193    #[inline]
7194    pub fn enable_token(&self) -> Option<SyntaxToken> {
7195        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7196    }
7197    #[inline]
7198    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7199        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7200    }
7201}
7202
7203#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7204pub struct Enforced {
7205    pub(crate) syntax: SyntaxNode,
7206}
7207impl Enforced {
7208    #[inline]
7209    pub fn enforced_token(&self) -> Option<SyntaxToken> {
7210        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
7211    }
7212}
7213
7214#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7215pub struct EventTriggerWhen {
7216    pub(crate) syntax: SyntaxNode,
7217}
7218impl EventTriggerWhen {
7219    #[inline]
7220    pub fn literals(&self) -> AstChildren<Literal> {
7221        support::children(&self.syntax)
7222    }
7223    #[inline]
7224    pub fn name_ref(&self) -> Option<NameRef> {
7225        support::child(&self.syntax)
7226    }
7227    #[inline]
7228    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7229        support::token(&self.syntax, SyntaxKind::L_PAREN)
7230    }
7231    #[inline]
7232    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7233        support::token(&self.syntax, SyntaxKind::R_PAREN)
7234    }
7235    #[inline]
7236    pub fn in_token(&self) -> Option<SyntaxToken> {
7237        support::token(&self.syntax, SyntaxKind::IN_KW)
7238    }
7239}
7240
7241#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7242pub struct EventTriggerWhenClause {
7243    pub(crate) syntax: SyntaxNode,
7244}
7245impl EventTriggerWhenClause {
7246    #[inline]
7247    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
7248        support::children(&self.syntax)
7249    }
7250    #[inline]
7251    pub fn when_token(&self) -> Option<SyntaxToken> {
7252        support::token(&self.syntax, SyntaxKind::WHEN_KW)
7253    }
7254}
7255
7256#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7257pub struct ExceptTables {
7258    pub(crate) syntax: SyntaxNode,
7259}
7260impl ExceptTables {
7261    #[inline]
7262    pub fn name_refs(&self) -> AstChildren<NameRef> {
7263        support::children(&self.syntax)
7264    }
7265    #[inline]
7266    pub fn except_token(&self) -> Option<SyntaxToken> {
7267        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
7268    }
7269}
7270
7271#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7272pub struct ExcludeConstraint {
7273    pub(crate) syntax: SyntaxNode,
7274}
7275impl ExcludeConstraint {
7276    #[inline]
7277    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
7278        support::child(&self.syntax)
7279    }
7280    #[inline]
7281    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
7282        support::child(&self.syntax)
7283    }
7284    #[inline]
7285    pub fn constraint_name(&self) -> Option<ConstraintName> {
7286        support::child(&self.syntax)
7287    }
7288    #[inline]
7289    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
7290        support::child(&self.syntax)
7291    }
7292    #[inline]
7293    pub fn exclude_token(&self) -> Option<SyntaxToken> {
7294        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
7295    }
7296}
7297
7298#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7299pub struct Execute {
7300    pub(crate) syntax: SyntaxNode,
7301}
7302impl Execute {
7303    #[inline]
7304    pub fn arg_list(&self) -> Option<ArgList> {
7305        support::child(&self.syntax)
7306    }
7307    #[inline]
7308    pub fn name_ref(&self) -> Option<NameRef> {
7309        support::child(&self.syntax)
7310    }
7311    #[inline]
7312    pub fn execute_token(&self) -> Option<SyntaxToken> {
7313        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
7314    }
7315}
7316
7317#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7318pub struct ExistsFn {
7319    pub(crate) syntax: SyntaxNode,
7320}
7321impl ExistsFn {
7322    #[inline]
7323    pub fn select_variant(&self) -> Option<SelectVariant> {
7324        support::child(&self.syntax)
7325    }
7326    #[inline]
7327    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7328        support::token(&self.syntax, SyntaxKind::L_PAREN)
7329    }
7330    #[inline]
7331    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7332        support::token(&self.syntax, SyntaxKind::R_PAREN)
7333    }
7334    #[inline]
7335    pub fn exists_token(&self) -> Option<SyntaxToken> {
7336        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
7337    }
7338}
7339
7340#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7341pub struct Explain {
7342    pub(crate) syntax: SyntaxNode,
7343}
7344impl Explain {
7345    #[inline]
7346    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
7347        support::child(&self.syntax)
7348    }
7349    #[inline]
7350    pub fn analyse_token(&self) -> Option<SyntaxToken> {
7351        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
7352    }
7353    #[inline]
7354    pub fn analyze_token(&self) -> Option<SyntaxToken> {
7355        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
7356    }
7357    #[inline]
7358    pub fn explain_token(&self) -> Option<SyntaxToken> {
7359        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
7360    }
7361    #[inline]
7362    pub fn verbose_token(&self) -> Option<SyntaxToken> {
7363        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
7364    }
7365}
7366
7367#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7368pub struct ExprAsName {
7369    pub(crate) syntax: SyntaxNode,
7370}
7371impl ExprAsName {
7372    #[inline]
7373    pub fn as_name(&self) -> Option<AsName> {
7374        support::child(&self.syntax)
7375    }
7376    #[inline]
7377    pub fn expr(&self) -> Option<Expr> {
7378        support::child(&self.syntax)
7379    }
7380}
7381
7382#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7383pub struct ExprType {
7384    pub(crate) syntax: SyntaxNode,
7385}
7386impl ExprType {
7387    #[inline]
7388    pub fn expr(&self) -> Option<Expr> {
7389        support::child(&self.syntax)
7390    }
7391}
7392
7393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7394pub struct ExtractFn {
7395    pub(crate) syntax: SyntaxNode,
7396}
7397impl ExtractFn {
7398    #[inline]
7399    pub fn expr(&self) -> Option<Expr> {
7400        support::child(&self.syntax)
7401    }
7402    #[inline]
7403    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7404        support::token(&self.syntax, SyntaxKind::L_PAREN)
7405    }
7406    #[inline]
7407    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7408        support::token(&self.syntax, SyntaxKind::R_PAREN)
7409    }
7410    #[inline]
7411    pub fn day_token(&self) -> Option<SyntaxToken> {
7412        support::token(&self.syntax, SyntaxKind::DAY_KW)
7413    }
7414    #[inline]
7415    pub fn extract_token(&self) -> Option<SyntaxToken> {
7416        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
7417    }
7418    #[inline]
7419    pub fn from_token(&self) -> Option<SyntaxToken> {
7420        support::token(&self.syntax, SyntaxKind::FROM_KW)
7421    }
7422    #[inline]
7423    pub fn hour_token(&self) -> Option<SyntaxToken> {
7424        support::token(&self.syntax, SyntaxKind::HOUR_KW)
7425    }
7426    #[inline]
7427    pub fn ident_token(&self) -> Option<SyntaxToken> {
7428        support::token(&self.syntax, SyntaxKind::IDENT)
7429    }
7430    #[inline]
7431    pub fn minute_token(&self) -> Option<SyntaxToken> {
7432        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
7433    }
7434    #[inline]
7435    pub fn month_token(&self) -> Option<SyntaxToken> {
7436        support::token(&self.syntax, SyntaxKind::MONTH_KW)
7437    }
7438    #[inline]
7439    pub fn second_token(&self) -> Option<SyntaxToken> {
7440        support::token(&self.syntax, SyntaxKind::SECOND_KW)
7441    }
7442    #[inline]
7443    pub fn string_token(&self) -> Option<SyntaxToken> {
7444        support::token(&self.syntax, SyntaxKind::STRING_KW)
7445    }
7446    #[inline]
7447    pub fn year_token(&self) -> Option<SyntaxToken> {
7448        support::token(&self.syntax, SyntaxKind::YEAR_KW)
7449    }
7450}
7451
7452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7453pub struct FatArrow {
7454    pub(crate) syntax: SyntaxNode,
7455}
7456impl FatArrow {
7457    #[inline]
7458    pub fn eq_token(&self) -> Option<SyntaxToken> {
7459        support::token(&self.syntax, SyntaxKind::EQ)
7460    }
7461    #[inline]
7462    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7463        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7464    }
7465}
7466
7467#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7468pub struct FdwOption {
7469    pub(crate) syntax: SyntaxNode,
7470}
7471impl FdwOption {
7472    #[inline]
7473    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
7474        support::child(&self.syntax)
7475    }
7476    #[inline]
7477    pub fn path(&self) -> Option<Path> {
7478        support::child(&self.syntax)
7479    }
7480    #[inline]
7481    pub fn handler_token(&self) -> Option<SyntaxToken> {
7482        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
7483    }
7484    #[inline]
7485    pub fn no_token(&self) -> Option<SyntaxToken> {
7486        support::token(&self.syntax, SyntaxKind::NO_KW)
7487    }
7488    #[inline]
7489    pub fn options_token(&self) -> Option<SyntaxToken> {
7490        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
7491    }
7492    #[inline]
7493    pub fn validator_token(&self) -> Option<SyntaxToken> {
7494        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
7495    }
7496}
7497
7498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7499pub struct FdwOptionList {
7500    pub(crate) syntax: SyntaxNode,
7501}
7502impl FdwOptionList {
7503    #[inline]
7504    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
7505        support::children(&self.syntax)
7506    }
7507}
7508
7509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7510pub struct Fetch {
7511    pub(crate) syntax: SyntaxNode,
7512}
7513impl Fetch {
7514    #[inline]
7515    pub fn name_ref(&self) -> Option<NameRef> {
7516        support::child(&self.syntax)
7517    }
7518    #[inline]
7519    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7520        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7521    }
7522    #[inline]
7523    pub fn from_token(&self) -> Option<SyntaxToken> {
7524        support::token(&self.syntax, SyntaxKind::FROM_KW)
7525    }
7526    #[inline]
7527    pub fn in_token(&self) -> Option<SyntaxToken> {
7528        support::token(&self.syntax, SyntaxKind::IN_KW)
7529    }
7530}
7531
7532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7533pub struct FetchClause {
7534    pub(crate) syntax: SyntaxNode,
7535}
7536impl FetchClause {
7537    #[inline]
7538    pub fn expr(&self) -> Option<Expr> {
7539        support::child(&self.syntax)
7540    }
7541    #[inline]
7542    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7543        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7544    }
7545    #[inline]
7546    pub fn first_token(&self) -> Option<SyntaxToken> {
7547        support::token(&self.syntax, SyntaxKind::FIRST_KW)
7548    }
7549    #[inline]
7550    pub fn next_token(&self) -> Option<SyntaxToken> {
7551        support::token(&self.syntax, SyntaxKind::NEXT_KW)
7552    }
7553    #[inline]
7554    pub fn only_token(&self) -> Option<SyntaxToken> {
7555        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7556    }
7557    #[inline]
7558    pub fn row_token(&self) -> Option<SyntaxToken> {
7559        support::token(&self.syntax, SyntaxKind::ROW_KW)
7560    }
7561    #[inline]
7562    pub fn rows_token(&self) -> Option<SyntaxToken> {
7563        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7564    }
7565    #[inline]
7566    pub fn ties_token(&self) -> Option<SyntaxToken> {
7567        support::token(&self.syntax, SyntaxKind::TIES_KW)
7568    }
7569    #[inline]
7570    pub fn with_token(&self) -> Option<SyntaxToken> {
7571        support::token(&self.syntax, SyntaxKind::WITH_KW)
7572    }
7573}
7574
7575#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7576pub struct FieldExpr {
7577    pub(crate) syntax: SyntaxNode,
7578}
7579impl FieldExpr {
7580    #[inline]
7581    pub fn star_token(&self) -> Option<SyntaxToken> {
7582        support::token(&self.syntax, SyntaxKind::STAR)
7583    }
7584    #[inline]
7585    pub fn dot_token(&self) -> Option<SyntaxToken> {
7586        support::token(&self.syntax, SyntaxKind::DOT)
7587    }
7588}
7589
7590#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7591pub struct FilterClause {
7592    pub(crate) syntax: SyntaxNode,
7593}
7594impl FilterClause {
7595    #[inline]
7596    pub fn expr(&self) -> Option<Expr> {
7597        support::child(&self.syntax)
7598    }
7599    #[inline]
7600    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7601        support::token(&self.syntax, SyntaxKind::L_PAREN)
7602    }
7603    #[inline]
7604    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7605        support::token(&self.syntax, SyntaxKind::R_PAREN)
7606    }
7607    #[inline]
7608    pub fn filter_token(&self) -> Option<SyntaxToken> {
7609        support::token(&self.syntax, SyntaxKind::FILTER_KW)
7610    }
7611    #[inline]
7612    pub fn where_token(&self) -> Option<SyntaxToken> {
7613        support::token(&self.syntax, SyntaxKind::WHERE_KW)
7614    }
7615}
7616
7617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7618pub struct ForProvider {
7619    pub(crate) syntax: SyntaxNode,
7620}
7621impl ForProvider {
7622    #[inline]
7623    pub fn literal(&self) -> Option<Literal> {
7624        support::child(&self.syntax)
7625    }
7626    #[inline]
7627    pub fn name_ref(&self) -> Option<NameRef> {
7628        support::child(&self.syntax)
7629    }
7630    #[inline]
7631    pub fn for_token(&self) -> Option<SyntaxToken> {
7632        support::token(&self.syntax, SyntaxKind::FOR_KW)
7633    }
7634}
7635
7636#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7637pub struct ForceRls {
7638    pub(crate) syntax: SyntaxNode,
7639}
7640impl ForceRls {
7641    #[inline]
7642    pub fn force_token(&self) -> Option<SyntaxToken> {
7643        support::token(&self.syntax, SyntaxKind::FORCE_KW)
7644    }
7645    #[inline]
7646    pub fn level_token(&self) -> Option<SyntaxToken> {
7647        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7648    }
7649    #[inline]
7650    pub fn row_token(&self) -> Option<SyntaxToken> {
7651        support::token(&self.syntax, SyntaxKind::ROW_KW)
7652    }
7653    #[inline]
7654    pub fn security_token(&self) -> Option<SyntaxToken> {
7655        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7656    }
7657}
7658
7659#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7660pub struct ForeignKeyConstraint {
7661    pub(crate) syntax: SyntaxNode,
7662}
7663impl ForeignKeyConstraint {
7664    #[inline]
7665    pub fn constraint_name(&self) -> Option<ConstraintName> {
7666        support::child(&self.syntax)
7667    }
7668    #[inline]
7669    pub fn match_type(&self) -> Option<MatchType> {
7670        support::child(&self.syntax)
7671    }
7672    #[inline]
7673    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
7674        support::child(&self.syntax)
7675    }
7676    #[inline]
7677    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
7678        support::child(&self.syntax)
7679    }
7680    #[inline]
7681    pub fn path(&self) -> Option<Path> {
7682        support::child(&self.syntax)
7683    }
7684    #[inline]
7685    pub fn foreign_token(&self) -> Option<SyntaxToken> {
7686        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
7687    }
7688    #[inline]
7689    pub fn key_token(&self) -> Option<SyntaxToken> {
7690        support::token(&self.syntax, SyntaxKind::KEY_KW)
7691    }
7692    #[inline]
7693    pub fn references_token(&self) -> Option<SyntaxToken> {
7694        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
7695    }
7696}
7697
7698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7699pub struct FrameClause {
7700    pub(crate) syntax: SyntaxNode,
7701}
7702impl FrameClause {
7703    #[inline]
7704    pub fn groups_token(&self) -> Option<SyntaxToken> {
7705        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
7706    }
7707    #[inline]
7708    pub fn range_token(&self) -> Option<SyntaxToken> {
7709        support::token(&self.syntax, SyntaxKind::RANGE_KW)
7710    }
7711    #[inline]
7712    pub fn rows_token(&self) -> Option<SyntaxToken> {
7713        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7714    }
7715}
7716
7717#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7718pub struct FromClause {
7719    pub(crate) syntax: SyntaxNode,
7720}
7721impl FromClause {
7722    #[inline]
7723    pub fn from_items(&self) -> AstChildren<FromItem> {
7724        support::children(&self.syntax)
7725    }
7726    #[inline]
7727    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
7728        support::children(&self.syntax)
7729    }
7730    #[inline]
7731    pub fn from_token(&self) -> Option<SyntaxToken> {
7732        support::token(&self.syntax, SyntaxKind::FROM_KW)
7733    }
7734}
7735
7736#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7737pub struct FromItem {
7738    pub(crate) syntax: SyntaxNode,
7739}
7740impl FromItem {
7741    #[inline]
7742    pub fn alias(&self) -> Option<Alias> {
7743        support::child(&self.syntax)
7744    }
7745    #[inline]
7746    pub fn call_expr(&self) -> Option<CallExpr> {
7747        support::child(&self.syntax)
7748    }
7749    #[inline]
7750    pub fn cast_expr(&self) -> Option<CastExpr> {
7751        support::child(&self.syntax)
7752    }
7753    #[inline]
7754    pub fn field_expr(&self) -> Option<FieldExpr> {
7755        support::child(&self.syntax)
7756    }
7757    #[inline]
7758    pub fn json_table(&self) -> Option<JsonTable> {
7759        support::child(&self.syntax)
7760    }
7761    #[inline]
7762    pub fn name_ref(&self) -> Option<NameRef> {
7763        support::child(&self.syntax)
7764    }
7765    #[inline]
7766    pub fn paren_expr(&self) -> Option<ParenExpr> {
7767        support::child(&self.syntax)
7768    }
7769    #[inline]
7770    pub fn paren_select(&self) -> Option<ParenSelect> {
7771        support::child(&self.syntax)
7772    }
7773    #[inline]
7774    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
7775        support::child(&self.syntax)
7776    }
7777    #[inline]
7778    pub fn xml_table(&self) -> Option<XmlTable> {
7779        support::child(&self.syntax)
7780    }
7781    #[inline]
7782    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7783        support::token(&self.syntax, SyntaxKind::L_PAREN)
7784    }
7785    #[inline]
7786    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7787        support::token(&self.syntax, SyntaxKind::R_PAREN)
7788    }
7789    #[inline]
7790    pub fn star_token(&self) -> Option<SyntaxToken> {
7791        support::token(&self.syntax, SyntaxKind::STAR)
7792    }
7793    #[inline]
7794    pub fn from_token(&self) -> Option<SyntaxToken> {
7795        support::token(&self.syntax, SyntaxKind::FROM_KW)
7796    }
7797    #[inline]
7798    pub fn lateral_token(&self) -> Option<SyntaxToken> {
7799        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
7800    }
7801    #[inline]
7802    pub fn only_token(&self) -> Option<SyntaxToken> {
7803        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7804    }
7805    #[inline]
7806    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
7807        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
7808    }
7809    #[inline]
7810    pub fn rows_token(&self) -> Option<SyntaxToken> {
7811        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7812    }
7813    #[inline]
7814    pub fn with_token(&self) -> Option<SyntaxToken> {
7815        support::token(&self.syntax, SyntaxKind::WITH_KW)
7816    }
7817}
7818
7819#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7820pub struct FromTable {
7821    pub(crate) syntax: SyntaxNode,
7822}
7823impl FromTable {
7824    #[inline]
7825    pub fn path(&self) -> Option<Path> {
7826        support::child(&self.syntax)
7827    }
7828    #[inline]
7829    pub fn from_token(&self) -> Option<SyntaxToken> {
7830        support::token(&self.syntax, SyntaxKind::FROM_KW)
7831    }
7832}
7833
7834#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7835pub struct FuncOptionList {
7836    pub(crate) syntax: SyntaxNode,
7837}
7838impl FuncOptionList {
7839    #[inline]
7840    pub fn options(&self) -> AstChildren<FuncOption> {
7841        support::children(&self.syntax)
7842    }
7843}
7844
7845#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7846pub struct FunctionSig {
7847    pub(crate) syntax: SyntaxNode,
7848}
7849impl FunctionSig {
7850    #[inline]
7851    pub fn param_list(&self) -> Option<ParamList> {
7852        support::child(&self.syntax)
7853    }
7854    #[inline]
7855    pub fn path(&self) -> Option<Path> {
7856        support::child(&self.syntax)
7857    }
7858}
7859
7860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7861pub struct FunctionSigList {
7862    pub(crate) syntax: SyntaxNode,
7863}
7864impl FunctionSigList {
7865    #[inline]
7866    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
7867        support::children(&self.syntax)
7868    }
7869}
7870
7871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7872pub struct GeneratedConstraint {
7873    pub(crate) syntax: SyntaxNode,
7874}
7875impl GeneratedConstraint {
7876    #[inline]
7877    pub fn expr(&self) -> Option<Expr> {
7878        support::child(&self.syntax)
7879    }
7880    #[inline]
7881    pub fn name_ref(&self) -> Option<NameRef> {
7882        support::child(&self.syntax)
7883    }
7884    #[inline]
7885    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
7886        support::child(&self.syntax)
7887    }
7888    #[inline]
7889    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7890        support::token(&self.syntax, SyntaxKind::L_PAREN)
7891    }
7892    #[inline]
7893    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7894        support::token(&self.syntax, SyntaxKind::R_PAREN)
7895    }
7896    #[inline]
7897    pub fn always_token(&self) -> Option<SyntaxToken> {
7898        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7899    }
7900    #[inline]
7901    pub fn as_token(&self) -> Option<SyntaxToken> {
7902        support::token(&self.syntax, SyntaxKind::AS_KW)
7903    }
7904    #[inline]
7905    pub fn by_token(&self) -> Option<SyntaxToken> {
7906        support::token(&self.syntax, SyntaxKind::BY_KW)
7907    }
7908    #[inline]
7909    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7910        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7911    }
7912    #[inline]
7913    pub fn default_token(&self) -> Option<SyntaxToken> {
7914        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7915    }
7916    #[inline]
7917    pub fn generated_token(&self) -> Option<SyntaxToken> {
7918        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
7919    }
7920    #[inline]
7921    pub fn identity_token(&self) -> Option<SyntaxToken> {
7922        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
7923    }
7924    #[inline]
7925    pub fn stored_token(&self) -> Option<SyntaxToken> {
7926        support::token(&self.syntax, SyntaxKind::STORED_KW)
7927    }
7928}
7929
7930#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7931pub struct Grant {
7932    pub(crate) syntax: SyntaxNode,
7933}
7934impl Grant {
7935    #[inline]
7936    pub fn name_refs(&self) -> AstChildren<NameRef> {
7937        support::children(&self.syntax)
7938    }
7939    #[inline]
7940    pub fn paths(&self) -> AstChildren<Path> {
7941        support::children(&self.syntax)
7942    }
7943    #[inline]
7944    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
7945        support::child(&self.syntax)
7946    }
7947    #[inline]
7948    pub fn role(&self) -> Option<Role> {
7949        support::child(&self.syntax)
7950    }
7951    #[inline]
7952    pub fn role_list(&self) -> Option<RoleList> {
7953        support::child(&self.syntax)
7954    }
7955    #[inline]
7956    pub fn all_token(&self) -> Option<SyntaxToken> {
7957        support::token(&self.syntax, SyntaxKind::ALL_KW)
7958    }
7959    #[inline]
7960    pub fn by_token(&self) -> Option<SyntaxToken> {
7961        support::token(&self.syntax, SyntaxKind::BY_KW)
7962    }
7963    #[inline]
7964    pub fn grant_token(&self) -> Option<SyntaxToken> {
7965        support::token(&self.syntax, SyntaxKind::GRANT_KW)
7966    }
7967    #[inline]
7968    pub fn granted_token(&self) -> Option<SyntaxToken> {
7969        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
7970    }
7971    #[inline]
7972    pub fn in_token(&self) -> Option<SyntaxToken> {
7973        support::token(&self.syntax, SyntaxKind::IN_KW)
7974    }
7975    #[inline]
7976    pub fn on_token(&self) -> Option<SyntaxToken> {
7977        support::token(&self.syntax, SyntaxKind::ON_KW)
7978    }
7979    #[inline]
7980    pub fn option_token(&self) -> Option<SyntaxToken> {
7981        support::token(&self.syntax, SyntaxKind::OPTION_KW)
7982    }
7983    #[inline]
7984    pub fn privileges_token(&self) -> Option<SyntaxToken> {
7985        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
7986    }
7987    #[inline]
7988    pub fn schema_token(&self) -> Option<SyntaxToken> {
7989        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
7990    }
7991    #[inline]
7992    pub fn table_token(&self) -> Option<SyntaxToken> {
7993        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7994    }
7995    #[inline]
7996    pub fn tables_token(&self) -> Option<SyntaxToken> {
7997        support::token(&self.syntax, SyntaxKind::TABLES_KW)
7998    }
7999    #[inline]
8000    pub fn to_token(&self) -> Option<SyntaxToken> {
8001        support::token(&self.syntax, SyntaxKind::TO_KW)
8002    }
8003    #[inline]
8004    pub fn with_token(&self) -> Option<SyntaxToken> {
8005        support::token(&self.syntax, SyntaxKind::WITH_KW)
8006    }
8007}
8008
8009#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8010pub struct GrantDefaultPrivileges {
8011    pub(crate) syntax: SyntaxNode,
8012}
8013impl GrantDefaultPrivileges {
8014    #[inline]
8015    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
8016        support::child(&self.syntax)
8017    }
8018    #[inline]
8019    pub fn privileges(&self) -> Option<Privileges> {
8020        support::child(&self.syntax)
8021    }
8022    #[inline]
8023    pub fn role_list(&self) -> Option<RoleList> {
8024        support::child(&self.syntax)
8025    }
8026    #[inline]
8027    pub fn grant_token(&self) -> Option<SyntaxToken> {
8028        support::token(&self.syntax, SyntaxKind::GRANT_KW)
8029    }
8030    #[inline]
8031    pub fn on_token(&self) -> Option<SyntaxToken> {
8032        support::token(&self.syntax, SyntaxKind::ON_KW)
8033    }
8034    #[inline]
8035    pub fn option_token(&self) -> Option<SyntaxToken> {
8036        support::token(&self.syntax, SyntaxKind::OPTION_KW)
8037    }
8038    #[inline]
8039    pub fn to_token(&self) -> Option<SyntaxToken> {
8040        support::token(&self.syntax, SyntaxKind::TO_KW)
8041    }
8042    #[inline]
8043    pub fn with_token(&self) -> Option<SyntaxToken> {
8044        support::token(&self.syntax, SyntaxKind::WITH_KW)
8045    }
8046}
8047
8048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8049pub struct GroupByClause {
8050    pub(crate) syntax: SyntaxNode,
8051}
8052impl GroupByClause {
8053    #[inline]
8054    pub fn group_by_list(&self) -> Option<GroupByList> {
8055        support::child(&self.syntax)
8056    }
8057    #[inline]
8058    pub fn all_token(&self) -> Option<SyntaxToken> {
8059        support::token(&self.syntax, SyntaxKind::ALL_KW)
8060    }
8061    #[inline]
8062    pub fn by_token(&self) -> Option<SyntaxToken> {
8063        support::token(&self.syntax, SyntaxKind::BY_KW)
8064    }
8065    #[inline]
8066    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8067        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8068    }
8069    #[inline]
8070    pub fn group_token(&self) -> Option<SyntaxToken> {
8071        support::token(&self.syntax, SyntaxKind::GROUP_KW)
8072    }
8073}
8074
8075#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8076pub struct GroupByList {
8077    pub(crate) syntax: SyntaxNode,
8078}
8079impl GroupByList {
8080    #[inline]
8081    pub fn group_bys(&self) -> AstChildren<GroupBy> {
8082        support::children(&self.syntax)
8083    }
8084}
8085
8086#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8087pub struct GroupingCube {
8088    pub(crate) syntax: SyntaxNode,
8089}
8090impl GroupingCube {
8091    #[inline]
8092    pub fn expr(&self) -> Option<Expr> {
8093        support::child(&self.syntax)
8094    }
8095    #[inline]
8096    pub fn cube_token(&self) -> Option<SyntaxToken> {
8097        support::token(&self.syntax, SyntaxKind::CUBE_KW)
8098    }
8099}
8100
8101#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8102pub struct GroupingExpr {
8103    pub(crate) syntax: SyntaxNode,
8104}
8105impl GroupingExpr {
8106    #[inline]
8107    pub fn expr(&self) -> Option<Expr> {
8108        support::child(&self.syntax)
8109    }
8110}
8111
8112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8113pub struct GroupingRollup {
8114    pub(crate) syntax: SyntaxNode,
8115}
8116impl GroupingRollup {
8117    #[inline]
8118    pub fn expr(&self) -> Option<Expr> {
8119        support::child(&self.syntax)
8120    }
8121    #[inline]
8122    pub fn rollup_token(&self) -> Option<SyntaxToken> {
8123        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
8124    }
8125}
8126
8127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8128pub struct GroupingSets {
8129    pub(crate) syntax: SyntaxNode,
8130}
8131impl GroupingSets {
8132    #[inline]
8133    pub fn expr(&self) -> Option<Expr> {
8134        support::child(&self.syntax)
8135    }
8136    #[inline]
8137    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8138        support::token(&self.syntax, SyntaxKind::L_PAREN)
8139    }
8140    #[inline]
8141    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8142        support::token(&self.syntax, SyntaxKind::R_PAREN)
8143    }
8144    #[inline]
8145    pub fn grouping_token(&self) -> Option<SyntaxToken> {
8146        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
8147    }
8148    #[inline]
8149    pub fn sets_token(&self) -> Option<SyntaxToken> {
8150        support::token(&self.syntax, SyntaxKind::SETS_KW)
8151    }
8152}
8153
8154#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8155pub struct Gteq {
8156    pub(crate) syntax: SyntaxNode,
8157}
8158impl Gteq {
8159    #[inline]
8160    pub fn eq_token(&self) -> Option<SyntaxToken> {
8161        support::token(&self.syntax, SyntaxKind::EQ)
8162    }
8163    #[inline]
8164    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8165        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8166    }
8167}
8168
8169#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8170pub struct HandlerClause {
8171    pub(crate) syntax: SyntaxNode,
8172}
8173impl HandlerClause {
8174    #[inline]
8175    pub fn path(&self) -> Option<Path> {
8176        support::child(&self.syntax)
8177    }
8178    #[inline]
8179    pub fn handler_token(&self) -> Option<SyntaxToken> {
8180        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
8181    }
8182}
8183
8184#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8185pub struct HavingClause {
8186    pub(crate) syntax: SyntaxNode,
8187}
8188impl HavingClause {
8189    #[inline]
8190    pub fn expr(&self) -> Option<Expr> {
8191        support::child(&self.syntax)
8192    }
8193    #[inline]
8194    pub fn having_token(&self) -> Option<SyntaxToken> {
8195        support::token(&self.syntax, SyntaxKind::HAVING_KW)
8196    }
8197}
8198
8199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8200pub struct IfExists {
8201    pub(crate) syntax: SyntaxNode,
8202}
8203impl IfExists {
8204    #[inline]
8205    pub fn exists_token(&self) -> Option<SyntaxToken> {
8206        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8207    }
8208    #[inline]
8209    pub fn if_token(&self) -> Option<SyntaxToken> {
8210        support::token(&self.syntax, SyntaxKind::IF_KW)
8211    }
8212}
8213
8214#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8215pub struct IfNotExists {
8216    pub(crate) syntax: SyntaxNode,
8217}
8218impl IfNotExists {
8219    #[inline]
8220    pub fn exists_token(&self) -> Option<SyntaxToken> {
8221        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8222    }
8223    #[inline]
8224    pub fn if_token(&self) -> Option<SyntaxToken> {
8225        support::token(&self.syntax, SyntaxKind::IF_KW)
8226    }
8227    #[inline]
8228    pub fn not_token(&self) -> Option<SyntaxToken> {
8229        support::token(&self.syntax, SyntaxKind::NOT_KW)
8230    }
8231}
8232
8233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8234pub struct ImportForeignSchema {
8235    pub(crate) syntax: SyntaxNode,
8236}
8237impl ImportForeignSchema {
8238    #[inline]
8239    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
8240        support::child(&self.syntax)
8241    }
8242    #[inline]
8243    pub fn except_tables(&self) -> Option<ExceptTables> {
8244        support::child(&self.syntax)
8245    }
8246    #[inline]
8247    pub fn into_schema(&self) -> Option<IntoSchema> {
8248        support::child(&self.syntax)
8249    }
8250    #[inline]
8251    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
8252        support::child(&self.syntax)
8253    }
8254    #[inline]
8255    pub fn name_ref(&self) -> Option<NameRef> {
8256        support::child(&self.syntax)
8257    }
8258    #[inline]
8259    pub fn server_name(&self) -> Option<ServerName> {
8260        support::child(&self.syntax)
8261    }
8262    #[inline]
8263    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8264        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8265    }
8266    #[inline]
8267    pub fn from_token(&self) -> Option<SyntaxToken> {
8268        support::token(&self.syntax, SyntaxKind::FROM_KW)
8269    }
8270    #[inline]
8271    pub fn import_token(&self) -> Option<SyntaxToken> {
8272        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
8273    }
8274    #[inline]
8275    pub fn schema_token(&self) -> Option<SyntaxToken> {
8276        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8277    }
8278}
8279
8280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8281pub struct IndexExpr {
8282    pub(crate) syntax: SyntaxNode,
8283}
8284impl IndexExpr {
8285    #[inline]
8286    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8287        support::token(&self.syntax, SyntaxKind::L_BRACK)
8288    }
8289    #[inline]
8290    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8291        support::token(&self.syntax, SyntaxKind::R_BRACK)
8292    }
8293}
8294
8295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8296pub struct Inherit {
8297    pub(crate) syntax: SyntaxNode,
8298}
8299impl Inherit {
8300    #[inline]
8301    pub fn path(&self) -> Option<Path> {
8302        support::child(&self.syntax)
8303    }
8304    #[inline]
8305    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8306        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8307    }
8308}
8309
8310#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8311pub struct InheritTable {
8312    pub(crate) syntax: SyntaxNode,
8313}
8314impl InheritTable {
8315    #[inline]
8316    pub fn path(&self) -> Option<Path> {
8317        support::child(&self.syntax)
8318    }
8319    #[inline]
8320    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8321        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8322    }
8323}
8324
8325#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8326pub struct Inherits {
8327    pub(crate) syntax: SyntaxNode,
8328}
8329impl Inherits {
8330    #[inline]
8331    pub fn paths(&self) -> AstChildren<Path> {
8332        support::children(&self.syntax)
8333    }
8334    #[inline]
8335    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8336        support::token(&self.syntax, SyntaxKind::L_PAREN)
8337    }
8338    #[inline]
8339    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8340        support::token(&self.syntax, SyntaxKind::R_PAREN)
8341    }
8342    #[inline]
8343    pub fn inherits_token(&self) -> Option<SyntaxToken> {
8344        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
8345    }
8346}
8347
8348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8349pub struct InitiallyDeferredConstraintOption {
8350    pub(crate) syntax: SyntaxNode,
8351}
8352impl InitiallyDeferredConstraintOption {
8353    #[inline]
8354    pub fn deferred_token(&self) -> Option<SyntaxToken> {
8355        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
8356    }
8357    #[inline]
8358    pub fn initially_token(&self) -> Option<SyntaxToken> {
8359        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8360    }
8361}
8362
8363#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8364pub struct InitiallyImmediateConstraintOption {
8365    pub(crate) syntax: SyntaxNode,
8366}
8367impl InitiallyImmediateConstraintOption {
8368    #[inline]
8369    pub fn immediate_token(&self) -> Option<SyntaxToken> {
8370        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
8371    }
8372    #[inline]
8373    pub fn initially_token(&self) -> Option<SyntaxToken> {
8374        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8375    }
8376}
8377
8378#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8379pub struct Insert {
8380    pub(crate) syntax: SyntaxNode,
8381}
8382impl Insert {
8383    #[inline]
8384    pub fn alias(&self) -> Option<Alias> {
8385        support::child(&self.syntax)
8386    }
8387    #[inline]
8388    pub fn column_list(&self) -> Option<ColumnList> {
8389        support::child(&self.syntax)
8390    }
8391    #[inline]
8392    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
8393        support::child(&self.syntax)
8394    }
8395    #[inline]
8396    pub fn path(&self) -> Option<Path> {
8397        support::child(&self.syntax)
8398    }
8399    #[inline]
8400    pub fn returning_clause(&self) -> Option<ReturningClause> {
8401        support::child(&self.syntax)
8402    }
8403    #[inline]
8404    pub fn stmt(&self) -> Option<Stmt> {
8405        support::child(&self.syntax)
8406    }
8407    #[inline]
8408    pub fn values(&self) -> Option<Values> {
8409        support::child(&self.syntax)
8410    }
8411    #[inline]
8412    pub fn with_clause(&self) -> Option<WithClause> {
8413        support::child(&self.syntax)
8414    }
8415    #[inline]
8416    pub fn default_token(&self) -> Option<SyntaxToken> {
8417        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8418    }
8419    #[inline]
8420    pub fn insert_token(&self) -> Option<SyntaxToken> {
8421        support::token(&self.syntax, SyntaxKind::INSERT_KW)
8422    }
8423    #[inline]
8424    pub fn into_token(&self) -> Option<SyntaxToken> {
8425        support::token(&self.syntax, SyntaxKind::INTO_KW)
8426    }
8427    #[inline]
8428    pub fn overriding_token(&self) -> Option<SyntaxToken> {
8429        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
8430    }
8431    #[inline]
8432    pub fn system_token(&self) -> Option<SyntaxToken> {
8433        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
8434    }
8435    #[inline]
8436    pub fn user_token(&self) -> Option<SyntaxToken> {
8437        support::token(&self.syntax, SyntaxKind::USER_KW)
8438    }
8439    #[inline]
8440    pub fn value_token(&self) -> Option<SyntaxToken> {
8441        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8442    }
8443    #[inline]
8444    pub fn values_token(&self) -> Option<SyntaxToken> {
8445        support::token(&self.syntax, SyntaxKind::VALUES_KW)
8446    }
8447}
8448
8449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8450pub struct IntervalType {
8451    pub(crate) syntax: SyntaxNode,
8452}
8453impl IntervalType {
8454    #[inline]
8455    pub fn literal(&self) -> Option<Literal> {
8456        support::child(&self.syntax)
8457    }
8458    #[inline]
8459    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8460        support::token(&self.syntax, SyntaxKind::L_PAREN)
8461    }
8462    #[inline]
8463    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8464        support::token(&self.syntax, SyntaxKind::R_PAREN)
8465    }
8466    #[inline]
8467    pub fn day_token(&self) -> Option<SyntaxToken> {
8468        support::token(&self.syntax, SyntaxKind::DAY_KW)
8469    }
8470    #[inline]
8471    pub fn hour_token(&self) -> Option<SyntaxToken> {
8472        support::token(&self.syntax, SyntaxKind::HOUR_KW)
8473    }
8474    #[inline]
8475    pub fn interval_token(&self) -> Option<SyntaxToken> {
8476        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
8477    }
8478    #[inline]
8479    pub fn minute_token(&self) -> Option<SyntaxToken> {
8480        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
8481    }
8482    #[inline]
8483    pub fn month_token(&self) -> Option<SyntaxToken> {
8484        support::token(&self.syntax, SyntaxKind::MONTH_KW)
8485    }
8486    #[inline]
8487    pub fn second_token(&self) -> Option<SyntaxToken> {
8488        support::token(&self.syntax, SyntaxKind::SECOND_KW)
8489    }
8490    #[inline]
8491    pub fn to_token(&self) -> Option<SyntaxToken> {
8492        support::token(&self.syntax, SyntaxKind::TO_KW)
8493    }
8494    #[inline]
8495    pub fn year_token(&self) -> Option<SyntaxToken> {
8496        support::token(&self.syntax, SyntaxKind::YEAR_KW)
8497    }
8498}
8499
8500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8501pub struct IntoClause {
8502    pub(crate) syntax: SyntaxNode,
8503}
8504impl IntoClause {
8505    #[inline]
8506    pub fn path(&self) -> Option<Path> {
8507        support::child(&self.syntax)
8508    }
8509    #[inline]
8510    pub fn into_token(&self) -> Option<SyntaxToken> {
8511        support::token(&self.syntax, SyntaxKind::INTO_KW)
8512    }
8513}
8514
8515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8516pub struct IntoSchema {
8517    pub(crate) syntax: SyntaxNode,
8518}
8519impl IntoSchema {
8520    #[inline]
8521    pub fn name_ref(&self) -> Option<NameRef> {
8522        support::child(&self.syntax)
8523    }
8524    #[inline]
8525    pub fn into_token(&self) -> Option<SyntaxToken> {
8526        support::token(&self.syntax, SyntaxKind::INTO_KW)
8527    }
8528}
8529
8530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8531pub struct IsDistinctFrom {
8532    pub(crate) syntax: SyntaxNode,
8533}
8534impl IsDistinctFrom {
8535    #[inline]
8536    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8537        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8538    }
8539    #[inline]
8540    pub fn from_token(&self) -> Option<SyntaxToken> {
8541        support::token(&self.syntax, SyntaxKind::FROM_KW)
8542    }
8543    #[inline]
8544    pub fn is_token(&self) -> Option<SyntaxToken> {
8545        support::token(&self.syntax, SyntaxKind::IS_KW)
8546    }
8547}
8548
8549#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8550pub struct IsJson {
8551    pub(crate) syntax: SyntaxNode,
8552}
8553impl IsJson {
8554    #[inline]
8555    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8556        support::child(&self.syntax)
8557    }
8558    #[inline]
8559    pub fn is_token(&self) -> Option<SyntaxToken> {
8560        support::token(&self.syntax, SyntaxKind::IS_KW)
8561    }
8562    #[inline]
8563    pub fn json_token(&self) -> Option<SyntaxToken> {
8564        support::token(&self.syntax, SyntaxKind::JSON_KW)
8565    }
8566}
8567
8568#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8569pub struct IsJsonArray {
8570    pub(crate) syntax: SyntaxNode,
8571}
8572impl IsJsonArray {
8573    #[inline]
8574    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8575        support::child(&self.syntax)
8576    }
8577    #[inline]
8578    pub fn array_token(&self) -> Option<SyntaxToken> {
8579        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8580    }
8581    #[inline]
8582    pub fn is_token(&self) -> Option<SyntaxToken> {
8583        support::token(&self.syntax, SyntaxKind::IS_KW)
8584    }
8585    #[inline]
8586    pub fn json_token(&self) -> Option<SyntaxToken> {
8587        support::token(&self.syntax, SyntaxKind::JSON_KW)
8588    }
8589}
8590
8591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8592pub struct IsJsonObject {
8593    pub(crate) syntax: SyntaxNode,
8594}
8595impl IsJsonObject {
8596    #[inline]
8597    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8598        support::child(&self.syntax)
8599    }
8600    #[inline]
8601    pub fn is_token(&self) -> Option<SyntaxToken> {
8602        support::token(&self.syntax, SyntaxKind::IS_KW)
8603    }
8604    #[inline]
8605    pub fn json_token(&self) -> Option<SyntaxToken> {
8606        support::token(&self.syntax, SyntaxKind::JSON_KW)
8607    }
8608    #[inline]
8609    pub fn object_token(&self) -> Option<SyntaxToken> {
8610        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8611    }
8612}
8613
8614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8615pub struct IsJsonScalar {
8616    pub(crate) syntax: SyntaxNode,
8617}
8618impl IsJsonScalar {
8619    #[inline]
8620    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8621        support::child(&self.syntax)
8622    }
8623    #[inline]
8624    pub fn is_token(&self) -> Option<SyntaxToken> {
8625        support::token(&self.syntax, SyntaxKind::IS_KW)
8626    }
8627    #[inline]
8628    pub fn json_token(&self) -> Option<SyntaxToken> {
8629        support::token(&self.syntax, SyntaxKind::JSON_KW)
8630    }
8631    #[inline]
8632    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8633        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8634    }
8635}
8636
8637#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8638pub struct IsJsonValue {
8639    pub(crate) syntax: SyntaxNode,
8640}
8641impl IsJsonValue {
8642    #[inline]
8643    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8644        support::child(&self.syntax)
8645    }
8646    #[inline]
8647    pub fn is_token(&self) -> Option<SyntaxToken> {
8648        support::token(&self.syntax, SyntaxKind::IS_KW)
8649    }
8650    #[inline]
8651    pub fn json_token(&self) -> Option<SyntaxToken> {
8652        support::token(&self.syntax, SyntaxKind::JSON_KW)
8653    }
8654    #[inline]
8655    pub fn value_token(&self) -> Option<SyntaxToken> {
8656        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8657    }
8658}
8659
8660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8661pub struct IsNormalized {
8662    pub(crate) syntax: SyntaxNode,
8663}
8664impl IsNormalized {
8665    #[inline]
8666    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8667        support::child(&self.syntax)
8668    }
8669    #[inline]
8670    pub fn is_token(&self) -> Option<SyntaxToken> {
8671        support::token(&self.syntax, SyntaxKind::IS_KW)
8672    }
8673    #[inline]
8674    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8675        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8676    }
8677}
8678
8679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8680pub struct IsNot {
8681    pub(crate) syntax: SyntaxNode,
8682}
8683impl IsNot {
8684    #[inline]
8685    pub fn is_token(&self) -> Option<SyntaxToken> {
8686        support::token(&self.syntax, SyntaxKind::IS_KW)
8687    }
8688    #[inline]
8689    pub fn not_token(&self) -> Option<SyntaxToken> {
8690        support::token(&self.syntax, SyntaxKind::NOT_KW)
8691    }
8692}
8693
8694#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8695pub struct IsNotDistinctFrom {
8696    pub(crate) syntax: SyntaxNode,
8697}
8698impl IsNotDistinctFrom {
8699    #[inline]
8700    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8701        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8702    }
8703    #[inline]
8704    pub fn from_token(&self) -> Option<SyntaxToken> {
8705        support::token(&self.syntax, SyntaxKind::FROM_KW)
8706    }
8707    #[inline]
8708    pub fn is_token(&self) -> Option<SyntaxToken> {
8709        support::token(&self.syntax, SyntaxKind::IS_KW)
8710    }
8711    #[inline]
8712    pub fn not_token(&self) -> Option<SyntaxToken> {
8713        support::token(&self.syntax, SyntaxKind::NOT_KW)
8714    }
8715}
8716
8717#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8718pub struct IsNotJson {
8719    pub(crate) syntax: SyntaxNode,
8720}
8721impl IsNotJson {
8722    #[inline]
8723    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8724        support::child(&self.syntax)
8725    }
8726    #[inline]
8727    pub fn is_token(&self) -> Option<SyntaxToken> {
8728        support::token(&self.syntax, SyntaxKind::IS_KW)
8729    }
8730    #[inline]
8731    pub fn json_token(&self) -> Option<SyntaxToken> {
8732        support::token(&self.syntax, SyntaxKind::JSON_KW)
8733    }
8734    #[inline]
8735    pub fn not_token(&self) -> Option<SyntaxToken> {
8736        support::token(&self.syntax, SyntaxKind::NOT_KW)
8737    }
8738}
8739
8740#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8741pub struct IsNotJsonArray {
8742    pub(crate) syntax: SyntaxNode,
8743}
8744impl IsNotJsonArray {
8745    #[inline]
8746    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8747        support::child(&self.syntax)
8748    }
8749    #[inline]
8750    pub fn array_token(&self) -> Option<SyntaxToken> {
8751        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8752    }
8753    #[inline]
8754    pub fn is_token(&self) -> Option<SyntaxToken> {
8755        support::token(&self.syntax, SyntaxKind::IS_KW)
8756    }
8757    #[inline]
8758    pub fn json_token(&self) -> Option<SyntaxToken> {
8759        support::token(&self.syntax, SyntaxKind::JSON_KW)
8760    }
8761    #[inline]
8762    pub fn not_token(&self) -> Option<SyntaxToken> {
8763        support::token(&self.syntax, SyntaxKind::NOT_KW)
8764    }
8765}
8766
8767#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8768pub struct IsNotJsonObject {
8769    pub(crate) syntax: SyntaxNode,
8770}
8771impl IsNotJsonObject {
8772    #[inline]
8773    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8774        support::child(&self.syntax)
8775    }
8776    #[inline]
8777    pub fn is_token(&self) -> Option<SyntaxToken> {
8778        support::token(&self.syntax, SyntaxKind::IS_KW)
8779    }
8780    #[inline]
8781    pub fn json_token(&self) -> Option<SyntaxToken> {
8782        support::token(&self.syntax, SyntaxKind::JSON_KW)
8783    }
8784    #[inline]
8785    pub fn not_token(&self) -> Option<SyntaxToken> {
8786        support::token(&self.syntax, SyntaxKind::NOT_KW)
8787    }
8788    #[inline]
8789    pub fn object_token(&self) -> Option<SyntaxToken> {
8790        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8791    }
8792}
8793
8794#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8795pub struct IsNotJsonScalar {
8796    pub(crate) syntax: SyntaxNode,
8797}
8798impl IsNotJsonScalar {
8799    #[inline]
8800    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8801        support::child(&self.syntax)
8802    }
8803    #[inline]
8804    pub fn is_token(&self) -> Option<SyntaxToken> {
8805        support::token(&self.syntax, SyntaxKind::IS_KW)
8806    }
8807    #[inline]
8808    pub fn json_token(&self) -> Option<SyntaxToken> {
8809        support::token(&self.syntax, SyntaxKind::JSON_KW)
8810    }
8811    #[inline]
8812    pub fn not_token(&self) -> Option<SyntaxToken> {
8813        support::token(&self.syntax, SyntaxKind::NOT_KW)
8814    }
8815    #[inline]
8816    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8817        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8818    }
8819}
8820
8821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8822pub struct IsNotJsonValue {
8823    pub(crate) syntax: SyntaxNode,
8824}
8825impl IsNotJsonValue {
8826    #[inline]
8827    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8828        support::child(&self.syntax)
8829    }
8830    #[inline]
8831    pub fn is_token(&self) -> Option<SyntaxToken> {
8832        support::token(&self.syntax, SyntaxKind::IS_KW)
8833    }
8834    #[inline]
8835    pub fn json_token(&self) -> Option<SyntaxToken> {
8836        support::token(&self.syntax, SyntaxKind::JSON_KW)
8837    }
8838    #[inline]
8839    pub fn not_token(&self) -> Option<SyntaxToken> {
8840        support::token(&self.syntax, SyntaxKind::NOT_KW)
8841    }
8842    #[inline]
8843    pub fn value_token(&self) -> Option<SyntaxToken> {
8844        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8845    }
8846}
8847
8848#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8849pub struct IsNotNormalized {
8850    pub(crate) syntax: SyntaxNode,
8851}
8852impl IsNotNormalized {
8853    #[inline]
8854    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8855        support::child(&self.syntax)
8856    }
8857    #[inline]
8858    pub fn is_token(&self) -> Option<SyntaxToken> {
8859        support::token(&self.syntax, SyntaxKind::IS_KW)
8860    }
8861    #[inline]
8862    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8863        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8864    }
8865    #[inline]
8866    pub fn not_token(&self) -> Option<SyntaxToken> {
8867        support::token(&self.syntax, SyntaxKind::NOT_KW)
8868    }
8869}
8870
8871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8872pub struct Join {
8873    pub(crate) syntax: SyntaxNode,
8874}
8875impl Join {
8876    #[inline]
8877    pub fn from_item(&self) -> Option<FromItem> {
8878        support::child(&self.syntax)
8879    }
8880    #[inline]
8881    pub fn join_type(&self) -> Option<JoinType> {
8882        support::child(&self.syntax)
8883    }
8884    #[inline]
8885    pub fn on_clause(&self) -> Option<OnClause> {
8886        support::child(&self.syntax)
8887    }
8888    #[inline]
8889    pub fn using_clause(&self) -> Option<JoinUsingClause> {
8890        support::child(&self.syntax)
8891    }
8892    #[inline]
8893    pub fn natural_token(&self) -> Option<SyntaxToken> {
8894        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
8895    }
8896}
8897
8898#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8899pub struct JoinCross {
8900    pub(crate) syntax: SyntaxNode,
8901}
8902impl JoinCross {
8903    #[inline]
8904    pub fn cross_token(&self) -> Option<SyntaxToken> {
8905        support::token(&self.syntax, SyntaxKind::CROSS_KW)
8906    }
8907    #[inline]
8908    pub fn join_token(&self) -> Option<SyntaxToken> {
8909        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8910    }
8911}
8912
8913#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8914pub struct JoinExpr {
8915    pub(crate) syntax: SyntaxNode,
8916}
8917impl JoinExpr {
8918    #[inline]
8919    pub fn from_item(&self) -> Option<FromItem> {
8920        support::child(&self.syntax)
8921    }
8922    #[inline]
8923    pub fn join(&self) -> Option<Join> {
8924        support::child(&self.syntax)
8925    }
8926    #[inline]
8927    pub fn join_expr(&self) -> Option<JoinExpr> {
8928        support::child(&self.syntax)
8929    }
8930}
8931
8932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8933pub struct JoinFull {
8934    pub(crate) syntax: SyntaxNode,
8935}
8936impl JoinFull {
8937    #[inline]
8938    pub fn full_token(&self) -> Option<SyntaxToken> {
8939        support::token(&self.syntax, SyntaxKind::FULL_KW)
8940    }
8941    #[inline]
8942    pub fn join_token(&self) -> Option<SyntaxToken> {
8943        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8944    }
8945    #[inline]
8946    pub fn outer_token(&self) -> Option<SyntaxToken> {
8947        support::token(&self.syntax, SyntaxKind::OUTER_KW)
8948    }
8949}
8950
8951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8952pub struct JoinInner {
8953    pub(crate) syntax: SyntaxNode,
8954}
8955impl JoinInner {
8956    #[inline]
8957    pub fn inner_token(&self) -> Option<SyntaxToken> {
8958        support::token(&self.syntax, SyntaxKind::INNER_KW)
8959    }
8960    #[inline]
8961    pub fn join_token(&self) -> Option<SyntaxToken> {
8962        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8963    }
8964}
8965
8966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8967pub struct JoinLeft {
8968    pub(crate) syntax: SyntaxNode,
8969}
8970impl JoinLeft {
8971    #[inline]
8972    pub fn join_token(&self) -> Option<SyntaxToken> {
8973        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8974    }
8975    #[inline]
8976    pub fn left_token(&self) -> Option<SyntaxToken> {
8977        support::token(&self.syntax, SyntaxKind::LEFT_KW)
8978    }
8979    #[inline]
8980    pub fn outer_token(&self) -> Option<SyntaxToken> {
8981        support::token(&self.syntax, SyntaxKind::OUTER_KW)
8982    }
8983}
8984
8985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8986pub struct JoinRight {
8987    pub(crate) syntax: SyntaxNode,
8988}
8989impl JoinRight {
8990    #[inline]
8991    pub fn join_token(&self) -> Option<SyntaxToken> {
8992        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8993    }
8994    #[inline]
8995    pub fn outer_token(&self) -> Option<SyntaxToken> {
8996        support::token(&self.syntax, SyntaxKind::OUTER_KW)
8997    }
8998    #[inline]
8999    pub fn right_token(&self) -> Option<SyntaxToken> {
9000        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
9001    }
9002}
9003
9004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9005pub struct JoinUsingClause {
9006    pub(crate) syntax: SyntaxNode,
9007}
9008impl JoinUsingClause {
9009    #[inline]
9010    pub fn alias(&self) -> Option<Alias> {
9011        support::child(&self.syntax)
9012    }
9013    #[inline]
9014    pub fn column_list(&self) -> Option<ColumnList> {
9015        support::child(&self.syntax)
9016    }
9017    #[inline]
9018    pub fn using_token(&self) -> Option<SyntaxToken> {
9019        support::token(&self.syntax, SyntaxKind::USING_KW)
9020    }
9021}
9022
9023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9024pub struct JsonArrayAggFn {
9025    pub(crate) syntax: SyntaxNode,
9026}
9027impl JsonArrayAggFn {
9028    #[inline]
9029    pub fn expr(&self) -> Option<Expr> {
9030        support::child(&self.syntax)
9031    }
9032    #[inline]
9033    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9034        support::child(&self.syntax)
9035    }
9036    #[inline]
9037    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9038        support::child(&self.syntax)
9039    }
9040    #[inline]
9041    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9042        support::children(&self.syntax)
9043    }
9044    #[inline]
9045    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9046        support::token(&self.syntax, SyntaxKind::L_PAREN)
9047    }
9048    #[inline]
9049    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9050        support::token(&self.syntax, SyntaxKind::R_PAREN)
9051    }
9052    #[inline]
9053    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
9054        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
9055    }
9056}
9057
9058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9059pub struct JsonArrayFn {
9060    pub(crate) syntax: SyntaxNode,
9061}
9062impl JsonArrayFn {
9063    #[inline]
9064    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
9065        support::children(&self.syntax)
9066    }
9067    #[inline]
9068    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9069        support::child(&self.syntax)
9070    }
9071    #[inline]
9072    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9073        support::child(&self.syntax)
9074    }
9075    #[inline]
9076    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9077        support::children(&self.syntax)
9078    }
9079    #[inline]
9080    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9081        support::token(&self.syntax, SyntaxKind::L_PAREN)
9082    }
9083    #[inline]
9084    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9085        support::token(&self.syntax, SyntaxKind::R_PAREN)
9086    }
9087    #[inline]
9088    pub fn json_array_token(&self) -> Option<SyntaxToken> {
9089        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
9090    }
9091}
9092
9093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9094pub struct JsonBehaviorClause {
9095    pub(crate) syntax: SyntaxNode,
9096}
9097impl JsonBehaviorClause {
9098    #[inline]
9099    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9100        support::child(&self.syntax)
9101    }
9102}
9103
9104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9105pub struct JsonBehaviorDefault {
9106    pub(crate) syntax: SyntaxNode,
9107}
9108impl JsonBehaviorDefault {
9109    #[inline]
9110    pub fn expr(&self) -> Option<Expr> {
9111        support::child(&self.syntax)
9112    }
9113    #[inline]
9114    pub fn default_token(&self) -> Option<SyntaxToken> {
9115        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9116    }
9117}
9118
9119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9120pub struct JsonBehaviorEmptyArray {
9121    pub(crate) syntax: SyntaxNode,
9122}
9123impl JsonBehaviorEmptyArray {
9124    #[inline]
9125    pub fn array_token(&self) -> Option<SyntaxToken> {
9126        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9127    }
9128    #[inline]
9129    pub fn empty_token(&self) -> Option<SyntaxToken> {
9130        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9131    }
9132}
9133
9134#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9135pub struct JsonBehaviorEmptyObject {
9136    pub(crate) syntax: SyntaxNode,
9137}
9138impl JsonBehaviorEmptyObject {
9139    #[inline]
9140    pub fn empty_token(&self) -> Option<SyntaxToken> {
9141        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9142    }
9143    #[inline]
9144    pub fn object_token(&self) -> Option<SyntaxToken> {
9145        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9146    }
9147}
9148
9149#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9150pub struct JsonBehaviorError {
9151    pub(crate) syntax: SyntaxNode,
9152}
9153impl JsonBehaviorError {
9154    #[inline]
9155    pub fn error_token(&self) -> Option<SyntaxToken> {
9156        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9157    }
9158}
9159
9160#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9161pub struct JsonBehaviorFalse {
9162    pub(crate) syntax: SyntaxNode,
9163}
9164impl JsonBehaviorFalse {
9165    #[inline]
9166    pub fn false_token(&self) -> Option<SyntaxToken> {
9167        support::token(&self.syntax, SyntaxKind::FALSE_KW)
9168    }
9169}
9170
9171#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9172pub struct JsonBehaviorNull {
9173    pub(crate) syntax: SyntaxNode,
9174}
9175impl JsonBehaviorNull {
9176    #[inline]
9177    pub fn null_token(&self) -> Option<SyntaxToken> {
9178        support::token(&self.syntax, SyntaxKind::NULL_KW)
9179    }
9180}
9181
9182#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9183pub struct JsonBehaviorTrue {
9184    pub(crate) syntax: SyntaxNode,
9185}
9186impl JsonBehaviorTrue {
9187    #[inline]
9188    pub fn true_token(&self) -> Option<SyntaxToken> {
9189        support::token(&self.syntax, SyntaxKind::TRUE_KW)
9190    }
9191}
9192
9193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9194pub struct JsonBehaviorUnknown {
9195    pub(crate) syntax: SyntaxNode,
9196}
9197impl JsonBehaviorUnknown {
9198    #[inline]
9199    pub fn unknown_token(&self) -> Option<SyntaxToken> {
9200        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
9201    }
9202}
9203
9204#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9205pub struct JsonEncodingClause {
9206    pub(crate) syntax: SyntaxNode,
9207}
9208impl JsonEncodingClause {
9209    #[inline]
9210    pub fn name_ref(&self) -> Option<NameRef> {
9211        support::child(&self.syntax)
9212    }
9213    #[inline]
9214    pub fn encoding_token(&self) -> Option<SyntaxToken> {
9215        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
9216    }
9217}
9218
9219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9220pub struct JsonExistsFn {
9221    pub(crate) syntax: SyntaxNode,
9222}
9223impl JsonExistsFn {
9224    #[inline]
9225    pub fn expr(&self) -> Option<Expr> {
9226        support::child(&self.syntax)
9227    }
9228    #[inline]
9229    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9230        support::child(&self.syntax)
9231    }
9232    #[inline]
9233    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9234        support::child(&self.syntax)
9235    }
9236    #[inline]
9237    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9238        support::child(&self.syntax)
9239    }
9240    #[inline]
9241    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9242        support::token(&self.syntax, SyntaxKind::L_PAREN)
9243    }
9244    #[inline]
9245    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9246        support::token(&self.syntax, SyntaxKind::R_PAREN)
9247    }
9248    #[inline]
9249    pub fn comma_token(&self) -> Option<SyntaxToken> {
9250        support::token(&self.syntax, SyntaxKind::COMMA)
9251    }
9252    #[inline]
9253    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
9254        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
9255    }
9256}
9257
9258#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9259pub struct JsonExprFormat {
9260    pub(crate) syntax: SyntaxNode,
9261}
9262impl JsonExprFormat {
9263    #[inline]
9264    pub fn expr(&self) -> Option<Expr> {
9265        support::child(&self.syntax)
9266    }
9267    #[inline]
9268    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9269        support::child(&self.syntax)
9270    }
9271}
9272
9273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9274pub struct JsonFn {
9275    pub(crate) syntax: SyntaxNode,
9276}
9277impl JsonFn {
9278    #[inline]
9279    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
9280        support::child(&self.syntax)
9281    }
9282    #[inline]
9283    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9284        support::child(&self.syntax)
9285    }
9286    #[inline]
9287    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9288        support::token(&self.syntax, SyntaxKind::L_PAREN)
9289    }
9290    #[inline]
9291    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9292        support::token(&self.syntax, SyntaxKind::R_PAREN)
9293    }
9294    #[inline]
9295    pub fn json_token(&self) -> Option<SyntaxToken> {
9296        support::token(&self.syntax, SyntaxKind::JSON_KW)
9297    }
9298}
9299
9300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9301pub struct JsonFormatClause {
9302    pub(crate) syntax: SyntaxNode,
9303}
9304impl JsonFormatClause {
9305    #[inline]
9306    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
9307        support::child(&self.syntax)
9308    }
9309    #[inline]
9310    pub fn format_token(&self) -> Option<SyntaxToken> {
9311        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
9312    }
9313    #[inline]
9314    pub fn json_token(&self) -> Option<SyntaxToken> {
9315        support::token(&self.syntax, SyntaxKind::JSON_KW)
9316    }
9317}
9318
9319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9320pub struct JsonKeyValue {
9321    pub(crate) syntax: SyntaxNode,
9322}
9323impl JsonKeyValue {
9324    #[inline]
9325    pub fn expr(&self) -> Option<Expr> {
9326        support::child(&self.syntax)
9327    }
9328    #[inline]
9329    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
9330        support::child(&self.syntax)
9331    }
9332    #[inline]
9333    pub fn colon_token(&self) -> Option<SyntaxToken> {
9334        support::token(&self.syntax, SyntaxKind::COLON)
9335    }
9336}
9337
9338#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9339pub struct JsonKeysUniqueClause {
9340    pub(crate) syntax: SyntaxNode,
9341}
9342impl JsonKeysUniqueClause {
9343    #[inline]
9344    pub fn keys_token(&self) -> Option<SyntaxToken> {
9345        support::token(&self.syntax, SyntaxKind::KEYS_KW)
9346    }
9347    #[inline]
9348    pub fn unique_token(&self) -> Option<SyntaxToken> {
9349        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
9350    }
9351    #[inline]
9352    pub fn with_token(&self) -> Option<SyntaxToken> {
9353        support::token(&self.syntax, SyntaxKind::WITH_KW)
9354    }
9355    #[inline]
9356    pub fn without_token(&self) -> Option<SyntaxToken> {
9357        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9358    }
9359}
9360
9361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9362pub struct JsonNullClause {
9363    pub(crate) syntax: SyntaxNode,
9364}
9365impl JsonNullClause {
9366    #[inline]
9367    pub fn absent_token(&self) -> Option<SyntaxToken> {
9368        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
9369    }
9370    #[inline]
9371    pub fn null_token(&self) -> Option<SyntaxToken> {
9372        support::token(&self.syntax, SyntaxKind::NULL_KW)
9373    }
9374    #[inline]
9375    pub fn on_token(&self) -> Option<SyntaxToken> {
9376        support::token(&self.syntax, SyntaxKind::ON_KW)
9377    }
9378}
9379
9380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9381pub struct JsonObjectAggFn {
9382    pub(crate) syntax: SyntaxNode,
9383}
9384impl JsonObjectAggFn {
9385    #[inline]
9386    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
9387        support::child(&self.syntax)
9388    }
9389    #[inline]
9390    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9391        support::child(&self.syntax)
9392    }
9393    #[inline]
9394    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9395        support::child(&self.syntax)
9396    }
9397    #[inline]
9398    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9399        support::child(&self.syntax)
9400    }
9401    #[inline]
9402    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9403        support::token(&self.syntax, SyntaxKind::L_PAREN)
9404    }
9405    #[inline]
9406    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9407        support::token(&self.syntax, SyntaxKind::R_PAREN)
9408    }
9409    #[inline]
9410    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
9411        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
9412    }
9413}
9414
9415#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9416pub struct JsonObjectFn {
9417    pub(crate) syntax: SyntaxNode,
9418}
9419impl JsonObjectFn {
9420    #[inline]
9421    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
9422        support::children(&self.syntax)
9423    }
9424    #[inline]
9425    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9426        support::child(&self.syntax)
9427    }
9428    #[inline]
9429    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9430        support::child(&self.syntax)
9431    }
9432    #[inline]
9433    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9434        support::child(&self.syntax)
9435    }
9436    #[inline]
9437    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9438        support::token(&self.syntax, SyntaxKind::L_PAREN)
9439    }
9440    #[inline]
9441    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9442        support::token(&self.syntax, SyntaxKind::R_PAREN)
9443    }
9444    #[inline]
9445    pub fn json_object_token(&self) -> Option<SyntaxToken> {
9446        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
9447    }
9448}
9449
9450#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9451pub struct JsonOnEmptyClause {
9452    pub(crate) syntax: SyntaxNode,
9453}
9454impl JsonOnEmptyClause {
9455    #[inline]
9456    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9457        support::child(&self.syntax)
9458    }
9459    #[inline]
9460    pub fn empty_token(&self) -> Option<SyntaxToken> {
9461        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9462    }
9463    #[inline]
9464    pub fn on_token(&self) -> Option<SyntaxToken> {
9465        support::token(&self.syntax, SyntaxKind::ON_KW)
9466    }
9467}
9468
9469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9470pub struct JsonOnErrorClause {
9471    pub(crate) syntax: SyntaxNode,
9472}
9473impl JsonOnErrorClause {
9474    #[inline]
9475    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9476        support::child(&self.syntax)
9477    }
9478    #[inline]
9479    pub fn error_token(&self) -> Option<SyntaxToken> {
9480        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9481    }
9482    #[inline]
9483    pub fn on_token(&self) -> Option<SyntaxToken> {
9484        support::token(&self.syntax, SyntaxKind::ON_KW)
9485    }
9486}
9487
9488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9489pub struct JsonPassingArg {
9490    pub(crate) syntax: SyntaxNode,
9491}
9492impl JsonPassingArg {
9493    #[inline]
9494    pub fn expr(&self) -> Option<Expr> {
9495        support::child(&self.syntax)
9496    }
9497}
9498
9499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9500pub struct JsonPassingClause {
9501    pub(crate) syntax: SyntaxNode,
9502}
9503impl JsonPassingClause {
9504    #[inline]
9505    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
9506        support::children(&self.syntax)
9507    }
9508    #[inline]
9509    pub fn passing_token(&self) -> Option<SyntaxToken> {
9510        support::token(&self.syntax, SyntaxKind::PASSING_KW)
9511    }
9512}
9513
9514#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9515pub struct JsonPathClause {
9516    pub(crate) syntax: SyntaxNode,
9517}
9518impl JsonPathClause {
9519    #[inline]
9520    pub fn expr(&self) -> Option<Expr> {
9521        support::child(&self.syntax)
9522    }
9523    #[inline]
9524    pub fn path_token(&self) -> Option<SyntaxToken> {
9525        support::token(&self.syntax, SyntaxKind::PATH_KW)
9526    }
9527}
9528
9529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9530pub struct JsonQueryFn {
9531    pub(crate) syntax: SyntaxNode,
9532}
9533impl JsonQueryFn {
9534    #[inline]
9535    pub fn expr(&self) -> Option<Expr> {
9536        support::child(&self.syntax)
9537    }
9538    #[inline]
9539    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9540        support::child(&self.syntax)
9541    }
9542    #[inline]
9543    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9544        support::child(&self.syntax)
9545    }
9546    #[inline]
9547    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9548        support::child(&self.syntax)
9549    }
9550    #[inline]
9551    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9552        support::child(&self.syntax)
9553    }
9554    #[inline]
9555    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9556        support::child(&self.syntax)
9557    }
9558    #[inline]
9559    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
9560        support::child(&self.syntax)
9561    }
9562    #[inline]
9563    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9564        support::token(&self.syntax, SyntaxKind::L_PAREN)
9565    }
9566    #[inline]
9567    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9568        support::token(&self.syntax, SyntaxKind::R_PAREN)
9569    }
9570    #[inline]
9571    pub fn comma_token(&self) -> Option<SyntaxToken> {
9572        support::token(&self.syntax, SyntaxKind::COMMA)
9573    }
9574    #[inline]
9575    pub fn json_query_token(&self) -> Option<SyntaxToken> {
9576        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
9577    }
9578}
9579
9580#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9581pub struct JsonQuotesClause {
9582    pub(crate) syntax: SyntaxNode,
9583}
9584impl JsonQuotesClause {
9585    #[inline]
9586    pub fn keep_token(&self) -> Option<SyntaxToken> {
9587        support::token(&self.syntax, SyntaxKind::KEEP_KW)
9588    }
9589    #[inline]
9590    pub fn omit_token(&self) -> Option<SyntaxToken> {
9591        support::token(&self.syntax, SyntaxKind::OMIT_KW)
9592    }
9593    #[inline]
9594    pub fn quotes_token(&self) -> Option<SyntaxToken> {
9595        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
9596    }
9597}
9598
9599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9600pub struct JsonReturningClause {
9601    pub(crate) syntax: SyntaxNode,
9602}
9603impl JsonReturningClause {
9604    #[inline]
9605    pub fn ty(&self) -> Option<Type> {
9606        support::child(&self.syntax)
9607    }
9608    #[inline]
9609    pub fn returning_token(&self) -> Option<SyntaxToken> {
9610        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
9611    }
9612}
9613
9614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9615pub struct JsonScalarFn {
9616    pub(crate) syntax: SyntaxNode,
9617}
9618impl JsonScalarFn {
9619    #[inline]
9620    pub fn expr(&self) -> Option<Expr> {
9621        support::child(&self.syntax)
9622    }
9623    #[inline]
9624    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9625        support::token(&self.syntax, SyntaxKind::L_PAREN)
9626    }
9627    #[inline]
9628    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9629        support::token(&self.syntax, SyntaxKind::R_PAREN)
9630    }
9631    #[inline]
9632    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
9633        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
9634    }
9635}
9636
9637#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9638pub struct JsonSelectFormat {
9639    pub(crate) syntax: SyntaxNode,
9640}
9641impl JsonSelectFormat {
9642    #[inline]
9643    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9644        support::child(&self.syntax)
9645    }
9646    #[inline]
9647    pub fn select_variant(&self) -> Option<SelectVariant> {
9648        support::child(&self.syntax)
9649    }
9650}
9651
9652#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9653pub struct JsonSerializeFn {
9654    pub(crate) syntax: SyntaxNode,
9655}
9656impl JsonSerializeFn {
9657    #[inline]
9658    pub fn expr(&self) -> Option<Expr> {
9659        support::child(&self.syntax)
9660    }
9661    #[inline]
9662    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9663        support::child(&self.syntax)
9664    }
9665    #[inline]
9666    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9667        support::child(&self.syntax)
9668    }
9669    #[inline]
9670    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9671        support::token(&self.syntax, SyntaxKind::L_PAREN)
9672    }
9673    #[inline]
9674    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9675        support::token(&self.syntax, SyntaxKind::R_PAREN)
9676    }
9677    #[inline]
9678    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
9679        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
9680    }
9681}
9682
9683#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9684pub struct JsonTable {
9685    pub(crate) syntax: SyntaxNode,
9686}
9687impl JsonTable {
9688    #[inline]
9689    pub fn expr(&self) -> Option<Expr> {
9690        support::child(&self.syntax)
9691    }
9692    #[inline]
9693    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9694        support::child(&self.syntax)
9695    }
9696    #[inline]
9697    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9698        support::child(&self.syntax)
9699    }
9700    #[inline]
9701    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9702        support::child(&self.syntax)
9703    }
9704    #[inline]
9705    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
9706        support::child(&self.syntax)
9707    }
9708    #[inline]
9709    pub fn name(&self) -> Option<Name> {
9710        support::child(&self.syntax)
9711    }
9712    #[inline]
9713    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9714        support::token(&self.syntax, SyntaxKind::L_PAREN)
9715    }
9716    #[inline]
9717    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9718        support::token(&self.syntax, SyntaxKind::R_PAREN)
9719    }
9720    #[inline]
9721    pub fn comma_token(&self) -> Option<SyntaxToken> {
9722        support::token(&self.syntax, SyntaxKind::COMMA)
9723    }
9724    #[inline]
9725    pub fn as_token(&self) -> Option<SyntaxToken> {
9726        support::token(&self.syntax, SyntaxKind::AS_KW)
9727    }
9728    #[inline]
9729    pub fn json_table_token(&self) -> Option<SyntaxToken> {
9730        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
9731    }
9732}
9733
9734#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9735pub struct JsonTableColumn {
9736    pub(crate) syntax: SyntaxNode,
9737}
9738impl JsonTableColumn {
9739    #[inline]
9740    pub fn expr(&self) -> Option<Expr> {
9741        support::child(&self.syntax)
9742    }
9743    #[inline]
9744    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9745        support::child(&self.syntax)
9746    }
9747    #[inline]
9748    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
9749        support::child(&self.syntax)
9750    }
9751    #[inline]
9752    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9753        support::child(&self.syntax)
9754    }
9755    #[inline]
9756    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
9757        support::child(&self.syntax)
9758    }
9759    #[inline]
9760    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9761        support::child(&self.syntax)
9762    }
9763    #[inline]
9764    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
9765        support::child(&self.syntax)
9766    }
9767    #[inline]
9768    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
9769        support::child(&self.syntax)
9770    }
9771    #[inline]
9772    pub fn name(&self) -> Option<Name> {
9773        support::child(&self.syntax)
9774    }
9775    #[inline]
9776    pub fn ty(&self) -> Option<Type> {
9777        support::child(&self.syntax)
9778    }
9779    #[inline]
9780    pub fn as_token(&self) -> Option<SyntaxToken> {
9781        support::token(&self.syntax, SyntaxKind::AS_KW)
9782    }
9783    #[inline]
9784    pub fn exists_token(&self) -> Option<SyntaxToken> {
9785        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9786    }
9787    #[inline]
9788    pub fn for_token(&self) -> Option<SyntaxToken> {
9789        support::token(&self.syntax, SyntaxKind::FOR_KW)
9790    }
9791    #[inline]
9792    pub fn nested_token(&self) -> Option<SyntaxToken> {
9793        support::token(&self.syntax, SyntaxKind::NESTED_KW)
9794    }
9795    #[inline]
9796    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
9797        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
9798    }
9799    #[inline]
9800    pub fn path_token(&self) -> Option<SyntaxToken> {
9801        support::token(&self.syntax, SyntaxKind::PATH_KW)
9802    }
9803}
9804
9805#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9806pub struct JsonTableColumnList {
9807    pub(crate) syntax: SyntaxNode,
9808}
9809impl JsonTableColumnList {
9810    #[inline]
9811    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
9812        support::children(&self.syntax)
9813    }
9814    #[inline]
9815    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9816        support::token(&self.syntax, SyntaxKind::L_PAREN)
9817    }
9818    #[inline]
9819    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9820        support::token(&self.syntax, SyntaxKind::R_PAREN)
9821    }
9822    #[inline]
9823    pub fn columns_token(&self) -> Option<SyntaxToken> {
9824        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
9825    }
9826}
9827
9828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9829pub struct JsonValueExpr {
9830    pub(crate) syntax: SyntaxNode,
9831}
9832impl JsonValueExpr {
9833    #[inline]
9834    pub fn expr(&self) -> Option<Expr> {
9835        support::child(&self.syntax)
9836    }
9837    #[inline]
9838    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9839        support::child(&self.syntax)
9840    }
9841}
9842
9843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9844pub struct JsonValueFn {
9845    pub(crate) syntax: SyntaxNode,
9846}
9847impl JsonValueFn {
9848    #[inline]
9849    pub fn expr(&self) -> Option<Expr> {
9850        support::child(&self.syntax)
9851    }
9852    #[inline]
9853    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9854        support::child(&self.syntax)
9855    }
9856    #[inline]
9857    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9858        support::child(&self.syntax)
9859    }
9860    #[inline]
9861    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9862        support::child(&self.syntax)
9863    }
9864    #[inline]
9865    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9866        support::child(&self.syntax)
9867    }
9868    #[inline]
9869    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9870        support::token(&self.syntax, SyntaxKind::L_PAREN)
9871    }
9872    #[inline]
9873    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9874        support::token(&self.syntax, SyntaxKind::R_PAREN)
9875    }
9876    #[inline]
9877    pub fn comma_token(&self) -> Option<SyntaxToken> {
9878        support::token(&self.syntax, SyntaxKind::COMMA)
9879    }
9880    #[inline]
9881    pub fn json_value_token(&self) -> Option<SyntaxToken> {
9882        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
9883    }
9884}
9885
9886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9887pub struct JsonWrapperBehaviorClause {
9888    pub(crate) syntax: SyntaxNode,
9889}
9890impl JsonWrapperBehaviorClause {
9891    #[inline]
9892    pub fn array_token(&self) -> Option<SyntaxToken> {
9893        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9894    }
9895    #[inline]
9896    pub fn conditional_token(&self) -> Option<SyntaxToken> {
9897        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
9898    }
9899    #[inline]
9900    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
9901        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
9902    }
9903    #[inline]
9904    pub fn with_token(&self) -> Option<SyntaxToken> {
9905        support::token(&self.syntax, SyntaxKind::WITH_KW)
9906    }
9907    #[inline]
9908    pub fn without_token(&self) -> Option<SyntaxToken> {
9909        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9910    }
9911    #[inline]
9912    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
9913        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
9914    }
9915}
9916
9917#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9918pub struct LanguageFuncOption {
9919    pub(crate) syntax: SyntaxNode,
9920}
9921impl LanguageFuncOption {
9922    #[inline]
9923    pub fn name_ref(&self) -> Option<NameRef> {
9924        support::child(&self.syntax)
9925    }
9926    #[inline]
9927    pub fn language_token(&self) -> Option<SyntaxToken> {
9928        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
9929    }
9930}
9931
9932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9933pub struct LeakproofFuncOption {
9934    pub(crate) syntax: SyntaxNode,
9935}
9936impl LeakproofFuncOption {
9937    #[inline]
9938    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
9939        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
9940    }
9941    #[inline]
9942    pub fn not_token(&self) -> Option<SyntaxToken> {
9943        support::token(&self.syntax, SyntaxKind::NOT_KW)
9944    }
9945}
9946
9947#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9948pub struct LikeClause {
9949    pub(crate) syntax: SyntaxNode,
9950}
9951impl LikeClause {
9952    #[inline]
9953    pub fn like_options(&self) -> AstChildren<LikeOption> {
9954        support::children(&self.syntax)
9955    }
9956    #[inline]
9957    pub fn path(&self) -> Option<Path> {
9958        support::child(&self.syntax)
9959    }
9960    #[inline]
9961    pub fn like_token(&self) -> Option<SyntaxToken> {
9962        support::token(&self.syntax, SyntaxKind::LIKE_KW)
9963    }
9964}
9965
9966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9967pub struct LikeOption {
9968    pub(crate) syntax: SyntaxNode,
9969}
9970impl LikeOption {
9971    #[inline]
9972    pub fn all_token(&self) -> Option<SyntaxToken> {
9973        support::token(&self.syntax, SyntaxKind::ALL_KW)
9974    }
9975    #[inline]
9976    pub fn comments_token(&self) -> Option<SyntaxToken> {
9977        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
9978    }
9979    #[inline]
9980    pub fn compression_token(&self) -> Option<SyntaxToken> {
9981        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
9982    }
9983    #[inline]
9984    pub fn constraints_token(&self) -> Option<SyntaxToken> {
9985        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
9986    }
9987    #[inline]
9988    pub fn defaults_token(&self) -> Option<SyntaxToken> {
9989        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
9990    }
9991    #[inline]
9992    pub fn excluding_token(&self) -> Option<SyntaxToken> {
9993        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
9994    }
9995    #[inline]
9996    pub fn generated_token(&self) -> Option<SyntaxToken> {
9997        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
9998    }
9999    #[inline]
10000    pub fn identity_token(&self) -> Option<SyntaxToken> {
10001        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
10002    }
10003    #[inline]
10004    pub fn including_token(&self) -> Option<SyntaxToken> {
10005        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
10006    }
10007    #[inline]
10008    pub fn indexes_token(&self) -> Option<SyntaxToken> {
10009        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
10010    }
10011    #[inline]
10012    pub fn statistics_token(&self) -> Option<SyntaxToken> {
10013        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
10014    }
10015    #[inline]
10016    pub fn storage_token(&self) -> Option<SyntaxToken> {
10017        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
10018    }
10019}
10020
10021#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10022pub struct LimitClause {
10023    pub(crate) syntax: SyntaxNode,
10024}
10025impl LimitClause {
10026    #[inline]
10027    pub fn expr(&self) -> Option<Expr> {
10028        support::child(&self.syntax)
10029    }
10030    #[inline]
10031    pub fn all_token(&self) -> Option<SyntaxToken> {
10032        support::token(&self.syntax, SyntaxKind::ALL_KW)
10033    }
10034    #[inline]
10035    pub fn limit_token(&self) -> Option<SyntaxToken> {
10036        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10037    }
10038}
10039
10040#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10041pub struct LimitToTables {
10042    pub(crate) syntax: SyntaxNode,
10043}
10044impl LimitToTables {
10045    #[inline]
10046    pub fn name_refs(&self) -> AstChildren<NameRef> {
10047        support::children(&self.syntax)
10048    }
10049    #[inline]
10050    pub fn limit_token(&self) -> Option<SyntaxToken> {
10051        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10052    }
10053    #[inline]
10054    pub fn to_token(&self) -> Option<SyntaxToken> {
10055        support::token(&self.syntax, SyntaxKind::TO_KW)
10056    }
10057}
10058
10059#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10060pub struct Listen {
10061    pub(crate) syntax: SyntaxNode,
10062}
10063impl Listen {
10064    #[inline]
10065    pub fn name(&self) -> Option<Name> {
10066        support::child(&self.syntax)
10067    }
10068    #[inline]
10069    pub fn listen_token(&self) -> Option<SyntaxToken> {
10070        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
10071    }
10072}
10073
10074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10075pub struct Literal {
10076    pub(crate) syntax: SyntaxNode,
10077}
10078impl Literal {}
10079
10080#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10081pub struct Load {
10082    pub(crate) syntax: SyntaxNode,
10083}
10084impl Load {
10085    #[inline]
10086    pub fn literal(&self) -> Option<Literal> {
10087        support::child(&self.syntax)
10088    }
10089    #[inline]
10090    pub fn load_token(&self) -> Option<SyntaxToken> {
10091        support::token(&self.syntax, SyntaxKind::LOAD_KW)
10092    }
10093}
10094
10095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10096pub struct Lock {
10097    pub(crate) syntax: SyntaxNode,
10098}
10099impl Lock {
10100    #[inline]
10101    pub fn table_list(&self) -> Option<TableList> {
10102        support::child(&self.syntax)
10103    }
10104    #[inline]
10105    pub fn lock_token(&self) -> Option<SyntaxToken> {
10106        support::token(&self.syntax, SyntaxKind::LOCK_KW)
10107    }
10108    #[inline]
10109    pub fn table_token(&self) -> Option<SyntaxToken> {
10110        support::token(&self.syntax, SyntaxKind::TABLE_KW)
10111    }
10112}
10113
10114#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10115pub struct LockingClause {
10116    pub(crate) syntax: SyntaxNode,
10117}
10118impl LockingClause {
10119    #[inline]
10120    pub fn for_token(&self) -> Option<SyntaxToken> {
10121        support::token(&self.syntax, SyntaxKind::FOR_KW)
10122    }
10123}
10124
10125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10126pub struct Lteq {
10127    pub(crate) syntax: SyntaxNode,
10128}
10129impl Lteq {
10130    #[inline]
10131    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10132        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10133    }
10134    #[inline]
10135    pub fn eq_token(&self) -> Option<SyntaxToken> {
10136        support::token(&self.syntax, SyntaxKind::EQ)
10137    }
10138}
10139
10140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10141pub struct MatchFull {
10142    pub(crate) syntax: SyntaxNode,
10143}
10144impl MatchFull {
10145    #[inline]
10146    pub fn full_token(&self) -> Option<SyntaxToken> {
10147        support::token(&self.syntax, SyntaxKind::FULL_KW)
10148    }
10149    #[inline]
10150    pub fn match_token(&self) -> Option<SyntaxToken> {
10151        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10152    }
10153}
10154
10155#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10156pub struct MatchPartial {
10157    pub(crate) syntax: SyntaxNode,
10158}
10159impl MatchPartial {
10160    #[inline]
10161    pub fn match_token(&self) -> Option<SyntaxToken> {
10162        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10163    }
10164    #[inline]
10165    pub fn partial_token(&self) -> Option<SyntaxToken> {
10166        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
10167    }
10168}
10169
10170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10171pub struct MatchSimple {
10172    pub(crate) syntax: SyntaxNode,
10173}
10174impl MatchSimple {
10175    #[inline]
10176    pub fn match_token(&self) -> Option<SyntaxToken> {
10177        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10178    }
10179    #[inline]
10180    pub fn simple_token(&self) -> Option<SyntaxToken> {
10181        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
10182    }
10183}
10184
10185#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10186pub struct Materialized {
10187    pub(crate) syntax: SyntaxNode,
10188}
10189impl Materialized {
10190    #[inline]
10191    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10192        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10193    }
10194}
10195
10196#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10197pub struct Merge {
10198    pub(crate) syntax: SyntaxNode,
10199}
10200impl Merge {
10201    #[inline]
10202    pub fn alias(&self) -> Option<Alias> {
10203        support::child(&self.syntax)
10204    }
10205    #[inline]
10206    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
10207        support::children(&self.syntax)
10208    }
10209    #[inline]
10210    pub fn relation_name(&self) -> Option<RelationName> {
10211        support::child(&self.syntax)
10212    }
10213    #[inline]
10214    pub fn returning_clause(&self) -> Option<ReturningClause> {
10215        support::child(&self.syntax)
10216    }
10217    #[inline]
10218    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
10219        support::child(&self.syntax)
10220    }
10221    #[inline]
10222    pub fn into_token(&self) -> Option<SyntaxToken> {
10223        support::token(&self.syntax, SyntaxKind::INTO_KW)
10224    }
10225    #[inline]
10226    pub fn merge_token(&self) -> Option<SyntaxToken> {
10227        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10228    }
10229}
10230
10231#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10232pub struct MergeDelete {
10233    pub(crate) syntax: SyntaxNode,
10234}
10235impl MergeDelete {
10236    #[inline]
10237    pub fn delete_token(&self) -> Option<SyntaxToken> {
10238        support::token(&self.syntax, SyntaxKind::DELETE_KW)
10239    }
10240}
10241
10242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10243pub struct MergeDoNothing {
10244    pub(crate) syntax: SyntaxNode,
10245}
10246impl MergeDoNothing {
10247    #[inline]
10248    pub fn do_token(&self) -> Option<SyntaxToken> {
10249        support::token(&self.syntax, SyntaxKind::DO_KW)
10250    }
10251    #[inline]
10252    pub fn nothing_token(&self) -> Option<SyntaxToken> {
10253        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
10254    }
10255}
10256
10257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10258pub struct MergeInsert {
10259    pub(crate) syntax: SyntaxNode,
10260}
10261impl MergeInsert {
10262    #[inline]
10263    pub fn column_list(&self) -> Option<ColumnList> {
10264        support::child(&self.syntax)
10265    }
10266    #[inline]
10267    pub fn values(&self) -> Option<Values> {
10268        support::child(&self.syntax)
10269    }
10270    #[inline]
10271    pub fn default_token(&self) -> Option<SyntaxToken> {
10272        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10273    }
10274    #[inline]
10275    pub fn insert_token(&self) -> Option<SyntaxToken> {
10276        support::token(&self.syntax, SyntaxKind::INSERT_KW)
10277    }
10278    #[inline]
10279    pub fn overriding_token(&self) -> Option<SyntaxToken> {
10280        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
10281    }
10282    #[inline]
10283    pub fn system_token(&self) -> Option<SyntaxToken> {
10284        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
10285    }
10286    #[inline]
10287    pub fn user_token(&self) -> Option<SyntaxToken> {
10288        support::token(&self.syntax, SyntaxKind::USER_KW)
10289    }
10290    #[inline]
10291    pub fn values_token(&self) -> Option<SyntaxToken> {
10292        support::token(&self.syntax, SyntaxKind::VALUES_KW)
10293    }
10294}
10295
10296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10297pub struct MergePartitions {
10298    pub(crate) syntax: SyntaxNode,
10299}
10300impl MergePartitions {
10301    #[inline]
10302    pub fn path(&self) -> Option<Path> {
10303        support::child(&self.syntax)
10304    }
10305    #[inline]
10306    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10307        support::token(&self.syntax, SyntaxKind::L_PAREN)
10308    }
10309    #[inline]
10310    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10311        support::token(&self.syntax, SyntaxKind::R_PAREN)
10312    }
10313    #[inline]
10314    pub fn into_token(&self) -> Option<SyntaxToken> {
10315        support::token(&self.syntax, SyntaxKind::INTO_KW)
10316    }
10317    #[inline]
10318    pub fn merge_token(&self) -> Option<SyntaxToken> {
10319        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10320    }
10321    #[inline]
10322    pub fn partitions_token(&self) -> Option<SyntaxToken> {
10323        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
10324    }
10325}
10326
10327#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10328pub struct MergeUpdate {
10329    pub(crate) syntax: SyntaxNode,
10330}
10331impl MergeUpdate {
10332    #[inline]
10333    pub fn set_clause(&self) -> Option<SetClause> {
10334        support::child(&self.syntax)
10335    }
10336    #[inline]
10337    pub fn set_token(&self) -> Option<SyntaxToken> {
10338        support::token(&self.syntax, SyntaxKind::SET_KW)
10339    }
10340    #[inline]
10341    pub fn update_token(&self) -> Option<SyntaxToken> {
10342        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
10343    }
10344}
10345
10346#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10347pub struct MergeWhenMatched {
10348    pub(crate) syntax: SyntaxNode,
10349}
10350impl MergeWhenMatched {
10351    #[inline]
10352    pub fn expr(&self) -> Option<Expr> {
10353        support::child(&self.syntax)
10354    }
10355    #[inline]
10356    pub fn merge_action(&self) -> Option<MergeAction> {
10357        support::child(&self.syntax)
10358    }
10359    #[inline]
10360    pub fn and_token(&self) -> Option<SyntaxToken> {
10361        support::token(&self.syntax, SyntaxKind::AND_KW)
10362    }
10363    #[inline]
10364    pub fn matched_token(&self) -> Option<SyntaxToken> {
10365        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10366    }
10367    #[inline]
10368    pub fn then_token(&self) -> Option<SyntaxToken> {
10369        support::token(&self.syntax, SyntaxKind::THEN_KW)
10370    }
10371    #[inline]
10372    pub fn when_token(&self) -> Option<SyntaxToken> {
10373        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10374    }
10375}
10376
10377#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10378pub struct MergeWhenNotMatchedSource {
10379    pub(crate) syntax: SyntaxNode,
10380}
10381impl MergeWhenNotMatchedSource {
10382    #[inline]
10383    pub fn expr(&self) -> Option<Expr> {
10384        support::child(&self.syntax)
10385    }
10386    #[inline]
10387    pub fn merge_action(&self) -> Option<MergeAction> {
10388        support::child(&self.syntax)
10389    }
10390    #[inline]
10391    pub fn and_token(&self) -> Option<SyntaxToken> {
10392        support::token(&self.syntax, SyntaxKind::AND_KW)
10393    }
10394    #[inline]
10395    pub fn by_token(&self) -> Option<SyntaxToken> {
10396        support::token(&self.syntax, SyntaxKind::BY_KW)
10397    }
10398    #[inline]
10399    pub fn matched_token(&self) -> Option<SyntaxToken> {
10400        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10401    }
10402    #[inline]
10403    pub fn not_token(&self) -> Option<SyntaxToken> {
10404        support::token(&self.syntax, SyntaxKind::NOT_KW)
10405    }
10406    #[inline]
10407    pub fn source_token(&self) -> Option<SyntaxToken> {
10408        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
10409    }
10410    #[inline]
10411    pub fn then_token(&self) -> Option<SyntaxToken> {
10412        support::token(&self.syntax, SyntaxKind::THEN_KW)
10413    }
10414    #[inline]
10415    pub fn when_token(&self) -> Option<SyntaxToken> {
10416        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10417    }
10418}
10419
10420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10421pub struct MergeWhenNotMatchedTarget {
10422    pub(crate) syntax: SyntaxNode,
10423}
10424impl MergeWhenNotMatchedTarget {
10425    #[inline]
10426    pub fn expr(&self) -> Option<Expr> {
10427        support::child(&self.syntax)
10428    }
10429    #[inline]
10430    pub fn merge_action(&self) -> Option<MergeAction> {
10431        support::child(&self.syntax)
10432    }
10433    #[inline]
10434    pub fn and_token(&self) -> Option<SyntaxToken> {
10435        support::token(&self.syntax, SyntaxKind::AND_KW)
10436    }
10437    #[inline]
10438    pub fn by_token(&self) -> Option<SyntaxToken> {
10439        support::token(&self.syntax, SyntaxKind::BY_KW)
10440    }
10441    #[inline]
10442    pub fn matched_token(&self) -> Option<SyntaxToken> {
10443        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10444    }
10445    #[inline]
10446    pub fn not_token(&self) -> Option<SyntaxToken> {
10447        support::token(&self.syntax, SyntaxKind::NOT_KW)
10448    }
10449    #[inline]
10450    pub fn target_token(&self) -> Option<SyntaxToken> {
10451        support::token(&self.syntax, SyntaxKind::TARGET_KW)
10452    }
10453    #[inline]
10454    pub fn then_token(&self) -> Option<SyntaxToken> {
10455        support::token(&self.syntax, SyntaxKind::THEN_KW)
10456    }
10457    #[inline]
10458    pub fn when_token(&self) -> Option<SyntaxToken> {
10459        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10460    }
10461}
10462
10463#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10464pub struct Move {
10465    pub(crate) syntax: SyntaxNode,
10466}
10467impl Move {
10468    #[inline]
10469    pub fn name_ref(&self) -> Option<NameRef> {
10470        support::child(&self.syntax)
10471    }
10472    #[inline]
10473    pub fn from_token(&self) -> Option<SyntaxToken> {
10474        support::token(&self.syntax, SyntaxKind::FROM_KW)
10475    }
10476    #[inline]
10477    pub fn in_token(&self) -> Option<SyntaxToken> {
10478        support::token(&self.syntax, SyntaxKind::IN_KW)
10479    }
10480    #[inline]
10481    pub fn move_token(&self) -> Option<SyntaxToken> {
10482        support::token(&self.syntax, SyntaxKind::MOVE_KW)
10483    }
10484}
10485
10486#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10487pub struct Name {
10488    pub(crate) syntax: SyntaxNode,
10489}
10490impl Name {
10491    #[inline]
10492    pub fn ident_token(&self) -> Option<SyntaxToken> {
10493        support::token(&self.syntax, SyntaxKind::IDENT)
10494    }
10495}
10496
10497#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10498pub struct NameRef {
10499    pub(crate) syntax: SyntaxNode,
10500}
10501impl NameRef {
10502    #[inline]
10503    pub fn ident_token(&self) -> Option<SyntaxToken> {
10504        support::token(&self.syntax, SyntaxKind::IDENT)
10505    }
10506}
10507
10508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10509pub struct NamedArg {
10510    pub(crate) syntax: SyntaxNode,
10511}
10512impl NamedArg {
10513    #[inline]
10514    pub fn expr(&self) -> Option<Expr> {
10515        support::child(&self.syntax)
10516    }
10517    #[inline]
10518    pub fn fat_arrow(&self) -> Option<FatArrow> {
10519        support::child(&self.syntax)
10520    }
10521    #[inline]
10522    pub fn name_ref(&self) -> Option<NameRef> {
10523        support::child(&self.syntax)
10524    }
10525}
10526
10527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10528pub struct Neq {
10529    pub(crate) syntax: SyntaxNode,
10530}
10531impl Neq {
10532    #[inline]
10533    pub fn bang_token(&self) -> Option<SyntaxToken> {
10534        support::token(&self.syntax, SyntaxKind::BANG)
10535    }
10536    #[inline]
10537    pub fn eq_token(&self) -> Option<SyntaxToken> {
10538        support::token(&self.syntax, SyntaxKind::EQ)
10539    }
10540}
10541
10542#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10543pub struct Neqb {
10544    pub(crate) syntax: SyntaxNode,
10545}
10546impl Neqb {
10547    #[inline]
10548    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10549        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10550    }
10551    #[inline]
10552    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
10553        support::token(&self.syntax, SyntaxKind::R_ANGLE)
10554    }
10555}
10556
10557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10558pub struct NoAction {
10559    pub(crate) syntax: SyntaxNode,
10560}
10561impl NoAction {
10562    #[inline]
10563    pub fn action_token(&self) -> Option<SyntaxToken> {
10564        support::token(&self.syntax, SyntaxKind::ACTION_KW)
10565    }
10566    #[inline]
10567    pub fn no_token(&self) -> Option<SyntaxToken> {
10568        support::token(&self.syntax, SyntaxKind::NO_KW)
10569    }
10570}
10571
10572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10573pub struct NoDependsOnExtension {
10574    pub(crate) syntax: SyntaxNode,
10575}
10576impl NoDependsOnExtension {
10577    #[inline]
10578    pub fn name_ref(&self) -> Option<NameRef> {
10579        support::child(&self.syntax)
10580    }
10581    #[inline]
10582    pub fn depends_token(&self) -> Option<SyntaxToken> {
10583        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
10584    }
10585    #[inline]
10586    pub fn extension_token(&self) -> Option<SyntaxToken> {
10587        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
10588    }
10589    #[inline]
10590    pub fn no_token(&self) -> Option<SyntaxToken> {
10591        support::token(&self.syntax, SyntaxKind::NO_KW)
10592    }
10593    #[inline]
10594    pub fn on_token(&self) -> Option<SyntaxToken> {
10595        support::token(&self.syntax, SyntaxKind::ON_KW)
10596    }
10597}
10598
10599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10600pub struct NoForceRls {
10601    pub(crate) syntax: SyntaxNode,
10602}
10603impl NoForceRls {
10604    #[inline]
10605    pub fn force_token(&self) -> Option<SyntaxToken> {
10606        support::token(&self.syntax, SyntaxKind::FORCE_KW)
10607    }
10608    #[inline]
10609    pub fn level_token(&self) -> Option<SyntaxToken> {
10610        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
10611    }
10612    #[inline]
10613    pub fn no_token(&self) -> Option<SyntaxToken> {
10614        support::token(&self.syntax, SyntaxKind::NO_KW)
10615    }
10616    #[inline]
10617    pub fn row_token(&self) -> Option<SyntaxToken> {
10618        support::token(&self.syntax, SyntaxKind::ROW_KW)
10619    }
10620    #[inline]
10621    pub fn security_token(&self) -> Option<SyntaxToken> {
10622        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
10623    }
10624}
10625
10626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10627pub struct NoInherit {
10628    pub(crate) syntax: SyntaxNode,
10629}
10630impl NoInherit {
10631    #[inline]
10632    pub fn path(&self) -> Option<Path> {
10633        support::child(&self.syntax)
10634    }
10635    #[inline]
10636    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10637        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10638    }
10639    #[inline]
10640    pub fn no_token(&self) -> Option<SyntaxToken> {
10641        support::token(&self.syntax, SyntaxKind::NO_KW)
10642    }
10643}
10644
10645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10646pub struct NoInheritTable {
10647    pub(crate) syntax: SyntaxNode,
10648}
10649impl NoInheritTable {
10650    #[inline]
10651    pub fn path(&self) -> Option<Path> {
10652        support::child(&self.syntax)
10653    }
10654    #[inline]
10655    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10656        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10657    }
10658    #[inline]
10659    pub fn no_token(&self) -> Option<SyntaxToken> {
10660        support::token(&self.syntax, SyntaxKind::NO_KW)
10661    }
10662}
10663
10664#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10665pub struct NonStandardParam {
10666    pub(crate) syntax: SyntaxNode,
10667}
10668impl NonStandardParam {
10669    #[inline]
10670    pub fn name_ref(&self) -> Option<NameRef> {
10671        support::child(&self.syntax)
10672    }
10673    #[inline]
10674    pub fn colon_token(&self) -> Option<SyntaxToken> {
10675        support::token(&self.syntax, SyntaxKind::COLON)
10676    }
10677}
10678
10679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10680pub struct NotDeferrable {
10681    pub(crate) syntax: SyntaxNode,
10682}
10683impl NotDeferrable {
10684    #[inline]
10685    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10686        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10687    }
10688    #[inline]
10689    pub fn not_token(&self) -> Option<SyntaxToken> {
10690        support::token(&self.syntax, SyntaxKind::NOT_KW)
10691    }
10692}
10693
10694#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10695pub struct NotDeferrableConstraintOption {
10696    pub(crate) syntax: SyntaxNode,
10697}
10698impl NotDeferrableConstraintOption {
10699    #[inline]
10700    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10701        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10702    }
10703    #[inline]
10704    pub fn not_token(&self) -> Option<SyntaxToken> {
10705        support::token(&self.syntax, SyntaxKind::NOT_KW)
10706    }
10707}
10708
10709#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10710pub struct NotEnforced {
10711    pub(crate) syntax: SyntaxNode,
10712}
10713impl NotEnforced {
10714    #[inline]
10715    pub fn enforced_token(&self) -> Option<SyntaxToken> {
10716        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
10717    }
10718    #[inline]
10719    pub fn not_token(&self) -> Option<SyntaxToken> {
10720        support::token(&self.syntax, SyntaxKind::NOT_KW)
10721    }
10722}
10723
10724#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10725pub struct NotIlike {
10726    pub(crate) syntax: SyntaxNode,
10727}
10728impl NotIlike {
10729    #[inline]
10730    pub fn ilike_token(&self) -> Option<SyntaxToken> {
10731        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
10732    }
10733    #[inline]
10734    pub fn not_token(&self) -> Option<SyntaxToken> {
10735        support::token(&self.syntax, SyntaxKind::NOT_KW)
10736    }
10737}
10738
10739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10740pub struct NotIn {
10741    pub(crate) syntax: SyntaxNode,
10742}
10743impl NotIn {
10744    #[inline]
10745    pub fn in_token(&self) -> Option<SyntaxToken> {
10746        support::token(&self.syntax, SyntaxKind::IN_KW)
10747    }
10748    #[inline]
10749    pub fn not_token(&self) -> Option<SyntaxToken> {
10750        support::token(&self.syntax, SyntaxKind::NOT_KW)
10751    }
10752}
10753
10754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10755pub struct NotLike {
10756    pub(crate) syntax: SyntaxNode,
10757}
10758impl NotLike {
10759    #[inline]
10760    pub fn like_token(&self) -> Option<SyntaxToken> {
10761        support::token(&self.syntax, SyntaxKind::LIKE_KW)
10762    }
10763    #[inline]
10764    pub fn not_token(&self) -> Option<SyntaxToken> {
10765        support::token(&self.syntax, SyntaxKind::NOT_KW)
10766    }
10767}
10768
10769#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10770pub struct NotMaterialized {
10771    pub(crate) syntax: SyntaxNode,
10772}
10773impl NotMaterialized {
10774    #[inline]
10775    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10776        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10777    }
10778    #[inline]
10779    pub fn not_token(&self) -> Option<SyntaxToken> {
10780        support::token(&self.syntax, SyntaxKind::NOT_KW)
10781    }
10782}
10783
10784#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10785pub struct NotNullConstraint {
10786    pub(crate) syntax: SyntaxNode,
10787}
10788impl NotNullConstraint {
10789    #[inline]
10790    pub fn name_ref(&self) -> Option<NameRef> {
10791        support::child(&self.syntax)
10792    }
10793    #[inline]
10794    pub fn no_inherit(&self) -> Option<NoInherit> {
10795        support::child(&self.syntax)
10796    }
10797    #[inline]
10798    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10799        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10800    }
10801    #[inline]
10802    pub fn not_token(&self) -> Option<SyntaxToken> {
10803        support::token(&self.syntax, SyntaxKind::NOT_KW)
10804    }
10805    #[inline]
10806    pub fn null_token(&self) -> Option<SyntaxToken> {
10807        support::token(&self.syntax, SyntaxKind::NULL_KW)
10808    }
10809}
10810
10811#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10812pub struct NotOf {
10813    pub(crate) syntax: SyntaxNode,
10814}
10815impl NotOf {
10816    #[inline]
10817    pub fn not_token(&self) -> Option<SyntaxToken> {
10818        support::token(&self.syntax, SyntaxKind::NOT_KW)
10819    }
10820    #[inline]
10821    pub fn of_token(&self) -> Option<SyntaxToken> {
10822        support::token(&self.syntax, SyntaxKind::OF_KW)
10823    }
10824}
10825
10826#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10827pub struct NotSimilarTo {
10828    pub(crate) syntax: SyntaxNode,
10829}
10830impl NotSimilarTo {
10831    #[inline]
10832    pub fn not_token(&self) -> Option<SyntaxToken> {
10833        support::token(&self.syntax, SyntaxKind::NOT_KW)
10834    }
10835    #[inline]
10836    pub fn similar_token(&self) -> Option<SyntaxToken> {
10837        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
10838    }
10839    #[inline]
10840    pub fn to_token(&self) -> Option<SyntaxToken> {
10841        support::token(&self.syntax, SyntaxKind::TO_KW)
10842    }
10843}
10844
10845#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10846pub struct NotValid {
10847    pub(crate) syntax: SyntaxNode,
10848}
10849impl NotValid {
10850    #[inline]
10851    pub fn not_token(&self) -> Option<SyntaxToken> {
10852        support::token(&self.syntax, SyntaxKind::NOT_KW)
10853    }
10854    #[inline]
10855    pub fn valid_token(&self) -> Option<SyntaxToken> {
10856        support::token(&self.syntax, SyntaxKind::VALID_KW)
10857    }
10858}
10859
10860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10861pub struct Notify {
10862    pub(crate) syntax: SyntaxNode,
10863}
10864impl Notify {
10865    #[inline]
10866    pub fn literal(&self) -> Option<Literal> {
10867        support::child(&self.syntax)
10868    }
10869    #[inline]
10870    pub fn name_ref(&self) -> Option<NameRef> {
10871        support::child(&self.syntax)
10872    }
10873    #[inline]
10874    pub fn comma_token(&self) -> Option<SyntaxToken> {
10875        support::token(&self.syntax, SyntaxKind::COMMA)
10876    }
10877    #[inline]
10878    pub fn notify_token(&self) -> Option<SyntaxToken> {
10879        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
10880    }
10881}
10882
10883#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10884pub struct NullConstraint {
10885    pub(crate) syntax: SyntaxNode,
10886}
10887impl NullConstraint {
10888    #[inline]
10889    pub fn name_ref(&self) -> Option<NameRef> {
10890        support::child(&self.syntax)
10891    }
10892    #[inline]
10893    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10894        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10895    }
10896    #[inline]
10897    pub fn null_token(&self) -> Option<SyntaxToken> {
10898        support::token(&self.syntax, SyntaxKind::NULL_KW)
10899    }
10900}
10901
10902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10903pub struct NullsDistinct {
10904    pub(crate) syntax: SyntaxNode,
10905}
10906impl NullsDistinct {
10907    #[inline]
10908    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10909        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10910    }
10911    #[inline]
10912    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10913        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10914    }
10915}
10916
10917#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10918pub struct NullsFirst {
10919    pub(crate) syntax: SyntaxNode,
10920}
10921impl NullsFirst {
10922    #[inline]
10923    pub fn first_token(&self) -> Option<SyntaxToken> {
10924        support::token(&self.syntax, SyntaxKind::FIRST_KW)
10925    }
10926    #[inline]
10927    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10928        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10929    }
10930}
10931
10932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10933pub struct NullsLast {
10934    pub(crate) syntax: SyntaxNode,
10935}
10936impl NullsLast {
10937    #[inline]
10938    pub fn last_token(&self) -> Option<SyntaxToken> {
10939        support::token(&self.syntax, SyntaxKind::LAST_KW)
10940    }
10941    #[inline]
10942    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10943        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10944    }
10945}
10946
10947#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10948pub struct NullsNotDistinct {
10949    pub(crate) syntax: SyntaxNode,
10950}
10951impl NullsNotDistinct {
10952    #[inline]
10953    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10954        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10955    }
10956    #[inline]
10957    pub fn not_token(&self) -> Option<SyntaxToken> {
10958        support::token(&self.syntax, SyntaxKind::NOT_KW)
10959    }
10960    #[inline]
10961    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10962        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10963    }
10964}
10965
10966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10967pub struct OfType {
10968    pub(crate) syntax: SyntaxNode,
10969}
10970impl OfType {
10971    #[inline]
10972    pub fn ty(&self) -> Option<Type> {
10973        support::child(&self.syntax)
10974    }
10975    #[inline]
10976    pub fn of_token(&self) -> Option<SyntaxToken> {
10977        support::token(&self.syntax, SyntaxKind::OF_KW)
10978    }
10979}
10980
10981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10982pub struct OffsetClause {
10983    pub(crate) syntax: SyntaxNode,
10984}
10985impl OffsetClause {
10986    #[inline]
10987    pub fn expr(&self) -> Option<Expr> {
10988        support::child(&self.syntax)
10989    }
10990    #[inline]
10991    pub fn offset_token(&self) -> Option<SyntaxToken> {
10992        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
10993    }
10994    #[inline]
10995    pub fn row_token(&self) -> Option<SyntaxToken> {
10996        support::token(&self.syntax, SyntaxKind::ROW_KW)
10997    }
10998    #[inline]
10999    pub fn rows_token(&self) -> Option<SyntaxToken> {
11000        support::token(&self.syntax, SyntaxKind::ROWS_KW)
11001    }
11002}
11003
11004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11005pub struct OnClause {
11006    pub(crate) syntax: SyntaxNode,
11007}
11008impl OnClause {
11009    #[inline]
11010    pub fn expr(&self) -> Option<Expr> {
11011        support::child(&self.syntax)
11012    }
11013    #[inline]
11014    pub fn on_token(&self) -> Option<SyntaxToken> {
11015        support::token(&self.syntax, SyntaxKind::ON_KW)
11016    }
11017}
11018
11019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11020pub struct OnCommit {
11021    pub(crate) syntax: SyntaxNode,
11022}
11023impl OnCommit {
11024    #[inline]
11025    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
11026        support::child(&self.syntax)
11027    }
11028    #[inline]
11029    pub fn commit_token(&self) -> Option<SyntaxToken> {
11030        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
11031    }
11032    #[inline]
11033    pub fn on_token(&self) -> Option<SyntaxToken> {
11034        support::token(&self.syntax, SyntaxKind::ON_KW)
11035    }
11036}
11037
11038#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11039pub struct OnConflictClause {
11040    pub(crate) syntax: SyntaxNode,
11041}
11042impl OnConflictClause {
11043    #[inline]
11044    pub fn conflict_action(&self) -> Option<ConflictAction> {
11045        support::child(&self.syntax)
11046    }
11047    #[inline]
11048    pub fn conflict_target(&self) -> Option<ConflictTarget> {
11049        support::child(&self.syntax)
11050    }
11051    #[inline]
11052    pub fn conflict_token(&self) -> Option<SyntaxToken> {
11053        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
11054    }
11055    #[inline]
11056    pub fn on_token(&self) -> Option<SyntaxToken> {
11057        support::token(&self.syntax, SyntaxKind::ON_KW)
11058    }
11059}
11060
11061#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11062pub struct OnDeleteAction {
11063    pub(crate) syntax: SyntaxNode,
11064}
11065impl OnDeleteAction {
11066    #[inline]
11067    pub fn ref_action(&self) -> Option<RefAction> {
11068        support::child(&self.syntax)
11069    }
11070    #[inline]
11071    pub fn delete_token(&self) -> Option<SyntaxToken> {
11072        support::token(&self.syntax, SyntaxKind::DELETE_KW)
11073    }
11074    #[inline]
11075    pub fn on_token(&self) -> Option<SyntaxToken> {
11076        support::token(&self.syntax, SyntaxKind::ON_KW)
11077    }
11078}
11079
11080#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11081pub struct OnTable {
11082    pub(crate) syntax: SyntaxNode,
11083}
11084impl OnTable {
11085    #[inline]
11086    pub fn path(&self) -> Option<Path> {
11087        support::child(&self.syntax)
11088    }
11089    #[inline]
11090    pub fn on_token(&self) -> Option<SyntaxToken> {
11091        support::token(&self.syntax, SyntaxKind::ON_KW)
11092    }
11093}
11094
11095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11096pub struct OnUpdateAction {
11097    pub(crate) syntax: SyntaxNode,
11098}
11099impl OnUpdateAction {
11100    #[inline]
11101    pub fn ref_action(&self) -> Option<RefAction> {
11102        support::child(&self.syntax)
11103    }
11104    #[inline]
11105    pub fn on_token(&self) -> Option<SyntaxToken> {
11106        support::token(&self.syntax, SyntaxKind::ON_KW)
11107    }
11108    #[inline]
11109    pub fn update_token(&self) -> Option<SyntaxToken> {
11110        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
11111    }
11112}
11113
11114#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11115pub struct Op {
11116    pub(crate) syntax: SyntaxNode,
11117}
11118impl Op {
11119    #[inline]
11120    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
11121        support::child(&self.syntax)
11122    }
11123    #[inline]
11124    pub fn colon_colon(&self) -> Option<ColonColon> {
11125        support::child(&self.syntax)
11126    }
11127    #[inline]
11128    pub fn colon_eq(&self) -> Option<ColonEq> {
11129        support::child(&self.syntax)
11130    }
11131    #[inline]
11132    pub fn custom_op(&self) -> Option<CustomOp> {
11133        support::child(&self.syntax)
11134    }
11135    #[inline]
11136    pub fn fat_arrow(&self) -> Option<FatArrow> {
11137        support::child(&self.syntax)
11138    }
11139    #[inline]
11140    pub fn gteq(&self) -> Option<Gteq> {
11141        support::child(&self.syntax)
11142    }
11143    #[inline]
11144    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
11145        support::child(&self.syntax)
11146    }
11147    #[inline]
11148    pub fn is_json(&self) -> Option<IsJson> {
11149        support::child(&self.syntax)
11150    }
11151    #[inline]
11152    pub fn is_json_array(&self) -> Option<IsJsonArray> {
11153        support::child(&self.syntax)
11154    }
11155    #[inline]
11156    pub fn is_json_object(&self) -> Option<IsJsonObject> {
11157        support::child(&self.syntax)
11158    }
11159    #[inline]
11160    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
11161        support::child(&self.syntax)
11162    }
11163    #[inline]
11164    pub fn is_json_value(&self) -> Option<IsJsonValue> {
11165        support::child(&self.syntax)
11166    }
11167    #[inline]
11168    pub fn is_not(&self) -> Option<IsNot> {
11169        support::child(&self.syntax)
11170    }
11171    #[inline]
11172    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
11173        support::child(&self.syntax)
11174    }
11175    #[inline]
11176    pub fn is_not_json(&self) -> Option<IsNotJson> {
11177        support::child(&self.syntax)
11178    }
11179    #[inline]
11180    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
11181        support::child(&self.syntax)
11182    }
11183    #[inline]
11184    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
11185        support::child(&self.syntax)
11186    }
11187    #[inline]
11188    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
11189        support::child(&self.syntax)
11190    }
11191    #[inline]
11192    pub fn lteq(&self) -> Option<Lteq> {
11193        support::child(&self.syntax)
11194    }
11195    #[inline]
11196    pub fn neq(&self) -> Option<Neq> {
11197        support::child(&self.syntax)
11198    }
11199    #[inline]
11200    pub fn neqb(&self) -> Option<Neqb> {
11201        support::child(&self.syntax)
11202    }
11203    #[inline]
11204    pub fn not_ilike(&self) -> Option<NotIlike> {
11205        support::child(&self.syntax)
11206    }
11207    #[inline]
11208    pub fn not_in(&self) -> Option<NotIn> {
11209        support::child(&self.syntax)
11210    }
11211    #[inline]
11212    pub fn not_like(&self) -> Option<NotLike> {
11213        support::child(&self.syntax)
11214    }
11215    #[inline]
11216    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
11217        support::child(&self.syntax)
11218    }
11219    #[inline]
11220    pub fn operator_call(&self) -> Option<OperatorCall> {
11221        support::child(&self.syntax)
11222    }
11223    #[inline]
11224    pub fn similar_to(&self) -> Option<SimilarTo> {
11225        support::child(&self.syntax)
11226    }
11227    #[inline]
11228    pub fn percent_token(&self) -> Option<SyntaxToken> {
11229        support::token(&self.syntax, SyntaxKind::PERCENT)
11230    }
11231    #[inline]
11232    pub fn plus_token(&self) -> Option<SyntaxToken> {
11233        support::token(&self.syntax, SyntaxKind::PLUS)
11234    }
11235    #[inline]
11236    pub fn minus_token(&self) -> Option<SyntaxToken> {
11237        support::token(&self.syntax, SyntaxKind::MINUS)
11238    }
11239    #[inline]
11240    pub fn slash_token(&self) -> Option<SyntaxToken> {
11241        support::token(&self.syntax, SyntaxKind::SLASH)
11242    }
11243    #[inline]
11244    pub fn colon_token(&self) -> Option<SyntaxToken> {
11245        support::token(&self.syntax, SyntaxKind::COLON)
11246    }
11247    #[inline]
11248    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11249        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11250    }
11251    #[inline]
11252    pub fn eq_token(&self) -> Option<SyntaxToken> {
11253        support::token(&self.syntax, SyntaxKind::EQ)
11254    }
11255    #[inline]
11256    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11257        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11258    }
11259    #[inline]
11260    pub fn caret_token(&self) -> Option<SyntaxToken> {
11261        support::token(&self.syntax, SyntaxKind::CARET)
11262    }
11263    #[inline]
11264    pub fn and_token(&self) -> Option<SyntaxToken> {
11265        support::token(&self.syntax, SyntaxKind::AND_KW)
11266    }
11267    #[inline]
11268    pub fn collate_token(&self) -> Option<SyntaxToken> {
11269        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
11270    }
11271    #[inline]
11272    pub fn ilike_token(&self) -> Option<SyntaxToken> {
11273        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
11274    }
11275    #[inline]
11276    pub fn in_token(&self) -> Option<SyntaxToken> {
11277        support::token(&self.syntax, SyntaxKind::IN_KW)
11278    }
11279    #[inline]
11280    pub fn is_token(&self) -> Option<SyntaxToken> {
11281        support::token(&self.syntax, SyntaxKind::IS_KW)
11282    }
11283    #[inline]
11284    pub fn like_token(&self) -> Option<SyntaxToken> {
11285        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11286    }
11287    #[inline]
11288    pub fn or_token(&self) -> Option<SyntaxToken> {
11289        support::token(&self.syntax, SyntaxKind::OR_KW)
11290    }
11291    #[inline]
11292    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
11293        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
11294    }
11295    #[inline]
11296    pub fn value_token(&self) -> Option<SyntaxToken> {
11297        support::token(&self.syntax, SyntaxKind::VALUE_KW)
11298    }
11299}
11300
11301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11302pub struct OpClassOption {
11303    pub(crate) syntax: SyntaxNode,
11304}
11305impl OpClassOption {
11306    #[inline]
11307    pub fn function_sig(&self) -> Option<FunctionSig> {
11308        support::child(&self.syntax)
11309    }
11310    #[inline]
11311    pub fn literal(&self) -> Option<Literal> {
11312        support::child(&self.syntax)
11313    }
11314    #[inline]
11315    pub fn op(&self) -> Option<Op> {
11316        support::child(&self.syntax)
11317    }
11318    #[inline]
11319    pub fn param_list(&self) -> Option<ParamList> {
11320        support::child(&self.syntax)
11321    }
11322    #[inline]
11323    pub fn path(&self) -> Option<Path> {
11324        support::child(&self.syntax)
11325    }
11326    #[inline]
11327    pub fn ty(&self) -> Option<Type> {
11328        support::child(&self.syntax)
11329    }
11330    #[inline]
11331    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11332        support::token(&self.syntax, SyntaxKind::L_PAREN)
11333    }
11334    #[inline]
11335    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11336        support::token(&self.syntax, SyntaxKind::R_PAREN)
11337    }
11338    #[inline]
11339    pub fn comma_token(&self) -> Option<SyntaxToken> {
11340        support::token(&self.syntax, SyntaxKind::COMMA)
11341    }
11342    #[inline]
11343    pub fn by_token(&self) -> Option<SyntaxToken> {
11344        support::token(&self.syntax, SyntaxKind::BY_KW)
11345    }
11346    #[inline]
11347    pub fn for_token(&self) -> Option<SyntaxToken> {
11348        support::token(&self.syntax, SyntaxKind::FOR_KW)
11349    }
11350    #[inline]
11351    pub fn function_token(&self) -> Option<SyntaxToken> {
11352        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
11353    }
11354    #[inline]
11355    pub fn operator_token(&self) -> Option<SyntaxToken> {
11356        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11357    }
11358    #[inline]
11359    pub fn order_token(&self) -> Option<SyntaxToken> {
11360        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11361    }
11362    #[inline]
11363    pub fn search_token(&self) -> Option<SyntaxToken> {
11364        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
11365    }
11366    #[inline]
11367    pub fn storage_token(&self) -> Option<SyntaxToken> {
11368        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11369    }
11370}
11371
11372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11373pub struct OpSig {
11374    pub(crate) syntax: SyntaxNode,
11375}
11376impl OpSig {
11377    #[inline]
11378    pub fn op(&self) -> Option<Op> {
11379        support::child(&self.syntax)
11380    }
11381    #[inline]
11382    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11383        support::token(&self.syntax, SyntaxKind::L_PAREN)
11384    }
11385    #[inline]
11386    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11387        support::token(&self.syntax, SyntaxKind::R_PAREN)
11388    }
11389    #[inline]
11390    pub fn comma_token(&self) -> Option<SyntaxToken> {
11391        support::token(&self.syntax, SyntaxKind::COMMA)
11392    }
11393    #[inline]
11394    pub fn none_token(&self) -> Option<SyntaxToken> {
11395        support::token(&self.syntax, SyntaxKind::NONE_KW)
11396    }
11397}
11398
11399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11400pub struct OpSigList {
11401    pub(crate) syntax: SyntaxNode,
11402}
11403impl OpSigList {
11404    #[inline]
11405    pub fn op_sigs(&self) -> AstChildren<OpSig> {
11406        support::children(&self.syntax)
11407    }
11408}
11409
11410#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11411pub struct OperatorCall {
11412    pub(crate) syntax: SyntaxNode,
11413}
11414impl OperatorCall {
11415    #[inline]
11416    pub fn op(&self) -> Option<Op> {
11417        support::child(&self.syntax)
11418    }
11419    #[inline]
11420    pub fn path(&self) -> Option<Path> {
11421        support::child(&self.syntax)
11422    }
11423    #[inline]
11424    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11425        support::token(&self.syntax, SyntaxKind::L_PAREN)
11426    }
11427    #[inline]
11428    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11429        support::token(&self.syntax, SyntaxKind::R_PAREN)
11430    }
11431    #[inline]
11432    pub fn dot_token(&self) -> Option<SyntaxToken> {
11433        support::token(&self.syntax, SyntaxKind::DOT)
11434    }
11435    #[inline]
11436    pub fn operator_token(&self) -> Option<SyntaxToken> {
11437        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11438    }
11439}
11440
11441#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11442pub struct OperatorClassOptionList {
11443    pub(crate) syntax: SyntaxNode,
11444}
11445impl OperatorClassOptionList {
11446    #[inline]
11447    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
11448        support::children(&self.syntax)
11449    }
11450}
11451
11452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11453pub struct OptionItem {
11454    pub(crate) syntax: SyntaxNode,
11455}
11456impl OptionItem {
11457    #[inline]
11458    pub fn expr(&self) -> Option<Expr> {
11459        support::child(&self.syntax)
11460    }
11461    #[inline]
11462    pub fn default_token(&self) -> Option<SyntaxToken> {
11463        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11464    }
11465}
11466
11467#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11468pub struct OptionItemList {
11469    pub(crate) syntax: SyntaxNode,
11470}
11471impl OptionItemList {
11472    #[inline]
11473    pub fn option_items(&self) -> AstChildren<OptionItem> {
11474        support::children(&self.syntax)
11475    }
11476    #[inline]
11477    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11478        support::token(&self.syntax, SyntaxKind::L_PAREN)
11479    }
11480    #[inline]
11481    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11482        support::token(&self.syntax, SyntaxKind::R_PAREN)
11483    }
11484}
11485
11486#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11487pub struct OrReplace {
11488    pub(crate) syntax: SyntaxNode,
11489}
11490impl OrReplace {
11491    #[inline]
11492    pub fn or_token(&self) -> Option<SyntaxToken> {
11493        support::token(&self.syntax, SyntaxKind::OR_KW)
11494    }
11495    #[inline]
11496    pub fn replace_token(&self) -> Option<SyntaxToken> {
11497        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
11498    }
11499}
11500
11501#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11502pub struct OrderByClause {
11503    pub(crate) syntax: SyntaxNode,
11504}
11505impl OrderByClause {
11506    #[inline]
11507    pub fn sort_by_list(&self) -> Option<SortByList> {
11508        support::child(&self.syntax)
11509    }
11510    #[inline]
11511    pub fn by_token(&self) -> Option<SyntaxToken> {
11512        support::token(&self.syntax, SyntaxKind::BY_KW)
11513    }
11514    #[inline]
11515    pub fn order_token(&self) -> Option<SyntaxToken> {
11516        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11517    }
11518}
11519
11520#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11521pub struct OverClause {
11522    pub(crate) syntax: SyntaxNode,
11523}
11524impl OverClause {
11525    #[inline]
11526    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11527        support::token(&self.syntax, SyntaxKind::L_PAREN)
11528    }
11529    #[inline]
11530    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11531        support::token(&self.syntax, SyntaxKind::R_PAREN)
11532    }
11533    #[inline]
11534    pub fn over_token(&self) -> Option<SyntaxToken> {
11535        support::token(&self.syntax, SyntaxKind::OVER_KW)
11536    }
11537}
11538
11539#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11540pub struct OverlayFn {
11541    pub(crate) syntax: SyntaxNode,
11542}
11543impl OverlayFn {
11544    #[inline]
11545    pub fn expr(&self) -> Option<Expr> {
11546        support::child(&self.syntax)
11547    }
11548    #[inline]
11549    pub fn exprs(&self) -> AstChildren<Expr> {
11550        support::children(&self.syntax)
11551    }
11552    #[inline]
11553    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11554        support::token(&self.syntax, SyntaxKind::L_PAREN)
11555    }
11556    #[inline]
11557    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11558        support::token(&self.syntax, SyntaxKind::R_PAREN)
11559    }
11560    #[inline]
11561    pub fn for_token(&self) -> Option<SyntaxToken> {
11562        support::token(&self.syntax, SyntaxKind::FOR_KW)
11563    }
11564    #[inline]
11565    pub fn from_token(&self) -> Option<SyntaxToken> {
11566        support::token(&self.syntax, SyntaxKind::FROM_KW)
11567    }
11568    #[inline]
11569    pub fn overlay_token(&self) -> Option<SyntaxToken> {
11570        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
11571    }
11572    #[inline]
11573    pub fn placing_token(&self) -> Option<SyntaxToken> {
11574        support::token(&self.syntax, SyntaxKind::PLACING_KW)
11575    }
11576}
11577
11578#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11579pub struct OwnerTo {
11580    pub(crate) syntax: SyntaxNode,
11581}
11582impl OwnerTo {
11583    #[inline]
11584    pub fn role(&self) -> Option<Role> {
11585        support::child(&self.syntax)
11586    }
11587    #[inline]
11588    pub fn owner_token(&self) -> Option<SyntaxToken> {
11589        support::token(&self.syntax, SyntaxKind::OWNER_KW)
11590    }
11591    #[inline]
11592    pub fn to_token(&self) -> Option<SyntaxToken> {
11593        support::token(&self.syntax, SyntaxKind::TO_KW)
11594    }
11595}
11596
11597#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11598pub struct ParallelFuncOption {
11599    pub(crate) syntax: SyntaxNode,
11600}
11601impl ParallelFuncOption {
11602    #[inline]
11603    pub fn ident_token(&self) -> Option<SyntaxToken> {
11604        support::token(&self.syntax, SyntaxKind::IDENT)
11605    }
11606    #[inline]
11607    pub fn parallel_token(&self) -> Option<SyntaxToken> {
11608        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
11609    }
11610}
11611
11612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11613pub struct Param {
11614    pub(crate) syntax: SyntaxNode,
11615}
11616impl Param {
11617    #[inline]
11618    pub fn mode(&self) -> Option<ParamMode> {
11619        support::child(&self.syntax)
11620    }
11621    #[inline]
11622    pub fn name(&self) -> Option<Name> {
11623        support::child(&self.syntax)
11624    }
11625    #[inline]
11626    pub fn param_default(&self) -> Option<ParamDefault> {
11627        support::child(&self.syntax)
11628    }
11629    #[inline]
11630    pub fn ty(&self) -> Option<Type> {
11631        support::child(&self.syntax)
11632    }
11633}
11634
11635#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11636pub struct ParamDefault {
11637    pub(crate) syntax: SyntaxNode,
11638}
11639impl ParamDefault {
11640    #[inline]
11641    pub fn expr(&self) -> Option<Expr> {
11642        support::child(&self.syntax)
11643    }
11644    #[inline]
11645    pub fn eq_token(&self) -> Option<SyntaxToken> {
11646        support::token(&self.syntax, SyntaxKind::EQ)
11647    }
11648    #[inline]
11649    pub fn default_token(&self) -> Option<SyntaxToken> {
11650        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11651    }
11652}
11653
11654#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11655pub struct ParamIn {
11656    pub(crate) syntax: SyntaxNode,
11657}
11658impl ParamIn {
11659    #[inline]
11660    pub fn in_token(&self) -> Option<SyntaxToken> {
11661        support::token(&self.syntax, SyntaxKind::IN_KW)
11662    }
11663}
11664
11665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11666pub struct ParamInOut {
11667    pub(crate) syntax: SyntaxNode,
11668}
11669impl ParamInOut {
11670    #[inline]
11671    pub fn in_token(&self) -> Option<SyntaxToken> {
11672        support::token(&self.syntax, SyntaxKind::IN_KW)
11673    }
11674    #[inline]
11675    pub fn inout_token(&self) -> Option<SyntaxToken> {
11676        support::token(&self.syntax, SyntaxKind::INOUT_KW)
11677    }
11678    #[inline]
11679    pub fn out_token(&self) -> Option<SyntaxToken> {
11680        support::token(&self.syntax, SyntaxKind::OUT_KW)
11681    }
11682}
11683
11684#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11685pub struct ParamList {
11686    pub(crate) syntax: SyntaxNode,
11687}
11688impl ParamList {
11689    #[inline]
11690    pub fn params(&self) -> AstChildren<Param> {
11691        support::children(&self.syntax)
11692    }
11693}
11694
11695#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11696pub struct ParamOut {
11697    pub(crate) syntax: SyntaxNode,
11698}
11699impl ParamOut {
11700    #[inline]
11701    pub fn out_token(&self) -> Option<SyntaxToken> {
11702        support::token(&self.syntax, SyntaxKind::OUT_KW)
11703    }
11704}
11705
11706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11707pub struct ParamVariadic {
11708    pub(crate) syntax: SyntaxNode,
11709}
11710impl ParamVariadic {
11711    #[inline]
11712    pub fn variadic_token(&self) -> Option<SyntaxToken> {
11713        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
11714    }
11715}
11716
11717#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11718pub struct ParenExpr {
11719    pub(crate) syntax: SyntaxNode,
11720}
11721impl ParenExpr {
11722    #[inline]
11723    pub fn expr(&self) -> Option<Expr> {
11724        support::child(&self.syntax)
11725    }
11726    #[inline]
11727    pub fn from_item(&self) -> Option<FromItem> {
11728        support::child(&self.syntax)
11729    }
11730    #[inline]
11731    pub fn select(&self) -> Option<Select> {
11732        support::child(&self.syntax)
11733    }
11734    #[inline]
11735    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11736        support::token(&self.syntax, SyntaxKind::L_PAREN)
11737    }
11738    #[inline]
11739    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11740        support::token(&self.syntax, SyntaxKind::R_PAREN)
11741    }
11742}
11743
11744#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11745pub struct ParenSelect {
11746    pub(crate) syntax: SyntaxNode,
11747}
11748impl ParenSelect {
11749    #[inline]
11750    pub fn select(&self) -> Option<SelectVariant> {
11751        support::child(&self.syntax)
11752    }
11753    #[inline]
11754    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11755        support::token(&self.syntax, SyntaxKind::L_PAREN)
11756    }
11757    #[inline]
11758    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11759        support::token(&self.syntax, SyntaxKind::R_PAREN)
11760    }
11761}
11762
11763#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11764pub struct Partition {
11765    pub(crate) syntax: SyntaxNode,
11766}
11767impl Partition {
11768    #[inline]
11769    pub fn partition_type(&self) -> Option<PartitionType> {
11770        support::child(&self.syntax)
11771    }
11772    #[inline]
11773    pub fn path(&self) -> Option<Path> {
11774        support::child(&self.syntax)
11775    }
11776    #[inline]
11777    pub fn partition_token(&self) -> Option<SyntaxToken> {
11778        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
11779    }
11780}
11781
11782#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11783pub struct PartitionBy {
11784    pub(crate) syntax: SyntaxNode,
11785}
11786impl PartitionBy {
11787    #[inline]
11788    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
11789        support::child(&self.syntax)
11790    }
11791    #[inline]
11792    pub fn by_token(&self) -> Option<SyntaxToken> {
11793        support::token(&self.syntax, SyntaxKind::BY_KW)
11794    }
11795    #[inline]
11796    pub fn ident_token(&self) -> Option<SyntaxToken> {
11797        support::token(&self.syntax, SyntaxKind::IDENT)
11798    }
11799    #[inline]
11800    pub fn partition_token(&self) -> Option<SyntaxToken> {
11801        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
11802    }
11803    #[inline]
11804    pub fn range_token(&self) -> Option<SyntaxToken> {
11805        support::token(&self.syntax, SyntaxKind::RANGE_KW)
11806    }
11807}
11808
11809#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11810pub struct PartitionDefault {
11811    pub(crate) syntax: SyntaxNode,
11812}
11813impl PartitionDefault {
11814    #[inline]
11815    pub fn default_token(&self) -> Option<SyntaxToken> {
11816        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11817    }
11818}
11819
11820#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11821pub struct PartitionForValuesFrom {
11822    pub(crate) syntax: SyntaxNode,
11823}
11824impl PartitionForValuesFrom {
11825    #[inline]
11826    pub fn exprs(&self) -> AstChildren<Expr> {
11827        support::children(&self.syntax)
11828    }
11829    #[inline]
11830    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11831        support::token(&self.syntax, SyntaxKind::L_PAREN)
11832    }
11833    #[inline]
11834    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11835        support::token(&self.syntax, SyntaxKind::R_PAREN)
11836    }
11837    #[inline]
11838    pub fn for_token(&self) -> Option<SyntaxToken> {
11839        support::token(&self.syntax, SyntaxKind::FOR_KW)
11840    }
11841    #[inline]
11842    pub fn from_token(&self) -> Option<SyntaxToken> {
11843        support::token(&self.syntax, SyntaxKind::FROM_KW)
11844    }
11845    #[inline]
11846    pub fn to_token(&self) -> Option<SyntaxToken> {
11847        support::token(&self.syntax, SyntaxKind::TO_KW)
11848    }
11849    #[inline]
11850    pub fn values_token(&self) -> Option<SyntaxToken> {
11851        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11852    }
11853}
11854
11855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11856pub struct PartitionForValuesIn {
11857    pub(crate) syntax: SyntaxNode,
11858}
11859impl PartitionForValuesIn {
11860    #[inline]
11861    pub fn exprs(&self) -> AstChildren<Expr> {
11862        support::children(&self.syntax)
11863    }
11864    #[inline]
11865    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11866        support::token(&self.syntax, SyntaxKind::L_PAREN)
11867    }
11868    #[inline]
11869    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11870        support::token(&self.syntax, SyntaxKind::R_PAREN)
11871    }
11872    #[inline]
11873    pub fn for_token(&self) -> Option<SyntaxToken> {
11874        support::token(&self.syntax, SyntaxKind::FOR_KW)
11875    }
11876    #[inline]
11877    pub fn in_token(&self) -> Option<SyntaxToken> {
11878        support::token(&self.syntax, SyntaxKind::IN_KW)
11879    }
11880    #[inline]
11881    pub fn values_token(&self) -> Option<SyntaxToken> {
11882        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11883    }
11884}
11885
11886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11887pub struct PartitionForValuesWith {
11888    pub(crate) syntax: SyntaxNode,
11889}
11890impl PartitionForValuesWith {
11891    #[inline]
11892    pub fn literal(&self) -> Option<Literal> {
11893        support::child(&self.syntax)
11894    }
11895    #[inline]
11896    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11897        support::token(&self.syntax, SyntaxKind::L_PAREN)
11898    }
11899    #[inline]
11900    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11901        support::token(&self.syntax, SyntaxKind::R_PAREN)
11902    }
11903    #[inline]
11904    pub fn comma_token(&self) -> Option<SyntaxToken> {
11905        support::token(&self.syntax, SyntaxKind::COMMA)
11906    }
11907    #[inline]
11908    pub fn for_token(&self) -> Option<SyntaxToken> {
11909        support::token(&self.syntax, SyntaxKind::FOR_KW)
11910    }
11911    #[inline]
11912    pub fn ident_token(&self) -> Option<SyntaxToken> {
11913        support::token(&self.syntax, SyntaxKind::IDENT)
11914    }
11915    #[inline]
11916    pub fn values_token(&self) -> Option<SyntaxToken> {
11917        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11918    }
11919    #[inline]
11920    pub fn with_token(&self) -> Option<SyntaxToken> {
11921        support::token(&self.syntax, SyntaxKind::WITH_KW)
11922    }
11923}
11924
11925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11926pub struct PartitionItem {
11927    pub(crate) syntax: SyntaxNode,
11928}
11929impl PartitionItem {
11930    #[inline]
11931    pub fn collate(&self) -> Option<Collate> {
11932        support::child(&self.syntax)
11933    }
11934    #[inline]
11935    pub fn expr(&self) -> Option<Expr> {
11936        support::child(&self.syntax)
11937    }
11938}
11939
11940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11941pub struct PartitionItemList {
11942    pub(crate) syntax: SyntaxNode,
11943}
11944impl PartitionItemList {
11945    #[inline]
11946    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
11947        support::children(&self.syntax)
11948    }
11949    #[inline]
11950    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11951        support::token(&self.syntax, SyntaxKind::L_PAREN)
11952    }
11953    #[inline]
11954    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11955        support::token(&self.syntax, SyntaxKind::R_PAREN)
11956    }
11957}
11958
11959#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11960pub struct PartitionList {
11961    pub(crate) syntax: SyntaxNode,
11962}
11963impl PartitionList {
11964    #[inline]
11965    pub fn partitions(&self) -> AstChildren<Partition> {
11966        support::children(&self.syntax)
11967    }
11968    #[inline]
11969    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11970        support::token(&self.syntax, SyntaxKind::L_PAREN)
11971    }
11972    #[inline]
11973    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11974        support::token(&self.syntax, SyntaxKind::R_PAREN)
11975    }
11976}
11977
11978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11979pub struct PartitionOf {
11980    pub(crate) syntax: SyntaxNode,
11981}
11982impl PartitionOf {
11983    #[inline]
11984    pub fn ty(&self) -> Option<Type> {
11985        support::child(&self.syntax)
11986    }
11987    #[inline]
11988    pub fn of_token(&self) -> Option<SyntaxToken> {
11989        support::token(&self.syntax, SyntaxKind::OF_KW)
11990    }
11991    #[inline]
11992    pub fn partition_token(&self) -> Option<SyntaxToken> {
11993        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
11994    }
11995}
11996
11997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11998pub struct Path {
11999    pub(crate) syntax: SyntaxNode,
12000}
12001impl Path {
12002    #[inline]
12003    pub fn qualifier(&self) -> Option<Path> {
12004        support::child(&self.syntax)
12005    }
12006    #[inline]
12007    pub fn segment(&self) -> Option<PathSegment> {
12008        support::child(&self.syntax)
12009    }
12010    #[inline]
12011    pub fn dot_token(&self) -> Option<SyntaxToken> {
12012        support::token(&self.syntax, SyntaxKind::DOT)
12013    }
12014}
12015
12016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12017pub struct PathSegment {
12018    pub(crate) syntax: SyntaxNode,
12019}
12020impl PathSegment {
12021    #[inline]
12022    pub fn name(&self) -> Option<Name> {
12023        support::child(&self.syntax)
12024    }
12025    #[inline]
12026    pub fn name_ref(&self) -> Option<NameRef> {
12027        support::child(&self.syntax)
12028    }
12029}
12030
12031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12032pub struct PathType {
12033    pub(crate) syntax: SyntaxNode,
12034}
12035impl PathType {
12036    #[inline]
12037    pub fn arg_list(&self) -> Option<ArgList> {
12038        support::child(&self.syntax)
12039    }
12040    #[inline]
12041    pub fn path(&self) -> Option<Path> {
12042        support::child(&self.syntax)
12043    }
12044}
12045
12046#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12047pub struct PercentType {
12048    pub(crate) syntax: SyntaxNode,
12049}
12050impl PercentType {
12051    #[inline]
12052    pub fn percent_token(&self) -> Option<SyntaxToken> {
12053        support::token(&self.syntax, SyntaxKind::PERCENT)
12054    }
12055    #[inline]
12056    pub fn type_token(&self) -> Option<SyntaxToken> {
12057        support::token(&self.syntax, SyntaxKind::TYPE_KW)
12058    }
12059}
12060
12061#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12062pub struct PercentTypeClause {
12063    pub(crate) syntax: SyntaxNode,
12064}
12065impl PercentTypeClause {
12066    #[inline]
12067    pub fn path(&self) -> Option<Path> {
12068        support::child(&self.syntax)
12069    }
12070    #[inline]
12071    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
12072        support::child(&self.syntax)
12073    }
12074}
12075
12076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12077pub struct PositionFn {
12078    pub(crate) syntax: SyntaxNode,
12079}
12080impl PositionFn {
12081    #[inline]
12082    pub fn expr(&self) -> Option<Expr> {
12083        support::child(&self.syntax)
12084    }
12085    #[inline]
12086    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12087        support::token(&self.syntax, SyntaxKind::L_PAREN)
12088    }
12089    #[inline]
12090    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12091        support::token(&self.syntax, SyntaxKind::R_PAREN)
12092    }
12093    #[inline]
12094    pub fn in_token(&self) -> Option<SyntaxToken> {
12095        support::token(&self.syntax, SyntaxKind::IN_KW)
12096    }
12097    #[inline]
12098    pub fn position_token(&self) -> Option<SyntaxToken> {
12099        support::token(&self.syntax, SyntaxKind::POSITION_KW)
12100    }
12101}
12102
12103#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12104pub struct PostfixExpr {
12105    pub(crate) syntax: SyntaxNode,
12106}
12107impl PostfixExpr {
12108    #[inline]
12109    pub fn expr(&self) -> Option<Expr> {
12110        support::child(&self.syntax)
12111    }
12112}
12113
12114#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12115pub struct PrefixExpr {
12116    pub(crate) syntax: SyntaxNode,
12117}
12118impl PrefixExpr {
12119    #[inline]
12120    pub fn expr(&self) -> Option<Expr> {
12121        support::child(&self.syntax)
12122    }
12123}
12124
12125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12126pub struct Prepare {
12127    pub(crate) syntax: SyntaxNode,
12128}
12129impl Prepare {
12130    #[inline]
12131    pub fn name(&self) -> Option<Name> {
12132        support::child(&self.syntax)
12133    }
12134    #[inline]
12135    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
12136        support::child(&self.syntax)
12137    }
12138    #[inline]
12139    pub fn as_token(&self) -> Option<SyntaxToken> {
12140        support::token(&self.syntax, SyntaxKind::AS_KW)
12141    }
12142    #[inline]
12143    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12144        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12145    }
12146}
12147
12148#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12149pub struct PrepareTransaction {
12150    pub(crate) syntax: SyntaxNode,
12151}
12152impl PrepareTransaction {
12153    #[inline]
12154    pub fn literal(&self) -> Option<Literal> {
12155        support::child(&self.syntax)
12156    }
12157    #[inline]
12158    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12159        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12160    }
12161    #[inline]
12162    pub fn transaction_token(&self) -> Option<SyntaxToken> {
12163        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
12164    }
12165}
12166
12167#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12168pub struct PreserveRows {
12169    pub(crate) syntax: SyntaxNode,
12170}
12171impl PreserveRows {
12172    #[inline]
12173    pub fn preserve_token(&self) -> Option<SyntaxToken> {
12174        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
12175    }
12176    #[inline]
12177    pub fn rows_token(&self) -> Option<SyntaxToken> {
12178        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12179    }
12180}
12181
12182#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12183pub struct PrimaryKeyConstraint {
12184    pub(crate) syntax: SyntaxNode,
12185}
12186impl PrimaryKeyConstraint {
12187    #[inline]
12188    pub fn column_list(&self) -> Option<ColumnList> {
12189        support::child(&self.syntax)
12190    }
12191    #[inline]
12192    pub fn constraint_name(&self) -> Option<ConstraintName> {
12193        support::child(&self.syntax)
12194    }
12195    #[inline]
12196    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
12197        support::child(&self.syntax)
12198    }
12199    #[inline]
12200    pub fn using_index(&self) -> Option<UsingIndex> {
12201        support::child(&self.syntax)
12202    }
12203    #[inline]
12204    pub fn key_token(&self) -> Option<SyntaxToken> {
12205        support::token(&self.syntax, SyntaxKind::KEY_KW)
12206    }
12207    #[inline]
12208    pub fn primary_token(&self) -> Option<SyntaxToken> {
12209        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
12210    }
12211}
12212
12213#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12214pub struct PrivilegeTarget {
12215    pub(crate) syntax: SyntaxNode,
12216}
12217impl PrivilegeTarget {
12218    #[inline]
12219    pub fn functions_token(&self) -> Option<SyntaxToken> {
12220        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
12221    }
12222    #[inline]
12223    pub fn large_token(&self) -> Option<SyntaxToken> {
12224        support::token(&self.syntax, SyntaxKind::LARGE_KW)
12225    }
12226    #[inline]
12227    pub fn objects_token(&self) -> Option<SyntaxToken> {
12228        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
12229    }
12230    #[inline]
12231    pub fn routines_token(&self) -> Option<SyntaxToken> {
12232        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
12233    }
12234    #[inline]
12235    pub fn schemas_token(&self) -> Option<SyntaxToken> {
12236        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
12237    }
12238    #[inline]
12239    pub fn sequences_token(&self) -> Option<SyntaxToken> {
12240        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
12241    }
12242    #[inline]
12243    pub fn tables_token(&self) -> Option<SyntaxToken> {
12244        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12245    }
12246    #[inline]
12247    pub fn types_token(&self) -> Option<SyntaxToken> {
12248        support::token(&self.syntax, SyntaxKind::TYPES_KW)
12249    }
12250}
12251
12252#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12253pub struct Privileges {
12254    pub(crate) syntax: SyntaxNode,
12255}
12256impl Privileges {
12257    #[inline]
12258    pub fn column_list(&self) -> Option<ColumnList> {
12259        support::child(&self.syntax)
12260    }
12261    #[inline]
12262    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
12263        support::child(&self.syntax)
12264    }
12265    #[inline]
12266    pub fn all_token(&self) -> Option<SyntaxToken> {
12267        support::token(&self.syntax, SyntaxKind::ALL_KW)
12268    }
12269    #[inline]
12270    pub fn privileges_token(&self) -> Option<SyntaxToken> {
12271        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
12272    }
12273}
12274
12275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12276pub struct PublicationObject {
12277    pub(crate) syntax: SyntaxNode,
12278}
12279impl PublicationObject {
12280    #[inline]
12281    pub fn column_list(&self) -> Option<ColumnList> {
12282        support::child(&self.syntax)
12283    }
12284    #[inline]
12285    pub fn name_ref(&self) -> Option<NameRef> {
12286        support::child(&self.syntax)
12287    }
12288    #[inline]
12289    pub fn path(&self) -> Option<Path> {
12290        support::child(&self.syntax)
12291    }
12292    #[inline]
12293    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
12294        support::child(&self.syntax)
12295    }
12296    #[inline]
12297    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12298        support::token(&self.syntax, SyntaxKind::L_PAREN)
12299    }
12300    #[inline]
12301    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12302        support::token(&self.syntax, SyntaxKind::R_PAREN)
12303    }
12304    #[inline]
12305    pub fn star_token(&self) -> Option<SyntaxToken> {
12306        support::token(&self.syntax, SyntaxKind::STAR)
12307    }
12308    #[inline]
12309    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
12310        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
12311    }
12312    #[inline]
12313    pub fn in_token(&self) -> Option<SyntaxToken> {
12314        support::token(&self.syntax, SyntaxKind::IN_KW)
12315    }
12316    #[inline]
12317    pub fn only_token(&self) -> Option<SyntaxToken> {
12318        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12319    }
12320    #[inline]
12321    pub fn schema_token(&self) -> Option<SyntaxToken> {
12322        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12323    }
12324    #[inline]
12325    pub fn table_token(&self) -> Option<SyntaxToken> {
12326        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12327    }
12328    #[inline]
12329    pub fn tables_token(&self) -> Option<SyntaxToken> {
12330        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12331    }
12332}
12333
12334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12335pub struct ReadCommitted {
12336    pub(crate) syntax: SyntaxNode,
12337}
12338impl ReadCommitted {
12339    #[inline]
12340    pub fn committed_token(&self) -> Option<SyntaxToken> {
12341        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
12342    }
12343    #[inline]
12344    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12345        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12346    }
12347    #[inline]
12348    pub fn level_token(&self) -> Option<SyntaxToken> {
12349        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12350    }
12351    #[inline]
12352    pub fn read_token(&self) -> Option<SyntaxToken> {
12353        support::token(&self.syntax, SyntaxKind::READ_KW)
12354    }
12355}
12356
12357#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12358pub struct ReadOnly {
12359    pub(crate) syntax: SyntaxNode,
12360}
12361impl ReadOnly {
12362    #[inline]
12363    pub fn only_token(&self) -> Option<SyntaxToken> {
12364        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12365    }
12366    #[inline]
12367    pub fn read_token(&self) -> Option<SyntaxToken> {
12368        support::token(&self.syntax, SyntaxKind::READ_KW)
12369    }
12370}
12371
12372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12373pub struct ReadUncommitted {
12374    pub(crate) syntax: SyntaxNode,
12375}
12376impl ReadUncommitted {
12377    #[inline]
12378    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12379        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12380    }
12381    #[inline]
12382    pub fn level_token(&self) -> Option<SyntaxToken> {
12383        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12384    }
12385    #[inline]
12386    pub fn read_token(&self) -> Option<SyntaxToken> {
12387        support::token(&self.syntax, SyntaxKind::READ_KW)
12388    }
12389    #[inline]
12390    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
12391        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
12392    }
12393}
12394
12395#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12396pub struct ReadWrite {
12397    pub(crate) syntax: SyntaxNode,
12398}
12399impl ReadWrite {
12400    #[inline]
12401    pub fn read_token(&self) -> Option<SyntaxToken> {
12402        support::token(&self.syntax, SyntaxKind::READ_KW)
12403    }
12404    #[inline]
12405    pub fn write_token(&self) -> Option<SyntaxToken> {
12406        support::token(&self.syntax, SyntaxKind::WRITE_KW)
12407    }
12408}
12409
12410#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12411pub struct Reassign {
12412    pub(crate) syntax: SyntaxNode,
12413}
12414impl Reassign {
12415    #[inline]
12416    pub fn new_roles(&self) -> Option<RoleList> {
12417        support::child(&self.syntax)
12418    }
12419    #[inline]
12420    pub fn old_roles(&self) -> Option<RoleList> {
12421        support::child(&self.syntax)
12422    }
12423    #[inline]
12424    pub fn by_token(&self) -> Option<SyntaxToken> {
12425        support::token(&self.syntax, SyntaxKind::BY_KW)
12426    }
12427    #[inline]
12428    pub fn owned_token(&self) -> Option<SyntaxToken> {
12429        support::token(&self.syntax, SyntaxKind::OWNED_KW)
12430    }
12431    #[inline]
12432    pub fn reassign_token(&self) -> Option<SyntaxToken> {
12433        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
12434    }
12435    #[inline]
12436    pub fn to_token(&self) -> Option<SyntaxToken> {
12437        support::token(&self.syntax, SyntaxKind::TO_KW)
12438    }
12439}
12440
12441#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12442pub struct ReferencesConstraint {
12443    pub(crate) syntax: SyntaxNode,
12444}
12445impl ReferencesConstraint {
12446    #[inline]
12447    pub fn column(&self) -> Option<NameRef> {
12448        support::child(&self.syntax)
12449    }
12450    #[inline]
12451    pub fn constraint_name(&self) -> Option<ConstraintName> {
12452        support::child(&self.syntax)
12453    }
12454    #[inline]
12455    pub fn match_type(&self) -> Option<MatchType> {
12456        support::child(&self.syntax)
12457    }
12458    #[inline]
12459    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
12460        support::child(&self.syntax)
12461    }
12462    #[inline]
12463    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
12464        support::child(&self.syntax)
12465    }
12466    #[inline]
12467    pub fn table(&self) -> Option<Path> {
12468        support::child(&self.syntax)
12469    }
12470    #[inline]
12471    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12472        support::token(&self.syntax, SyntaxKind::L_PAREN)
12473    }
12474    #[inline]
12475    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12476        support::token(&self.syntax, SyntaxKind::R_PAREN)
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 ServerName {
13850    pub(crate) syntax: SyntaxNode,
13851}
13852impl ServerName {
13853    #[inline]
13854    pub fn name_ref(&self) -> Option<NameRef> {
13855        support::child(&self.syntax)
13856    }
13857    #[inline]
13858    pub fn server_token(&self) -> Option<SyntaxToken> {
13859        support::token(&self.syntax, SyntaxKind::SERVER_KW)
13860    }
13861}
13862
13863#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13864pub struct Set {
13865    pub(crate) syntax: SyntaxNode,
13866}
13867impl Set {
13868    #[inline]
13869    pub fn config_value(&self) -> Option<ConfigValue> {
13870        support::child(&self.syntax)
13871    }
13872    #[inline]
13873    pub fn config_values(&self) -> AstChildren<ConfigValue> {
13874        support::children(&self.syntax)
13875    }
13876    #[inline]
13877    pub fn literal(&self) -> Option<Literal> {
13878        support::child(&self.syntax)
13879    }
13880    #[inline]
13881    pub fn path(&self) -> Option<Path> {
13882        support::child(&self.syntax)
13883    }
13884    #[inline]
13885    pub fn eq_token(&self) -> Option<SyntaxToken> {
13886        support::token(&self.syntax, SyntaxKind::EQ)
13887    }
13888    #[inline]
13889    pub fn catalog_token(&self) -> Option<SyntaxToken> {
13890        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
13891    }
13892    #[inline]
13893    pub fn content_token(&self) -> Option<SyntaxToken> {
13894        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
13895    }
13896    #[inline]
13897    pub fn current_token(&self) -> Option<SyntaxToken> {
13898        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
13899    }
13900    #[inline]
13901    pub fn default_token(&self) -> Option<SyntaxToken> {
13902        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13903    }
13904    #[inline]
13905    pub fn document_token(&self) -> Option<SyntaxToken> {
13906        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
13907    }
13908    #[inline]
13909    pub fn from_token(&self) -> Option<SyntaxToken> {
13910        support::token(&self.syntax, SyntaxKind::FROM_KW)
13911    }
13912    #[inline]
13913    pub fn local_token(&self) -> Option<SyntaxToken> {
13914        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
13915    }
13916    #[inline]
13917    pub fn option_token(&self) -> Option<SyntaxToken> {
13918        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13919    }
13920    #[inline]
13921    pub fn schema_token(&self) -> Option<SyntaxToken> {
13922        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13923    }
13924    #[inline]
13925    pub fn session_token(&self) -> Option<SyntaxToken> {
13926        support::token(&self.syntax, SyntaxKind::SESSION_KW)
13927    }
13928    #[inline]
13929    pub fn set_token(&self) -> Option<SyntaxToken> {
13930        support::token(&self.syntax, SyntaxKind::SET_KW)
13931    }
13932    #[inline]
13933    pub fn time_token(&self) -> Option<SyntaxToken> {
13934        support::token(&self.syntax, SyntaxKind::TIME_KW)
13935    }
13936    #[inline]
13937    pub fn to_token(&self) -> Option<SyntaxToken> {
13938        support::token(&self.syntax, SyntaxKind::TO_KW)
13939    }
13940    #[inline]
13941    pub fn xml_token(&self) -> Option<SyntaxToken> {
13942        support::token(&self.syntax, SyntaxKind::XML_KW)
13943    }
13944    #[inline]
13945    pub fn zone_token(&self) -> Option<SyntaxToken> {
13946        support::token(&self.syntax, SyntaxKind::ZONE_KW)
13947    }
13948}
13949
13950#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13951pub struct SetAccessMethod {
13952    pub(crate) syntax: SyntaxNode,
13953}
13954impl SetAccessMethod {
13955    #[inline]
13956    pub fn name_ref(&self) -> Option<NameRef> {
13957        support::child(&self.syntax)
13958    }
13959    #[inline]
13960    pub fn access_token(&self) -> Option<SyntaxToken> {
13961        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
13962    }
13963    #[inline]
13964    pub fn method_token(&self) -> Option<SyntaxToken> {
13965        support::token(&self.syntax, SyntaxKind::METHOD_KW)
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 SetClause {
13975    pub(crate) syntax: SyntaxNode,
13976}
13977impl SetClause {
13978    #[inline]
13979    pub fn set_column_list(&self) -> Option<SetColumnList> {
13980        support::child(&self.syntax)
13981    }
13982    #[inline]
13983    pub fn set_token(&self) -> Option<SyntaxToken> {
13984        support::token(&self.syntax, SyntaxKind::SET_KW)
13985    }
13986}
13987
13988#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13989pub struct SetColumnList {
13990    pub(crate) syntax: SyntaxNode,
13991}
13992impl SetColumnList {
13993    #[inline]
13994    pub fn set_columns(&self) -> AstChildren<SetColumn> {
13995        support::children(&self.syntax)
13996    }
13997}
13998
13999#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14000pub struct SetCompression {
14001    pub(crate) syntax: SyntaxNode,
14002}
14003impl SetCompression {
14004    #[inline]
14005    pub fn compression_token(&self) -> Option<SyntaxToken> {
14006        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
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 SetConfigParam {
14016    pub(crate) syntax: SyntaxNode,
14017}
14018impl SetConfigParam {
14019    #[inline]
14020    pub fn path(&self) -> Option<Path> {
14021        support::child(&self.syntax)
14022    }
14023    #[inline]
14024    pub fn set_token(&self) -> Option<SyntaxToken> {
14025        support::token(&self.syntax, SyntaxKind::SET_KW)
14026    }
14027}
14028
14029#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14030pub struct SetConstraints {
14031    pub(crate) syntax: SyntaxNode,
14032}
14033impl SetConstraints {
14034    #[inline]
14035    pub fn paths(&self) -> AstChildren<Path> {
14036        support::children(&self.syntax)
14037    }
14038    #[inline]
14039    pub fn all_token(&self) -> Option<SyntaxToken> {
14040        support::token(&self.syntax, SyntaxKind::ALL_KW)
14041    }
14042    #[inline]
14043    pub fn constraints_token(&self) -> Option<SyntaxToken> {
14044        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
14045    }
14046    #[inline]
14047    pub fn deferred_token(&self) -> Option<SyntaxToken> {
14048        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
14049    }
14050    #[inline]
14051    pub fn immediate_token(&self) -> Option<SyntaxToken> {
14052        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
14053    }
14054    #[inline]
14055    pub fn set_token(&self) -> Option<SyntaxToken> {
14056        support::token(&self.syntax, SyntaxKind::SET_KW)
14057    }
14058}
14059
14060#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14061pub struct SetDefault {
14062    pub(crate) syntax: SyntaxNode,
14063}
14064impl SetDefault {
14065    #[inline]
14066    pub fn expr(&self) -> Option<Expr> {
14067        support::child(&self.syntax)
14068    }
14069    #[inline]
14070    pub fn default_token(&self) -> Option<SyntaxToken> {
14071        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14072    }
14073    #[inline]
14074    pub fn set_token(&self) -> Option<SyntaxToken> {
14075        support::token(&self.syntax, SyntaxKind::SET_KW)
14076    }
14077}
14078
14079#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14080pub struct SetDefaultColumns {
14081    pub(crate) syntax: SyntaxNode,
14082}
14083impl SetDefaultColumns {
14084    #[inline]
14085    pub fn column_list(&self) -> Option<ColumnList> {
14086        support::child(&self.syntax)
14087    }
14088    #[inline]
14089    pub fn default_token(&self) -> Option<SyntaxToken> {
14090        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14091    }
14092    #[inline]
14093    pub fn set_token(&self) -> Option<SyntaxToken> {
14094        support::token(&self.syntax, SyntaxKind::SET_KW)
14095    }
14096}
14097
14098#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14099pub struct SetExpr {
14100    pub(crate) syntax: SyntaxNode,
14101}
14102impl SetExpr {
14103    #[inline]
14104    pub fn expr(&self) -> Option<Expr> {
14105        support::child(&self.syntax)
14106    }
14107    #[inline]
14108    pub fn default_token(&self) -> Option<SyntaxToken> {
14109        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14110    }
14111}
14112
14113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14114pub struct SetExprList {
14115    pub(crate) syntax: SyntaxNode,
14116}
14117impl SetExprList {
14118    #[inline]
14119    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
14120        support::children(&self.syntax)
14121    }
14122    #[inline]
14123    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14124        support::token(&self.syntax, SyntaxKind::L_PAREN)
14125    }
14126    #[inline]
14127    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14128        support::token(&self.syntax, SyntaxKind::R_PAREN)
14129    }
14130    #[inline]
14131    pub fn row_token(&self) -> Option<SyntaxToken> {
14132        support::token(&self.syntax, SyntaxKind::ROW_KW)
14133    }
14134}
14135
14136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14137pub struct SetExpression {
14138    pub(crate) syntax: SyntaxNode,
14139}
14140impl SetExpression {
14141    #[inline]
14142    pub fn expr(&self) -> Option<Expr> {
14143        support::child(&self.syntax)
14144    }
14145    #[inline]
14146    pub fn expression_token(&self) -> Option<SyntaxToken> {
14147        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
14148    }
14149    #[inline]
14150    pub fn set_token(&self) -> Option<SyntaxToken> {
14151        support::token(&self.syntax, SyntaxKind::SET_KW)
14152    }
14153}
14154
14155#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14156pub struct SetFuncOption {
14157    pub(crate) syntax: SyntaxNode,
14158}
14159impl SetFuncOption {
14160    #[inline]
14161    pub fn set_token(&self) -> Option<SyntaxToken> {
14162        support::token(&self.syntax, SyntaxKind::SET_KW)
14163    }
14164}
14165
14166#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14167pub struct SetGenerated {
14168    pub(crate) syntax: SyntaxNode,
14169}
14170impl SetGenerated {
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 SetGeneratedOptions {
14179    pub(crate) syntax: SyntaxNode,
14180}
14181impl SetGeneratedOptions {
14182    #[inline]
14183    pub fn generated_token(&self) -> Option<SyntaxToken> {
14184        support::token(&self.syntax, SyntaxKind::GENERATED_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 SetLogged {
14194    pub(crate) syntax: SyntaxNode,
14195}
14196impl SetLogged {
14197    #[inline]
14198    pub fn logged_token(&self) -> Option<SyntaxToken> {
14199        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
14200    }
14201    #[inline]
14202    pub fn set_token(&self) -> Option<SyntaxToken> {
14203        support::token(&self.syntax, SyntaxKind::SET_KW)
14204    }
14205}
14206
14207#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14208pub struct SetMultipleColumns {
14209    pub(crate) syntax: SyntaxNode,
14210}
14211impl SetMultipleColumns {
14212    #[inline]
14213    pub fn column_list(&self) -> Option<ColumnList> {
14214        support::child(&self.syntax)
14215    }
14216    #[inline]
14217    pub fn paren_select(&self) -> Option<ParenSelect> {
14218        support::child(&self.syntax)
14219    }
14220    #[inline]
14221    pub fn set_expr_list(&self) -> Option<SetExprList> {
14222        support::child(&self.syntax)
14223    }
14224    #[inline]
14225    pub fn eq_token(&self) -> Option<SyntaxToken> {
14226        support::token(&self.syntax, SyntaxKind::EQ)
14227    }
14228}
14229
14230#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14231pub struct SetNotNull {
14232    pub(crate) syntax: SyntaxNode,
14233}
14234impl SetNotNull {
14235    #[inline]
14236    pub fn not_token(&self) -> Option<SyntaxToken> {
14237        support::token(&self.syntax, SyntaxKind::NOT_KW)
14238    }
14239    #[inline]
14240    pub fn null_token(&self) -> Option<SyntaxToken> {
14241        support::token(&self.syntax, SyntaxKind::NULL_KW)
14242    }
14243    #[inline]
14244    pub fn set_token(&self) -> Option<SyntaxToken> {
14245        support::token(&self.syntax, SyntaxKind::SET_KW)
14246    }
14247}
14248
14249#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14250pub struct SetNullColumns {
14251    pub(crate) syntax: SyntaxNode,
14252}
14253impl SetNullColumns {
14254    #[inline]
14255    pub fn column_list(&self) -> Option<ColumnList> {
14256        support::child(&self.syntax)
14257    }
14258    #[inline]
14259    pub fn null_token(&self) -> Option<SyntaxToken> {
14260        support::token(&self.syntax, SyntaxKind::NULL_KW)
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 SetOptions {
14270    pub(crate) syntax: SyntaxNode,
14271}
14272impl SetOptions {
14273    #[inline]
14274    pub fn attribute_list(&self) -> Option<AttributeList> {
14275        support::child(&self.syntax)
14276    }
14277    #[inline]
14278    pub fn set_token(&self) -> Option<SyntaxToken> {
14279        support::token(&self.syntax, SyntaxKind::SET_KW)
14280    }
14281}
14282
14283#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14284pub struct SetOptionsList {
14285    pub(crate) syntax: SyntaxNode,
14286}
14287impl SetOptionsList {
14288    #[inline]
14289    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
14290        support::child(&self.syntax)
14291    }
14292    #[inline]
14293    pub fn options_token(&self) -> Option<SyntaxToken> {
14294        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
14295    }
14296    #[inline]
14297    pub fn set_token(&self) -> Option<SyntaxToken> {
14298        support::token(&self.syntax, SyntaxKind::SET_KW)
14299    }
14300}
14301
14302#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14303pub struct SetRole {
14304    pub(crate) syntax: SyntaxNode,
14305}
14306impl SetRole {
14307    #[inline]
14308    pub fn role(&self) -> Option<Role> {
14309        support::child(&self.syntax)
14310    }
14311    #[inline]
14312    pub fn local_token(&self) -> Option<SyntaxToken> {
14313        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14314    }
14315    #[inline]
14316    pub fn none_token(&self) -> Option<SyntaxToken> {
14317        support::token(&self.syntax, SyntaxKind::NONE_KW)
14318    }
14319    #[inline]
14320    pub fn reset_token(&self) -> Option<SyntaxToken> {
14321        support::token(&self.syntax, SyntaxKind::RESET_KW)
14322    }
14323    #[inline]
14324    pub fn role_token(&self) -> Option<SyntaxToken> {
14325        support::token(&self.syntax, SyntaxKind::ROLE_KW)
14326    }
14327    #[inline]
14328    pub fn session_token(&self) -> Option<SyntaxToken> {
14329        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14330    }
14331    #[inline]
14332    pub fn set_token(&self) -> Option<SyntaxToken> {
14333        support::token(&self.syntax, SyntaxKind::SET_KW)
14334    }
14335}
14336
14337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14338pub struct SetSchema {
14339    pub(crate) syntax: SyntaxNode,
14340}
14341impl SetSchema {
14342    #[inline]
14343    pub fn name_ref(&self) -> Option<NameRef> {
14344        support::child(&self.syntax)
14345    }
14346    #[inline]
14347    pub fn schema_token(&self) -> Option<SyntaxToken> {
14348        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14349    }
14350    #[inline]
14351    pub fn set_token(&self) -> Option<SyntaxToken> {
14352        support::token(&self.syntax, SyntaxKind::SET_KW)
14353    }
14354}
14355
14356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14357pub struct SetSequenceOption {
14358    pub(crate) syntax: SyntaxNode,
14359}
14360impl SetSequenceOption {
14361    #[inline]
14362    pub fn set_token(&self) -> Option<SyntaxToken> {
14363        support::token(&self.syntax, SyntaxKind::SET_KW)
14364    }
14365}
14366
14367#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14368pub struct SetSessionAuth {
14369    pub(crate) syntax: SyntaxNode,
14370}
14371impl SetSessionAuth {
14372    #[inline]
14373    pub fn literal(&self) -> Option<Literal> {
14374        support::child(&self.syntax)
14375    }
14376    #[inline]
14377    pub fn role(&self) -> Option<Role> {
14378        support::child(&self.syntax)
14379    }
14380    #[inline]
14381    pub fn authorization_token(&self) -> Option<SyntaxToken> {
14382        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
14383    }
14384    #[inline]
14385    pub fn default_token(&self) -> Option<SyntaxToken> {
14386        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14387    }
14388    #[inline]
14389    pub fn local_token(&self) -> Option<SyntaxToken> {
14390        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14391    }
14392    #[inline]
14393    pub fn session_token(&self) -> Option<SyntaxToken> {
14394        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14395    }
14396    #[inline]
14397    pub fn set_token(&self) -> Option<SyntaxToken> {
14398        support::token(&self.syntax, SyntaxKind::SET_KW)
14399    }
14400}
14401
14402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14403pub struct SetSingleColumn {
14404    pub(crate) syntax: SyntaxNode,
14405}
14406impl SetSingleColumn {
14407    #[inline]
14408    pub fn column(&self) -> Option<Column> {
14409        support::child(&self.syntax)
14410    }
14411    #[inline]
14412    pub fn set_expr(&self) -> Option<SetExpr> {
14413        support::child(&self.syntax)
14414    }
14415    #[inline]
14416    pub fn eq_token(&self) -> Option<SyntaxToken> {
14417        support::token(&self.syntax, SyntaxKind::EQ)
14418    }
14419}
14420
14421#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14422pub struct SetStatistics {
14423    pub(crate) syntax: SyntaxNode,
14424}
14425impl SetStatistics {
14426    #[inline]
14427    pub fn set_token(&self) -> Option<SyntaxToken> {
14428        support::token(&self.syntax, SyntaxKind::SET_KW)
14429    }
14430    #[inline]
14431    pub fn statistics_token(&self) -> Option<SyntaxToken> {
14432        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
14433    }
14434}
14435
14436#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14437pub struct SetStorage {
14438    pub(crate) syntax: SyntaxNode,
14439}
14440impl SetStorage {
14441    #[inline]
14442    pub fn set_token(&self) -> Option<SyntaxToken> {
14443        support::token(&self.syntax, SyntaxKind::SET_KW)
14444    }
14445    #[inline]
14446    pub fn storage_token(&self) -> Option<SyntaxToken> {
14447        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14448    }
14449}
14450
14451#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14452pub struct SetTablespace {
14453    pub(crate) syntax: SyntaxNode,
14454}
14455impl SetTablespace {
14456    #[inline]
14457    pub fn path(&self) -> Option<Path> {
14458        support::child(&self.syntax)
14459    }
14460    #[inline]
14461    pub fn set_token(&self) -> Option<SyntaxToken> {
14462        support::token(&self.syntax, SyntaxKind::SET_KW)
14463    }
14464    #[inline]
14465    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
14466        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
14467    }
14468}
14469
14470#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14471pub struct SetTransaction {
14472    pub(crate) syntax: SyntaxNode,
14473}
14474impl SetTransaction {
14475    #[inline]
14476    pub fn literal(&self) -> Option<Literal> {
14477        support::child(&self.syntax)
14478    }
14479    #[inline]
14480    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
14481        support::child(&self.syntax)
14482    }
14483    #[inline]
14484    pub fn as_token(&self) -> Option<SyntaxToken> {
14485        support::token(&self.syntax, SyntaxKind::AS_KW)
14486    }
14487    #[inline]
14488    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
14489        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
14490    }
14491    #[inline]
14492    pub fn session_token(&self) -> Option<SyntaxToken> {
14493        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14494    }
14495    #[inline]
14496    pub fn set_token(&self) -> Option<SyntaxToken> {
14497        support::token(&self.syntax, SyntaxKind::SET_KW)
14498    }
14499    #[inline]
14500    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
14501        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
14502    }
14503    #[inline]
14504    pub fn transaction_token(&self) -> Option<SyntaxToken> {
14505        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
14506    }
14507}
14508
14509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14510pub struct SetType {
14511    pub(crate) syntax: SyntaxNode,
14512}
14513impl SetType {
14514    #[inline]
14515    pub fn collate(&self) -> Option<Collate> {
14516        support::child(&self.syntax)
14517    }
14518    #[inline]
14519    pub fn ty(&self) -> Option<Type> {
14520        support::child(&self.syntax)
14521    }
14522    #[inline]
14523    pub fn set_token(&self) -> Option<SyntaxToken> {
14524        support::token(&self.syntax, SyntaxKind::SET_KW)
14525    }
14526    #[inline]
14527    pub fn type_token(&self) -> Option<SyntaxToken> {
14528        support::token(&self.syntax, SyntaxKind::TYPE_KW)
14529    }
14530}
14531
14532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14533pub struct SetUnlogged {
14534    pub(crate) syntax: SyntaxNode,
14535}
14536impl SetUnlogged {
14537    #[inline]
14538    pub fn set_token(&self) -> Option<SyntaxToken> {
14539        support::token(&self.syntax, SyntaxKind::SET_KW)
14540    }
14541    #[inline]
14542    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
14543        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
14544    }
14545}
14546
14547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14548pub struct SetWithoutCluster {
14549    pub(crate) syntax: SyntaxNode,
14550}
14551impl SetWithoutCluster {
14552    #[inline]
14553    pub fn cluster_token(&self) -> Option<SyntaxToken> {
14554        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
14555    }
14556    #[inline]
14557    pub fn set_token(&self) -> Option<SyntaxToken> {
14558        support::token(&self.syntax, SyntaxKind::SET_KW)
14559    }
14560    #[inline]
14561    pub fn without_token(&self) -> Option<SyntaxToken> {
14562        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14563    }
14564}
14565
14566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14567pub struct SetWithoutOids {
14568    pub(crate) syntax: SyntaxNode,
14569}
14570impl SetWithoutOids {
14571    #[inline]
14572    pub fn oids_token(&self) -> Option<SyntaxToken> {
14573        support::token(&self.syntax, SyntaxKind::OIDS_KW)
14574    }
14575    #[inline]
14576    pub fn set_token(&self) -> Option<SyntaxToken> {
14577        support::token(&self.syntax, SyntaxKind::SET_KW)
14578    }
14579    #[inline]
14580    pub fn without_token(&self) -> Option<SyntaxToken> {
14581        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14582    }
14583}
14584
14585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14586pub struct Show {
14587    pub(crate) syntax: SyntaxNode,
14588}
14589impl Show {
14590    #[inline]
14591    pub fn show_token(&self) -> Option<SyntaxToken> {
14592        support::token(&self.syntax, SyntaxKind::SHOW_KW)
14593    }
14594}
14595
14596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14597pub struct SimilarTo {
14598    pub(crate) syntax: SyntaxNode,
14599}
14600impl SimilarTo {
14601    #[inline]
14602    pub fn similar_token(&self) -> Option<SyntaxToken> {
14603        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14604    }
14605    #[inline]
14606    pub fn to_token(&self) -> Option<SyntaxToken> {
14607        support::token(&self.syntax, SyntaxKind::TO_KW)
14608    }
14609}
14610
14611#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14612pub struct SliceExpr {
14613    pub(crate) syntax: SyntaxNode,
14614}
14615impl SliceExpr {
14616    #[inline]
14617    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
14618        support::token(&self.syntax, SyntaxKind::L_BRACK)
14619    }
14620    #[inline]
14621    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
14622        support::token(&self.syntax, SyntaxKind::R_BRACK)
14623    }
14624    #[inline]
14625    pub fn colon_token(&self) -> Option<SyntaxToken> {
14626        support::token(&self.syntax, SyntaxKind::COLON)
14627    }
14628}
14629
14630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14631pub struct SomeFn {
14632    pub(crate) syntax: SyntaxNode,
14633}
14634impl SomeFn {
14635    #[inline]
14636    pub fn expr(&self) -> Option<Expr> {
14637        support::child(&self.syntax)
14638    }
14639    #[inline]
14640    pub fn select_variant(&self) -> Option<SelectVariant> {
14641        support::child(&self.syntax)
14642    }
14643    #[inline]
14644    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14645        support::token(&self.syntax, SyntaxKind::L_PAREN)
14646    }
14647    #[inline]
14648    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14649        support::token(&self.syntax, SyntaxKind::R_PAREN)
14650    }
14651    #[inline]
14652    pub fn some_token(&self) -> Option<SyntaxToken> {
14653        support::token(&self.syntax, SyntaxKind::SOME_KW)
14654    }
14655}
14656
14657#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14658pub struct SortAsc {
14659    pub(crate) syntax: SyntaxNode,
14660}
14661impl SortAsc {
14662    #[inline]
14663    pub fn asc_token(&self) -> Option<SyntaxToken> {
14664        support::token(&self.syntax, SyntaxKind::ASC_KW)
14665    }
14666}
14667
14668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14669pub struct SortBy {
14670    pub(crate) syntax: SyntaxNode,
14671}
14672impl SortBy {
14673    #[inline]
14674    pub fn expr(&self) -> Option<Expr> {
14675        support::child(&self.syntax)
14676    }
14677    #[inline]
14678    pub fn nulls_first(&self) -> Option<NullsFirst> {
14679        support::child(&self.syntax)
14680    }
14681    #[inline]
14682    pub fn nulls_last(&self) -> Option<NullsLast> {
14683        support::child(&self.syntax)
14684    }
14685    #[inline]
14686    pub fn sort_asc(&self) -> Option<SortAsc> {
14687        support::child(&self.syntax)
14688    }
14689    #[inline]
14690    pub fn sort_desc(&self) -> Option<SortDesc> {
14691        support::child(&self.syntax)
14692    }
14693    #[inline]
14694    pub fn sort_using(&self) -> Option<SortUsing> {
14695        support::child(&self.syntax)
14696    }
14697}
14698
14699#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14700pub struct SortByList {
14701    pub(crate) syntax: SyntaxNode,
14702}
14703impl SortByList {
14704    #[inline]
14705    pub fn sort_bys(&self) -> AstChildren<SortBy> {
14706        support::children(&self.syntax)
14707    }
14708}
14709
14710#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14711pub struct SortDesc {
14712    pub(crate) syntax: SyntaxNode,
14713}
14714impl SortDesc {
14715    #[inline]
14716    pub fn desc_token(&self) -> Option<SyntaxToken> {
14717        support::token(&self.syntax, SyntaxKind::DESC_KW)
14718    }
14719}
14720
14721#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14722pub struct SortUsing {
14723    pub(crate) syntax: SyntaxNode,
14724}
14725impl SortUsing {
14726    #[inline]
14727    pub fn op(&self) -> Option<Op> {
14728        support::child(&self.syntax)
14729    }
14730    #[inline]
14731    pub fn using_token(&self) -> Option<SyntaxToken> {
14732        support::token(&self.syntax, SyntaxKind::USING_KW)
14733    }
14734}
14735
14736#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14737pub struct SourceFile {
14738    pub(crate) syntax: SyntaxNode,
14739}
14740impl SourceFile {
14741    #[inline]
14742    pub fn stmts(&self) -> AstChildren<Stmt> {
14743        support::children(&self.syntax)
14744    }
14745}
14746
14747#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14748pub struct SplitPartition {
14749    pub(crate) syntax: SyntaxNode,
14750}
14751impl SplitPartition {
14752    #[inline]
14753    pub fn partition_list(&self) -> Option<PartitionList> {
14754        support::child(&self.syntax)
14755    }
14756    #[inline]
14757    pub fn into_token(&self) -> Option<SyntaxToken> {
14758        support::token(&self.syntax, SyntaxKind::INTO_KW)
14759    }
14760    #[inline]
14761    pub fn partition_token(&self) -> Option<SyntaxToken> {
14762        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
14763    }
14764    #[inline]
14765    pub fn split_token(&self) -> Option<SyntaxToken> {
14766        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
14767    }
14768}
14769
14770#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14771pub struct Storage {
14772    pub(crate) syntax: SyntaxNode,
14773}
14774impl Storage {
14775    #[inline]
14776    pub fn default_token(&self) -> Option<SyntaxToken> {
14777        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14778    }
14779    #[inline]
14780    pub fn external_token(&self) -> Option<SyntaxToken> {
14781        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
14782    }
14783    #[inline]
14784    pub fn ident_token(&self) -> Option<SyntaxToken> {
14785        support::token(&self.syntax, SyntaxKind::IDENT)
14786    }
14787    #[inline]
14788    pub fn storage_token(&self) -> Option<SyntaxToken> {
14789        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14790    }
14791}
14792
14793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14794pub struct StrictFuncOption {
14795    pub(crate) syntax: SyntaxNode,
14796}
14797impl StrictFuncOption {
14798    #[inline]
14799    pub fn called_token(&self) -> Option<SyntaxToken> {
14800        support::token(&self.syntax, SyntaxKind::CALLED_KW)
14801    }
14802    #[inline]
14803    pub fn input_token(&self) -> Option<SyntaxToken> {
14804        support::token(&self.syntax, SyntaxKind::INPUT_KW)
14805    }
14806    #[inline]
14807    pub fn null_token(&self) -> Option<SyntaxToken> {
14808        support::token(&self.syntax, SyntaxKind::NULL_KW)
14809    }
14810    #[inline]
14811    pub fn on_token(&self) -> Option<SyntaxToken> {
14812        support::token(&self.syntax, SyntaxKind::ON_KW)
14813    }
14814    #[inline]
14815    pub fn returns_token(&self) -> Option<SyntaxToken> {
14816        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
14817    }
14818    #[inline]
14819    pub fn strict_token(&self) -> Option<SyntaxToken> {
14820        support::token(&self.syntax, SyntaxKind::STRICT_KW)
14821    }
14822}
14823
14824#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14825pub struct SubstringFn {
14826    pub(crate) syntax: SyntaxNode,
14827}
14828impl SubstringFn {
14829    #[inline]
14830    pub fn expr(&self) -> Option<Expr> {
14831        support::child(&self.syntax)
14832    }
14833    #[inline]
14834    pub fn exprs(&self) -> AstChildren<Expr> {
14835        support::children(&self.syntax)
14836    }
14837    #[inline]
14838    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14839        support::token(&self.syntax, SyntaxKind::L_PAREN)
14840    }
14841    #[inline]
14842    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14843        support::token(&self.syntax, SyntaxKind::R_PAREN)
14844    }
14845    #[inline]
14846    pub fn for_token(&self) -> Option<SyntaxToken> {
14847        support::token(&self.syntax, SyntaxKind::FOR_KW)
14848    }
14849    #[inline]
14850    pub fn from_token(&self) -> Option<SyntaxToken> {
14851        support::token(&self.syntax, SyntaxKind::FROM_KW)
14852    }
14853    #[inline]
14854    pub fn similar_token(&self) -> Option<SyntaxToken> {
14855        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14856    }
14857    #[inline]
14858    pub fn substring_token(&self) -> Option<SyntaxToken> {
14859        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
14860    }
14861}
14862
14863#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14864pub struct SupportFuncOption {
14865    pub(crate) syntax: SyntaxNode,
14866}
14867impl SupportFuncOption {
14868    #[inline]
14869    pub fn support_token(&self) -> Option<SyntaxToken> {
14870        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
14871    }
14872}
14873
14874#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14875pub struct Table {
14876    pub(crate) syntax: SyntaxNode,
14877}
14878impl Table {
14879    #[inline]
14880    pub fn relation_name(&self) -> Option<RelationName> {
14881        support::child(&self.syntax)
14882    }
14883    #[inline]
14884    pub fn table_token(&self) -> Option<SyntaxToken> {
14885        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14886    }
14887}
14888
14889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14890pub struct TableAndColumns {
14891    pub(crate) syntax: SyntaxNode,
14892}
14893impl TableAndColumns {
14894    #[inline]
14895    pub fn column_list(&self) -> Option<ColumnList> {
14896        support::child(&self.syntax)
14897    }
14898    #[inline]
14899    pub fn relation_name(&self) -> Option<RelationName> {
14900        support::child(&self.syntax)
14901    }
14902}
14903
14904#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14905pub struct TableAndColumnsList {
14906    pub(crate) syntax: SyntaxNode,
14907}
14908impl TableAndColumnsList {
14909    #[inline]
14910    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
14911        support::children(&self.syntax)
14912    }
14913}
14914
14915#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14916pub struct TableArgList {
14917    pub(crate) syntax: SyntaxNode,
14918}
14919impl TableArgList {
14920    #[inline]
14921    pub fn args(&self) -> AstChildren<TableArg> {
14922        support::children(&self.syntax)
14923    }
14924    #[inline]
14925    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14926        support::token(&self.syntax, SyntaxKind::L_PAREN)
14927    }
14928    #[inline]
14929    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14930        support::token(&self.syntax, SyntaxKind::R_PAREN)
14931    }
14932}
14933
14934#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14935pub struct TableList {
14936    pub(crate) syntax: SyntaxNode,
14937}
14938impl TableList {
14939    #[inline]
14940    pub fn relation_names(&self) -> AstChildren<RelationName> {
14941        support::children(&self.syntax)
14942    }
14943}
14944
14945#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14946pub struct TablesampleClause {
14947    pub(crate) syntax: SyntaxNode,
14948}
14949impl TablesampleClause {
14950    #[inline]
14951    pub fn call_expr(&self) -> Option<CallExpr> {
14952        support::child(&self.syntax)
14953    }
14954    #[inline]
14955    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
14956        support::child(&self.syntax)
14957    }
14958    #[inline]
14959    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
14960        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
14961    }
14962}
14963
14964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14965pub struct Tablespace {
14966    pub(crate) syntax: SyntaxNode,
14967}
14968impl Tablespace {
14969    #[inline]
14970    pub fn name_ref(&self) -> Option<NameRef> {
14971        support::child(&self.syntax)
14972    }
14973    #[inline]
14974    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
14975        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
14976    }
14977}
14978
14979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14980pub struct Target {
14981    pub(crate) syntax: SyntaxNode,
14982}
14983impl Target {
14984    #[inline]
14985    pub fn as_name(&self) -> Option<AsName> {
14986        support::child(&self.syntax)
14987    }
14988    #[inline]
14989    pub fn expr(&self) -> Option<Expr> {
14990        support::child(&self.syntax)
14991    }
14992    #[inline]
14993    pub fn star_token(&self) -> Option<SyntaxToken> {
14994        support::token(&self.syntax, SyntaxKind::STAR)
14995    }
14996}
14997
14998#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14999pub struct TargetList {
15000    pub(crate) syntax: SyntaxNode,
15001}
15002impl TargetList {
15003    #[inline]
15004    pub fn targets(&self) -> AstChildren<Target> {
15005        support::children(&self.syntax)
15006    }
15007}
15008
15009#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15010pub struct TimeType {
15011    pub(crate) syntax: SyntaxNode,
15012}
15013impl TimeType {
15014    #[inline]
15015    pub fn literal(&self) -> Option<Literal> {
15016        support::child(&self.syntax)
15017    }
15018    #[inline]
15019    pub fn timezone(&self) -> Option<Timezone> {
15020        support::child(&self.syntax)
15021    }
15022    #[inline]
15023    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15024        support::token(&self.syntax, SyntaxKind::L_PAREN)
15025    }
15026    #[inline]
15027    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15028        support::token(&self.syntax, SyntaxKind::R_PAREN)
15029    }
15030    #[inline]
15031    pub fn time_token(&self) -> Option<SyntaxToken> {
15032        support::token(&self.syntax, SyntaxKind::TIME_KW)
15033    }
15034    #[inline]
15035    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
15036        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
15037    }
15038}
15039
15040#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15041pub struct Timing {
15042    pub(crate) syntax: SyntaxNode,
15043}
15044impl Timing {
15045    #[inline]
15046    pub fn after_token(&self) -> Option<SyntaxToken> {
15047        support::token(&self.syntax, SyntaxKind::AFTER_KW)
15048    }
15049    #[inline]
15050    pub fn before_token(&self) -> Option<SyntaxToken> {
15051        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
15052    }
15053    #[inline]
15054    pub fn instead_token(&self) -> Option<SyntaxToken> {
15055        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
15056    }
15057    #[inline]
15058    pub fn of_token(&self) -> Option<SyntaxToken> {
15059        support::token(&self.syntax, SyntaxKind::OF_KW)
15060    }
15061}
15062
15063#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15064pub struct TransactionModeList {
15065    pub(crate) syntax: SyntaxNode,
15066}
15067impl TransactionModeList {
15068    #[inline]
15069    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
15070        support::children(&self.syntax)
15071    }
15072}
15073
15074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15075pub struct TransformFromFunc {
15076    pub(crate) syntax: SyntaxNode,
15077}
15078impl TransformFromFunc {
15079    #[inline]
15080    pub fn function_sig(&self) -> Option<FunctionSig> {
15081        support::child(&self.syntax)
15082    }
15083    #[inline]
15084    pub fn from_token(&self) -> Option<SyntaxToken> {
15085        support::token(&self.syntax, SyntaxKind::FROM_KW)
15086    }
15087    #[inline]
15088    pub fn function_token(&self) -> Option<SyntaxToken> {
15089        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15090    }
15091    #[inline]
15092    pub fn sql_token(&self) -> Option<SyntaxToken> {
15093        support::token(&self.syntax, SyntaxKind::SQL_KW)
15094    }
15095    #[inline]
15096    pub fn with_token(&self) -> Option<SyntaxToken> {
15097        support::token(&self.syntax, SyntaxKind::WITH_KW)
15098    }
15099}
15100
15101#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15102pub struct TransformFuncOption {
15103    pub(crate) syntax: SyntaxNode,
15104}
15105impl TransformFuncOption {
15106    #[inline]
15107    pub fn transform_token(&self) -> Option<SyntaxToken> {
15108        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
15109    }
15110}
15111
15112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15113pub struct TransformToFunc {
15114    pub(crate) syntax: SyntaxNode,
15115}
15116impl TransformToFunc {
15117    #[inline]
15118    pub fn function_sig(&self) -> Option<FunctionSig> {
15119        support::child(&self.syntax)
15120    }
15121    #[inline]
15122    pub fn function_token(&self) -> Option<SyntaxToken> {
15123        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15124    }
15125    #[inline]
15126    pub fn sql_token(&self) -> Option<SyntaxToken> {
15127        support::token(&self.syntax, SyntaxKind::SQL_KW)
15128    }
15129    #[inline]
15130    pub fn to_token(&self) -> Option<SyntaxToken> {
15131        support::token(&self.syntax, SyntaxKind::TO_KW)
15132    }
15133    #[inline]
15134    pub fn with_token(&self) -> Option<SyntaxToken> {
15135        support::token(&self.syntax, SyntaxKind::WITH_KW)
15136    }
15137}
15138
15139#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15140pub struct TriggerEvent {
15141    pub(crate) syntax: SyntaxNode,
15142}
15143impl TriggerEvent {
15144    #[inline]
15145    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
15146        support::child(&self.syntax)
15147    }
15148    #[inline]
15149    pub fn delete_token(&self) -> Option<SyntaxToken> {
15150        support::token(&self.syntax, SyntaxKind::DELETE_KW)
15151    }
15152    #[inline]
15153    pub fn insert_token(&self) -> Option<SyntaxToken> {
15154        support::token(&self.syntax, SyntaxKind::INSERT_KW)
15155    }
15156    #[inline]
15157    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15158        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15159    }
15160}
15161
15162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15163pub struct TriggerEventList {
15164    pub(crate) syntax: SyntaxNode,
15165}
15166impl TriggerEventList {
15167    #[inline]
15168    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
15169        support::children(&self.syntax)
15170    }
15171}
15172
15173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15174pub struct TriggerEventUpdate {
15175    pub(crate) syntax: SyntaxNode,
15176}
15177impl TriggerEventUpdate {
15178    #[inline]
15179    pub fn name_refs(&self) -> AstChildren<NameRef> {
15180        support::children(&self.syntax)
15181    }
15182    #[inline]
15183    pub fn of_token(&self) -> Option<SyntaxToken> {
15184        support::token(&self.syntax, SyntaxKind::OF_KW)
15185    }
15186    #[inline]
15187    pub fn update_token(&self) -> Option<SyntaxToken> {
15188        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15189    }
15190}
15191
15192#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15193pub struct TrimFn {
15194    pub(crate) syntax: SyntaxNode,
15195}
15196impl TrimFn {
15197    #[inline]
15198    pub fn expr(&self) -> Option<Expr> {
15199        support::child(&self.syntax)
15200    }
15201    #[inline]
15202    pub fn exprs(&self) -> AstChildren<Expr> {
15203        support::children(&self.syntax)
15204    }
15205    #[inline]
15206    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15207        support::token(&self.syntax, SyntaxKind::L_PAREN)
15208    }
15209    #[inline]
15210    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15211        support::token(&self.syntax, SyntaxKind::R_PAREN)
15212    }
15213    #[inline]
15214    pub fn from_token(&self) -> Option<SyntaxToken> {
15215        support::token(&self.syntax, SyntaxKind::FROM_KW)
15216    }
15217    #[inline]
15218    pub fn trim_token(&self) -> Option<SyntaxToken> {
15219        support::token(&self.syntax, SyntaxKind::TRIM_KW)
15220    }
15221}
15222
15223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15224pub struct Truncate {
15225    pub(crate) syntax: SyntaxNode,
15226}
15227impl Truncate {
15228    #[inline]
15229    pub fn table_list(&self) -> Option<TableList> {
15230        support::child(&self.syntax)
15231    }
15232    #[inline]
15233    pub fn cascade_token(&self) -> Option<SyntaxToken> {
15234        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
15235    }
15236    #[inline]
15237    pub fn continue_token(&self) -> Option<SyntaxToken> {
15238        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
15239    }
15240    #[inline]
15241    pub fn identity_token(&self) -> Option<SyntaxToken> {
15242        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
15243    }
15244    #[inline]
15245    pub fn restart_token(&self) -> Option<SyntaxToken> {
15246        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15247    }
15248    #[inline]
15249    pub fn restrict_token(&self) -> Option<SyntaxToken> {
15250        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
15251    }
15252    #[inline]
15253    pub fn table_token(&self) -> Option<SyntaxToken> {
15254        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15255    }
15256    #[inline]
15257    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15258        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15259    }
15260}
15261
15262#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15263pub struct TupleExpr {
15264    pub(crate) syntax: SyntaxNode,
15265}
15266impl TupleExpr {
15267    #[inline]
15268    pub fn exprs(&self) -> AstChildren<Expr> {
15269        support::children(&self.syntax)
15270    }
15271    #[inline]
15272    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15273        support::token(&self.syntax, SyntaxKind::L_PAREN)
15274    }
15275    #[inline]
15276    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15277        support::token(&self.syntax, SyntaxKind::R_PAREN)
15278    }
15279}
15280
15281#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15282pub struct UnicodeNormalForm {
15283    pub(crate) syntax: SyntaxNode,
15284}
15285impl UnicodeNormalForm {
15286    #[inline]
15287    pub fn nfc_token(&self) -> Option<SyntaxToken> {
15288        support::token(&self.syntax, SyntaxKind::NFC_KW)
15289    }
15290    #[inline]
15291    pub fn nfd_token(&self) -> Option<SyntaxToken> {
15292        support::token(&self.syntax, SyntaxKind::NFD_KW)
15293    }
15294    #[inline]
15295    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
15296        support::token(&self.syntax, SyntaxKind::NFKC_KW)
15297    }
15298    #[inline]
15299    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
15300        support::token(&self.syntax, SyntaxKind::NFKD_KW)
15301    }
15302}
15303
15304#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15305pub struct UniqueConstraint {
15306    pub(crate) syntax: SyntaxNode,
15307}
15308impl UniqueConstraint {
15309    #[inline]
15310    pub fn column_list(&self) -> Option<ColumnList> {
15311        support::child(&self.syntax)
15312    }
15313    #[inline]
15314    pub fn constraint_name(&self) -> Option<ConstraintName> {
15315        support::child(&self.syntax)
15316    }
15317    #[inline]
15318    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
15319        support::child(&self.syntax)
15320    }
15321    #[inline]
15322    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
15323        support::child(&self.syntax)
15324    }
15325    #[inline]
15326    pub fn using_index(&self) -> Option<UsingIndex> {
15327        support::child(&self.syntax)
15328    }
15329    #[inline]
15330    pub fn unique_token(&self) -> Option<SyntaxToken> {
15331        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
15332    }
15333}
15334
15335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15336pub struct Unlisten {
15337    pub(crate) syntax: SyntaxNode,
15338}
15339impl Unlisten {
15340    #[inline]
15341    pub fn name_ref(&self) -> Option<NameRef> {
15342        support::child(&self.syntax)
15343    }
15344    #[inline]
15345    pub fn star_token(&self) -> Option<SyntaxToken> {
15346        support::token(&self.syntax, SyntaxKind::STAR)
15347    }
15348    #[inline]
15349    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
15350        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
15351    }
15352}
15353
15354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15355pub struct Update {
15356    pub(crate) syntax: SyntaxNode,
15357}
15358impl Update {
15359    #[inline]
15360    pub fn alias(&self) -> Option<Alias> {
15361        support::child(&self.syntax)
15362    }
15363    #[inline]
15364    pub fn from_clause(&self) -> Option<FromClause> {
15365        support::child(&self.syntax)
15366    }
15367    #[inline]
15368    pub fn relation_name(&self) -> Option<RelationName> {
15369        support::child(&self.syntax)
15370    }
15371    #[inline]
15372    pub fn returning_clause(&self) -> Option<ReturningClause> {
15373        support::child(&self.syntax)
15374    }
15375    #[inline]
15376    pub fn set_clause(&self) -> Option<SetClause> {
15377        support::child(&self.syntax)
15378    }
15379    #[inline]
15380    pub fn where_clause(&self) -> Option<WhereClause> {
15381        support::child(&self.syntax)
15382    }
15383    #[inline]
15384    pub fn with_clause(&self) -> Option<WithClause> {
15385        support::child(&self.syntax)
15386    }
15387    #[inline]
15388    pub fn update_token(&self) -> Option<SyntaxToken> {
15389        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15390    }
15391}
15392
15393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15394pub struct UsingClause {
15395    pub(crate) syntax: SyntaxNode,
15396}
15397impl UsingClause {
15398    #[inline]
15399    pub fn from_items(&self) -> AstChildren<FromItem> {
15400        support::children(&self.syntax)
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 UsingIndex {
15410    pub(crate) syntax: SyntaxNode,
15411}
15412impl UsingIndex {
15413    #[inline]
15414    pub fn name_ref(&self) -> Option<NameRef> {
15415        support::child(&self.syntax)
15416    }
15417    #[inline]
15418    pub fn index_token(&self) -> Option<SyntaxToken> {
15419        support::token(&self.syntax, SyntaxKind::INDEX_KW)
15420    }
15421    #[inline]
15422    pub fn using_token(&self) -> Option<SyntaxToken> {
15423        support::token(&self.syntax, SyntaxKind::USING_KW)
15424    }
15425}
15426
15427#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15428pub struct UsingMethod {
15429    pub(crate) syntax: SyntaxNode,
15430}
15431impl UsingMethod {
15432    #[inline]
15433    pub fn name_ref(&self) -> Option<NameRef> {
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 UsingOnClause {
15444    pub(crate) syntax: SyntaxNode,
15445}
15446impl UsingOnClause {
15447    #[inline]
15448    pub fn from_item(&self) -> Option<FromItem> {
15449        support::child(&self.syntax)
15450    }
15451    #[inline]
15452    pub fn on_clause(&self) -> Option<OnClause> {
15453        support::child(&self.syntax)
15454    }
15455    #[inline]
15456    pub fn using_token(&self) -> Option<SyntaxToken> {
15457        support::token(&self.syntax, SyntaxKind::USING_KW)
15458    }
15459}
15460
15461#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15462pub struct Vacuum {
15463    pub(crate) syntax: SyntaxNode,
15464}
15465impl Vacuum {
15466    #[inline]
15467    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
15468        support::child(&self.syntax)
15469    }
15470    #[inline]
15471    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
15472        support::child(&self.syntax)
15473    }
15474    #[inline]
15475    pub fn analyse_token(&self) -> Option<SyntaxToken> {
15476        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
15477    }
15478    #[inline]
15479    pub fn analyze_token(&self) -> Option<SyntaxToken> {
15480        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
15481    }
15482    #[inline]
15483    pub fn freeze_token(&self) -> Option<SyntaxToken> {
15484        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
15485    }
15486    #[inline]
15487    pub fn full_token(&self) -> Option<SyntaxToken> {
15488        support::token(&self.syntax, SyntaxKind::FULL_KW)
15489    }
15490    #[inline]
15491    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
15492        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
15493    }
15494    #[inline]
15495    pub fn verbose_token(&self) -> Option<SyntaxToken> {
15496        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
15497    }
15498}
15499
15500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15501pub struct VacuumOption {
15502    pub(crate) syntax: SyntaxNode,
15503}
15504impl VacuumOption {
15505    #[inline]
15506    pub fn literal(&self) -> Option<Literal> {
15507        support::child(&self.syntax)
15508    }
15509}
15510
15511#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15512pub struct VacuumOptionList {
15513    pub(crate) syntax: SyntaxNode,
15514}
15515impl VacuumOptionList {
15516    #[inline]
15517    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
15518        support::children(&self.syntax)
15519    }
15520    #[inline]
15521    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15522        support::token(&self.syntax, SyntaxKind::L_PAREN)
15523    }
15524    #[inline]
15525    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15526        support::token(&self.syntax, SyntaxKind::R_PAREN)
15527    }
15528}
15529
15530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15531pub struct ValidateConstraint {
15532    pub(crate) syntax: SyntaxNode,
15533}
15534impl ValidateConstraint {
15535    #[inline]
15536    pub fn name_ref(&self) -> Option<NameRef> {
15537        support::child(&self.syntax)
15538    }
15539    #[inline]
15540    pub fn constraint_token(&self) -> Option<SyntaxToken> {
15541        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
15542    }
15543    #[inline]
15544    pub fn validate_token(&self) -> Option<SyntaxToken> {
15545        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
15546    }
15547}
15548
15549#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15550pub struct Values {
15551    pub(crate) syntax: SyntaxNode,
15552}
15553impl Values {
15554    #[inline]
15555    pub fn row_list(&self) -> Option<RowList> {
15556        support::child(&self.syntax)
15557    }
15558    #[inline]
15559    pub fn values_token(&self) -> Option<SyntaxToken> {
15560        support::token(&self.syntax, SyntaxKind::VALUES_KW)
15561    }
15562}
15563
15564#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15565pub struct Variant {
15566    pub(crate) syntax: SyntaxNode,
15567}
15568impl Variant {
15569    #[inline]
15570    pub fn literal(&self) -> Option<Literal> {
15571        support::child(&self.syntax)
15572    }
15573}
15574
15575#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15576pub struct VariantList {
15577    pub(crate) syntax: SyntaxNode,
15578}
15579impl VariantList {
15580    #[inline]
15581    pub fn variants(&self) -> AstChildren<Variant> {
15582        support::children(&self.syntax)
15583    }
15584    #[inline]
15585    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15586        support::token(&self.syntax, SyntaxKind::L_PAREN)
15587    }
15588    #[inline]
15589    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15590        support::token(&self.syntax, SyntaxKind::R_PAREN)
15591    }
15592}
15593
15594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15595pub struct VolatilityFuncOption {
15596    pub(crate) syntax: SyntaxNode,
15597}
15598impl VolatilityFuncOption {
15599    #[inline]
15600    pub fn immutable_token(&self) -> Option<SyntaxToken> {
15601        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
15602    }
15603    #[inline]
15604    pub fn stable_token(&self) -> Option<SyntaxToken> {
15605        support::token(&self.syntax, SyntaxKind::STABLE_KW)
15606    }
15607    #[inline]
15608    pub fn volatile_token(&self) -> Option<SyntaxToken> {
15609        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
15610    }
15611}
15612
15613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15614pub struct WhenClause {
15615    pub(crate) syntax: SyntaxNode,
15616}
15617impl WhenClause {
15618    #[inline]
15619    pub fn then_token(&self) -> Option<SyntaxToken> {
15620        support::token(&self.syntax, SyntaxKind::THEN_KW)
15621    }
15622    #[inline]
15623    pub fn when_token(&self) -> Option<SyntaxToken> {
15624        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15625    }
15626}
15627
15628#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15629pub struct WhenClauseList {
15630    pub(crate) syntax: SyntaxNode,
15631}
15632impl WhenClauseList {
15633    #[inline]
15634    pub fn when_clause(&self) -> Option<WhenClause> {
15635        support::child(&self.syntax)
15636    }
15637    #[inline]
15638    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
15639        support::children(&self.syntax)
15640    }
15641}
15642
15643#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15644pub struct WhenCondition {
15645    pub(crate) syntax: SyntaxNode,
15646}
15647impl WhenCondition {
15648    #[inline]
15649    pub fn expr(&self) -> Option<Expr> {
15650        support::child(&self.syntax)
15651    }
15652    #[inline]
15653    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15654        support::token(&self.syntax, SyntaxKind::L_PAREN)
15655    }
15656    #[inline]
15657    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15658        support::token(&self.syntax, SyntaxKind::R_PAREN)
15659    }
15660    #[inline]
15661    pub fn when_token(&self) -> Option<SyntaxToken> {
15662        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15663    }
15664}
15665
15666#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15667pub struct WhereClause {
15668    pub(crate) syntax: SyntaxNode,
15669}
15670impl WhereClause {
15671    #[inline]
15672    pub fn expr(&self) -> Option<Expr> {
15673        support::child(&self.syntax)
15674    }
15675    #[inline]
15676    pub fn where_token(&self) -> Option<SyntaxToken> {
15677        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15678    }
15679}
15680
15681#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15682pub struct WhereConditionClause {
15683    pub(crate) syntax: SyntaxNode,
15684}
15685impl WhereConditionClause {
15686    #[inline]
15687    pub fn expr(&self) -> Option<Expr> {
15688        support::child(&self.syntax)
15689    }
15690    #[inline]
15691    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15692        support::token(&self.syntax, SyntaxKind::L_PAREN)
15693    }
15694    #[inline]
15695    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15696        support::token(&self.syntax, SyntaxKind::R_PAREN)
15697    }
15698    #[inline]
15699    pub fn where_token(&self) -> Option<SyntaxToken> {
15700        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15701    }
15702}
15703
15704#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15705pub struct WhereCurrentOf {
15706    pub(crate) syntax: SyntaxNode,
15707}
15708impl WhereCurrentOf {
15709    #[inline]
15710    pub fn name_ref(&self) -> Option<NameRef> {
15711        support::child(&self.syntax)
15712    }
15713    #[inline]
15714    pub fn current_token(&self) -> Option<SyntaxToken> {
15715        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
15716    }
15717    #[inline]
15718    pub fn of_token(&self) -> Option<SyntaxToken> {
15719        support::token(&self.syntax, SyntaxKind::OF_KW)
15720    }
15721    #[inline]
15722    pub fn where_token(&self) -> Option<SyntaxToken> {
15723        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15724    }
15725}
15726
15727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15728pub struct WindowClause {
15729    pub(crate) syntax: SyntaxNode,
15730}
15731impl WindowClause {
15732    #[inline]
15733    pub fn window_defs(&self) -> AstChildren<WindowDef> {
15734        support::children(&self.syntax)
15735    }
15736    #[inline]
15737    pub fn window_token(&self) -> Option<SyntaxToken> {
15738        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
15739    }
15740}
15741
15742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15743pub struct WindowDef {
15744    pub(crate) syntax: SyntaxNode,
15745}
15746impl WindowDef {
15747    #[inline]
15748    pub fn name(&self) -> Option<Name> {
15749        support::child(&self.syntax)
15750    }
15751    #[inline]
15752    pub fn window_spec(&self) -> Option<WindowSpec> {
15753        support::child(&self.syntax)
15754    }
15755    #[inline]
15756    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15757        support::token(&self.syntax, SyntaxKind::L_PAREN)
15758    }
15759    #[inline]
15760    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15761        support::token(&self.syntax, SyntaxKind::R_PAREN)
15762    }
15763    #[inline]
15764    pub fn as_token(&self) -> Option<SyntaxToken> {
15765        support::token(&self.syntax, SyntaxKind::AS_KW)
15766    }
15767}
15768
15769#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15770pub struct WindowFuncOption {
15771    pub(crate) syntax: SyntaxNode,
15772}
15773impl WindowFuncOption {
15774    #[inline]
15775    pub fn window_token(&self) -> Option<SyntaxToken> {
15776        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
15777    }
15778}
15779
15780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15781pub struct WindowSpec {
15782    pub(crate) syntax: SyntaxNode,
15783}
15784impl WindowSpec {
15785    #[inline]
15786    pub fn exprs(&self) -> AstChildren<Expr> {
15787        support::children(&self.syntax)
15788    }
15789    #[inline]
15790    pub fn frame_clause(&self) -> Option<FrameClause> {
15791        support::child(&self.syntax)
15792    }
15793    #[inline]
15794    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15795        support::child(&self.syntax)
15796    }
15797    #[inline]
15798    pub fn by_token(&self) -> Option<SyntaxToken> {
15799        support::token(&self.syntax, SyntaxKind::BY_KW)
15800    }
15801    #[inline]
15802    pub fn ident_token(&self) -> Option<SyntaxToken> {
15803        support::token(&self.syntax, SyntaxKind::IDENT)
15804    }
15805    #[inline]
15806    pub fn partition_token(&self) -> Option<SyntaxToken> {
15807        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
15808    }
15809}
15810
15811#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15812pub struct WithClause {
15813    pub(crate) syntax: SyntaxNode,
15814}
15815impl WithClause {
15816    #[inline]
15817    pub fn with_tables(&self) -> AstChildren<WithTable> {
15818        support::children(&self.syntax)
15819    }
15820    #[inline]
15821    pub fn recursive_token(&self) -> Option<SyntaxToken> {
15822        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
15823    }
15824    #[inline]
15825    pub fn with_token(&self) -> Option<SyntaxToken> {
15826        support::token(&self.syntax, SyntaxKind::WITH_KW)
15827    }
15828}
15829
15830#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15831pub struct WithData {
15832    pub(crate) syntax: SyntaxNode,
15833}
15834impl WithData {
15835    #[inline]
15836    pub fn data_token(&self) -> Option<SyntaxToken> {
15837        support::token(&self.syntax, SyntaxKind::DATA_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 WithNoData {
15847    pub(crate) syntax: SyntaxNode,
15848}
15849impl WithNoData {
15850    #[inline]
15851    pub fn data_token(&self) -> Option<SyntaxToken> {
15852        support::token(&self.syntax, SyntaxKind::DATA_KW)
15853    }
15854    #[inline]
15855    pub fn no_token(&self) -> Option<SyntaxToken> {
15856        support::token(&self.syntax, SyntaxKind::NO_KW)
15857    }
15858    #[inline]
15859    pub fn with_token(&self) -> Option<SyntaxToken> {
15860        support::token(&self.syntax, SyntaxKind::WITH_KW)
15861    }
15862}
15863
15864#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15865pub struct WithOptions {
15866    pub(crate) syntax: SyntaxNode,
15867}
15868impl WithOptions {
15869    #[inline]
15870    pub fn options_token(&self) -> Option<SyntaxToken> {
15871        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
15872    }
15873    #[inline]
15874    pub fn with_token(&self) -> Option<SyntaxToken> {
15875        support::token(&self.syntax, SyntaxKind::WITH_KW)
15876    }
15877}
15878
15879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15880pub struct WithParams {
15881    pub(crate) syntax: SyntaxNode,
15882}
15883impl WithParams {
15884    #[inline]
15885    pub fn attribute_list(&self) -> Option<AttributeList> {
15886        support::child(&self.syntax)
15887    }
15888    #[inline]
15889    pub fn with_token(&self) -> Option<SyntaxToken> {
15890        support::token(&self.syntax, SyntaxKind::WITH_KW)
15891    }
15892}
15893
15894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15895pub struct WithTable {
15896    pub(crate) syntax: SyntaxNode,
15897}
15898impl WithTable {
15899    #[inline]
15900    pub fn column_list(&self) -> Option<ColumnList> {
15901        support::child(&self.syntax)
15902    }
15903    #[inline]
15904    pub fn materialized(&self) -> Option<Materialized> {
15905        support::child(&self.syntax)
15906    }
15907    #[inline]
15908    pub fn name(&self) -> Option<Name> {
15909        support::child(&self.syntax)
15910    }
15911    #[inline]
15912    pub fn not_materialized(&self) -> Option<NotMaterialized> {
15913        support::child(&self.syntax)
15914    }
15915    #[inline]
15916    pub fn query(&self) -> Option<WithQuery> {
15917        support::child(&self.syntax)
15918    }
15919    #[inline]
15920    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15921        support::token(&self.syntax, SyntaxKind::L_PAREN)
15922    }
15923    #[inline]
15924    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15925        support::token(&self.syntax, SyntaxKind::R_PAREN)
15926    }
15927    #[inline]
15928    pub fn as_token(&self) -> Option<SyntaxToken> {
15929        support::token(&self.syntax, SyntaxKind::AS_KW)
15930    }
15931}
15932
15933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15934pub struct WithTimezone {
15935    pub(crate) syntax: SyntaxNode,
15936}
15937impl WithTimezone {
15938    #[inline]
15939    pub fn time_token(&self) -> Option<SyntaxToken> {
15940        support::token(&self.syntax, SyntaxKind::TIME_KW)
15941    }
15942    #[inline]
15943    pub fn with_token(&self) -> Option<SyntaxToken> {
15944        support::token(&self.syntax, SyntaxKind::WITH_KW)
15945    }
15946    #[inline]
15947    pub fn zone_token(&self) -> Option<SyntaxToken> {
15948        support::token(&self.syntax, SyntaxKind::ZONE_KW)
15949    }
15950}
15951
15952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15953pub struct WithinClause {
15954    pub(crate) syntax: SyntaxNode,
15955}
15956impl WithinClause {
15957    #[inline]
15958    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15959        support::child(&self.syntax)
15960    }
15961    #[inline]
15962    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15963        support::token(&self.syntax, SyntaxKind::L_PAREN)
15964    }
15965    #[inline]
15966    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15967        support::token(&self.syntax, SyntaxKind::R_PAREN)
15968    }
15969    #[inline]
15970    pub fn group_token(&self) -> Option<SyntaxToken> {
15971        support::token(&self.syntax, SyntaxKind::GROUP_KW)
15972    }
15973    #[inline]
15974    pub fn within_token(&self) -> Option<SyntaxToken> {
15975        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
15976    }
15977}
15978
15979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15980pub struct WithoutOids {
15981    pub(crate) syntax: SyntaxNode,
15982}
15983impl WithoutOids {
15984    #[inline]
15985    pub fn oids_token(&self) -> Option<SyntaxToken> {
15986        support::token(&self.syntax, SyntaxKind::OIDS_KW)
15987    }
15988    #[inline]
15989    pub fn without_token(&self) -> Option<SyntaxToken> {
15990        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
15991    }
15992}
15993
15994#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15995pub struct WithoutTimezone {
15996    pub(crate) syntax: SyntaxNode,
15997}
15998impl WithoutTimezone {
15999    #[inline]
16000    pub fn time_token(&self) -> Option<SyntaxToken> {
16001        support::token(&self.syntax, SyntaxKind::TIME_KW)
16002    }
16003    #[inline]
16004    pub fn without_token(&self) -> Option<SyntaxToken> {
16005        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16006    }
16007    #[inline]
16008    pub fn zone_token(&self) -> Option<SyntaxToken> {
16009        support::token(&self.syntax, SyntaxKind::ZONE_KW)
16010    }
16011}
16012
16013#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16014pub struct XmlAttributeList {
16015    pub(crate) syntax: SyntaxNode,
16016}
16017impl XmlAttributeList {
16018    #[inline]
16019    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
16020        support::children(&self.syntax)
16021    }
16022}
16023
16024#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16025pub struct XmlColumnOption {
16026    pub(crate) syntax: SyntaxNode,
16027}
16028impl XmlColumnOption {
16029    #[inline]
16030    pub fn expr(&self) -> Option<Expr> {
16031        support::child(&self.syntax)
16032    }
16033    #[inline]
16034    pub fn default_token(&self) -> Option<SyntaxToken> {
16035        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16036    }
16037    #[inline]
16038    pub fn ident_token(&self) -> Option<SyntaxToken> {
16039        support::token(&self.syntax, SyntaxKind::IDENT)
16040    }
16041    #[inline]
16042    pub fn not_token(&self) -> Option<SyntaxToken> {
16043        support::token(&self.syntax, SyntaxKind::NOT_KW)
16044    }
16045    #[inline]
16046    pub fn null_token(&self) -> Option<SyntaxToken> {
16047        support::token(&self.syntax, SyntaxKind::NULL_KW)
16048    }
16049    #[inline]
16050    pub fn path_token(&self) -> Option<SyntaxToken> {
16051        support::token(&self.syntax, SyntaxKind::PATH_KW)
16052    }
16053}
16054
16055#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16056pub struct XmlColumnOptionList {
16057    pub(crate) syntax: SyntaxNode,
16058}
16059impl XmlColumnOptionList {
16060    #[inline]
16061    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
16062        support::child(&self.syntax)
16063    }
16064    #[inline]
16065    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
16066        support::children(&self.syntax)
16067    }
16068}
16069
16070#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16071pub struct XmlElementFn {
16072    pub(crate) syntax: SyntaxNode,
16073}
16074impl XmlElementFn {
16075    #[inline]
16076    pub fn exprs(&self) -> AstChildren<Expr> {
16077        support::children(&self.syntax)
16078    }
16079    #[inline]
16080    pub fn name(&self) -> Option<Name> {
16081        support::child(&self.syntax)
16082    }
16083    #[inline]
16084    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
16085        support::child(&self.syntax)
16086    }
16087    #[inline]
16088    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16089        support::token(&self.syntax, SyntaxKind::L_PAREN)
16090    }
16091    #[inline]
16092    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16093        support::token(&self.syntax, SyntaxKind::R_PAREN)
16094    }
16095    #[inline]
16096    pub fn comma_token(&self) -> Option<SyntaxToken> {
16097        support::token(&self.syntax, SyntaxKind::COMMA)
16098    }
16099    #[inline]
16100    pub fn name_token(&self) -> Option<SyntaxToken> {
16101        support::token(&self.syntax, SyntaxKind::NAME_KW)
16102    }
16103    #[inline]
16104    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
16105        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
16106    }
16107    #[inline]
16108    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
16109        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
16110    }
16111}
16112
16113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16114pub struct XmlExistsFn {
16115    pub(crate) syntax: SyntaxNode,
16116}
16117impl XmlExistsFn {
16118    #[inline]
16119    pub fn expr(&self) -> Option<Expr> {
16120        support::child(&self.syntax)
16121    }
16122    #[inline]
16123    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16124        support::child(&self.syntax)
16125    }
16126    #[inline]
16127    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16128        support::token(&self.syntax, SyntaxKind::L_PAREN)
16129    }
16130    #[inline]
16131    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16132        support::token(&self.syntax, SyntaxKind::R_PAREN)
16133    }
16134    #[inline]
16135    pub fn passing_token(&self) -> Option<SyntaxToken> {
16136        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16137    }
16138    #[inline]
16139    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
16140        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
16141    }
16142}
16143
16144#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16145pub struct XmlForestFn {
16146    pub(crate) syntax: SyntaxNode,
16147}
16148impl XmlForestFn {
16149    #[inline]
16150    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
16151        support::child(&self.syntax)
16152    }
16153    #[inline]
16154    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16155        support::token(&self.syntax, SyntaxKind::L_PAREN)
16156    }
16157    #[inline]
16158    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16159        support::token(&self.syntax, SyntaxKind::R_PAREN)
16160    }
16161    #[inline]
16162    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
16163        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
16164    }
16165}
16166
16167#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16168pub struct XmlNamespace {
16169    pub(crate) syntax: SyntaxNode,
16170}
16171impl XmlNamespace {
16172    #[inline]
16173    pub fn expr(&self) -> Option<Expr> {
16174        support::child(&self.syntax)
16175    }
16176    #[inline]
16177    pub fn name(&self) -> Option<Name> {
16178        support::child(&self.syntax)
16179    }
16180    #[inline]
16181    pub fn as_token(&self) -> Option<SyntaxToken> {
16182        support::token(&self.syntax, SyntaxKind::AS_KW)
16183    }
16184    #[inline]
16185    pub fn default_token(&self) -> Option<SyntaxToken> {
16186        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16187    }
16188}
16189
16190#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16191pub struct XmlNamespaceList {
16192    pub(crate) syntax: SyntaxNode,
16193}
16194impl XmlNamespaceList {
16195    #[inline]
16196    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
16197        support::children(&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}
16208
16209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16210pub struct XmlParseFn {
16211    pub(crate) syntax: SyntaxNode,
16212}
16213impl XmlParseFn {
16214    #[inline]
16215    pub fn expr(&self) -> Option<Expr> {
16216        support::child(&self.syntax)
16217    }
16218    #[inline]
16219    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16220        support::token(&self.syntax, SyntaxKind::L_PAREN)
16221    }
16222    #[inline]
16223    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16224        support::token(&self.syntax, SyntaxKind::R_PAREN)
16225    }
16226    #[inline]
16227    pub fn content_token(&self) -> Option<SyntaxToken> {
16228        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16229    }
16230    #[inline]
16231    pub fn document_token(&self) -> Option<SyntaxToken> {
16232        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16233    }
16234    #[inline]
16235    pub fn preserve_token(&self) -> Option<SyntaxToken> {
16236        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
16237    }
16238    #[inline]
16239    pub fn strip_token(&self) -> Option<SyntaxToken> {
16240        support::token(&self.syntax, SyntaxKind::STRIP_KW)
16241    }
16242    #[inline]
16243    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
16244        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
16245    }
16246    #[inline]
16247    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
16248        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
16249    }
16250}
16251
16252#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16253pub struct XmlPassingMech {
16254    pub(crate) syntax: SyntaxNode,
16255}
16256impl XmlPassingMech {
16257    #[inline]
16258    pub fn by_token(&self) -> Option<SyntaxToken> {
16259        support::token(&self.syntax, SyntaxKind::BY_KW)
16260    }
16261    #[inline]
16262    pub fn ref_token(&self) -> Option<SyntaxToken> {
16263        support::token(&self.syntax, SyntaxKind::REF_KW)
16264    }
16265    #[inline]
16266    pub fn value_token(&self) -> Option<SyntaxToken> {
16267        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16268    }
16269}
16270
16271#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16272pub struct XmlPiFn {
16273    pub(crate) syntax: SyntaxNode,
16274}
16275impl XmlPiFn {
16276    #[inline]
16277    pub fn expr(&self) -> Option<Expr> {
16278        support::child(&self.syntax)
16279    }
16280    #[inline]
16281    pub fn name(&self) -> Option<Name> {
16282        support::child(&self.syntax)
16283    }
16284    #[inline]
16285    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16286        support::token(&self.syntax, SyntaxKind::L_PAREN)
16287    }
16288    #[inline]
16289    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16290        support::token(&self.syntax, SyntaxKind::R_PAREN)
16291    }
16292    #[inline]
16293    pub fn comma_token(&self) -> Option<SyntaxToken> {
16294        support::token(&self.syntax, SyntaxKind::COMMA)
16295    }
16296    #[inline]
16297    pub fn name_token(&self) -> Option<SyntaxToken> {
16298        support::token(&self.syntax, SyntaxKind::NAME_KW)
16299    }
16300    #[inline]
16301    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
16302        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
16303    }
16304}
16305
16306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16307pub struct XmlRootFn {
16308    pub(crate) syntax: SyntaxNode,
16309}
16310impl XmlRootFn {
16311    #[inline]
16312    pub fn expr(&self) -> Option<Expr> {
16313        support::child(&self.syntax)
16314    }
16315    #[inline]
16316    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16317        support::token(&self.syntax, SyntaxKind::L_PAREN)
16318    }
16319    #[inline]
16320    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16321        support::token(&self.syntax, SyntaxKind::R_PAREN)
16322    }
16323    #[inline]
16324    pub fn comma_token(&self) -> Option<SyntaxToken> {
16325        support::token(&self.syntax, SyntaxKind::COMMA)
16326    }
16327    #[inline]
16328    pub fn no_token(&self) -> Option<SyntaxToken> {
16329        support::token(&self.syntax, SyntaxKind::NO_KW)
16330    }
16331    #[inline]
16332    pub fn standalone_token(&self) -> Option<SyntaxToken> {
16333        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
16334    }
16335    #[inline]
16336    pub fn value_token(&self) -> Option<SyntaxToken> {
16337        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16338    }
16339    #[inline]
16340    pub fn version_token(&self) -> Option<SyntaxToken> {
16341        support::token(&self.syntax, SyntaxKind::VERSION_KW)
16342    }
16343    #[inline]
16344    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
16345        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
16346    }
16347    #[inline]
16348    pub fn yes_token(&self) -> Option<SyntaxToken> {
16349        support::token(&self.syntax, SyntaxKind::YES_KW)
16350    }
16351}
16352
16353#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16354pub struct XmlRowPassingClause {
16355    pub(crate) syntax: SyntaxNode,
16356}
16357impl XmlRowPassingClause {
16358    #[inline]
16359    pub fn expr(&self) -> Option<Expr> {
16360        support::child(&self.syntax)
16361    }
16362    #[inline]
16363    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16364        support::child(&self.syntax)
16365    }
16366    #[inline]
16367    pub fn passing_token(&self) -> Option<SyntaxToken> {
16368        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16369    }
16370}
16371
16372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16373pub struct XmlSerializeFn {
16374    pub(crate) syntax: SyntaxNode,
16375}
16376impl XmlSerializeFn {
16377    #[inline]
16378    pub fn expr(&self) -> Option<Expr> {
16379        support::child(&self.syntax)
16380    }
16381    #[inline]
16382    pub fn ty(&self) -> Option<Type> {
16383        support::child(&self.syntax)
16384    }
16385    #[inline]
16386    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16387        support::token(&self.syntax, SyntaxKind::L_PAREN)
16388    }
16389    #[inline]
16390    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16391        support::token(&self.syntax, SyntaxKind::R_PAREN)
16392    }
16393    #[inline]
16394    pub fn as_token(&self) -> Option<SyntaxToken> {
16395        support::token(&self.syntax, SyntaxKind::AS_KW)
16396    }
16397    #[inline]
16398    pub fn content_token(&self) -> Option<SyntaxToken> {
16399        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16400    }
16401    #[inline]
16402    pub fn document_token(&self) -> Option<SyntaxToken> {
16403        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16404    }
16405    #[inline]
16406    pub fn ident_token(&self) -> Option<SyntaxToken> {
16407        support::token(&self.syntax, SyntaxKind::IDENT)
16408    }
16409    #[inline]
16410    pub fn no_token(&self) -> Option<SyntaxToken> {
16411        support::token(&self.syntax, SyntaxKind::NO_KW)
16412    }
16413    #[inline]
16414    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
16415        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
16416    }
16417}
16418
16419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16420pub struct XmlTable {
16421    pub(crate) syntax: SyntaxNode,
16422}
16423impl XmlTable {
16424    #[inline]
16425    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
16426        support::child(&self.syntax)
16427    }
16428    #[inline]
16429    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
16430        support::child(&self.syntax)
16431    }
16432    #[inline]
16433    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
16434        support::child(&self.syntax)
16435    }
16436    #[inline]
16437    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16438        support::token(&self.syntax, SyntaxKind::L_PAREN)
16439    }
16440    #[inline]
16441    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16442        support::token(&self.syntax, SyntaxKind::R_PAREN)
16443    }
16444    #[inline]
16445    pub fn comma_token(&self) -> Option<SyntaxToken> {
16446        support::token(&self.syntax, SyntaxKind::COMMA)
16447    }
16448    #[inline]
16449    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
16450        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
16451    }
16452    #[inline]
16453    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
16454        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
16455    }
16456}
16457
16458#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16459pub struct XmlTableColumn {
16460    pub(crate) syntax: SyntaxNode,
16461}
16462impl XmlTableColumn {
16463    #[inline]
16464    pub fn name(&self) -> Option<Name> {
16465        support::child(&self.syntax)
16466    }
16467    #[inline]
16468    pub fn ty(&self) -> Option<Type> {
16469        support::child(&self.syntax)
16470    }
16471    #[inline]
16472    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
16473        support::child(&self.syntax)
16474    }
16475    #[inline]
16476    pub fn for_token(&self) -> Option<SyntaxToken> {
16477        support::token(&self.syntax, SyntaxKind::FOR_KW)
16478    }
16479    #[inline]
16480    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
16481        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
16482    }
16483}
16484
16485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16486pub struct XmlTableColumnList {
16487    pub(crate) syntax: SyntaxNode,
16488}
16489impl XmlTableColumnList {
16490    #[inline]
16491    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
16492        support::children(&self.syntax)
16493    }
16494}
16495
16496#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16497pub enum AlterColumnOption {
16498    AddGenerated(AddGenerated),
16499    DropDefault(DropDefault),
16500    DropExpression(DropExpression),
16501    DropIdentity(DropIdentity),
16502    DropNotNull(DropNotNull),
16503    ResetOptions(ResetOptions),
16504    Restart(Restart),
16505    SetCompression(SetCompression),
16506    SetDefault(SetDefault),
16507    SetExpression(SetExpression),
16508    SetGenerated(SetGenerated),
16509    SetGeneratedOptions(SetGeneratedOptions),
16510    SetNotNull(SetNotNull),
16511    SetOptions(SetOptions),
16512    SetOptionsList(SetOptionsList),
16513    SetSequenceOption(SetSequenceOption),
16514    SetStatistics(SetStatistics),
16515    SetStorage(SetStorage),
16516    SetType(SetType),
16517}
16518
16519#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16520pub enum AlterDomainAction {
16521    AddConstraint(AddConstraint),
16522    DropConstraint(DropConstraint),
16523    DropDefault(DropDefault),
16524    DropNotNull(DropNotNull),
16525    OwnerTo(OwnerTo),
16526    RenameConstraint(RenameConstraint),
16527    RenameTo(RenameTo),
16528    SetDefault(SetDefault),
16529    SetNotNull(SetNotNull),
16530    SetSchema(SetSchema),
16531    ValidateConstraint(ValidateConstraint),
16532}
16533
16534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16535pub enum AlterMaterializedViewAction {
16536    DependsOnExtension(DependsOnExtension),
16537    NoDependsOnExtension(NoDependsOnExtension),
16538    RenameColumn(RenameColumn),
16539    RenameTo(RenameTo),
16540    SetSchema(SetSchema),
16541    AlterTableAction(AlterTableAction),
16542}
16543
16544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16545pub enum AlterTableAction {
16546    AddColumn(AddColumn),
16547    AddConstraint(AddConstraint),
16548    AlterColumn(AlterColumn),
16549    AlterConstraint(AlterConstraint),
16550    AttachPartition(AttachPartition),
16551    ClusterOn(ClusterOn),
16552    DetachPartition(DetachPartition),
16553    DisableRls(DisableRls),
16554    DisableRule(DisableRule),
16555    DisableTrigger(DisableTrigger),
16556    DropColumn(DropColumn),
16557    DropConstraint(DropConstraint),
16558    EnableAlwaysRule(EnableAlwaysRule),
16559    EnableAlwaysTrigger(EnableAlwaysTrigger),
16560    EnableReplicaRule(EnableReplicaRule),
16561    EnableReplicaTrigger(EnableReplicaTrigger),
16562    EnableRls(EnableRls),
16563    EnableRule(EnableRule),
16564    EnableTrigger(EnableTrigger),
16565    ForceRls(ForceRls),
16566    InheritTable(InheritTable),
16567    MergePartitions(MergePartitions),
16568    NoForceRls(NoForceRls),
16569    NoInheritTable(NoInheritTable),
16570    NotOf(NotOf),
16571    OfType(OfType),
16572    OptionItemList(OptionItemList),
16573    OwnerTo(OwnerTo),
16574    RenameColumn(RenameColumn),
16575    RenameConstraint(RenameConstraint),
16576    RenameTo(RenameTo),
16577    ReplicaIdentity(ReplicaIdentity),
16578    ResetOptions(ResetOptions),
16579    SetAccessMethod(SetAccessMethod),
16580    SetLogged(SetLogged),
16581    SetOptions(SetOptions),
16582    SetSchema(SetSchema),
16583    SetTablespace(SetTablespace),
16584    SetUnlogged(SetUnlogged),
16585    SetWithoutCluster(SetWithoutCluster),
16586    SetWithoutOids(SetWithoutOids),
16587    SplitPartition(SplitPartition),
16588    ValidateConstraint(ValidateConstraint),
16589}
16590
16591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16592pub enum ColumnConstraint {
16593    CheckConstraint(CheckConstraint),
16594    DefaultConstraint(DefaultConstraint),
16595    ExcludeConstraint(ExcludeConstraint),
16596    NotNullConstraint(NotNullConstraint),
16597    PrimaryKeyConstraint(PrimaryKeyConstraint),
16598    ReferencesConstraint(ReferencesConstraint),
16599    UniqueConstraint(UniqueConstraint),
16600}
16601
16602#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16603pub enum ConfigValue {
16604    Literal(Literal),
16605    NameRef(NameRef),
16606}
16607
16608#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16609pub enum ConflictAction {
16610    ConflictDoNothing(ConflictDoNothing),
16611    ConflictDoUpdateSet(ConflictDoUpdateSet),
16612}
16613
16614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16615pub enum ConflictTarget {
16616    ConflictOnConstraint(ConflictOnConstraint),
16617    ConflictOnIndex(ConflictOnIndex),
16618}
16619
16620#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16621pub enum Constraint {
16622    CheckConstraint(CheckConstraint),
16623    DefaultConstraint(DefaultConstraint),
16624    ForeignKeyConstraint(ForeignKeyConstraint),
16625    GeneratedConstraint(GeneratedConstraint),
16626    NotNullConstraint(NotNullConstraint),
16627    NullConstraint(NullConstraint),
16628    PrimaryKeyConstraint(PrimaryKeyConstraint),
16629    ReferencesConstraint(ReferencesConstraint),
16630    UniqueConstraint(UniqueConstraint),
16631}
16632
16633#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16634pub enum ExplainStmt {
16635    CompoundSelect(CompoundSelect),
16636    CreateMaterializedView(CreateMaterializedView),
16637    CreateTableAs(CreateTableAs),
16638    Declare(Declare),
16639    Delete(Delete),
16640    Execute(Execute),
16641    Insert(Insert),
16642    Merge(Merge),
16643    ParenSelect(ParenSelect),
16644    Select(Select),
16645    SelectInto(SelectInto),
16646    Table(Table),
16647    Update(Update),
16648    Values(Values),
16649}
16650
16651#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16652pub enum Expr {
16653    ArrayExpr(ArrayExpr),
16654    BetweenExpr(BetweenExpr),
16655    BinExpr(BinExpr),
16656    CallExpr(CallExpr),
16657    CaseExpr(CaseExpr),
16658    CastExpr(CastExpr),
16659    FieldExpr(FieldExpr),
16660    IndexExpr(IndexExpr),
16661    Literal(Literal),
16662    NameRef(NameRef),
16663    ParenExpr(ParenExpr),
16664    PostfixExpr(PostfixExpr),
16665    PrefixExpr(PrefixExpr),
16666    SliceExpr(SliceExpr),
16667    TupleExpr(TupleExpr),
16668}
16669
16670#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16671pub enum FuncOption {
16672    AsFuncOption(AsFuncOption),
16673    BeginFuncOptionList(BeginFuncOptionList),
16674    CostFuncOption(CostFuncOption),
16675    LanguageFuncOption(LanguageFuncOption),
16676    LeakproofFuncOption(LeakproofFuncOption),
16677    ParallelFuncOption(ParallelFuncOption),
16678    ResetFuncOption(ResetFuncOption),
16679    ReturnFuncOption(ReturnFuncOption),
16680    RowsFuncOption(RowsFuncOption),
16681    SecurityFuncOption(SecurityFuncOption),
16682    SetFuncOption(SetFuncOption),
16683    StrictFuncOption(StrictFuncOption),
16684    SupportFuncOption(SupportFuncOption),
16685    TransformFuncOption(TransformFuncOption),
16686    VolatilityFuncOption(VolatilityFuncOption),
16687    WindowFuncOption(WindowFuncOption),
16688}
16689
16690#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16691pub enum GroupBy {
16692    GroupingCube(GroupingCube),
16693    GroupingExpr(GroupingExpr),
16694    GroupingRollup(GroupingRollup),
16695    GroupingSets(GroupingSets),
16696}
16697
16698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16699pub enum JoinType {
16700    JoinCross(JoinCross),
16701    JoinFull(JoinFull),
16702    JoinInner(JoinInner),
16703    JoinLeft(JoinLeft),
16704    JoinRight(JoinRight),
16705}
16706
16707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16708pub enum JsonBehavior {
16709    JsonBehaviorDefault(JsonBehaviorDefault),
16710    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
16711    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
16712    JsonBehaviorError(JsonBehaviorError),
16713    JsonBehaviorFalse(JsonBehaviorFalse),
16714    JsonBehaviorNull(JsonBehaviorNull),
16715    JsonBehaviorTrue(JsonBehaviorTrue),
16716    JsonBehaviorUnknown(JsonBehaviorUnknown),
16717}
16718
16719#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16720pub enum MatchType {
16721    MatchFull(MatchFull),
16722    MatchPartial(MatchPartial),
16723    MatchSimple(MatchSimple),
16724}
16725
16726#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16727pub enum MergeAction {
16728    MergeDelete(MergeDelete),
16729    MergeDoNothing(MergeDoNothing),
16730    MergeInsert(MergeInsert),
16731    MergeUpdate(MergeUpdate),
16732}
16733
16734#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16735pub enum MergeWhenClause {
16736    MergeWhenMatched(MergeWhenMatched),
16737    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
16738    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
16739}
16740
16741#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16742pub enum OnCommitAction {
16743    DeleteRows(DeleteRows),
16744    Drop(Drop),
16745    PreserveRows(PreserveRows),
16746}
16747
16748#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16749pub enum ParamMode {
16750    ParamIn(ParamIn),
16751    ParamInOut(ParamInOut),
16752    ParamOut(ParamOut),
16753    ParamVariadic(ParamVariadic),
16754}
16755
16756#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16757pub enum PartitionType {
16758    PartitionDefault(PartitionDefault),
16759    PartitionForValuesFrom(PartitionForValuesFrom),
16760    PartitionForValuesIn(PartitionForValuesIn),
16761    PartitionForValuesWith(PartitionForValuesWith),
16762}
16763
16764#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16765pub enum PreparableStmt {
16766    CompoundSelect(CompoundSelect),
16767    Delete(Delete),
16768    Insert(Insert),
16769    Merge(Merge),
16770    Select(Select),
16771    SelectInto(SelectInto),
16772    Table(Table),
16773    Update(Update),
16774    Values(Values),
16775}
16776
16777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16778pub enum RefAction {
16779    Cascade(Cascade),
16780    NoAction(NoAction),
16781    Restrict(Restrict),
16782    SetDefaultColumns(SetDefaultColumns),
16783    SetNullColumns(SetNullColumns),
16784}
16785
16786#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16787pub enum SchemaElement {
16788    CreateIndex(CreateIndex),
16789    CreateSequence(CreateSequence),
16790    CreateTable(CreateTable),
16791    CreateTrigger(CreateTrigger),
16792    CreateView(CreateView),
16793    Grant(Grant),
16794}
16795
16796#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16797pub enum SelectVariant {
16798    CompoundSelect(CompoundSelect),
16799    ParenSelect(ParenSelect),
16800    Select(Select),
16801    SelectInto(SelectInto),
16802    Table(Table),
16803    Values(Values),
16804}
16805
16806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16807pub enum SetColumn {
16808    SetMultipleColumns(SetMultipleColumns),
16809    SetSingleColumn(SetSingleColumn),
16810}
16811
16812#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16813pub enum Stmt {
16814    AlterAggregate(AlterAggregate),
16815    AlterCollation(AlterCollation),
16816    AlterConversion(AlterConversion),
16817    AlterDatabase(AlterDatabase),
16818    AlterDefaultPrivileges(AlterDefaultPrivileges),
16819    AlterDomain(AlterDomain),
16820    AlterEventTrigger(AlterEventTrigger),
16821    AlterExtension(AlterExtension),
16822    AlterForeignDataWrapper(AlterForeignDataWrapper),
16823    AlterForeignTable(AlterForeignTable),
16824    AlterFunction(AlterFunction),
16825    AlterGroup(AlterGroup),
16826    AlterIndex(AlterIndex),
16827    AlterLanguage(AlterLanguage),
16828    AlterLargeObject(AlterLargeObject),
16829    AlterMaterializedView(AlterMaterializedView),
16830    AlterOperator(AlterOperator),
16831    AlterOperatorClass(AlterOperatorClass),
16832    AlterOperatorFamily(AlterOperatorFamily),
16833    AlterPolicy(AlterPolicy),
16834    AlterProcedure(AlterProcedure),
16835    AlterPublication(AlterPublication),
16836    AlterRole(AlterRole),
16837    AlterRoutine(AlterRoutine),
16838    AlterRule(AlterRule),
16839    AlterSchema(AlterSchema),
16840    AlterSequence(AlterSequence),
16841    AlterServer(AlterServer),
16842    AlterStatistics(AlterStatistics),
16843    AlterSubscription(AlterSubscription),
16844    AlterSystem(AlterSystem),
16845    AlterTable(AlterTable),
16846    AlterTablespace(AlterTablespace),
16847    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
16848    AlterTextSearchDictionary(AlterTextSearchDictionary),
16849    AlterTextSearchParser(AlterTextSearchParser),
16850    AlterTextSearchTemplate(AlterTextSearchTemplate),
16851    AlterTrigger(AlterTrigger),
16852    AlterType(AlterType),
16853    AlterUser(AlterUser),
16854    AlterUserMapping(AlterUserMapping),
16855    AlterView(AlterView),
16856    Analyze(Analyze),
16857    Begin(Begin),
16858    Call(Call),
16859    Checkpoint(Checkpoint),
16860    Close(Close),
16861    Cluster(Cluster),
16862    CommentOn(CommentOn),
16863    Commit(Commit),
16864    Copy(Copy),
16865    CreateAccessMethod(CreateAccessMethod),
16866    CreateAggregate(CreateAggregate),
16867    CreateCast(CreateCast),
16868    CreateCollation(CreateCollation),
16869    CreateConversion(CreateConversion),
16870    CreateDatabase(CreateDatabase),
16871    CreateDomain(CreateDomain),
16872    CreateEventTrigger(CreateEventTrigger),
16873    CreateExtension(CreateExtension),
16874    CreateForeignDataWrapper(CreateForeignDataWrapper),
16875    CreateForeignTable(CreateForeignTable),
16876    CreateFunction(CreateFunction),
16877    CreateGroup(CreateGroup),
16878    CreateIndex(CreateIndex),
16879    CreateLanguage(CreateLanguage),
16880    CreateMaterializedView(CreateMaterializedView),
16881    CreateOperator(CreateOperator),
16882    CreateOperatorClass(CreateOperatorClass),
16883    CreateOperatorFamily(CreateOperatorFamily),
16884    CreatePolicy(CreatePolicy),
16885    CreateProcedure(CreateProcedure),
16886    CreatePublication(CreatePublication),
16887    CreateRole(CreateRole),
16888    CreateRule(CreateRule),
16889    CreateSchema(CreateSchema),
16890    CreateSequence(CreateSequence),
16891    CreateServer(CreateServer),
16892    CreateStatistics(CreateStatistics),
16893    CreateSubscription(CreateSubscription),
16894    CreateTable(CreateTable),
16895    CreateTableAs(CreateTableAs),
16896    CreateTablespace(CreateTablespace),
16897    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
16898    CreateTextSearchDictionary(CreateTextSearchDictionary),
16899    CreateTextSearchParser(CreateTextSearchParser),
16900    CreateTextSearchTemplate(CreateTextSearchTemplate),
16901    CreateTransform(CreateTransform),
16902    CreateTrigger(CreateTrigger),
16903    CreateType(CreateType),
16904    CreateUser(CreateUser),
16905    CreateUserMapping(CreateUserMapping),
16906    CreateView(CreateView),
16907    Deallocate(Deallocate),
16908    Declare(Declare),
16909    Delete(Delete),
16910    Discard(Discard),
16911    Do(Do),
16912    DropAccessMethod(DropAccessMethod),
16913    DropAggregate(DropAggregate),
16914    DropCast(DropCast),
16915    DropCollation(DropCollation),
16916    DropConversion(DropConversion),
16917    DropDatabase(DropDatabase),
16918    DropDomain(DropDomain),
16919    DropEventTrigger(DropEventTrigger),
16920    DropExtension(DropExtension),
16921    DropForeignDataWrapper(DropForeignDataWrapper),
16922    DropForeignTable(DropForeignTable),
16923    DropFunction(DropFunction),
16924    DropGroup(DropGroup),
16925    DropIndex(DropIndex),
16926    DropLanguage(DropLanguage),
16927    DropMaterializedView(DropMaterializedView),
16928    DropOperator(DropOperator),
16929    DropOperatorClass(DropOperatorClass),
16930    DropOperatorFamily(DropOperatorFamily),
16931    DropOwned(DropOwned),
16932    DropPolicy(DropPolicy),
16933    DropProcedure(DropProcedure),
16934    DropPublication(DropPublication),
16935    DropRole(DropRole),
16936    DropRoutine(DropRoutine),
16937    DropRule(DropRule),
16938    DropSchema(DropSchema),
16939    DropSequence(DropSequence),
16940    DropServer(DropServer),
16941    DropStatistics(DropStatistics),
16942    DropSubscription(DropSubscription),
16943    DropTable(DropTable),
16944    DropTablespace(DropTablespace),
16945    DropTextSearchConfig(DropTextSearchConfig),
16946    DropTextSearchDict(DropTextSearchDict),
16947    DropTextSearchParser(DropTextSearchParser),
16948    DropTextSearchTemplate(DropTextSearchTemplate),
16949    DropTransform(DropTransform),
16950    DropTrigger(DropTrigger),
16951    DropType(DropType),
16952    DropUser(DropUser),
16953    DropUserMapping(DropUserMapping),
16954    DropView(DropView),
16955    Execute(Execute),
16956    Explain(Explain),
16957    Fetch(Fetch),
16958    Grant(Grant),
16959    ImportForeignSchema(ImportForeignSchema),
16960    Insert(Insert),
16961    Listen(Listen),
16962    Load(Load),
16963    Lock(Lock),
16964    Merge(Merge),
16965    Move(Move),
16966    Notify(Notify),
16967    ParenSelect(ParenSelect),
16968    Prepare(Prepare),
16969    PrepareTransaction(PrepareTransaction),
16970    Reassign(Reassign),
16971    Refresh(Refresh),
16972    Reindex(Reindex),
16973    ReleaseSavepoint(ReleaseSavepoint),
16974    Reset(Reset),
16975    ResetSessionAuth(ResetSessionAuth),
16976    Revoke(Revoke),
16977    Rollback(Rollback),
16978    Savepoint(Savepoint),
16979    SecurityLabel(SecurityLabel),
16980    Select(Select),
16981    SelectInto(SelectInto),
16982    Set(Set),
16983    SetConstraints(SetConstraints),
16984    SetRole(SetRole),
16985    SetSessionAuth(SetSessionAuth),
16986    SetTransaction(SetTransaction),
16987    Show(Show),
16988    Table(Table),
16989    Truncate(Truncate),
16990    Unlisten(Unlisten),
16991    Update(Update),
16992    Vacuum(Vacuum),
16993    Values(Values),
16994}
16995
16996#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16997pub enum TableArg {
16998    Column(Column),
16999    LikeClause(LikeClause),
17000    TableConstraint(TableConstraint),
17001}
17002
17003#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17004pub enum TableConstraint {
17005    CheckConstraint(CheckConstraint),
17006    ExcludeConstraint(ExcludeConstraint),
17007    ForeignKeyConstraint(ForeignKeyConstraint),
17008    PrimaryKeyConstraint(PrimaryKeyConstraint),
17009    UniqueConstraint(UniqueConstraint),
17010}
17011
17012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17013pub enum Timezone {
17014    WithTimezone(WithTimezone),
17015    WithoutTimezone(WithoutTimezone),
17016}
17017
17018#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17019pub enum TransactionMode {
17020    Deferrable(Deferrable),
17021    NotDeferrable(NotDeferrable),
17022    ReadCommitted(ReadCommitted),
17023    ReadOnly(ReadOnly),
17024    ReadUncommitted(ReadUncommitted),
17025    ReadWrite(ReadWrite),
17026    RepeatableRead(RepeatableRead),
17027    Serializable(Serializable),
17028}
17029
17030#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17031pub enum Type {
17032    ArrayType(ArrayType),
17033    BitType(BitType),
17034    CharType(CharType),
17035    DoubleType(DoubleType),
17036    ExprType(ExprType),
17037    IntervalType(IntervalType),
17038    PathType(PathType),
17039    PercentType(PercentType),
17040    TimeType(TimeType),
17041}
17042
17043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17044pub enum WithQuery {
17045    CompoundSelect(CompoundSelect),
17046    Delete(Delete),
17047    Insert(Insert),
17048    Merge(Merge),
17049    ParenSelect(ParenSelect),
17050    Select(Select),
17051    Table(Table),
17052    Update(Update),
17053    Values(Values),
17054}
17055impl AstNode for AddColumn {
17056    #[inline]
17057    fn can_cast(kind: SyntaxKind) -> bool {
17058        kind == SyntaxKind::ADD_COLUMN
17059    }
17060    #[inline]
17061    fn cast(syntax: SyntaxNode) -> Option<Self> {
17062        if Self::can_cast(syntax.kind()) {
17063            Some(Self { syntax })
17064        } else {
17065            None
17066        }
17067    }
17068    #[inline]
17069    fn syntax(&self) -> &SyntaxNode {
17070        &self.syntax
17071    }
17072}
17073impl AstNode for AddConstraint {
17074    #[inline]
17075    fn can_cast(kind: SyntaxKind) -> bool {
17076        kind == SyntaxKind::ADD_CONSTRAINT
17077    }
17078    #[inline]
17079    fn cast(syntax: SyntaxNode) -> Option<Self> {
17080        if Self::can_cast(syntax.kind()) {
17081            Some(Self { syntax })
17082        } else {
17083            None
17084        }
17085    }
17086    #[inline]
17087    fn syntax(&self) -> &SyntaxNode {
17088        &self.syntax
17089    }
17090}
17091impl AstNode for AddGenerated {
17092    #[inline]
17093    fn can_cast(kind: SyntaxKind) -> bool {
17094        kind == SyntaxKind::ADD_GENERATED
17095    }
17096    #[inline]
17097    fn cast(syntax: SyntaxNode) -> Option<Self> {
17098        if Self::can_cast(syntax.kind()) {
17099            Some(Self { syntax })
17100        } else {
17101            None
17102        }
17103    }
17104    #[inline]
17105    fn syntax(&self) -> &SyntaxNode {
17106        &self.syntax
17107    }
17108}
17109impl AstNode for AddOpClassOptions {
17110    #[inline]
17111    fn can_cast(kind: SyntaxKind) -> bool {
17112        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
17113    }
17114    #[inline]
17115    fn cast(syntax: SyntaxNode) -> Option<Self> {
17116        if Self::can_cast(syntax.kind()) {
17117            Some(Self { syntax })
17118        } else {
17119            None
17120        }
17121    }
17122    #[inline]
17123    fn syntax(&self) -> &SyntaxNode {
17124        &self.syntax
17125    }
17126}
17127impl AstNode for Aggregate {
17128    #[inline]
17129    fn can_cast(kind: SyntaxKind) -> bool {
17130        kind == SyntaxKind::AGGREGATE
17131    }
17132    #[inline]
17133    fn cast(syntax: SyntaxNode) -> Option<Self> {
17134        if Self::can_cast(syntax.kind()) {
17135            Some(Self { syntax })
17136        } else {
17137            None
17138        }
17139    }
17140    #[inline]
17141    fn syntax(&self) -> &SyntaxNode {
17142        &self.syntax
17143    }
17144}
17145impl AstNode for Alias {
17146    #[inline]
17147    fn can_cast(kind: SyntaxKind) -> bool {
17148        kind == SyntaxKind::ALIAS
17149    }
17150    #[inline]
17151    fn cast(syntax: SyntaxNode) -> Option<Self> {
17152        if Self::can_cast(syntax.kind()) {
17153            Some(Self { syntax })
17154        } else {
17155            None
17156        }
17157    }
17158    #[inline]
17159    fn syntax(&self) -> &SyntaxNode {
17160        &self.syntax
17161    }
17162}
17163impl AstNode for AllFn {
17164    #[inline]
17165    fn can_cast(kind: SyntaxKind) -> bool {
17166        kind == SyntaxKind::ALL_FN
17167    }
17168    #[inline]
17169    fn cast(syntax: SyntaxNode) -> Option<Self> {
17170        if Self::can_cast(syntax.kind()) {
17171            Some(Self { syntax })
17172        } else {
17173            None
17174        }
17175    }
17176    #[inline]
17177    fn syntax(&self) -> &SyntaxNode {
17178        &self.syntax
17179    }
17180}
17181impl AstNode for AlterAggregate {
17182    #[inline]
17183    fn can_cast(kind: SyntaxKind) -> bool {
17184        kind == SyntaxKind::ALTER_AGGREGATE
17185    }
17186    #[inline]
17187    fn cast(syntax: SyntaxNode) -> Option<Self> {
17188        if Self::can_cast(syntax.kind()) {
17189            Some(Self { syntax })
17190        } else {
17191            None
17192        }
17193    }
17194    #[inline]
17195    fn syntax(&self) -> &SyntaxNode {
17196        &self.syntax
17197    }
17198}
17199impl AstNode for AlterCollation {
17200    #[inline]
17201    fn can_cast(kind: SyntaxKind) -> bool {
17202        kind == SyntaxKind::ALTER_COLLATION
17203    }
17204    #[inline]
17205    fn cast(syntax: SyntaxNode) -> Option<Self> {
17206        if Self::can_cast(syntax.kind()) {
17207            Some(Self { syntax })
17208        } else {
17209            None
17210        }
17211    }
17212    #[inline]
17213    fn syntax(&self) -> &SyntaxNode {
17214        &self.syntax
17215    }
17216}
17217impl AstNode for AlterColumn {
17218    #[inline]
17219    fn can_cast(kind: SyntaxKind) -> bool {
17220        kind == SyntaxKind::ALTER_COLUMN
17221    }
17222    #[inline]
17223    fn cast(syntax: SyntaxNode) -> Option<Self> {
17224        if Self::can_cast(syntax.kind()) {
17225            Some(Self { syntax })
17226        } else {
17227            None
17228        }
17229    }
17230    #[inline]
17231    fn syntax(&self) -> &SyntaxNode {
17232        &self.syntax
17233    }
17234}
17235impl AstNode for AlterConstraint {
17236    #[inline]
17237    fn can_cast(kind: SyntaxKind) -> bool {
17238        kind == SyntaxKind::ALTER_CONSTRAINT
17239    }
17240    #[inline]
17241    fn cast(syntax: SyntaxNode) -> Option<Self> {
17242        if Self::can_cast(syntax.kind()) {
17243            Some(Self { syntax })
17244        } else {
17245            None
17246        }
17247    }
17248    #[inline]
17249    fn syntax(&self) -> &SyntaxNode {
17250        &self.syntax
17251    }
17252}
17253impl AstNode for AlterConversion {
17254    #[inline]
17255    fn can_cast(kind: SyntaxKind) -> bool {
17256        kind == SyntaxKind::ALTER_CONVERSION
17257    }
17258    #[inline]
17259    fn cast(syntax: SyntaxNode) -> Option<Self> {
17260        if Self::can_cast(syntax.kind()) {
17261            Some(Self { syntax })
17262        } else {
17263            None
17264        }
17265    }
17266    #[inline]
17267    fn syntax(&self) -> &SyntaxNode {
17268        &self.syntax
17269    }
17270}
17271impl AstNode for AlterDatabase {
17272    #[inline]
17273    fn can_cast(kind: SyntaxKind) -> bool {
17274        kind == SyntaxKind::ALTER_DATABASE
17275    }
17276    #[inline]
17277    fn cast(syntax: SyntaxNode) -> Option<Self> {
17278        if Self::can_cast(syntax.kind()) {
17279            Some(Self { syntax })
17280        } else {
17281            None
17282        }
17283    }
17284    #[inline]
17285    fn syntax(&self) -> &SyntaxNode {
17286        &self.syntax
17287    }
17288}
17289impl AstNode for AlterDefaultPrivileges {
17290    #[inline]
17291    fn can_cast(kind: SyntaxKind) -> bool {
17292        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
17293    }
17294    #[inline]
17295    fn cast(syntax: SyntaxNode) -> Option<Self> {
17296        if Self::can_cast(syntax.kind()) {
17297            Some(Self { syntax })
17298        } else {
17299            None
17300        }
17301    }
17302    #[inline]
17303    fn syntax(&self) -> &SyntaxNode {
17304        &self.syntax
17305    }
17306}
17307impl AstNode for AlterDomain {
17308    #[inline]
17309    fn can_cast(kind: SyntaxKind) -> bool {
17310        kind == SyntaxKind::ALTER_DOMAIN
17311    }
17312    #[inline]
17313    fn cast(syntax: SyntaxNode) -> Option<Self> {
17314        if Self::can_cast(syntax.kind()) {
17315            Some(Self { syntax })
17316        } else {
17317            None
17318        }
17319    }
17320    #[inline]
17321    fn syntax(&self) -> &SyntaxNode {
17322        &self.syntax
17323    }
17324}
17325impl AstNode for AlterEventTrigger {
17326    #[inline]
17327    fn can_cast(kind: SyntaxKind) -> bool {
17328        kind == SyntaxKind::ALTER_EVENT_TRIGGER
17329    }
17330    #[inline]
17331    fn cast(syntax: SyntaxNode) -> Option<Self> {
17332        if Self::can_cast(syntax.kind()) {
17333            Some(Self { syntax })
17334        } else {
17335            None
17336        }
17337    }
17338    #[inline]
17339    fn syntax(&self) -> &SyntaxNode {
17340        &self.syntax
17341    }
17342}
17343impl AstNode for AlterExtension {
17344    #[inline]
17345    fn can_cast(kind: SyntaxKind) -> bool {
17346        kind == SyntaxKind::ALTER_EXTENSION
17347    }
17348    #[inline]
17349    fn cast(syntax: SyntaxNode) -> Option<Self> {
17350        if Self::can_cast(syntax.kind()) {
17351            Some(Self { syntax })
17352        } else {
17353            None
17354        }
17355    }
17356    #[inline]
17357    fn syntax(&self) -> &SyntaxNode {
17358        &self.syntax
17359    }
17360}
17361impl AstNode for AlterForeignDataWrapper {
17362    #[inline]
17363    fn can_cast(kind: SyntaxKind) -> bool {
17364        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
17365    }
17366    #[inline]
17367    fn cast(syntax: SyntaxNode) -> Option<Self> {
17368        if Self::can_cast(syntax.kind()) {
17369            Some(Self { syntax })
17370        } else {
17371            None
17372        }
17373    }
17374    #[inline]
17375    fn syntax(&self) -> &SyntaxNode {
17376        &self.syntax
17377    }
17378}
17379impl AstNode for AlterForeignTable {
17380    #[inline]
17381    fn can_cast(kind: SyntaxKind) -> bool {
17382        kind == SyntaxKind::ALTER_FOREIGN_TABLE
17383    }
17384    #[inline]
17385    fn cast(syntax: SyntaxNode) -> Option<Self> {
17386        if Self::can_cast(syntax.kind()) {
17387            Some(Self { syntax })
17388        } else {
17389            None
17390        }
17391    }
17392    #[inline]
17393    fn syntax(&self) -> &SyntaxNode {
17394        &self.syntax
17395    }
17396}
17397impl AstNode for AlterFunction {
17398    #[inline]
17399    fn can_cast(kind: SyntaxKind) -> bool {
17400        kind == SyntaxKind::ALTER_FUNCTION
17401    }
17402    #[inline]
17403    fn cast(syntax: SyntaxNode) -> Option<Self> {
17404        if Self::can_cast(syntax.kind()) {
17405            Some(Self { syntax })
17406        } else {
17407            None
17408        }
17409    }
17410    #[inline]
17411    fn syntax(&self) -> &SyntaxNode {
17412        &self.syntax
17413    }
17414}
17415impl AstNode for AlterGroup {
17416    #[inline]
17417    fn can_cast(kind: SyntaxKind) -> bool {
17418        kind == SyntaxKind::ALTER_GROUP
17419    }
17420    #[inline]
17421    fn cast(syntax: SyntaxNode) -> Option<Self> {
17422        if Self::can_cast(syntax.kind()) {
17423            Some(Self { syntax })
17424        } else {
17425            None
17426        }
17427    }
17428    #[inline]
17429    fn syntax(&self) -> &SyntaxNode {
17430        &self.syntax
17431    }
17432}
17433impl AstNode for AlterIndex {
17434    #[inline]
17435    fn can_cast(kind: SyntaxKind) -> bool {
17436        kind == SyntaxKind::ALTER_INDEX
17437    }
17438    #[inline]
17439    fn cast(syntax: SyntaxNode) -> Option<Self> {
17440        if Self::can_cast(syntax.kind()) {
17441            Some(Self { syntax })
17442        } else {
17443            None
17444        }
17445    }
17446    #[inline]
17447    fn syntax(&self) -> &SyntaxNode {
17448        &self.syntax
17449    }
17450}
17451impl AstNode for AlterLanguage {
17452    #[inline]
17453    fn can_cast(kind: SyntaxKind) -> bool {
17454        kind == SyntaxKind::ALTER_LANGUAGE
17455    }
17456    #[inline]
17457    fn cast(syntax: SyntaxNode) -> Option<Self> {
17458        if Self::can_cast(syntax.kind()) {
17459            Some(Self { syntax })
17460        } else {
17461            None
17462        }
17463    }
17464    #[inline]
17465    fn syntax(&self) -> &SyntaxNode {
17466        &self.syntax
17467    }
17468}
17469impl AstNode for AlterLargeObject {
17470    #[inline]
17471    fn can_cast(kind: SyntaxKind) -> bool {
17472        kind == SyntaxKind::ALTER_LARGE_OBJECT
17473    }
17474    #[inline]
17475    fn cast(syntax: SyntaxNode) -> Option<Self> {
17476        if Self::can_cast(syntax.kind()) {
17477            Some(Self { syntax })
17478        } else {
17479            None
17480        }
17481    }
17482    #[inline]
17483    fn syntax(&self) -> &SyntaxNode {
17484        &self.syntax
17485    }
17486}
17487impl AstNode for AlterMaterializedView {
17488    #[inline]
17489    fn can_cast(kind: SyntaxKind) -> bool {
17490        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
17491    }
17492    #[inline]
17493    fn cast(syntax: SyntaxNode) -> Option<Self> {
17494        if Self::can_cast(syntax.kind()) {
17495            Some(Self { syntax })
17496        } else {
17497            None
17498        }
17499    }
17500    #[inline]
17501    fn syntax(&self) -> &SyntaxNode {
17502        &self.syntax
17503    }
17504}
17505impl AstNode for AlterOperator {
17506    #[inline]
17507    fn can_cast(kind: SyntaxKind) -> bool {
17508        kind == SyntaxKind::ALTER_OPERATOR
17509    }
17510    #[inline]
17511    fn cast(syntax: SyntaxNode) -> Option<Self> {
17512        if Self::can_cast(syntax.kind()) {
17513            Some(Self { syntax })
17514        } else {
17515            None
17516        }
17517    }
17518    #[inline]
17519    fn syntax(&self) -> &SyntaxNode {
17520        &self.syntax
17521    }
17522}
17523impl AstNode for AlterOperatorClass {
17524    #[inline]
17525    fn can_cast(kind: SyntaxKind) -> bool {
17526        kind == SyntaxKind::ALTER_OPERATOR_CLASS
17527    }
17528    #[inline]
17529    fn cast(syntax: SyntaxNode) -> Option<Self> {
17530        if Self::can_cast(syntax.kind()) {
17531            Some(Self { syntax })
17532        } else {
17533            None
17534        }
17535    }
17536    #[inline]
17537    fn syntax(&self) -> &SyntaxNode {
17538        &self.syntax
17539    }
17540}
17541impl AstNode for AlterOperatorFamily {
17542    #[inline]
17543    fn can_cast(kind: SyntaxKind) -> bool {
17544        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
17545    }
17546    #[inline]
17547    fn cast(syntax: SyntaxNode) -> Option<Self> {
17548        if Self::can_cast(syntax.kind()) {
17549            Some(Self { syntax })
17550        } else {
17551            None
17552        }
17553    }
17554    #[inline]
17555    fn syntax(&self) -> &SyntaxNode {
17556        &self.syntax
17557    }
17558}
17559impl AstNode for AlterOption {
17560    #[inline]
17561    fn can_cast(kind: SyntaxKind) -> bool {
17562        kind == SyntaxKind::ALTER_OPTION
17563    }
17564    #[inline]
17565    fn cast(syntax: SyntaxNode) -> Option<Self> {
17566        if Self::can_cast(syntax.kind()) {
17567            Some(Self { syntax })
17568        } else {
17569            None
17570        }
17571    }
17572    #[inline]
17573    fn syntax(&self) -> &SyntaxNode {
17574        &self.syntax
17575    }
17576}
17577impl AstNode for AlterOptionList {
17578    #[inline]
17579    fn can_cast(kind: SyntaxKind) -> bool {
17580        kind == SyntaxKind::ALTER_OPTION_LIST
17581    }
17582    #[inline]
17583    fn cast(syntax: SyntaxNode) -> Option<Self> {
17584        if Self::can_cast(syntax.kind()) {
17585            Some(Self { syntax })
17586        } else {
17587            None
17588        }
17589    }
17590    #[inline]
17591    fn syntax(&self) -> &SyntaxNode {
17592        &self.syntax
17593    }
17594}
17595impl AstNode for AlterPolicy {
17596    #[inline]
17597    fn can_cast(kind: SyntaxKind) -> bool {
17598        kind == SyntaxKind::ALTER_POLICY
17599    }
17600    #[inline]
17601    fn cast(syntax: SyntaxNode) -> Option<Self> {
17602        if Self::can_cast(syntax.kind()) {
17603            Some(Self { syntax })
17604        } else {
17605            None
17606        }
17607    }
17608    #[inline]
17609    fn syntax(&self) -> &SyntaxNode {
17610        &self.syntax
17611    }
17612}
17613impl AstNode for AlterProcedure {
17614    #[inline]
17615    fn can_cast(kind: SyntaxKind) -> bool {
17616        kind == SyntaxKind::ALTER_PROCEDURE
17617    }
17618    #[inline]
17619    fn cast(syntax: SyntaxNode) -> Option<Self> {
17620        if Self::can_cast(syntax.kind()) {
17621            Some(Self { syntax })
17622        } else {
17623            None
17624        }
17625    }
17626    #[inline]
17627    fn syntax(&self) -> &SyntaxNode {
17628        &self.syntax
17629    }
17630}
17631impl AstNode for AlterPublication {
17632    #[inline]
17633    fn can_cast(kind: SyntaxKind) -> bool {
17634        kind == SyntaxKind::ALTER_PUBLICATION
17635    }
17636    #[inline]
17637    fn cast(syntax: SyntaxNode) -> Option<Self> {
17638        if Self::can_cast(syntax.kind()) {
17639            Some(Self { syntax })
17640        } else {
17641            None
17642        }
17643    }
17644    #[inline]
17645    fn syntax(&self) -> &SyntaxNode {
17646        &self.syntax
17647    }
17648}
17649impl AstNode for AlterRole {
17650    #[inline]
17651    fn can_cast(kind: SyntaxKind) -> bool {
17652        kind == SyntaxKind::ALTER_ROLE
17653    }
17654    #[inline]
17655    fn cast(syntax: SyntaxNode) -> Option<Self> {
17656        if Self::can_cast(syntax.kind()) {
17657            Some(Self { syntax })
17658        } else {
17659            None
17660        }
17661    }
17662    #[inline]
17663    fn syntax(&self) -> &SyntaxNode {
17664        &self.syntax
17665    }
17666}
17667impl AstNode for AlterRoutine {
17668    #[inline]
17669    fn can_cast(kind: SyntaxKind) -> bool {
17670        kind == SyntaxKind::ALTER_ROUTINE
17671    }
17672    #[inline]
17673    fn cast(syntax: SyntaxNode) -> Option<Self> {
17674        if Self::can_cast(syntax.kind()) {
17675            Some(Self { syntax })
17676        } else {
17677            None
17678        }
17679    }
17680    #[inline]
17681    fn syntax(&self) -> &SyntaxNode {
17682        &self.syntax
17683    }
17684}
17685impl AstNode for AlterRule {
17686    #[inline]
17687    fn can_cast(kind: SyntaxKind) -> bool {
17688        kind == SyntaxKind::ALTER_RULE
17689    }
17690    #[inline]
17691    fn cast(syntax: SyntaxNode) -> Option<Self> {
17692        if Self::can_cast(syntax.kind()) {
17693            Some(Self { syntax })
17694        } else {
17695            None
17696        }
17697    }
17698    #[inline]
17699    fn syntax(&self) -> &SyntaxNode {
17700        &self.syntax
17701    }
17702}
17703impl AstNode for AlterSchema {
17704    #[inline]
17705    fn can_cast(kind: SyntaxKind) -> bool {
17706        kind == SyntaxKind::ALTER_SCHEMA
17707    }
17708    #[inline]
17709    fn cast(syntax: SyntaxNode) -> Option<Self> {
17710        if Self::can_cast(syntax.kind()) {
17711            Some(Self { syntax })
17712        } else {
17713            None
17714        }
17715    }
17716    #[inline]
17717    fn syntax(&self) -> &SyntaxNode {
17718        &self.syntax
17719    }
17720}
17721impl AstNode for AlterSequence {
17722    #[inline]
17723    fn can_cast(kind: SyntaxKind) -> bool {
17724        kind == SyntaxKind::ALTER_SEQUENCE
17725    }
17726    #[inline]
17727    fn cast(syntax: SyntaxNode) -> Option<Self> {
17728        if Self::can_cast(syntax.kind()) {
17729            Some(Self { syntax })
17730        } else {
17731            None
17732        }
17733    }
17734    #[inline]
17735    fn syntax(&self) -> &SyntaxNode {
17736        &self.syntax
17737    }
17738}
17739impl AstNode for AlterServer {
17740    #[inline]
17741    fn can_cast(kind: SyntaxKind) -> bool {
17742        kind == SyntaxKind::ALTER_SERVER
17743    }
17744    #[inline]
17745    fn cast(syntax: SyntaxNode) -> Option<Self> {
17746        if Self::can_cast(syntax.kind()) {
17747            Some(Self { syntax })
17748        } else {
17749            None
17750        }
17751    }
17752    #[inline]
17753    fn syntax(&self) -> &SyntaxNode {
17754        &self.syntax
17755    }
17756}
17757impl AstNode for AlterSetStatistics {
17758    #[inline]
17759    fn can_cast(kind: SyntaxKind) -> bool {
17760        kind == SyntaxKind::ALTER_SET_STATISTICS
17761    }
17762    #[inline]
17763    fn cast(syntax: SyntaxNode) -> Option<Self> {
17764        if Self::can_cast(syntax.kind()) {
17765            Some(Self { syntax })
17766        } else {
17767            None
17768        }
17769    }
17770    #[inline]
17771    fn syntax(&self) -> &SyntaxNode {
17772        &self.syntax
17773    }
17774}
17775impl AstNode for AlterStatistics {
17776    #[inline]
17777    fn can_cast(kind: SyntaxKind) -> bool {
17778        kind == SyntaxKind::ALTER_STATISTICS
17779    }
17780    #[inline]
17781    fn cast(syntax: SyntaxNode) -> Option<Self> {
17782        if Self::can_cast(syntax.kind()) {
17783            Some(Self { syntax })
17784        } else {
17785            None
17786        }
17787    }
17788    #[inline]
17789    fn syntax(&self) -> &SyntaxNode {
17790        &self.syntax
17791    }
17792}
17793impl AstNode for AlterSubscription {
17794    #[inline]
17795    fn can_cast(kind: SyntaxKind) -> bool {
17796        kind == SyntaxKind::ALTER_SUBSCRIPTION
17797    }
17798    #[inline]
17799    fn cast(syntax: SyntaxNode) -> Option<Self> {
17800        if Self::can_cast(syntax.kind()) {
17801            Some(Self { syntax })
17802        } else {
17803            None
17804        }
17805    }
17806    #[inline]
17807    fn syntax(&self) -> &SyntaxNode {
17808        &self.syntax
17809    }
17810}
17811impl AstNode for AlterSystem {
17812    #[inline]
17813    fn can_cast(kind: SyntaxKind) -> bool {
17814        kind == SyntaxKind::ALTER_SYSTEM
17815    }
17816    #[inline]
17817    fn cast(syntax: SyntaxNode) -> Option<Self> {
17818        if Self::can_cast(syntax.kind()) {
17819            Some(Self { syntax })
17820        } else {
17821            None
17822        }
17823    }
17824    #[inline]
17825    fn syntax(&self) -> &SyntaxNode {
17826        &self.syntax
17827    }
17828}
17829impl AstNode for AlterTable {
17830    #[inline]
17831    fn can_cast(kind: SyntaxKind) -> bool {
17832        kind == SyntaxKind::ALTER_TABLE
17833    }
17834    #[inline]
17835    fn cast(syntax: SyntaxNode) -> Option<Self> {
17836        if Self::can_cast(syntax.kind()) {
17837            Some(Self { syntax })
17838        } else {
17839            None
17840        }
17841    }
17842    #[inline]
17843    fn syntax(&self) -> &SyntaxNode {
17844        &self.syntax
17845    }
17846}
17847impl AstNode for AlterTablespace {
17848    #[inline]
17849    fn can_cast(kind: SyntaxKind) -> bool {
17850        kind == SyntaxKind::ALTER_TABLESPACE
17851    }
17852    #[inline]
17853    fn cast(syntax: SyntaxNode) -> Option<Self> {
17854        if Self::can_cast(syntax.kind()) {
17855            Some(Self { syntax })
17856        } else {
17857            None
17858        }
17859    }
17860    #[inline]
17861    fn syntax(&self) -> &SyntaxNode {
17862        &self.syntax
17863    }
17864}
17865impl AstNode for AlterTextSearchConfiguration {
17866    #[inline]
17867    fn can_cast(kind: SyntaxKind) -> bool {
17868        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
17869    }
17870    #[inline]
17871    fn cast(syntax: SyntaxNode) -> Option<Self> {
17872        if Self::can_cast(syntax.kind()) {
17873            Some(Self { syntax })
17874        } else {
17875            None
17876        }
17877    }
17878    #[inline]
17879    fn syntax(&self) -> &SyntaxNode {
17880        &self.syntax
17881    }
17882}
17883impl AstNode for AlterTextSearchDictionary {
17884    #[inline]
17885    fn can_cast(kind: SyntaxKind) -> bool {
17886        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
17887    }
17888    #[inline]
17889    fn cast(syntax: SyntaxNode) -> Option<Self> {
17890        if Self::can_cast(syntax.kind()) {
17891            Some(Self { syntax })
17892        } else {
17893            None
17894        }
17895    }
17896    #[inline]
17897    fn syntax(&self) -> &SyntaxNode {
17898        &self.syntax
17899    }
17900}
17901impl AstNode for AlterTextSearchParser {
17902    #[inline]
17903    fn can_cast(kind: SyntaxKind) -> bool {
17904        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
17905    }
17906    #[inline]
17907    fn cast(syntax: SyntaxNode) -> Option<Self> {
17908        if Self::can_cast(syntax.kind()) {
17909            Some(Self { syntax })
17910        } else {
17911            None
17912        }
17913    }
17914    #[inline]
17915    fn syntax(&self) -> &SyntaxNode {
17916        &self.syntax
17917    }
17918}
17919impl AstNode for AlterTextSearchTemplate {
17920    #[inline]
17921    fn can_cast(kind: SyntaxKind) -> bool {
17922        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
17923    }
17924    #[inline]
17925    fn cast(syntax: SyntaxNode) -> Option<Self> {
17926        if Self::can_cast(syntax.kind()) {
17927            Some(Self { syntax })
17928        } else {
17929            None
17930        }
17931    }
17932    #[inline]
17933    fn syntax(&self) -> &SyntaxNode {
17934        &self.syntax
17935    }
17936}
17937impl AstNode for AlterTrigger {
17938    #[inline]
17939    fn can_cast(kind: SyntaxKind) -> bool {
17940        kind == SyntaxKind::ALTER_TRIGGER
17941    }
17942    #[inline]
17943    fn cast(syntax: SyntaxNode) -> Option<Self> {
17944        if Self::can_cast(syntax.kind()) {
17945            Some(Self { syntax })
17946        } else {
17947            None
17948        }
17949    }
17950    #[inline]
17951    fn syntax(&self) -> &SyntaxNode {
17952        &self.syntax
17953    }
17954}
17955impl AstNode for AlterType {
17956    #[inline]
17957    fn can_cast(kind: SyntaxKind) -> bool {
17958        kind == SyntaxKind::ALTER_TYPE
17959    }
17960    #[inline]
17961    fn cast(syntax: SyntaxNode) -> Option<Self> {
17962        if Self::can_cast(syntax.kind()) {
17963            Some(Self { syntax })
17964        } else {
17965            None
17966        }
17967    }
17968    #[inline]
17969    fn syntax(&self) -> &SyntaxNode {
17970        &self.syntax
17971    }
17972}
17973impl AstNode for AlterUser {
17974    #[inline]
17975    fn can_cast(kind: SyntaxKind) -> bool {
17976        kind == SyntaxKind::ALTER_USER
17977    }
17978    #[inline]
17979    fn cast(syntax: SyntaxNode) -> Option<Self> {
17980        if Self::can_cast(syntax.kind()) {
17981            Some(Self { syntax })
17982        } else {
17983            None
17984        }
17985    }
17986    #[inline]
17987    fn syntax(&self) -> &SyntaxNode {
17988        &self.syntax
17989    }
17990}
17991impl AstNode for AlterUserMapping {
17992    #[inline]
17993    fn can_cast(kind: SyntaxKind) -> bool {
17994        kind == SyntaxKind::ALTER_USER_MAPPING
17995    }
17996    #[inline]
17997    fn cast(syntax: SyntaxNode) -> Option<Self> {
17998        if Self::can_cast(syntax.kind()) {
17999            Some(Self { syntax })
18000        } else {
18001            None
18002        }
18003    }
18004    #[inline]
18005    fn syntax(&self) -> &SyntaxNode {
18006        &self.syntax
18007    }
18008}
18009impl AstNode for AlterView {
18010    #[inline]
18011    fn can_cast(kind: SyntaxKind) -> bool {
18012        kind == SyntaxKind::ALTER_VIEW
18013    }
18014    #[inline]
18015    fn cast(syntax: SyntaxNode) -> Option<Self> {
18016        if Self::can_cast(syntax.kind()) {
18017            Some(Self { syntax })
18018        } else {
18019            None
18020        }
18021    }
18022    #[inline]
18023    fn syntax(&self) -> &SyntaxNode {
18024        &self.syntax
18025    }
18026}
18027impl AstNode for Analyze {
18028    #[inline]
18029    fn can_cast(kind: SyntaxKind) -> bool {
18030        kind == SyntaxKind::ANALYZE
18031    }
18032    #[inline]
18033    fn cast(syntax: SyntaxNode) -> Option<Self> {
18034        if Self::can_cast(syntax.kind()) {
18035            Some(Self { syntax })
18036        } else {
18037            None
18038        }
18039    }
18040    #[inline]
18041    fn syntax(&self) -> &SyntaxNode {
18042        &self.syntax
18043    }
18044}
18045impl AstNode for AnyFn {
18046    #[inline]
18047    fn can_cast(kind: SyntaxKind) -> bool {
18048        kind == SyntaxKind::ANY_FN
18049    }
18050    #[inline]
18051    fn cast(syntax: SyntaxNode) -> Option<Self> {
18052        if Self::can_cast(syntax.kind()) {
18053            Some(Self { syntax })
18054        } else {
18055            None
18056        }
18057    }
18058    #[inline]
18059    fn syntax(&self) -> &SyntaxNode {
18060        &self.syntax
18061    }
18062}
18063impl AstNode for Arg {
18064    #[inline]
18065    fn can_cast(kind: SyntaxKind) -> bool {
18066        kind == SyntaxKind::ARG
18067    }
18068    #[inline]
18069    fn cast(syntax: SyntaxNode) -> Option<Self> {
18070        if Self::can_cast(syntax.kind()) {
18071            Some(Self { syntax })
18072        } else {
18073            None
18074        }
18075    }
18076    #[inline]
18077    fn syntax(&self) -> &SyntaxNode {
18078        &self.syntax
18079    }
18080}
18081impl AstNode for ArgList {
18082    #[inline]
18083    fn can_cast(kind: SyntaxKind) -> bool {
18084        kind == SyntaxKind::ARG_LIST
18085    }
18086    #[inline]
18087    fn cast(syntax: SyntaxNode) -> Option<Self> {
18088        if Self::can_cast(syntax.kind()) {
18089            Some(Self { syntax })
18090        } else {
18091            None
18092        }
18093    }
18094    #[inline]
18095    fn syntax(&self) -> &SyntaxNode {
18096        &self.syntax
18097    }
18098}
18099impl AstNode for ArrayExpr {
18100    #[inline]
18101    fn can_cast(kind: SyntaxKind) -> bool {
18102        kind == SyntaxKind::ARRAY_EXPR
18103    }
18104    #[inline]
18105    fn cast(syntax: SyntaxNode) -> Option<Self> {
18106        if Self::can_cast(syntax.kind()) {
18107            Some(Self { syntax })
18108        } else {
18109            None
18110        }
18111    }
18112    #[inline]
18113    fn syntax(&self) -> &SyntaxNode {
18114        &self.syntax
18115    }
18116}
18117impl AstNode for ArrayType {
18118    #[inline]
18119    fn can_cast(kind: SyntaxKind) -> bool {
18120        kind == SyntaxKind::ARRAY_TYPE
18121    }
18122    #[inline]
18123    fn cast(syntax: SyntaxNode) -> Option<Self> {
18124        if Self::can_cast(syntax.kind()) {
18125            Some(Self { syntax })
18126        } else {
18127            None
18128        }
18129    }
18130    #[inline]
18131    fn syntax(&self) -> &SyntaxNode {
18132        &self.syntax
18133    }
18134}
18135impl AstNode for AsFuncOption {
18136    #[inline]
18137    fn can_cast(kind: SyntaxKind) -> bool {
18138        kind == SyntaxKind::AS_FUNC_OPTION
18139    }
18140    #[inline]
18141    fn cast(syntax: SyntaxNode) -> Option<Self> {
18142        if Self::can_cast(syntax.kind()) {
18143            Some(Self { syntax })
18144        } else {
18145            None
18146        }
18147    }
18148    #[inline]
18149    fn syntax(&self) -> &SyntaxNode {
18150        &self.syntax
18151    }
18152}
18153impl AstNode for AsName {
18154    #[inline]
18155    fn can_cast(kind: SyntaxKind) -> bool {
18156        kind == SyntaxKind::AS_NAME
18157    }
18158    #[inline]
18159    fn cast(syntax: SyntaxNode) -> Option<Self> {
18160        if Self::can_cast(syntax.kind()) {
18161            Some(Self { syntax })
18162        } else {
18163            None
18164        }
18165    }
18166    #[inline]
18167    fn syntax(&self) -> &SyntaxNode {
18168        &self.syntax
18169    }
18170}
18171impl AstNode for AtTimeZone {
18172    #[inline]
18173    fn can_cast(kind: SyntaxKind) -> bool {
18174        kind == SyntaxKind::AT_TIME_ZONE
18175    }
18176    #[inline]
18177    fn cast(syntax: SyntaxNode) -> Option<Self> {
18178        if Self::can_cast(syntax.kind()) {
18179            Some(Self { syntax })
18180        } else {
18181            None
18182        }
18183    }
18184    #[inline]
18185    fn syntax(&self) -> &SyntaxNode {
18186        &self.syntax
18187    }
18188}
18189impl AstNode for AttachPartition {
18190    #[inline]
18191    fn can_cast(kind: SyntaxKind) -> bool {
18192        kind == SyntaxKind::ATTACH_PARTITION
18193    }
18194    #[inline]
18195    fn cast(syntax: SyntaxNode) -> Option<Self> {
18196        if Self::can_cast(syntax.kind()) {
18197            Some(Self { syntax })
18198        } else {
18199            None
18200        }
18201    }
18202    #[inline]
18203    fn syntax(&self) -> &SyntaxNode {
18204        &self.syntax
18205    }
18206}
18207impl AstNode for AttributeList {
18208    #[inline]
18209    fn can_cast(kind: SyntaxKind) -> bool {
18210        kind == SyntaxKind::ATTRIBUTE_LIST
18211    }
18212    #[inline]
18213    fn cast(syntax: SyntaxNode) -> Option<Self> {
18214        if Self::can_cast(syntax.kind()) {
18215            Some(Self { syntax })
18216        } else {
18217            None
18218        }
18219    }
18220    #[inline]
18221    fn syntax(&self) -> &SyntaxNode {
18222        &self.syntax
18223    }
18224}
18225impl AstNode for AttributeOption {
18226    #[inline]
18227    fn can_cast(kind: SyntaxKind) -> bool {
18228        kind == SyntaxKind::ATTRIBUTE_OPTION
18229    }
18230    #[inline]
18231    fn cast(syntax: SyntaxNode) -> Option<Self> {
18232        if Self::can_cast(syntax.kind()) {
18233            Some(Self { syntax })
18234        } else {
18235            None
18236        }
18237    }
18238    #[inline]
18239    fn syntax(&self) -> &SyntaxNode {
18240        &self.syntax
18241    }
18242}
18243impl AstNode for AttributeValue {
18244    #[inline]
18245    fn can_cast(kind: SyntaxKind) -> bool {
18246        kind == SyntaxKind::ATTRIBUTE_VALUE
18247    }
18248    #[inline]
18249    fn cast(syntax: SyntaxNode) -> Option<Self> {
18250        if Self::can_cast(syntax.kind()) {
18251            Some(Self { syntax })
18252        } else {
18253            None
18254        }
18255    }
18256    #[inline]
18257    fn syntax(&self) -> &SyntaxNode {
18258        &self.syntax
18259    }
18260}
18261impl AstNode for Begin {
18262    #[inline]
18263    fn can_cast(kind: SyntaxKind) -> bool {
18264        kind == SyntaxKind::BEGIN
18265    }
18266    #[inline]
18267    fn cast(syntax: SyntaxNode) -> Option<Self> {
18268        if Self::can_cast(syntax.kind()) {
18269            Some(Self { syntax })
18270        } else {
18271            None
18272        }
18273    }
18274    #[inline]
18275    fn syntax(&self) -> &SyntaxNode {
18276        &self.syntax
18277    }
18278}
18279impl AstNode for BeginFuncOption {
18280    #[inline]
18281    fn can_cast(kind: SyntaxKind) -> bool {
18282        kind == SyntaxKind::BEGIN_FUNC_OPTION
18283    }
18284    #[inline]
18285    fn cast(syntax: SyntaxNode) -> Option<Self> {
18286        if Self::can_cast(syntax.kind()) {
18287            Some(Self { syntax })
18288        } else {
18289            None
18290        }
18291    }
18292    #[inline]
18293    fn syntax(&self) -> &SyntaxNode {
18294        &self.syntax
18295    }
18296}
18297impl AstNode for BeginFuncOptionList {
18298    #[inline]
18299    fn can_cast(kind: SyntaxKind) -> bool {
18300        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
18301    }
18302    #[inline]
18303    fn cast(syntax: SyntaxNode) -> Option<Self> {
18304        if Self::can_cast(syntax.kind()) {
18305            Some(Self { syntax })
18306        } else {
18307            None
18308        }
18309    }
18310    #[inline]
18311    fn syntax(&self) -> &SyntaxNode {
18312        &self.syntax
18313    }
18314}
18315impl AstNode for BetweenExpr {
18316    #[inline]
18317    fn can_cast(kind: SyntaxKind) -> bool {
18318        kind == SyntaxKind::BETWEEN_EXPR
18319    }
18320    #[inline]
18321    fn cast(syntax: SyntaxNode) -> Option<Self> {
18322        if Self::can_cast(syntax.kind()) {
18323            Some(Self { syntax })
18324        } else {
18325            None
18326        }
18327    }
18328    #[inline]
18329    fn syntax(&self) -> &SyntaxNode {
18330        &self.syntax
18331    }
18332}
18333impl AstNode for BinExpr {
18334    #[inline]
18335    fn can_cast(kind: SyntaxKind) -> bool {
18336        kind == SyntaxKind::BIN_EXPR
18337    }
18338    #[inline]
18339    fn cast(syntax: SyntaxNode) -> Option<Self> {
18340        if Self::can_cast(syntax.kind()) {
18341            Some(Self { syntax })
18342        } else {
18343            None
18344        }
18345    }
18346    #[inline]
18347    fn syntax(&self) -> &SyntaxNode {
18348        &self.syntax
18349    }
18350}
18351impl AstNode for BitType {
18352    #[inline]
18353    fn can_cast(kind: SyntaxKind) -> bool {
18354        kind == SyntaxKind::BIT_TYPE
18355    }
18356    #[inline]
18357    fn cast(syntax: SyntaxNode) -> Option<Self> {
18358        if Self::can_cast(syntax.kind()) {
18359            Some(Self { syntax })
18360        } else {
18361            None
18362        }
18363    }
18364    #[inline]
18365    fn syntax(&self) -> &SyntaxNode {
18366        &self.syntax
18367    }
18368}
18369impl AstNode for Call {
18370    #[inline]
18371    fn can_cast(kind: SyntaxKind) -> bool {
18372        kind == SyntaxKind::CALL
18373    }
18374    #[inline]
18375    fn cast(syntax: SyntaxNode) -> Option<Self> {
18376        if Self::can_cast(syntax.kind()) {
18377            Some(Self { syntax })
18378        } else {
18379            None
18380        }
18381    }
18382    #[inline]
18383    fn syntax(&self) -> &SyntaxNode {
18384        &self.syntax
18385    }
18386}
18387impl AstNode for CallExpr {
18388    #[inline]
18389    fn can_cast(kind: SyntaxKind) -> bool {
18390        kind == SyntaxKind::CALL_EXPR
18391    }
18392    #[inline]
18393    fn cast(syntax: SyntaxNode) -> Option<Self> {
18394        if Self::can_cast(syntax.kind()) {
18395            Some(Self { syntax })
18396        } else {
18397            None
18398        }
18399    }
18400    #[inline]
18401    fn syntax(&self) -> &SyntaxNode {
18402        &self.syntax
18403    }
18404}
18405impl AstNode for Cascade {
18406    #[inline]
18407    fn can_cast(kind: SyntaxKind) -> bool {
18408        kind == SyntaxKind::CASCADE
18409    }
18410    #[inline]
18411    fn cast(syntax: SyntaxNode) -> Option<Self> {
18412        if Self::can_cast(syntax.kind()) {
18413            Some(Self { syntax })
18414        } else {
18415            None
18416        }
18417    }
18418    #[inline]
18419    fn syntax(&self) -> &SyntaxNode {
18420        &self.syntax
18421    }
18422}
18423impl AstNode for CaseExpr {
18424    #[inline]
18425    fn can_cast(kind: SyntaxKind) -> bool {
18426        kind == SyntaxKind::CASE_EXPR
18427    }
18428    #[inline]
18429    fn cast(syntax: SyntaxNode) -> Option<Self> {
18430        if Self::can_cast(syntax.kind()) {
18431            Some(Self { syntax })
18432        } else {
18433            None
18434        }
18435    }
18436    #[inline]
18437    fn syntax(&self) -> &SyntaxNode {
18438        &self.syntax
18439    }
18440}
18441impl AstNode for CastExpr {
18442    #[inline]
18443    fn can_cast(kind: SyntaxKind) -> bool {
18444        kind == SyntaxKind::CAST_EXPR
18445    }
18446    #[inline]
18447    fn cast(syntax: SyntaxNode) -> Option<Self> {
18448        if Self::can_cast(syntax.kind()) {
18449            Some(Self { syntax })
18450        } else {
18451            None
18452        }
18453    }
18454    #[inline]
18455    fn syntax(&self) -> &SyntaxNode {
18456        &self.syntax
18457    }
18458}
18459impl AstNode for CastSig {
18460    #[inline]
18461    fn can_cast(kind: SyntaxKind) -> bool {
18462        kind == SyntaxKind::CAST_SIG
18463    }
18464    #[inline]
18465    fn cast(syntax: SyntaxNode) -> Option<Self> {
18466        if Self::can_cast(syntax.kind()) {
18467            Some(Self { syntax })
18468        } else {
18469            None
18470        }
18471    }
18472    #[inline]
18473    fn syntax(&self) -> &SyntaxNode {
18474        &self.syntax
18475    }
18476}
18477impl AstNode for CharType {
18478    #[inline]
18479    fn can_cast(kind: SyntaxKind) -> bool {
18480        kind == SyntaxKind::CHAR_TYPE
18481    }
18482    #[inline]
18483    fn cast(syntax: SyntaxNode) -> Option<Self> {
18484        if Self::can_cast(syntax.kind()) {
18485            Some(Self { syntax })
18486        } else {
18487            None
18488        }
18489    }
18490    #[inline]
18491    fn syntax(&self) -> &SyntaxNode {
18492        &self.syntax
18493    }
18494}
18495impl AstNode for CheckConstraint {
18496    #[inline]
18497    fn can_cast(kind: SyntaxKind) -> bool {
18498        kind == SyntaxKind::CHECK_CONSTRAINT
18499    }
18500    #[inline]
18501    fn cast(syntax: SyntaxNode) -> Option<Self> {
18502        if Self::can_cast(syntax.kind()) {
18503            Some(Self { syntax })
18504        } else {
18505            None
18506        }
18507    }
18508    #[inline]
18509    fn syntax(&self) -> &SyntaxNode {
18510        &self.syntax
18511    }
18512}
18513impl AstNode for Checkpoint {
18514    #[inline]
18515    fn can_cast(kind: SyntaxKind) -> bool {
18516        kind == SyntaxKind::CHECKPOINT
18517    }
18518    #[inline]
18519    fn cast(syntax: SyntaxNode) -> Option<Self> {
18520        if Self::can_cast(syntax.kind()) {
18521            Some(Self { syntax })
18522        } else {
18523            None
18524        }
18525    }
18526    #[inline]
18527    fn syntax(&self) -> &SyntaxNode {
18528        &self.syntax
18529    }
18530}
18531impl AstNode for Close {
18532    #[inline]
18533    fn can_cast(kind: SyntaxKind) -> bool {
18534        kind == SyntaxKind::CLOSE
18535    }
18536    #[inline]
18537    fn cast(syntax: SyntaxNode) -> Option<Self> {
18538        if Self::can_cast(syntax.kind()) {
18539            Some(Self { syntax })
18540        } else {
18541            None
18542        }
18543    }
18544    #[inline]
18545    fn syntax(&self) -> &SyntaxNode {
18546        &self.syntax
18547    }
18548}
18549impl AstNode for Cluster {
18550    #[inline]
18551    fn can_cast(kind: SyntaxKind) -> bool {
18552        kind == SyntaxKind::CLUSTER
18553    }
18554    #[inline]
18555    fn cast(syntax: SyntaxNode) -> Option<Self> {
18556        if Self::can_cast(syntax.kind()) {
18557            Some(Self { syntax })
18558        } else {
18559            None
18560        }
18561    }
18562    #[inline]
18563    fn syntax(&self) -> &SyntaxNode {
18564        &self.syntax
18565    }
18566}
18567impl AstNode for ClusterOn {
18568    #[inline]
18569    fn can_cast(kind: SyntaxKind) -> bool {
18570        kind == SyntaxKind::CLUSTER_ON
18571    }
18572    #[inline]
18573    fn cast(syntax: SyntaxNode) -> Option<Self> {
18574        if Self::can_cast(syntax.kind()) {
18575            Some(Self { syntax })
18576        } else {
18577            None
18578        }
18579    }
18580    #[inline]
18581    fn syntax(&self) -> &SyntaxNode {
18582        &self.syntax
18583    }
18584}
18585impl AstNode for Collate {
18586    #[inline]
18587    fn can_cast(kind: SyntaxKind) -> bool {
18588        kind == SyntaxKind::COLLATE
18589    }
18590    #[inline]
18591    fn cast(syntax: SyntaxNode) -> Option<Self> {
18592        if Self::can_cast(syntax.kind()) {
18593            Some(Self { syntax })
18594        } else {
18595            None
18596        }
18597    }
18598    #[inline]
18599    fn syntax(&self) -> &SyntaxNode {
18600        &self.syntax
18601    }
18602}
18603impl AstNode for ColonColon {
18604    #[inline]
18605    fn can_cast(kind: SyntaxKind) -> bool {
18606        kind == SyntaxKind::COLON_COLON
18607    }
18608    #[inline]
18609    fn cast(syntax: SyntaxNode) -> Option<Self> {
18610        if Self::can_cast(syntax.kind()) {
18611            Some(Self { syntax })
18612        } else {
18613            None
18614        }
18615    }
18616    #[inline]
18617    fn syntax(&self) -> &SyntaxNode {
18618        &self.syntax
18619    }
18620}
18621impl AstNode for ColonEq {
18622    #[inline]
18623    fn can_cast(kind: SyntaxKind) -> bool {
18624        kind == SyntaxKind::COLON_EQ
18625    }
18626    #[inline]
18627    fn cast(syntax: SyntaxNode) -> Option<Self> {
18628        if Self::can_cast(syntax.kind()) {
18629            Some(Self { syntax })
18630        } else {
18631            None
18632        }
18633    }
18634    #[inline]
18635    fn syntax(&self) -> &SyntaxNode {
18636        &self.syntax
18637    }
18638}
18639impl AstNode for Column {
18640    #[inline]
18641    fn can_cast(kind: SyntaxKind) -> bool {
18642        kind == SyntaxKind::COLUMN
18643    }
18644    #[inline]
18645    fn cast(syntax: SyntaxNode) -> Option<Self> {
18646        if Self::can_cast(syntax.kind()) {
18647            Some(Self { syntax })
18648        } else {
18649            None
18650        }
18651    }
18652    #[inline]
18653    fn syntax(&self) -> &SyntaxNode {
18654        &self.syntax
18655    }
18656}
18657impl AstNode for ColumnList {
18658    #[inline]
18659    fn can_cast(kind: SyntaxKind) -> bool {
18660        kind == SyntaxKind::COLUMN_LIST
18661    }
18662    #[inline]
18663    fn cast(syntax: SyntaxNode) -> Option<Self> {
18664        if Self::can_cast(syntax.kind()) {
18665            Some(Self { syntax })
18666        } else {
18667            None
18668        }
18669    }
18670    #[inline]
18671    fn syntax(&self) -> &SyntaxNode {
18672        &self.syntax
18673    }
18674}
18675impl AstNode for CommentOn {
18676    #[inline]
18677    fn can_cast(kind: SyntaxKind) -> bool {
18678        kind == SyntaxKind::COMMENT_ON
18679    }
18680    #[inline]
18681    fn cast(syntax: SyntaxNode) -> Option<Self> {
18682        if Self::can_cast(syntax.kind()) {
18683            Some(Self { syntax })
18684        } else {
18685            None
18686        }
18687    }
18688    #[inline]
18689    fn syntax(&self) -> &SyntaxNode {
18690        &self.syntax
18691    }
18692}
18693impl AstNode for Commit {
18694    #[inline]
18695    fn can_cast(kind: SyntaxKind) -> bool {
18696        kind == SyntaxKind::COMMIT
18697    }
18698    #[inline]
18699    fn cast(syntax: SyntaxNode) -> Option<Self> {
18700        if Self::can_cast(syntax.kind()) {
18701            Some(Self { syntax })
18702        } else {
18703            None
18704        }
18705    }
18706    #[inline]
18707    fn syntax(&self) -> &SyntaxNode {
18708        &self.syntax
18709    }
18710}
18711impl AstNode for CompoundSelect {
18712    #[inline]
18713    fn can_cast(kind: SyntaxKind) -> bool {
18714        kind == SyntaxKind::COMPOUND_SELECT
18715    }
18716    #[inline]
18717    fn cast(syntax: SyntaxNode) -> Option<Self> {
18718        if Self::can_cast(syntax.kind()) {
18719            Some(Self { syntax })
18720        } else {
18721            None
18722        }
18723    }
18724    #[inline]
18725    fn syntax(&self) -> &SyntaxNode {
18726        &self.syntax
18727    }
18728}
18729impl AstNode for CompressionMethod {
18730    #[inline]
18731    fn can_cast(kind: SyntaxKind) -> bool {
18732        kind == SyntaxKind::COMPRESSION_METHOD
18733    }
18734    #[inline]
18735    fn cast(syntax: SyntaxNode) -> Option<Self> {
18736        if Self::can_cast(syntax.kind()) {
18737            Some(Self { syntax })
18738        } else {
18739            None
18740        }
18741    }
18742    #[inline]
18743    fn syntax(&self) -> &SyntaxNode {
18744        &self.syntax
18745    }
18746}
18747impl AstNode for ConflictDoNothing {
18748    #[inline]
18749    fn can_cast(kind: SyntaxKind) -> bool {
18750        kind == SyntaxKind::CONFLICT_DO_NOTHING
18751    }
18752    #[inline]
18753    fn cast(syntax: SyntaxNode) -> Option<Self> {
18754        if Self::can_cast(syntax.kind()) {
18755            Some(Self { syntax })
18756        } else {
18757            None
18758        }
18759    }
18760    #[inline]
18761    fn syntax(&self) -> &SyntaxNode {
18762        &self.syntax
18763    }
18764}
18765impl AstNode for ConflictDoUpdateSet {
18766    #[inline]
18767    fn can_cast(kind: SyntaxKind) -> bool {
18768        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
18769    }
18770    #[inline]
18771    fn cast(syntax: SyntaxNode) -> Option<Self> {
18772        if Self::can_cast(syntax.kind()) {
18773            Some(Self { syntax })
18774        } else {
18775            None
18776        }
18777    }
18778    #[inline]
18779    fn syntax(&self) -> &SyntaxNode {
18780        &self.syntax
18781    }
18782}
18783impl AstNode for ConflictIndexItem {
18784    #[inline]
18785    fn can_cast(kind: SyntaxKind) -> bool {
18786        kind == SyntaxKind::CONFLICT_INDEX_ITEM
18787    }
18788    #[inline]
18789    fn cast(syntax: SyntaxNode) -> Option<Self> {
18790        if Self::can_cast(syntax.kind()) {
18791            Some(Self { syntax })
18792        } else {
18793            None
18794        }
18795    }
18796    #[inline]
18797    fn syntax(&self) -> &SyntaxNode {
18798        &self.syntax
18799    }
18800}
18801impl AstNode for ConflictIndexItemList {
18802    #[inline]
18803    fn can_cast(kind: SyntaxKind) -> bool {
18804        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
18805    }
18806    #[inline]
18807    fn cast(syntax: SyntaxNode) -> Option<Self> {
18808        if Self::can_cast(syntax.kind()) {
18809            Some(Self { syntax })
18810        } else {
18811            None
18812        }
18813    }
18814    #[inline]
18815    fn syntax(&self) -> &SyntaxNode {
18816        &self.syntax
18817    }
18818}
18819impl AstNode for ConflictOnConstraint {
18820    #[inline]
18821    fn can_cast(kind: SyntaxKind) -> bool {
18822        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
18823    }
18824    #[inline]
18825    fn cast(syntax: SyntaxNode) -> Option<Self> {
18826        if Self::can_cast(syntax.kind()) {
18827            Some(Self { syntax })
18828        } else {
18829            None
18830        }
18831    }
18832    #[inline]
18833    fn syntax(&self) -> &SyntaxNode {
18834        &self.syntax
18835    }
18836}
18837impl AstNode for ConflictOnIndex {
18838    #[inline]
18839    fn can_cast(kind: SyntaxKind) -> bool {
18840        kind == SyntaxKind::CONFLICT_ON_INDEX
18841    }
18842    #[inline]
18843    fn cast(syntax: SyntaxNode) -> Option<Self> {
18844        if Self::can_cast(syntax.kind()) {
18845            Some(Self { syntax })
18846        } else {
18847            None
18848        }
18849    }
18850    #[inline]
18851    fn syntax(&self) -> &SyntaxNode {
18852        &self.syntax
18853    }
18854}
18855impl AstNode for ConstraintExclusion {
18856    #[inline]
18857    fn can_cast(kind: SyntaxKind) -> bool {
18858        kind == SyntaxKind::CONSTRAINT_EXCLUSION
18859    }
18860    #[inline]
18861    fn cast(syntax: SyntaxNode) -> Option<Self> {
18862        if Self::can_cast(syntax.kind()) {
18863            Some(Self { syntax })
18864        } else {
18865            None
18866        }
18867    }
18868    #[inline]
18869    fn syntax(&self) -> &SyntaxNode {
18870        &self.syntax
18871    }
18872}
18873impl AstNode for ConstraintExclusionList {
18874    #[inline]
18875    fn can_cast(kind: SyntaxKind) -> bool {
18876        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
18877    }
18878    #[inline]
18879    fn cast(syntax: SyntaxNode) -> Option<Self> {
18880        if Self::can_cast(syntax.kind()) {
18881            Some(Self { syntax })
18882        } else {
18883            None
18884        }
18885    }
18886    #[inline]
18887    fn syntax(&self) -> &SyntaxNode {
18888        &self.syntax
18889    }
18890}
18891impl AstNode for ConstraintIncludeClause {
18892    #[inline]
18893    fn can_cast(kind: SyntaxKind) -> bool {
18894        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
18895    }
18896    #[inline]
18897    fn cast(syntax: SyntaxNode) -> Option<Self> {
18898        if Self::can_cast(syntax.kind()) {
18899            Some(Self { syntax })
18900        } else {
18901            None
18902        }
18903    }
18904    #[inline]
18905    fn syntax(&self) -> &SyntaxNode {
18906        &self.syntax
18907    }
18908}
18909impl AstNode for ConstraintIndexMethod {
18910    #[inline]
18911    fn can_cast(kind: SyntaxKind) -> bool {
18912        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
18913    }
18914    #[inline]
18915    fn cast(syntax: SyntaxNode) -> Option<Self> {
18916        if Self::can_cast(syntax.kind()) {
18917            Some(Self { syntax })
18918        } else {
18919            None
18920        }
18921    }
18922    #[inline]
18923    fn syntax(&self) -> &SyntaxNode {
18924        &self.syntax
18925    }
18926}
18927impl AstNode for ConstraintIndexTablespace {
18928    #[inline]
18929    fn can_cast(kind: SyntaxKind) -> bool {
18930        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
18931    }
18932    #[inline]
18933    fn cast(syntax: SyntaxNode) -> Option<Self> {
18934        if Self::can_cast(syntax.kind()) {
18935            Some(Self { syntax })
18936        } else {
18937            None
18938        }
18939    }
18940    #[inline]
18941    fn syntax(&self) -> &SyntaxNode {
18942        &self.syntax
18943    }
18944}
18945impl AstNode for ConstraintName {
18946    #[inline]
18947    fn can_cast(kind: SyntaxKind) -> bool {
18948        kind == SyntaxKind::CONSTRAINT_NAME
18949    }
18950    #[inline]
18951    fn cast(syntax: SyntaxNode) -> Option<Self> {
18952        if Self::can_cast(syntax.kind()) {
18953            Some(Self { syntax })
18954        } else {
18955            None
18956        }
18957    }
18958    #[inline]
18959    fn syntax(&self) -> &SyntaxNode {
18960        &self.syntax
18961    }
18962}
18963impl AstNode for Copy {
18964    #[inline]
18965    fn can_cast(kind: SyntaxKind) -> bool {
18966        kind == SyntaxKind::COPY
18967    }
18968    #[inline]
18969    fn cast(syntax: SyntaxNode) -> Option<Self> {
18970        if Self::can_cast(syntax.kind()) {
18971            Some(Self { syntax })
18972        } else {
18973            None
18974        }
18975    }
18976    #[inline]
18977    fn syntax(&self) -> &SyntaxNode {
18978        &self.syntax
18979    }
18980}
18981impl AstNode for CopyOption {
18982    #[inline]
18983    fn can_cast(kind: SyntaxKind) -> bool {
18984        kind == SyntaxKind::COPY_OPTION
18985    }
18986    #[inline]
18987    fn cast(syntax: SyntaxNode) -> Option<Self> {
18988        if Self::can_cast(syntax.kind()) {
18989            Some(Self { syntax })
18990        } else {
18991            None
18992        }
18993    }
18994    #[inline]
18995    fn syntax(&self) -> &SyntaxNode {
18996        &self.syntax
18997    }
18998}
18999impl AstNode for CopyOptionList {
19000    #[inline]
19001    fn can_cast(kind: SyntaxKind) -> bool {
19002        kind == SyntaxKind::COPY_OPTION_LIST
19003    }
19004    #[inline]
19005    fn cast(syntax: SyntaxNode) -> Option<Self> {
19006        if Self::can_cast(syntax.kind()) {
19007            Some(Self { syntax })
19008        } else {
19009            None
19010        }
19011    }
19012    #[inline]
19013    fn syntax(&self) -> &SyntaxNode {
19014        &self.syntax
19015    }
19016}
19017impl AstNode for CostFuncOption {
19018    #[inline]
19019    fn can_cast(kind: SyntaxKind) -> bool {
19020        kind == SyntaxKind::COST_FUNC_OPTION
19021    }
19022    #[inline]
19023    fn cast(syntax: SyntaxNode) -> Option<Self> {
19024        if Self::can_cast(syntax.kind()) {
19025            Some(Self { syntax })
19026        } else {
19027            None
19028        }
19029    }
19030    #[inline]
19031    fn syntax(&self) -> &SyntaxNode {
19032        &self.syntax
19033    }
19034}
19035impl AstNode for CreateAccessMethod {
19036    #[inline]
19037    fn can_cast(kind: SyntaxKind) -> bool {
19038        kind == SyntaxKind::CREATE_ACCESS_METHOD
19039    }
19040    #[inline]
19041    fn cast(syntax: SyntaxNode) -> Option<Self> {
19042        if Self::can_cast(syntax.kind()) {
19043            Some(Self { syntax })
19044        } else {
19045            None
19046        }
19047    }
19048    #[inline]
19049    fn syntax(&self) -> &SyntaxNode {
19050        &self.syntax
19051    }
19052}
19053impl AstNode for CreateAggregate {
19054    #[inline]
19055    fn can_cast(kind: SyntaxKind) -> bool {
19056        kind == SyntaxKind::CREATE_AGGREGATE
19057    }
19058    #[inline]
19059    fn cast(syntax: SyntaxNode) -> Option<Self> {
19060        if Self::can_cast(syntax.kind()) {
19061            Some(Self { syntax })
19062        } else {
19063            None
19064        }
19065    }
19066    #[inline]
19067    fn syntax(&self) -> &SyntaxNode {
19068        &self.syntax
19069    }
19070}
19071impl AstNode for CreateCast {
19072    #[inline]
19073    fn can_cast(kind: SyntaxKind) -> bool {
19074        kind == SyntaxKind::CREATE_CAST
19075    }
19076    #[inline]
19077    fn cast(syntax: SyntaxNode) -> Option<Self> {
19078        if Self::can_cast(syntax.kind()) {
19079            Some(Self { syntax })
19080        } else {
19081            None
19082        }
19083    }
19084    #[inline]
19085    fn syntax(&self) -> &SyntaxNode {
19086        &self.syntax
19087    }
19088}
19089impl AstNode for CreateCollation {
19090    #[inline]
19091    fn can_cast(kind: SyntaxKind) -> bool {
19092        kind == SyntaxKind::CREATE_COLLATION
19093    }
19094    #[inline]
19095    fn cast(syntax: SyntaxNode) -> Option<Self> {
19096        if Self::can_cast(syntax.kind()) {
19097            Some(Self { syntax })
19098        } else {
19099            None
19100        }
19101    }
19102    #[inline]
19103    fn syntax(&self) -> &SyntaxNode {
19104        &self.syntax
19105    }
19106}
19107impl AstNode for CreateConversion {
19108    #[inline]
19109    fn can_cast(kind: SyntaxKind) -> bool {
19110        kind == SyntaxKind::CREATE_CONVERSION
19111    }
19112    #[inline]
19113    fn cast(syntax: SyntaxNode) -> Option<Self> {
19114        if Self::can_cast(syntax.kind()) {
19115            Some(Self { syntax })
19116        } else {
19117            None
19118        }
19119    }
19120    #[inline]
19121    fn syntax(&self) -> &SyntaxNode {
19122        &self.syntax
19123    }
19124}
19125impl AstNode for CreateDatabase {
19126    #[inline]
19127    fn can_cast(kind: SyntaxKind) -> bool {
19128        kind == SyntaxKind::CREATE_DATABASE
19129    }
19130    #[inline]
19131    fn cast(syntax: SyntaxNode) -> Option<Self> {
19132        if Self::can_cast(syntax.kind()) {
19133            Some(Self { syntax })
19134        } else {
19135            None
19136        }
19137    }
19138    #[inline]
19139    fn syntax(&self) -> &SyntaxNode {
19140        &self.syntax
19141    }
19142}
19143impl AstNode for CreateDatabaseOption {
19144    #[inline]
19145    fn can_cast(kind: SyntaxKind) -> bool {
19146        kind == SyntaxKind::CREATE_DATABASE_OPTION
19147    }
19148    #[inline]
19149    fn cast(syntax: SyntaxNode) -> Option<Self> {
19150        if Self::can_cast(syntax.kind()) {
19151            Some(Self { syntax })
19152        } else {
19153            None
19154        }
19155    }
19156    #[inline]
19157    fn syntax(&self) -> &SyntaxNode {
19158        &self.syntax
19159    }
19160}
19161impl AstNode for CreateDatabaseOptionList {
19162    #[inline]
19163    fn can_cast(kind: SyntaxKind) -> bool {
19164        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
19165    }
19166    #[inline]
19167    fn cast(syntax: SyntaxNode) -> Option<Self> {
19168        if Self::can_cast(syntax.kind()) {
19169            Some(Self { syntax })
19170        } else {
19171            None
19172        }
19173    }
19174    #[inline]
19175    fn syntax(&self) -> &SyntaxNode {
19176        &self.syntax
19177    }
19178}
19179impl AstNode for CreateDomain {
19180    #[inline]
19181    fn can_cast(kind: SyntaxKind) -> bool {
19182        kind == SyntaxKind::CREATE_DOMAIN
19183    }
19184    #[inline]
19185    fn cast(syntax: SyntaxNode) -> Option<Self> {
19186        if Self::can_cast(syntax.kind()) {
19187            Some(Self { syntax })
19188        } else {
19189            None
19190        }
19191    }
19192    #[inline]
19193    fn syntax(&self) -> &SyntaxNode {
19194        &self.syntax
19195    }
19196}
19197impl AstNode for CreateEventTrigger {
19198    #[inline]
19199    fn can_cast(kind: SyntaxKind) -> bool {
19200        kind == SyntaxKind::CREATE_EVENT_TRIGGER
19201    }
19202    #[inline]
19203    fn cast(syntax: SyntaxNode) -> Option<Self> {
19204        if Self::can_cast(syntax.kind()) {
19205            Some(Self { syntax })
19206        } else {
19207            None
19208        }
19209    }
19210    #[inline]
19211    fn syntax(&self) -> &SyntaxNode {
19212        &self.syntax
19213    }
19214}
19215impl AstNode for CreateExtension {
19216    #[inline]
19217    fn can_cast(kind: SyntaxKind) -> bool {
19218        kind == SyntaxKind::CREATE_EXTENSION
19219    }
19220    #[inline]
19221    fn cast(syntax: SyntaxNode) -> Option<Self> {
19222        if Self::can_cast(syntax.kind()) {
19223            Some(Self { syntax })
19224        } else {
19225            None
19226        }
19227    }
19228    #[inline]
19229    fn syntax(&self) -> &SyntaxNode {
19230        &self.syntax
19231    }
19232}
19233impl AstNode for CreateForeignDataWrapper {
19234    #[inline]
19235    fn can_cast(kind: SyntaxKind) -> bool {
19236        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
19237    }
19238    #[inline]
19239    fn cast(syntax: SyntaxNode) -> Option<Self> {
19240        if Self::can_cast(syntax.kind()) {
19241            Some(Self { syntax })
19242        } else {
19243            None
19244        }
19245    }
19246    #[inline]
19247    fn syntax(&self) -> &SyntaxNode {
19248        &self.syntax
19249    }
19250}
19251impl AstNode for CreateForeignTable {
19252    #[inline]
19253    fn can_cast(kind: SyntaxKind) -> bool {
19254        kind == SyntaxKind::CREATE_FOREIGN_TABLE
19255    }
19256    #[inline]
19257    fn cast(syntax: SyntaxNode) -> Option<Self> {
19258        if Self::can_cast(syntax.kind()) {
19259            Some(Self { syntax })
19260        } else {
19261            None
19262        }
19263    }
19264    #[inline]
19265    fn syntax(&self) -> &SyntaxNode {
19266        &self.syntax
19267    }
19268}
19269impl AstNode for CreateFunction {
19270    #[inline]
19271    fn can_cast(kind: SyntaxKind) -> bool {
19272        kind == SyntaxKind::CREATE_FUNCTION
19273    }
19274    #[inline]
19275    fn cast(syntax: SyntaxNode) -> Option<Self> {
19276        if Self::can_cast(syntax.kind()) {
19277            Some(Self { syntax })
19278        } else {
19279            None
19280        }
19281    }
19282    #[inline]
19283    fn syntax(&self) -> &SyntaxNode {
19284        &self.syntax
19285    }
19286}
19287impl AstNode for CreateGroup {
19288    #[inline]
19289    fn can_cast(kind: SyntaxKind) -> bool {
19290        kind == SyntaxKind::CREATE_GROUP
19291    }
19292    #[inline]
19293    fn cast(syntax: SyntaxNode) -> Option<Self> {
19294        if Self::can_cast(syntax.kind()) {
19295            Some(Self { syntax })
19296        } else {
19297            None
19298        }
19299    }
19300    #[inline]
19301    fn syntax(&self) -> &SyntaxNode {
19302        &self.syntax
19303    }
19304}
19305impl AstNode for CreateIndex {
19306    #[inline]
19307    fn can_cast(kind: SyntaxKind) -> bool {
19308        kind == SyntaxKind::CREATE_INDEX
19309    }
19310    #[inline]
19311    fn cast(syntax: SyntaxNode) -> Option<Self> {
19312        if Self::can_cast(syntax.kind()) {
19313            Some(Self { syntax })
19314        } else {
19315            None
19316        }
19317    }
19318    #[inline]
19319    fn syntax(&self) -> &SyntaxNode {
19320        &self.syntax
19321    }
19322}
19323impl AstNode for CreateLanguage {
19324    #[inline]
19325    fn can_cast(kind: SyntaxKind) -> bool {
19326        kind == SyntaxKind::CREATE_LANGUAGE
19327    }
19328    #[inline]
19329    fn cast(syntax: SyntaxNode) -> Option<Self> {
19330        if Self::can_cast(syntax.kind()) {
19331            Some(Self { syntax })
19332        } else {
19333            None
19334        }
19335    }
19336    #[inline]
19337    fn syntax(&self) -> &SyntaxNode {
19338        &self.syntax
19339    }
19340}
19341impl AstNode for CreateMaterializedView {
19342    #[inline]
19343    fn can_cast(kind: SyntaxKind) -> bool {
19344        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
19345    }
19346    #[inline]
19347    fn cast(syntax: SyntaxNode) -> Option<Self> {
19348        if Self::can_cast(syntax.kind()) {
19349            Some(Self { syntax })
19350        } else {
19351            None
19352        }
19353    }
19354    #[inline]
19355    fn syntax(&self) -> &SyntaxNode {
19356        &self.syntax
19357    }
19358}
19359impl AstNode for CreateOperator {
19360    #[inline]
19361    fn can_cast(kind: SyntaxKind) -> bool {
19362        kind == SyntaxKind::CREATE_OPERATOR
19363    }
19364    #[inline]
19365    fn cast(syntax: SyntaxNode) -> Option<Self> {
19366        if Self::can_cast(syntax.kind()) {
19367            Some(Self { syntax })
19368        } else {
19369            None
19370        }
19371    }
19372    #[inline]
19373    fn syntax(&self) -> &SyntaxNode {
19374        &self.syntax
19375    }
19376}
19377impl AstNode for CreateOperatorClass {
19378    #[inline]
19379    fn can_cast(kind: SyntaxKind) -> bool {
19380        kind == SyntaxKind::CREATE_OPERATOR_CLASS
19381    }
19382    #[inline]
19383    fn cast(syntax: SyntaxNode) -> Option<Self> {
19384        if Self::can_cast(syntax.kind()) {
19385            Some(Self { syntax })
19386        } else {
19387            None
19388        }
19389    }
19390    #[inline]
19391    fn syntax(&self) -> &SyntaxNode {
19392        &self.syntax
19393    }
19394}
19395impl AstNode for CreateOperatorFamily {
19396    #[inline]
19397    fn can_cast(kind: SyntaxKind) -> bool {
19398        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
19399    }
19400    #[inline]
19401    fn cast(syntax: SyntaxNode) -> Option<Self> {
19402        if Self::can_cast(syntax.kind()) {
19403            Some(Self { syntax })
19404        } else {
19405            None
19406        }
19407    }
19408    #[inline]
19409    fn syntax(&self) -> &SyntaxNode {
19410        &self.syntax
19411    }
19412}
19413impl AstNode for CreatePolicy {
19414    #[inline]
19415    fn can_cast(kind: SyntaxKind) -> bool {
19416        kind == SyntaxKind::CREATE_POLICY
19417    }
19418    #[inline]
19419    fn cast(syntax: SyntaxNode) -> Option<Self> {
19420        if Self::can_cast(syntax.kind()) {
19421            Some(Self { syntax })
19422        } else {
19423            None
19424        }
19425    }
19426    #[inline]
19427    fn syntax(&self) -> &SyntaxNode {
19428        &self.syntax
19429    }
19430}
19431impl AstNode for CreateProcedure {
19432    #[inline]
19433    fn can_cast(kind: SyntaxKind) -> bool {
19434        kind == SyntaxKind::CREATE_PROCEDURE
19435    }
19436    #[inline]
19437    fn cast(syntax: SyntaxNode) -> Option<Self> {
19438        if Self::can_cast(syntax.kind()) {
19439            Some(Self { syntax })
19440        } else {
19441            None
19442        }
19443    }
19444    #[inline]
19445    fn syntax(&self) -> &SyntaxNode {
19446        &self.syntax
19447    }
19448}
19449impl AstNode for CreatePublication {
19450    #[inline]
19451    fn can_cast(kind: SyntaxKind) -> bool {
19452        kind == SyntaxKind::CREATE_PUBLICATION
19453    }
19454    #[inline]
19455    fn cast(syntax: SyntaxNode) -> Option<Self> {
19456        if Self::can_cast(syntax.kind()) {
19457            Some(Self { syntax })
19458        } else {
19459            None
19460        }
19461    }
19462    #[inline]
19463    fn syntax(&self) -> &SyntaxNode {
19464        &self.syntax
19465    }
19466}
19467impl AstNode for CreateRole {
19468    #[inline]
19469    fn can_cast(kind: SyntaxKind) -> bool {
19470        kind == SyntaxKind::CREATE_ROLE
19471    }
19472    #[inline]
19473    fn cast(syntax: SyntaxNode) -> Option<Self> {
19474        if Self::can_cast(syntax.kind()) {
19475            Some(Self { syntax })
19476        } else {
19477            None
19478        }
19479    }
19480    #[inline]
19481    fn syntax(&self) -> &SyntaxNode {
19482        &self.syntax
19483    }
19484}
19485impl AstNode for CreateRule {
19486    #[inline]
19487    fn can_cast(kind: SyntaxKind) -> bool {
19488        kind == SyntaxKind::CREATE_RULE
19489    }
19490    #[inline]
19491    fn cast(syntax: SyntaxNode) -> Option<Self> {
19492        if Self::can_cast(syntax.kind()) {
19493            Some(Self { syntax })
19494        } else {
19495            None
19496        }
19497    }
19498    #[inline]
19499    fn syntax(&self) -> &SyntaxNode {
19500        &self.syntax
19501    }
19502}
19503impl AstNode for CreateSchema {
19504    #[inline]
19505    fn can_cast(kind: SyntaxKind) -> bool {
19506        kind == SyntaxKind::CREATE_SCHEMA
19507    }
19508    #[inline]
19509    fn cast(syntax: SyntaxNode) -> Option<Self> {
19510        if Self::can_cast(syntax.kind()) {
19511            Some(Self { syntax })
19512        } else {
19513            None
19514        }
19515    }
19516    #[inline]
19517    fn syntax(&self) -> &SyntaxNode {
19518        &self.syntax
19519    }
19520}
19521impl AstNode for CreateSequence {
19522    #[inline]
19523    fn can_cast(kind: SyntaxKind) -> bool {
19524        kind == SyntaxKind::CREATE_SEQUENCE
19525    }
19526    #[inline]
19527    fn cast(syntax: SyntaxNode) -> Option<Self> {
19528        if Self::can_cast(syntax.kind()) {
19529            Some(Self { syntax })
19530        } else {
19531            None
19532        }
19533    }
19534    #[inline]
19535    fn syntax(&self) -> &SyntaxNode {
19536        &self.syntax
19537    }
19538}
19539impl AstNode for CreateServer {
19540    #[inline]
19541    fn can_cast(kind: SyntaxKind) -> bool {
19542        kind == SyntaxKind::CREATE_SERVER
19543    }
19544    #[inline]
19545    fn cast(syntax: SyntaxNode) -> Option<Self> {
19546        if Self::can_cast(syntax.kind()) {
19547            Some(Self { syntax })
19548        } else {
19549            None
19550        }
19551    }
19552    #[inline]
19553    fn syntax(&self) -> &SyntaxNode {
19554        &self.syntax
19555    }
19556}
19557impl AstNode for CreateStatistics {
19558    #[inline]
19559    fn can_cast(kind: SyntaxKind) -> bool {
19560        kind == SyntaxKind::CREATE_STATISTICS
19561    }
19562    #[inline]
19563    fn cast(syntax: SyntaxNode) -> Option<Self> {
19564        if Self::can_cast(syntax.kind()) {
19565            Some(Self { syntax })
19566        } else {
19567            None
19568        }
19569    }
19570    #[inline]
19571    fn syntax(&self) -> &SyntaxNode {
19572        &self.syntax
19573    }
19574}
19575impl AstNode for CreateSubscription {
19576    #[inline]
19577    fn can_cast(kind: SyntaxKind) -> bool {
19578        kind == SyntaxKind::CREATE_SUBSCRIPTION
19579    }
19580    #[inline]
19581    fn cast(syntax: SyntaxNode) -> Option<Self> {
19582        if Self::can_cast(syntax.kind()) {
19583            Some(Self { syntax })
19584        } else {
19585            None
19586        }
19587    }
19588    #[inline]
19589    fn syntax(&self) -> &SyntaxNode {
19590        &self.syntax
19591    }
19592}
19593impl AstNode for CreateTable {
19594    #[inline]
19595    fn can_cast(kind: SyntaxKind) -> bool {
19596        kind == SyntaxKind::CREATE_TABLE
19597    }
19598    #[inline]
19599    fn cast(syntax: SyntaxNode) -> Option<Self> {
19600        if Self::can_cast(syntax.kind()) {
19601            Some(Self { syntax })
19602        } else {
19603            None
19604        }
19605    }
19606    #[inline]
19607    fn syntax(&self) -> &SyntaxNode {
19608        &self.syntax
19609    }
19610}
19611impl AstNode for CreateTableAs {
19612    #[inline]
19613    fn can_cast(kind: SyntaxKind) -> bool {
19614        kind == SyntaxKind::CREATE_TABLE_AS
19615    }
19616    #[inline]
19617    fn cast(syntax: SyntaxNode) -> Option<Self> {
19618        if Self::can_cast(syntax.kind()) {
19619            Some(Self { syntax })
19620        } else {
19621            None
19622        }
19623    }
19624    #[inline]
19625    fn syntax(&self) -> &SyntaxNode {
19626        &self.syntax
19627    }
19628}
19629impl AstNode for CreateTablespace {
19630    #[inline]
19631    fn can_cast(kind: SyntaxKind) -> bool {
19632        kind == SyntaxKind::CREATE_TABLESPACE
19633    }
19634    #[inline]
19635    fn cast(syntax: SyntaxNode) -> Option<Self> {
19636        if Self::can_cast(syntax.kind()) {
19637            Some(Self { syntax })
19638        } else {
19639            None
19640        }
19641    }
19642    #[inline]
19643    fn syntax(&self) -> &SyntaxNode {
19644        &self.syntax
19645    }
19646}
19647impl AstNode for CreateTextSearchConfiguration {
19648    #[inline]
19649    fn can_cast(kind: SyntaxKind) -> bool {
19650        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
19651    }
19652    #[inline]
19653    fn cast(syntax: SyntaxNode) -> Option<Self> {
19654        if Self::can_cast(syntax.kind()) {
19655            Some(Self { syntax })
19656        } else {
19657            None
19658        }
19659    }
19660    #[inline]
19661    fn syntax(&self) -> &SyntaxNode {
19662        &self.syntax
19663    }
19664}
19665impl AstNode for CreateTextSearchDictionary {
19666    #[inline]
19667    fn can_cast(kind: SyntaxKind) -> bool {
19668        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
19669    }
19670    #[inline]
19671    fn cast(syntax: SyntaxNode) -> Option<Self> {
19672        if Self::can_cast(syntax.kind()) {
19673            Some(Self { syntax })
19674        } else {
19675            None
19676        }
19677    }
19678    #[inline]
19679    fn syntax(&self) -> &SyntaxNode {
19680        &self.syntax
19681    }
19682}
19683impl AstNode for CreateTextSearchParser {
19684    #[inline]
19685    fn can_cast(kind: SyntaxKind) -> bool {
19686        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
19687    }
19688    #[inline]
19689    fn cast(syntax: SyntaxNode) -> Option<Self> {
19690        if Self::can_cast(syntax.kind()) {
19691            Some(Self { syntax })
19692        } else {
19693            None
19694        }
19695    }
19696    #[inline]
19697    fn syntax(&self) -> &SyntaxNode {
19698        &self.syntax
19699    }
19700}
19701impl AstNode for CreateTextSearchTemplate {
19702    #[inline]
19703    fn can_cast(kind: SyntaxKind) -> bool {
19704        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
19705    }
19706    #[inline]
19707    fn cast(syntax: SyntaxNode) -> Option<Self> {
19708        if Self::can_cast(syntax.kind()) {
19709            Some(Self { syntax })
19710        } else {
19711            None
19712        }
19713    }
19714    #[inline]
19715    fn syntax(&self) -> &SyntaxNode {
19716        &self.syntax
19717    }
19718}
19719impl AstNode for CreateTransform {
19720    #[inline]
19721    fn can_cast(kind: SyntaxKind) -> bool {
19722        kind == SyntaxKind::CREATE_TRANSFORM
19723    }
19724    #[inline]
19725    fn cast(syntax: SyntaxNode) -> Option<Self> {
19726        if Self::can_cast(syntax.kind()) {
19727            Some(Self { syntax })
19728        } else {
19729            None
19730        }
19731    }
19732    #[inline]
19733    fn syntax(&self) -> &SyntaxNode {
19734        &self.syntax
19735    }
19736}
19737impl AstNode for CreateTrigger {
19738    #[inline]
19739    fn can_cast(kind: SyntaxKind) -> bool {
19740        kind == SyntaxKind::CREATE_TRIGGER
19741    }
19742    #[inline]
19743    fn cast(syntax: SyntaxNode) -> Option<Self> {
19744        if Self::can_cast(syntax.kind()) {
19745            Some(Self { syntax })
19746        } else {
19747            None
19748        }
19749    }
19750    #[inline]
19751    fn syntax(&self) -> &SyntaxNode {
19752        &self.syntax
19753    }
19754}
19755impl AstNode for CreateType {
19756    #[inline]
19757    fn can_cast(kind: SyntaxKind) -> bool {
19758        kind == SyntaxKind::CREATE_TYPE
19759    }
19760    #[inline]
19761    fn cast(syntax: SyntaxNode) -> Option<Self> {
19762        if Self::can_cast(syntax.kind()) {
19763            Some(Self { syntax })
19764        } else {
19765            None
19766        }
19767    }
19768    #[inline]
19769    fn syntax(&self) -> &SyntaxNode {
19770        &self.syntax
19771    }
19772}
19773impl AstNode for CreateUser {
19774    #[inline]
19775    fn can_cast(kind: SyntaxKind) -> bool {
19776        kind == SyntaxKind::CREATE_USER
19777    }
19778    #[inline]
19779    fn cast(syntax: SyntaxNode) -> Option<Self> {
19780        if Self::can_cast(syntax.kind()) {
19781            Some(Self { syntax })
19782        } else {
19783            None
19784        }
19785    }
19786    #[inline]
19787    fn syntax(&self) -> &SyntaxNode {
19788        &self.syntax
19789    }
19790}
19791impl AstNode for CreateUserMapping {
19792    #[inline]
19793    fn can_cast(kind: SyntaxKind) -> bool {
19794        kind == SyntaxKind::CREATE_USER_MAPPING
19795    }
19796    #[inline]
19797    fn cast(syntax: SyntaxNode) -> Option<Self> {
19798        if Self::can_cast(syntax.kind()) {
19799            Some(Self { syntax })
19800        } else {
19801            None
19802        }
19803    }
19804    #[inline]
19805    fn syntax(&self) -> &SyntaxNode {
19806        &self.syntax
19807    }
19808}
19809impl AstNode for CreateView {
19810    #[inline]
19811    fn can_cast(kind: SyntaxKind) -> bool {
19812        kind == SyntaxKind::CREATE_VIEW
19813    }
19814    #[inline]
19815    fn cast(syntax: SyntaxNode) -> Option<Self> {
19816        if Self::can_cast(syntax.kind()) {
19817            Some(Self { syntax })
19818        } else {
19819            None
19820        }
19821    }
19822    #[inline]
19823    fn syntax(&self) -> &SyntaxNode {
19824        &self.syntax
19825    }
19826}
19827impl AstNode for CustomOp {
19828    #[inline]
19829    fn can_cast(kind: SyntaxKind) -> bool {
19830        kind == SyntaxKind::CUSTOM_OP
19831    }
19832    #[inline]
19833    fn cast(syntax: SyntaxNode) -> Option<Self> {
19834        if Self::can_cast(syntax.kind()) {
19835            Some(Self { syntax })
19836        } else {
19837            None
19838        }
19839    }
19840    #[inline]
19841    fn syntax(&self) -> &SyntaxNode {
19842        &self.syntax
19843    }
19844}
19845impl AstNode for Deallocate {
19846    #[inline]
19847    fn can_cast(kind: SyntaxKind) -> bool {
19848        kind == SyntaxKind::DEALLOCATE
19849    }
19850    #[inline]
19851    fn cast(syntax: SyntaxNode) -> Option<Self> {
19852        if Self::can_cast(syntax.kind()) {
19853            Some(Self { syntax })
19854        } else {
19855            None
19856        }
19857    }
19858    #[inline]
19859    fn syntax(&self) -> &SyntaxNode {
19860        &self.syntax
19861    }
19862}
19863impl AstNode for Declare {
19864    #[inline]
19865    fn can_cast(kind: SyntaxKind) -> bool {
19866        kind == SyntaxKind::DECLARE
19867    }
19868    #[inline]
19869    fn cast(syntax: SyntaxNode) -> Option<Self> {
19870        if Self::can_cast(syntax.kind()) {
19871            Some(Self { syntax })
19872        } else {
19873            None
19874        }
19875    }
19876    #[inline]
19877    fn syntax(&self) -> &SyntaxNode {
19878        &self.syntax
19879    }
19880}
19881impl AstNode for DefaultConstraint {
19882    #[inline]
19883    fn can_cast(kind: SyntaxKind) -> bool {
19884        kind == SyntaxKind::DEFAULT_CONSTRAINT
19885    }
19886    #[inline]
19887    fn cast(syntax: SyntaxNode) -> Option<Self> {
19888        if Self::can_cast(syntax.kind()) {
19889            Some(Self { syntax })
19890        } else {
19891            None
19892        }
19893    }
19894    #[inline]
19895    fn syntax(&self) -> &SyntaxNode {
19896        &self.syntax
19897    }
19898}
19899impl AstNode for Deferrable {
19900    #[inline]
19901    fn can_cast(kind: SyntaxKind) -> bool {
19902        kind == SyntaxKind::DEFERRABLE
19903    }
19904    #[inline]
19905    fn cast(syntax: SyntaxNode) -> Option<Self> {
19906        if Self::can_cast(syntax.kind()) {
19907            Some(Self { syntax })
19908        } else {
19909            None
19910        }
19911    }
19912    #[inline]
19913    fn syntax(&self) -> &SyntaxNode {
19914        &self.syntax
19915    }
19916}
19917impl AstNode for DeferrableConstraintOption {
19918    #[inline]
19919    fn can_cast(kind: SyntaxKind) -> bool {
19920        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
19921    }
19922    #[inline]
19923    fn cast(syntax: SyntaxNode) -> Option<Self> {
19924        if Self::can_cast(syntax.kind()) {
19925            Some(Self { syntax })
19926        } else {
19927            None
19928        }
19929    }
19930    #[inline]
19931    fn syntax(&self) -> &SyntaxNode {
19932        &self.syntax
19933    }
19934}
19935impl AstNode for Delete {
19936    #[inline]
19937    fn can_cast(kind: SyntaxKind) -> bool {
19938        kind == SyntaxKind::DELETE
19939    }
19940    #[inline]
19941    fn cast(syntax: SyntaxNode) -> Option<Self> {
19942        if Self::can_cast(syntax.kind()) {
19943            Some(Self { syntax })
19944        } else {
19945            None
19946        }
19947    }
19948    #[inline]
19949    fn syntax(&self) -> &SyntaxNode {
19950        &self.syntax
19951    }
19952}
19953impl AstNode for DeleteRows {
19954    #[inline]
19955    fn can_cast(kind: SyntaxKind) -> bool {
19956        kind == SyntaxKind::DELETE_ROWS
19957    }
19958    #[inline]
19959    fn cast(syntax: SyntaxNode) -> Option<Self> {
19960        if Self::can_cast(syntax.kind()) {
19961            Some(Self { syntax })
19962        } else {
19963            None
19964        }
19965    }
19966    #[inline]
19967    fn syntax(&self) -> &SyntaxNode {
19968        &self.syntax
19969    }
19970}
19971impl AstNode for DependsOnExtension {
19972    #[inline]
19973    fn can_cast(kind: SyntaxKind) -> bool {
19974        kind == SyntaxKind::DEPENDS_ON_EXTENSION
19975    }
19976    #[inline]
19977    fn cast(syntax: SyntaxNode) -> Option<Self> {
19978        if Self::can_cast(syntax.kind()) {
19979            Some(Self { syntax })
19980        } else {
19981            None
19982        }
19983    }
19984    #[inline]
19985    fn syntax(&self) -> &SyntaxNode {
19986        &self.syntax
19987    }
19988}
19989impl AstNode for DetachPartition {
19990    #[inline]
19991    fn can_cast(kind: SyntaxKind) -> bool {
19992        kind == SyntaxKind::DETACH_PARTITION
19993    }
19994    #[inline]
19995    fn cast(syntax: SyntaxNode) -> Option<Self> {
19996        if Self::can_cast(syntax.kind()) {
19997            Some(Self { syntax })
19998        } else {
19999            None
20000        }
20001    }
20002    #[inline]
20003    fn syntax(&self) -> &SyntaxNode {
20004        &self.syntax
20005    }
20006}
20007impl AstNode for DisableRls {
20008    #[inline]
20009    fn can_cast(kind: SyntaxKind) -> bool {
20010        kind == SyntaxKind::DISABLE_RLS
20011    }
20012    #[inline]
20013    fn cast(syntax: SyntaxNode) -> Option<Self> {
20014        if Self::can_cast(syntax.kind()) {
20015            Some(Self { syntax })
20016        } else {
20017            None
20018        }
20019    }
20020    #[inline]
20021    fn syntax(&self) -> &SyntaxNode {
20022        &self.syntax
20023    }
20024}
20025impl AstNode for DisableRule {
20026    #[inline]
20027    fn can_cast(kind: SyntaxKind) -> bool {
20028        kind == SyntaxKind::DISABLE_RULE
20029    }
20030    #[inline]
20031    fn cast(syntax: SyntaxNode) -> Option<Self> {
20032        if Self::can_cast(syntax.kind()) {
20033            Some(Self { syntax })
20034        } else {
20035            None
20036        }
20037    }
20038    #[inline]
20039    fn syntax(&self) -> &SyntaxNode {
20040        &self.syntax
20041    }
20042}
20043impl AstNode for DisableTrigger {
20044    #[inline]
20045    fn can_cast(kind: SyntaxKind) -> bool {
20046        kind == SyntaxKind::DISABLE_TRIGGER
20047    }
20048    #[inline]
20049    fn cast(syntax: SyntaxNode) -> Option<Self> {
20050        if Self::can_cast(syntax.kind()) {
20051            Some(Self { syntax })
20052        } else {
20053            None
20054        }
20055    }
20056    #[inline]
20057    fn syntax(&self) -> &SyntaxNode {
20058        &self.syntax
20059    }
20060}
20061impl AstNode for Discard {
20062    #[inline]
20063    fn can_cast(kind: SyntaxKind) -> bool {
20064        kind == SyntaxKind::DISCARD
20065    }
20066    #[inline]
20067    fn cast(syntax: SyntaxNode) -> Option<Self> {
20068        if Self::can_cast(syntax.kind()) {
20069            Some(Self { syntax })
20070        } else {
20071            None
20072        }
20073    }
20074    #[inline]
20075    fn syntax(&self) -> &SyntaxNode {
20076        &self.syntax
20077    }
20078}
20079impl AstNode for DistinctClause {
20080    #[inline]
20081    fn can_cast(kind: SyntaxKind) -> bool {
20082        kind == SyntaxKind::DISTINCT_CLAUSE
20083    }
20084    #[inline]
20085    fn cast(syntax: SyntaxNode) -> Option<Self> {
20086        if Self::can_cast(syntax.kind()) {
20087            Some(Self { syntax })
20088        } else {
20089            None
20090        }
20091    }
20092    #[inline]
20093    fn syntax(&self) -> &SyntaxNode {
20094        &self.syntax
20095    }
20096}
20097impl AstNode for Do {
20098    #[inline]
20099    fn can_cast(kind: SyntaxKind) -> bool {
20100        kind == SyntaxKind::DO
20101    }
20102    #[inline]
20103    fn cast(syntax: SyntaxNode) -> Option<Self> {
20104        if Self::can_cast(syntax.kind()) {
20105            Some(Self { syntax })
20106        } else {
20107            None
20108        }
20109    }
20110    #[inline]
20111    fn syntax(&self) -> &SyntaxNode {
20112        &self.syntax
20113    }
20114}
20115impl AstNode for DoubleType {
20116    #[inline]
20117    fn can_cast(kind: SyntaxKind) -> bool {
20118        kind == SyntaxKind::DOUBLE_TYPE
20119    }
20120    #[inline]
20121    fn cast(syntax: SyntaxNode) -> Option<Self> {
20122        if Self::can_cast(syntax.kind()) {
20123            Some(Self { syntax })
20124        } else {
20125            None
20126        }
20127    }
20128    #[inline]
20129    fn syntax(&self) -> &SyntaxNode {
20130        &self.syntax
20131    }
20132}
20133impl AstNode for Drop {
20134    #[inline]
20135    fn can_cast(kind: SyntaxKind) -> bool {
20136        kind == SyntaxKind::DROP
20137    }
20138    #[inline]
20139    fn cast(syntax: SyntaxNode) -> Option<Self> {
20140        if Self::can_cast(syntax.kind()) {
20141            Some(Self { syntax })
20142        } else {
20143            None
20144        }
20145    }
20146    #[inline]
20147    fn syntax(&self) -> &SyntaxNode {
20148        &self.syntax
20149    }
20150}
20151impl AstNode for DropAccessMethod {
20152    #[inline]
20153    fn can_cast(kind: SyntaxKind) -> bool {
20154        kind == SyntaxKind::DROP_ACCESS_METHOD
20155    }
20156    #[inline]
20157    fn cast(syntax: SyntaxNode) -> Option<Self> {
20158        if Self::can_cast(syntax.kind()) {
20159            Some(Self { syntax })
20160        } else {
20161            None
20162        }
20163    }
20164    #[inline]
20165    fn syntax(&self) -> &SyntaxNode {
20166        &self.syntax
20167    }
20168}
20169impl AstNode for DropAggregate {
20170    #[inline]
20171    fn can_cast(kind: SyntaxKind) -> bool {
20172        kind == SyntaxKind::DROP_AGGREGATE
20173    }
20174    #[inline]
20175    fn cast(syntax: SyntaxNode) -> Option<Self> {
20176        if Self::can_cast(syntax.kind()) {
20177            Some(Self { syntax })
20178        } else {
20179            None
20180        }
20181    }
20182    #[inline]
20183    fn syntax(&self) -> &SyntaxNode {
20184        &self.syntax
20185    }
20186}
20187impl AstNode for DropCast {
20188    #[inline]
20189    fn can_cast(kind: SyntaxKind) -> bool {
20190        kind == SyntaxKind::DROP_CAST
20191    }
20192    #[inline]
20193    fn cast(syntax: SyntaxNode) -> Option<Self> {
20194        if Self::can_cast(syntax.kind()) {
20195            Some(Self { syntax })
20196        } else {
20197            None
20198        }
20199    }
20200    #[inline]
20201    fn syntax(&self) -> &SyntaxNode {
20202        &self.syntax
20203    }
20204}
20205impl AstNode for DropCollation {
20206    #[inline]
20207    fn can_cast(kind: SyntaxKind) -> bool {
20208        kind == SyntaxKind::DROP_COLLATION
20209    }
20210    #[inline]
20211    fn cast(syntax: SyntaxNode) -> Option<Self> {
20212        if Self::can_cast(syntax.kind()) {
20213            Some(Self { syntax })
20214        } else {
20215            None
20216        }
20217    }
20218    #[inline]
20219    fn syntax(&self) -> &SyntaxNode {
20220        &self.syntax
20221    }
20222}
20223impl AstNode for DropColumn {
20224    #[inline]
20225    fn can_cast(kind: SyntaxKind) -> bool {
20226        kind == SyntaxKind::DROP_COLUMN
20227    }
20228    #[inline]
20229    fn cast(syntax: SyntaxNode) -> Option<Self> {
20230        if Self::can_cast(syntax.kind()) {
20231            Some(Self { syntax })
20232        } else {
20233            None
20234        }
20235    }
20236    #[inline]
20237    fn syntax(&self) -> &SyntaxNode {
20238        &self.syntax
20239    }
20240}
20241impl AstNode for DropConstraint {
20242    #[inline]
20243    fn can_cast(kind: SyntaxKind) -> bool {
20244        kind == SyntaxKind::DROP_CONSTRAINT
20245    }
20246    #[inline]
20247    fn cast(syntax: SyntaxNode) -> Option<Self> {
20248        if Self::can_cast(syntax.kind()) {
20249            Some(Self { syntax })
20250        } else {
20251            None
20252        }
20253    }
20254    #[inline]
20255    fn syntax(&self) -> &SyntaxNode {
20256        &self.syntax
20257    }
20258}
20259impl AstNode for DropConversion {
20260    #[inline]
20261    fn can_cast(kind: SyntaxKind) -> bool {
20262        kind == SyntaxKind::DROP_CONVERSION
20263    }
20264    #[inline]
20265    fn cast(syntax: SyntaxNode) -> Option<Self> {
20266        if Self::can_cast(syntax.kind()) {
20267            Some(Self { syntax })
20268        } else {
20269            None
20270        }
20271    }
20272    #[inline]
20273    fn syntax(&self) -> &SyntaxNode {
20274        &self.syntax
20275    }
20276}
20277impl AstNode for DropDatabase {
20278    #[inline]
20279    fn can_cast(kind: SyntaxKind) -> bool {
20280        kind == SyntaxKind::DROP_DATABASE
20281    }
20282    #[inline]
20283    fn cast(syntax: SyntaxNode) -> Option<Self> {
20284        if Self::can_cast(syntax.kind()) {
20285            Some(Self { syntax })
20286        } else {
20287            None
20288        }
20289    }
20290    #[inline]
20291    fn syntax(&self) -> &SyntaxNode {
20292        &self.syntax
20293    }
20294}
20295impl AstNode for DropDefault {
20296    #[inline]
20297    fn can_cast(kind: SyntaxKind) -> bool {
20298        kind == SyntaxKind::DROP_DEFAULT
20299    }
20300    #[inline]
20301    fn cast(syntax: SyntaxNode) -> Option<Self> {
20302        if Self::can_cast(syntax.kind()) {
20303            Some(Self { syntax })
20304        } else {
20305            None
20306        }
20307    }
20308    #[inline]
20309    fn syntax(&self) -> &SyntaxNode {
20310        &self.syntax
20311    }
20312}
20313impl AstNode for DropDomain {
20314    #[inline]
20315    fn can_cast(kind: SyntaxKind) -> bool {
20316        kind == SyntaxKind::DROP_DOMAIN
20317    }
20318    #[inline]
20319    fn cast(syntax: SyntaxNode) -> Option<Self> {
20320        if Self::can_cast(syntax.kind()) {
20321            Some(Self { syntax })
20322        } else {
20323            None
20324        }
20325    }
20326    #[inline]
20327    fn syntax(&self) -> &SyntaxNode {
20328        &self.syntax
20329    }
20330}
20331impl AstNode for DropEventTrigger {
20332    #[inline]
20333    fn can_cast(kind: SyntaxKind) -> bool {
20334        kind == SyntaxKind::DROP_EVENT_TRIGGER
20335    }
20336    #[inline]
20337    fn cast(syntax: SyntaxNode) -> Option<Self> {
20338        if Self::can_cast(syntax.kind()) {
20339            Some(Self { syntax })
20340        } else {
20341            None
20342        }
20343    }
20344    #[inline]
20345    fn syntax(&self) -> &SyntaxNode {
20346        &self.syntax
20347    }
20348}
20349impl AstNode for DropExpression {
20350    #[inline]
20351    fn can_cast(kind: SyntaxKind) -> bool {
20352        kind == SyntaxKind::DROP_EXPRESSION
20353    }
20354    #[inline]
20355    fn cast(syntax: SyntaxNode) -> Option<Self> {
20356        if Self::can_cast(syntax.kind()) {
20357            Some(Self { syntax })
20358        } else {
20359            None
20360        }
20361    }
20362    #[inline]
20363    fn syntax(&self) -> &SyntaxNode {
20364        &self.syntax
20365    }
20366}
20367impl AstNode for DropExtension {
20368    #[inline]
20369    fn can_cast(kind: SyntaxKind) -> bool {
20370        kind == SyntaxKind::DROP_EXTENSION
20371    }
20372    #[inline]
20373    fn cast(syntax: SyntaxNode) -> Option<Self> {
20374        if Self::can_cast(syntax.kind()) {
20375            Some(Self { syntax })
20376        } else {
20377            None
20378        }
20379    }
20380    #[inline]
20381    fn syntax(&self) -> &SyntaxNode {
20382        &self.syntax
20383    }
20384}
20385impl AstNode for DropForeignDataWrapper {
20386    #[inline]
20387    fn can_cast(kind: SyntaxKind) -> bool {
20388        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
20389    }
20390    #[inline]
20391    fn cast(syntax: SyntaxNode) -> Option<Self> {
20392        if Self::can_cast(syntax.kind()) {
20393            Some(Self { syntax })
20394        } else {
20395            None
20396        }
20397    }
20398    #[inline]
20399    fn syntax(&self) -> &SyntaxNode {
20400        &self.syntax
20401    }
20402}
20403impl AstNode for DropForeignTable {
20404    #[inline]
20405    fn can_cast(kind: SyntaxKind) -> bool {
20406        kind == SyntaxKind::DROP_FOREIGN_TABLE
20407    }
20408    #[inline]
20409    fn cast(syntax: SyntaxNode) -> Option<Self> {
20410        if Self::can_cast(syntax.kind()) {
20411            Some(Self { syntax })
20412        } else {
20413            None
20414        }
20415    }
20416    #[inline]
20417    fn syntax(&self) -> &SyntaxNode {
20418        &self.syntax
20419    }
20420}
20421impl AstNode for DropFunction {
20422    #[inline]
20423    fn can_cast(kind: SyntaxKind) -> bool {
20424        kind == SyntaxKind::DROP_FUNCTION
20425    }
20426    #[inline]
20427    fn cast(syntax: SyntaxNode) -> Option<Self> {
20428        if Self::can_cast(syntax.kind()) {
20429            Some(Self { syntax })
20430        } else {
20431            None
20432        }
20433    }
20434    #[inline]
20435    fn syntax(&self) -> &SyntaxNode {
20436        &self.syntax
20437    }
20438}
20439impl AstNode for DropGroup {
20440    #[inline]
20441    fn can_cast(kind: SyntaxKind) -> bool {
20442        kind == SyntaxKind::DROP_GROUP
20443    }
20444    #[inline]
20445    fn cast(syntax: SyntaxNode) -> Option<Self> {
20446        if Self::can_cast(syntax.kind()) {
20447            Some(Self { syntax })
20448        } else {
20449            None
20450        }
20451    }
20452    #[inline]
20453    fn syntax(&self) -> &SyntaxNode {
20454        &self.syntax
20455    }
20456}
20457impl AstNode for DropIdentity {
20458    #[inline]
20459    fn can_cast(kind: SyntaxKind) -> bool {
20460        kind == SyntaxKind::DROP_IDENTITY
20461    }
20462    #[inline]
20463    fn cast(syntax: SyntaxNode) -> Option<Self> {
20464        if Self::can_cast(syntax.kind()) {
20465            Some(Self { syntax })
20466        } else {
20467            None
20468        }
20469    }
20470    #[inline]
20471    fn syntax(&self) -> &SyntaxNode {
20472        &self.syntax
20473    }
20474}
20475impl AstNode for DropIndex {
20476    #[inline]
20477    fn can_cast(kind: SyntaxKind) -> bool {
20478        kind == SyntaxKind::DROP_INDEX
20479    }
20480    #[inline]
20481    fn cast(syntax: SyntaxNode) -> Option<Self> {
20482        if Self::can_cast(syntax.kind()) {
20483            Some(Self { syntax })
20484        } else {
20485            None
20486        }
20487    }
20488    #[inline]
20489    fn syntax(&self) -> &SyntaxNode {
20490        &self.syntax
20491    }
20492}
20493impl AstNode for DropLanguage {
20494    #[inline]
20495    fn can_cast(kind: SyntaxKind) -> bool {
20496        kind == SyntaxKind::DROP_LANGUAGE
20497    }
20498    #[inline]
20499    fn cast(syntax: SyntaxNode) -> Option<Self> {
20500        if Self::can_cast(syntax.kind()) {
20501            Some(Self { syntax })
20502        } else {
20503            None
20504        }
20505    }
20506    #[inline]
20507    fn syntax(&self) -> &SyntaxNode {
20508        &self.syntax
20509    }
20510}
20511impl AstNode for DropMaterializedView {
20512    #[inline]
20513    fn can_cast(kind: SyntaxKind) -> bool {
20514        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
20515    }
20516    #[inline]
20517    fn cast(syntax: SyntaxNode) -> Option<Self> {
20518        if Self::can_cast(syntax.kind()) {
20519            Some(Self { syntax })
20520        } else {
20521            None
20522        }
20523    }
20524    #[inline]
20525    fn syntax(&self) -> &SyntaxNode {
20526        &self.syntax
20527    }
20528}
20529impl AstNode for DropNotNull {
20530    #[inline]
20531    fn can_cast(kind: SyntaxKind) -> bool {
20532        kind == SyntaxKind::DROP_NOT_NULL
20533    }
20534    #[inline]
20535    fn cast(syntax: SyntaxNode) -> Option<Self> {
20536        if Self::can_cast(syntax.kind()) {
20537            Some(Self { syntax })
20538        } else {
20539            None
20540        }
20541    }
20542    #[inline]
20543    fn syntax(&self) -> &SyntaxNode {
20544        &self.syntax
20545    }
20546}
20547impl AstNode for DropOpClassOption {
20548    #[inline]
20549    fn can_cast(kind: SyntaxKind) -> bool {
20550        kind == SyntaxKind::DROP_OP_CLASS_OPTION
20551    }
20552    #[inline]
20553    fn cast(syntax: SyntaxNode) -> Option<Self> {
20554        if Self::can_cast(syntax.kind()) {
20555            Some(Self { syntax })
20556        } else {
20557            None
20558        }
20559    }
20560    #[inline]
20561    fn syntax(&self) -> &SyntaxNode {
20562        &self.syntax
20563    }
20564}
20565impl AstNode for DropOpClassOptionList {
20566    #[inline]
20567    fn can_cast(kind: SyntaxKind) -> bool {
20568        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
20569    }
20570    #[inline]
20571    fn cast(syntax: SyntaxNode) -> Option<Self> {
20572        if Self::can_cast(syntax.kind()) {
20573            Some(Self { syntax })
20574        } else {
20575            None
20576        }
20577    }
20578    #[inline]
20579    fn syntax(&self) -> &SyntaxNode {
20580        &self.syntax
20581    }
20582}
20583impl AstNode for DropOpClassOptions {
20584    #[inline]
20585    fn can_cast(kind: SyntaxKind) -> bool {
20586        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
20587    }
20588    #[inline]
20589    fn cast(syntax: SyntaxNode) -> Option<Self> {
20590        if Self::can_cast(syntax.kind()) {
20591            Some(Self { syntax })
20592        } else {
20593            None
20594        }
20595    }
20596    #[inline]
20597    fn syntax(&self) -> &SyntaxNode {
20598        &self.syntax
20599    }
20600}
20601impl AstNode for DropOperator {
20602    #[inline]
20603    fn can_cast(kind: SyntaxKind) -> bool {
20604        kind == SyntaxKind::DROP_OPERATOR
20605    }
20606    #[inline]
20607    fn cast(syntax: SyntaxNode) -> Option<Self> {
20608        if Self::can_cast(syntax.kind()) {
20609            Some(Self { syntax })
20610        } else {
20611            None
20612        }
20613    }
20614    #[inline]
20615    fn syntax(&self) -> &SyntaxNode {
20616        &self.syntax
20617    }
20618}
20619impl AstNode for DropOperatorClass {
20620    #[inline]
20621    fn can_cast(kind: SyntaxKind) -> bool {
20622        kind == SyntaxKind::DROP_OPERATOR_CLASS
20623    }
20624    #[inline]
20625    fn cast(syntax: SyntaxNode) -> Option<Self> {
20626        if Self::can_cast(syntax.kind()) {
20627            Some(Self { syntax })
20628        } else {
20629            None
20630        }
20631    }
20632    #[inline]
20633    fn syntax(&self) -> &SyntaxNode {
20634        &self.syntax
20635    }
20636}
20637impl AstNode for DropOperatorFamily {
20638    #[inline]
20639    fn can_cast(kind: SyntaxKind) -> bool {
20640        kind == SyntaxKind::DROP_OPERATOR_FAMILY
20641    }
20642    #[inline]
20643    fn cast(syntax: SyntaxNode) -> Option<Self> {
20644        if Self::can_cast(syntax.kind()) {
20645            Some(Self { syntax })
20646        } else {
20647            None
20648        }
20649    }
20650    #[inline]
20651    fn syntax(&self) -> &SyntaxNode {
20652        &self.syntax
20653    }
20654}
20655impl AstNode for DropOwned {
20656    #[inline]
20657    fn can_cast(kind: SyntaxKind) -> bool {
20658        kind == SyntaxKind::DROP_OWNED
20659    }
20660    #[inline]
20661    fn cast(syntax: SyntaxNode) -> Option<Self> {
20662        if Self::can_cast(syntax.kind()) {
20663            Some(Self { syntax })
20664        } else {
20665            None
20666        }
20667    }
20668    #[inline]
20669    fn syntax(&self) -> &SyntaxNode {
20670        &self.syntax
20671    }
20672}
20673impl AstNode for DropPolicy {
20674    #[inline]
20675    fn can_cast(kind: SyntaxKind) -> bool {
20676        kind == SyntaxKind::DROP_POLICY
20677    }
20678    #[inline]
20679    fn cast(syntax: SyntaxNode) -> Option<Self> {
20680        if Self::can_cast(syntax.kind()) {
20681            Some(Self { syntax })
20682        } else {
20683            None
20684        }
20685    }
20686    #[inline]
20687    fn syntax(&self) -> &SyntaxNode {
20688        &self.syntax
20689    }
20690}
20691impl AstNode for DropProcedure {
20692    #[inline]
20693    fn can_cast(kind: SyntaxKind) -> bool {
20694        kind == SyntaxKind::DROP_PROCEDURE
20695    }
20696    #[inline]
20697    fn cast(syntax: SyntaxNode) -> Option<Self> {
20698        if Self::can_cast(syntax.kind()) {
20699            Some(Self { syntax })
20700        } else {
20701            None
20702        }
20703    }
20704    #[inline]
20705    fn syntax(&self) -> &SyntaxNode {
20706        &self.syntax
20707    }
20708}
20709impl AstNode for DropPublication {
20710    #[inline]
20711    fn can_cast(kind: SyntaxKind) -> bool {
20712        kind == SyntaxKind::DROP_PUBLICATION
20713    }
20714    #[inline]
20715    fn cast(syntax: SyntaxNode) -> Option<Self> {
20716        if Self::can_cast(syntax.kind()) {
20717            Some(Self { syntax })
20718        } else {
20719            None
20720        }
20721    }
20722    #[inline]
20723    fn syntax(&self) -> &SyntaxNode {
20724        &self.syntax
20725    }
20726}
20727impl AstNode for DropRole {
20728    #[inline]
20729    fn can_cast(kind: SyntaxKind) -> bool {
20730        kind == SyntaxKind::DROP_ROLE
20731    }
20732    #[inline]
20733    fn cast(syntax: SyntaxNode) -> Option<Self> {
20734        if Self::can_cast(syntax.kind()) {
20735            Some(Self { syntax })
20736        } else {
20737            None
20738        }
20739    }
20740    #[inline]
20741    fn syntax(&self) -> &SyntaxNode {
20742        &self.syntax
20743    }
20744}
20745impl AstNode for DropRoutine {
20746    #[inline]
20747    fn can_cast(kind: SyntaxKind) -> bool {
20748        kind == SyntaxKind::DROP_ROUTINE
20749    }
20750    #[inline]
20751    fn cast(syntax: SyntaxNode) -> Option<Self> {
20752        if Self::can_cast(syntax.kind()) {
20753            Some(Self { syntax })
20754        } else {
20755            None
20756        }
20757    }
20758    #[inline]
20759    fn syntax(&self) -> &SyntaxNode {
20760        &self.syntax
20761    }
20762}
20763impl AstNode for DropRule {
20764    #[inline]
20765    fn can_cast(kind: SyntaxKind) -> bool {
20766        kind == SyntaxKind::DROP_RULE
20767    }
20768    #[inline]
20769    fn cast(syntax: SyntaxNode) -> Option<Self> {
20770        if Self::can_cast(syntax.kind()) {
20771            Some(Self { syntax })
20772        } else {
20773            None
20774        }
20775    }
20776    #[inline]
20777    fn syntax(&self) -> &SyntaxNode {
20778        &self.syntax
20779    }
20780}
20781impl AstNode for DropSchema {
20782    #[inline]
20783    fn can_cast(kind: SyntaxKind) -> bool {
20784        kind == SyntaxKind::DROP_SCHEMA
20785    }
20786    #[inline]
20787    fn cast(syntax: SyntaxNode) -> Option<Self> {
20788        if Self::can_cast(syntax.kind()) {
20789            Some(Self { syntax })
20790        } else {
20791            None
20792        }
20793    }
20794    #[inline]
20795    fn syntax(&self) -> &SyntaxNode {
20796        &self.syntax
20797    }
20798}
20799impl AstNode for DropSequence {
20800    #[inline]
20801    fn can_cast(kind: SyntaxKind) -> bool {
20802        kind == SyntaxKind::DROP_SEQUENCE
20803    }
20804    #[inline]
20805    fn cast(syntax: SyntaxNode) -> Option<Self> {
20806        if Self::can_cast(syntax.kind()) {
20807            Some(Self { syntax })
20808        } else {
20809            None
20810        }
20811    }
20812    #[inline]
20813    fn syntax(&self) -> &SyntaxNode {
20814        &self.syntax
20815    }
20816}
20817impl AstNode for DropServer {
20818    #[inline]
20819    fn can_cast(kind: SyntaxKind) -> bool {
20820        kind == SyntaxKind::DROP_SERVER
20821    }
20822    #[inline]
20823    fn cast(syntax: SyntaxNode) -> Option<Self> {
20824        if Self::can_cast(syntax.kind()) {
20825            Some(Self { syntax })
20826        } else {
20827            None
20828        }
20829    }
20830    #[inline]
20831    fn syntax(&self) -> &SyntaxNode {
20832        &self.syntax
20833    }
20834}
20835impl AstNode for DropStatistics {
20836    #[inline]
20837    fn can_cast(kind: SyntaxKind) -> bool {
20838        kind == SyntaxKind::DROP_STATISTICS
20839    }
20840    #[inline]
20841    fn cast(syntax: SyntaxNode) -> Option<Self> {
20842        if Self::can_cast(syntax.kind()) {
20843            Some(Self { syntax })
20844        } else {
20845            None
20846        }
20847    }
20848    #[inline]
20849    fn syntax(&self) -> &SyntaxNode {
20850        &self.syntax
20851    }
20852}
20853impl AstNode for DropSubscription {
20854    #[inline]
20855    fn can_cast(kind: SyntaxKind) -> bool {
20856        kind == SyntaxKind::DROP_SUBSCRIPTION
20857    }
20858    #[inline]
20859    fn cast(syntax: SyntaxNode) -> Option<Self> {
20860        if Self::can_cast(syntax.kind()) {
20861            Some(Self { syntax })
20862        } else {
20863            None
20864        }
20865    }
20866    #[inline]
20867    fn syntax(&self) -> &SyntaxNode {
20868        &self.syntax
20869    }
20870}
20871impl AstNode for DropTable {
20872    #[inline]
20873    fn can_cast(kind: SyntaxKind) -> bool {
20874        kind == SyntaxKind::DROP_TABLE
20875    }
20876    #[inline]
20877    fn cast(syntax: SyntaxNode) -> Option<Self> {
20878        if Self::can_cast(syntax.kind()) {
20879            Some(Self { syntax })
20880        } else {
20881            None
20882        }
20883    }
20884    #[inline]
20885    fn syntax(&self) -> &SyntaxNode {
20886        &self.syntax
20887    }
20888}
20889impl AstNode for DropTablespace {
20890    #[inline]
20891    fn can_cast(kind: SyntaxKind) -> bool {
20892        kind == SyntaxKind::DROP_TABLESPACE
20893    }
20894    #[inline]
20895    fn cast(syntax: SyntaxNode) -> Option<Self> {
20896        if Self::can_cast(syntax.kind()) {
20897            Some(Self { syntax })
20898        } else {
20899            None
20900        }
20901    }
20902    #[inline]
20903    fn syntax(&self) -> &SyntaxNode {
20904        &self.syntax
20905    }
20906}
20907impl AstNode for DropTextSearchConfig {
20908    #[inline]
20909    fn can_cast(kind: SyntaxKind) -> bool {
20910        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
20911    }
20912    #[inline]
20913    fn cast(syntax: SyntaxNode) -> Option<Self> {
20914        if Self::can_cast(syntax.kind()) {
20915            Some(Self { syntax })
20916        } else {
20917            None
20918        }
20919    }
20920    #[inline]
20921    fn syntax(&self) -> &SyntaxNode {
20922        &self.syntax
20923    }
20924}
20925impl AstNode for DropTextSearchDict {
20926    #[inline]
20927    fn can_cast(kind: SyntaxKind) -> bool {
20928        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
20929    }
20930    #[inline]
20931    fn cast(syntax: SyntaxNode) -> Option<Self> {
20932        if Self::can_cast(syntax.kind()) {
20933            Some(Self { syntax })
20934        } else {
20935            None
20936        }
20937    }
20938    #[inline]
20939    fn syntax(&self) -> &SyntaxNode {
20940        &self.syntax
20941    }
20942}
20943impl AstNode for DropTextSearchParser {
20944    #[inline]
20945    fn can_cast(kind: SyntaxKind) -> bool {
20946        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
20947    }
20948    #[inline]
20949    fn cast(syntax: SyntaxNode) -> Option<Self> {
20950        if Self::can_cast(syntax.kind()) {
20951            Some(Self { syntax })
20952        } else {
20953            None
20954        }
20955    }
20956    #[inline]
20957    fn syntax(&self) -> &SyntaxNode {
20958        &self.syntax
20959    }
20960}
20961impl AstNode for DropTextSearchTemplate {
20962    #[inline]
20963    fn can_cast(kind: SyntaxKind) -> bool {
20964        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
20965    }
20966    #[inline]
20967    fn cast(syntax: SyntaxNode) -> Option<Self> {
20968        if Self::can_cast(syntax.kind()) {
20969            Some(Self { syntax })
20970        } else {
20971            None
20972        }
20973    }
20974    #[inline]
20975    fn syntax(&self) -> &SyntaxNode {
20976        &self.syntax
20977    }
20978}
20979impl AstNode for DropTransform {
20980    #[inline]
20981    fn can_cast(kind: SyntaxKind) -> bool {
20982        kind == SyntaxKind::DROP_TRANSFORM
20983    }
20984    #[inline]
20985    fn cast(syntax: SyntaxNode) -> Option<Self> {
20986        if Self::can_cast(syntax.kind()) {
20987            Some(Self { syntax })
20988        } else {
20989            None
20990        }
20991    }
20992    #[inline]
20993    fn syntax(&self) -> &SyntaxNode {
20994        &self.syntax
20995    }
20996}
20997impl AstNode for DropTrigger {
20998    #[inline]
20999    fn can_cast(kind: SyntaxKind) -> bool {
21000        kind == SyntaxKind::DROP_TRIGGER
21001    }
21002    #[inline]
21003    fn cast(syntax: SyntaxNode) -> Option<Self> {
21004        if Self::can_cast(syntax.kind()) {
21005            Some(Self { syntax })
21006        } else {
21007            None
21008        }
21009    }
21010    #[inline]
21011    fn syntax(&self) -> &SyntaxNode {
21012        &self.syntax
21013    }
21014}
21015impl AstNode for DropType {
21016    #[inline]
21017    fn can_cast(kind: SyntaxKind) -> bool {
21018        kind == SyntaxKind::DROP_TYPE
21019    }
21020    #[inline]
21021    fn cast(syntax: SyntaxNode) -> Option<Self> {
21022        if Self::can_cast(syntax.kind()) {
21023            Some(Self { syntax })
21024        } else {
21025            None
21026        }
21027    }
21028    #[inline]
21029    fn syntax(&self) -> &SyntaxNode {
21030        &self.syntax
21031    }
21032}
21033impl AstNode for DropUser {
21034    #[inline]
21035    fn can_cast(kind: SyntaxKind) -> bool {
21036        kind == SyntaxKind::DROP_USER
21037    }
21038    #[inline]
21039    fn cast(syntax: SyntaxNode) -> Option<Self> {
21040        if Self::can_cast(syntax.kind()) {
21041            Some(Self { syntax })
21042        } else {
21043            None
21044        }
21045    }
21046    #[inline]
21047    fn syntax(&self) -> &SyntaxNode {
21048        &self.syntax
21049    }
21050}
21051impl AstNode for DropUserMapping {
21052    #[inline]
21053    fn can_cast(kind: SyntaxKind) -> bool {
21054        kind == SyntaxKind::DROP_USER_MAPPING
21055    }
21056    #[inline]
21057    fn cast(syntax: SyntaxNode) -> Option<Self> {
21058        if Self::can_cast(syntax.kind()) {
21059            Some(Self { syntax })
21060        } else {
21061            None
21062        }
21063    }
21064    #[inline]
21065    fn syntax(&self) -> &SyntaxNode {
21066        &self.syntax
21067    }
21068}
21069impl AstNode for DropView {
21070    #[inline]
21071    fn can_cast(kind: SyntaxKind) -> bool {
21072        kind == SyntaxKind::DROP_VIEW
21073    }
21074    #[inline]
21075    fn cast(syntax: SyntaxNode) -> Option<Self> {
21076        if Self::can_cast(syntax.kind()) {
21077            Some(Self { syntax })
21078        } else {
21079            None
21080        }
21081    }
21082    #[inline]
21083    fn syntax(&self) -> &SyntaxNode {
21084        &self.syntax
21085    }
21086}
21087impl AstNode for ElseClause {
21088    #[inline]
21089    fn can_cast(kind: SyntaxKind) -> bool {
21090        kind == SyntaxKind::ELSE_CLAUSE
21091    }
21092    #[inline]
21093    fn cast(syntax: SyntaxNode) -> Option<Self> {
21094        if Self::can_cast(syntax.kind()) {
21095            Some(Self { syntax })
21096        } else {
21097            None
21098        }
21099    }
21100    #[inline]
21101    fn syntax(&self) -> &SyntaxNode {
21102        &self.syntax
21103    }
21104}
21105impl AstNode for EnableAlwaysRule {
21106    #[inline]
21107    fn can_cast(kind: SyntaxKind) -> bool {
21108        kind == SyntaxKind::ENABLE_ALWAYS_RULE
21109    }
21110    #[inline]
21111    fn cast(syntax: SyntaxNode) -> Option<Self> {
21112        if Self::can_cast(syntax.kind()) {
21113            Some(Self { syntax })
21114        } else {
21115            None
21116        }
21117    }
21118    #[inline]
21119    fn syntax(&self) -> &SyntaxNode {
21120        &self.syntax
21121    }
21122}
21123impl AstNode for EnableAlwaysTrigger {
21124    #[inline]
21125    fn can_cast(kind: SyntaxKind) -> bool {
21126        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
21127    }
21128    #[inline]
21129    fn cast(syntax: SyntaxNode) -> Option<Self> {
21130        if Self::can_cast(syntax.kind()) {
21131            Some(Self { syntax })
21132        } else {
21133            None
21134        }
21135    }
21136    #[inline]
21137    fn syntax(&self) -> &SyntaxNode {
21138        &self.syntax
21139    }
21140}
21141impl AstNode for EnableReplicaRule {
21142    #[inline]
21143    fn can_cast(kind: SyntaxKind) -> bool {
21144        kind == SyntaxKind::ENABLE_REPLICA_RULE
21145    }
21146    #[inline]
21147    fn cast(syntax: SyntaxNode) -> Option<Self> {
21148        if Self::can_cast(syntax.kind()) {
21149            Some(Self { syntax })
21150        } else {
21151            None
21152        }
21153    }
21154    #[inline]
21155    fn syntax(&self) -> &SyntaxNode {
21156        &self.syntax
21157    }
21158}
21159impl AstNode for EnableReplicaTrigger {
21160    #[inline]
21161    fn can_cast(kind: SyntaxKind) -> bool {
21162        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
21163    }
21164    #[inline]
21165    fn cast(syntax: SyntaxNode) -> Option<Self> {
21166        if Self::can_cast(syntax.kind()) {
21167            Some(Self { syntax })
21168        } else {
21169            None
21170        }
21171    }
21172    #[inline]
21173    fn syntax(&self) -> &SyntaxNode {
21174        &self.syntax
21175    }
21176}
21177impl AstNode for EnableRls {
21178    #[inline]
21179    fn can_cast(kind: SyntaxKind) -> bool {
21180        kind == SyntaxKind::ENABLE_RLS
21181    }
21182    #[inline]
21183    fn cast(syntax: SyntaxNode) -> Option<Self> {
21184        if Self::can_cast(syntax.kind()) {
21185            Some(Self { syntax })
21186        } else {
21187            None
21188        }
21189    }
21190    #[inline]
21191    fn syntax(&self) -> &SyntaxNode {
21192        &self.syntax
21193    }
21194}
21195impl AstNode for EnableRule {
21196    #[inline]
21197    fn can_cast(kind: SyntaxKind) -> bool {
21198        kind == SyntaxKind::ENABLE_RULE
21199    }
21200    #[inline]
21201    fn cast(syntax: SyntaxNode) -> Option<Self> {
21202        if Self::can_cast(syntax.kind()) {
21203            Some(Self { syntax })
21204        } else {
21205            None
21206        }
21207    }
21208    #[inline]
21209    fn syntax(&self) -> &SyntaxNode {
21210        &self.syntax
21211    }
21212}
21213impl AstNode for EnableTrigger {
21214    #[inline]
21215    fn can_cast(kind: SyntaxKind) -> bool {
21216        kind == SyntaxKind::ENABLE_TRIGGER
21217    }
21218    #[inline]
21219    fn cast(syntax: SyntaxNode) -> Option<Self> {
21220        if Self::can_cast(syntax.kind()) {
21221            Some(Self { syntax })
21222        } else {
21223            None
21224        }
21225    }
21226    #[inline]
21227    fn syntax(&self) -> &SyntaxNode {
21228        &self.syntax
21229    }
21230}
21231impl AstNode for Enforced {
21232    #[inline]
21233    fn can_cast(kind: SyntaxKind) -> bool {
21234        kind == SyntaxKind::ENFORCED
21235    }
21236    #[inline]
21237    fn cast(syntax: SyntaxNode) -> Option<Self> {
21238        if Self::can_cast(syntax.kind()) {
21239            Some(Self { syntax })
21240        } else {
21241            None
21242        }
21243    }
21244    #[inline]
21245    fn syntax(&self) -> &SyntaxNode {
21246        &self.syntax
21247    }
21248}
21249impl AstNode for EventTriggerWhen {
21250    #[inline]
21251    fn can_cast(kind: SyntaxKind) -> bool {
21252        kind == SyntaxKind::EVENT_TRIGGER_WHEN
21253    }
21254    #[inline]
21255    fn cast(syntax: SyntaxNode) -> Option<Self> {
21256        if Self::can_cast(syntax.kind()) {
21257            Some(Self { syntax })
21258        } else {
21259            None
21260        }
21261    }
21262    #[inline]
21263    fn syntax(&self) -> &SyntaxNode {
21264        &self.syntax
21265    }
21266}
21267impl AstNode for EventTriggerWhenClause {
21268    #[inline]
21269    fn can_cast(kind: SyntaxKind) -> bool {
21270        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
21271    }
21272    #[inline]
21273    fn cast(syntax: SyntaxNode) -> Option<Self> {
21274        if Self::can_cast(syntax.kind()) {
21275            Some(Self { syntax })
21276        } else {
21277            None
21278        }
21279    }
21280    #[inline]
21281    fn syntax(&self) -> &SyntaxNode {
21282        &self.syntax
21283    }
21284}
21285impl AstNode for ExceptTables {
21286    #[inline]
21287    fn can_cast(kind: SyntaxKind) -> bool {
21288        kind == SyntaxKind::EXCEPT_TABLES
21289    }
21290    #[inline]
21291    fn cast(syntax: SyntaxNode) -> Option<Self> {
21292        if Self::can_cast(syntax.kind()) {
21293            Some(Self { syntax })
21294        } else {
21295            None
21296        }
21297    }
21298    #[inline]
21299    fn syntax(&self) -> &SyntaxNode {
21300        &self.syntax
21301    }
21302}
21303impl AstNode for ExcludeConstraint {
21304    #[inline]
21305    fn can_cast(kind: SyntaxKind) -> bool {
21306        kind == SyntaxKind::EXCLUDE_CONSTRAINT
21307    }
21308    #[inline]
21309    fn cast(syntax: SyntaxNode) -> Option<Self> {
21310        if Self::can_cast(syntax.kind()) {
21311            Some(Self { syntax })
21312        } else {
21313            None
21314        }
21315    }
21316    #[inline]
21317    fn syntax(&self) -> &SyntaxNode {
21318        &self.syntax
21319    }
21320}
21321impl AstNode for Execute {
21322    #[inline]
21323    fn can_cast(kind: SyntaxKind) -> bool {
21324        kind == SyntaxKind::EXECUTE
21325    }
21326    #[inline]
21327    fn cast(syntax: SyntaxNode) -> Option<Self> {
21328        if Self::can_cast(syntax.kind()) {
21329            Some(Self { syntax })
21330        } else {
21331            None
21332        }
21333    }
21334    #[inline]
21335    fn syntax(&self) -> &SyntaxNode {
21336        &self.syntax
21337    }
21338}
21339impl AstNode for ExistsFn {
21340    #[inline]
21341    fn can_cast(kind: SyntaxKind) -> bool {
21342        kind == SyntaxKind::EXISTS_FN
21343    }
21344    #[inline]
21345    fn cast(syntax: SyntaxNode) -> Option<Self> {
21346        if Self::can_cast(syntax.kind()) {
21347            Some(Self { syntax })
21348        } else {
21349            None
21350        }
21351    }
21352    #[inline]
21353    fn syntax(&self) -> &SyntaxNode {
21354        &self.syntax
21355    }
21356}
21357impl AstNode for Explain {
21358    #[inline]
21359    fn can_cast(kind: SyntaxKind) -> bool {
21360        kind == SyntaxKind::EXPLAIN
21361    }
21362    #[inline]
21363    fn cast(syntax: SyntaxNode) -> Option<Self> {
21364        if Self::can_cast(syntax.kind()) {
21365            Some(Self { syntax })
21366        } else {
21367            None
21368        }
21369    }
21370    #[inline]
21371    fn syntax(&self) -> &SyntaxNode {
21372        &self.syntax
21373    }
21374}
21375impl AstNode for ExprAsName {
21376    #[inline]
21377    fn can_cast(kind: SyntaxKind) -> bool {
21378        kind == SyntaxKind::EXPR_AS_NAME
21379    }
21380    #[inline]
21381    fn cast(syntax: SyntaxNode) -> Option<Self> {
21382        if Self::can_cast(syntax.kind()) {
21383            Some(Self { syntax })
21384        } else {
21385            None
21386        }
21387    }
21388    #[inline]
21389    fn syntax(&self) -> &SyntaxNode {
21390        &self.syntax
21391    }
21392}
21393impl AstNode for ExprType {
21394    #[inline]
21395    fn can_cast(kind: SyntaxKind) -> bool {
21396        kind == SyntaxKind::EXPR_TYPE
21397    }
21398    #[inline]
21399    fn cast(syntax: SyntaxNode) -> Option<Self> {
21400        if Self::can_cast(syntax.kind()) {
21401            Some(Self { syntax })
21402        } else {
21403            None
21404        }
21405    }
21406    #[inline]
21407    fn syntax(&self) -> &SyntaxNode {
21408        &self.syntax
21409    }
21410}
21411impl AstNode for ExtractFn {
21412    #[inline]
21413    fn can_cast(kind: SyntaxKind) -> bool {
21414        kind == SyntaxKind::EXTRACT_FN
21415    }
21416    #[inline]
21417    fn cast(syntax: SyntaxNode) -> Option<Self> {
21418        if Self::can_cast(syntax.kind()) {
21419            Some(Self { syntax })
21420        } else {
21421            None
21422        }
21423    }
21424    #[inline]
21425    fn syntax(&self) -> &SyntaxNode {
21426        &self.syntax
21427    }
21428}
21429impl AstNode for FatArrow {
21430    #[inline]
21431    fn can_cast(kind: SyntaxKind) -> bool {
21432        kind == SyntaxKind::FAT_ARROW
21433    }
21434    #[inline]
21435    fn cast(syntax: SyntaxNode) -> Option<Self> {
21436        if Self::can_cast(syntax.kind()) {
21437            Some(Self { syntax })
21438        } else {
21439            None
21440        }
21441    }
21442    #[inline]
21443    fn syntax(&self) -> &SyntaxNode {
21444        &self.syntax
21445    }
21446}
21447impl AstNode for FdwOption {
21448    #[inline]
21449    fn can_cast(kind: SyntaxKind) -> bool {
21450        kind == SyntaxKind::FDW_OPTION
21451    }
21452    #[inline]
21453    fn cast(syntax: SyntaxNode) -> Option<Self> {
21454        if Self::can_cast(syntax.kind()) {
21455            Some(Self { syntax })
21456        } else {
21457            None
21458        }
21459    }
21460    #[inline]
21461    fn syntax(&self) -> &SyntaxNode {
21462        &self.syntax
21463    }
21464}
21465impl AstNode for FdwOptionList {
21466    #[inline]
21467    fn can_cast(kind: SyntaxKind) -> bool {
21468        kind == SyntaxKind::FDW_OPTION_LIST
21469    }
21470    #[inline]
21471    fn cast(syntax: SyntaxNode) -> Option<Self> {
21472        if Self::can_cast(syntax.kind()) {
21473            Some(Self { syntax })
21474        } else {
21475            None
21476        }
21477    }
21478    #[inline]
21479    fn syntax(&self) -> &SyntaxNode {
21480        &self.syntax
21481    }
21482}
21483impl AstNode for Fetch {
21484    #[inline]
21485    fn can_cast(kind: SyntaxKind) -> bool {
21486        kind == SyntaxKind::FETCH
21487    }
21488    #[inline]
21489    fn cast(syntax: SyntaxNode) -> Option<Self> {
21490        if Self::can_cast(syntax.kind()) {
21491            Some(Self { syntax })
21492        } else {
21493            None
21494        }
21495    }
21496    #[inline]
21497    fn syntax(&self) -> &SyntaxNode {
21498        &self.syntax
21499    }
21500}
21501impl AstNode for FetchClause {
21502    #[inline]
21503    fn can_cast(kind: SyntaxKind) -> bool {
21504        kind == SyntaxKind::FETCH_CLAUSE
21505    }
21506    #[inline]
21507    fn cast(syntax: SyntaxNode) -> Option<Self> {
21508        if Self::can_cast(syntax.kind()) {
21509            Some(Self { syntax })
21510        } else {
21511            None
21512        }
21513    }
21514    #[inline]
21515    fn syntax(&self) -> &SyntaxNode {
21516        &self.syntax
21517    }
21518}
21519impl AstNode for FieldExpr {
21520    #[inline]
21521    fn can_cast(kind: SyntaxKind) -> bool {
21522        kind == SyntaxKind::FIELD_EXPR
21523    }
21524    #[inline]
21525    fn cast(syntax: SyntaxNode) -> Option<Self> {
21526        if Self::can_cast(syntax.kind()) {
21527            Some(Self { syntax })
21528        } else {
21529            None
21530        }
21531    }
21532    #[inline]
21533    fn syntax(&self) -> &SyntaxNode {
21534        &self.syntax
21535    }
21536}
21537impl AstNode for FilterClause {
21538    #[inline]
21539    fn can_cast(kind: SyntaxKind) -> bool {
21540        kind == SyntaxKind::FILTER_CLAUSE
21541    }
21542    #[inline]
21543    fn cast(syntax: SyntaxNode) -> Option<Self> {
21544        if Self::can_cast(syntax.kind()) {
21545            Some(Self { syntax })
21546        } else {
21547            None
21548        }
21549    }
21550    #[inline]
21551    fn syntax(&self) -> &SyntaxNode {
21552        &self.syntax
21553    }
21554}
21555impl AstNode for ForProvider {
21556    #[inline]
21557    fn can_cast(kind: SyntaxKind) -> bool {
21558        kind == SyntaxKind::FOR_PROVIDER
21559    }
21560    #[inline]
21561    fn cast(syntax: SyntaxNode) -> Option<Self> {
21562        if Self::can_cast(syntax.kind()) {
21563            Some(Self { syntax })
21564        } else {
21565            None
21566        }
21567    }
21568    #[inline]
21569    fn syntax(&self) -> &SyntaxNode {
21570        &self.syntax
21571    }
21572}
21573impl AstNode for ForceRls {
21574    #[inline]
21575    fn can_cast(kind: SyntaxKind) -> bool {
21576        kind == SyntaxKind::FORCE_RLS
21577    }
21578    #[inline]
21579    fn cast(syntax: SyntaxNode) -> Option<Self> {
21580        if Self::can_cast(syntax.kind()) {
21581            Some(Self { syntax })
21582        } else {
21583            None
21584        }
21585    }
21586    #[inline]
21587    fn syntax(&self) -> &SyntaxNode {
21588        &self.syntax
21589    }
21590}
21591impl AstNode for ForeignKeyConstraint {
21592    #[inline]
21593    fn can_cast(kind: SyntaxKind) -> bool {
21594        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
21595    }
21596    #[inline]
21597    fn cast(syntax: SyntaxNode) -> Option<Self> {
21598        if Self::can_cast(syntax.kind()) {
21599            Some(Self { syntax })
21600        } else {
21601            None
21602        }
21603    }
21604    #[inline]
21605    fn syntax(&self) -> &SyntaxNode {
21606        &self.syntax
21607    }
21608}
21609impl AstNode for FrameClause {
21610    #[inline]
21611    fn can_cast(kind: SyntaxKind) -> bool {
21612        kind == SyntaxKind::FRAME_CLAUSE
21613    }
21614    #[inline]
21615    fn cast(syntax: SyntaxNode) -> Option<Self> {
21616        if Self::can_cast(syntax.kind()) {
21617            Some(Self { syntax })
21618        } else {
21619            None
21620        }
21621    }
21622    #[inline]
21623    fn syntax(&self) -> &SyntaxNode {
21624        &self.syntax
21625    }
21626}
21627impl AstNode for FromClause {
21628    #[inline]
21629    fn can_cast(kind: SyntaxKind) -> bool {
21630        kind == SyntaxKind::FROM_CLAUSE
21631    }
21632    #[inline]
21633    fn cast(syntax: SyntaxNode) -> Option<Self> {
21634        if Self::can_cast(syntax.kind()) {
21635            Some(Self { syntax })
21636        } else {
21637            None
21638        }
21639    }
21640    #[inline]
21641    fn syntax(&self) -> &SyntaxNode {
21642        &self.syntax
21643    }
21644}
21645impl AstNode for FromItem {
21646    #[inline]
21647    fn can_cast(kind: SyntaxKind) -> bool {
21648        kind == SyntaxKind::FROM_ITEM
21649    }
21650    #[inline]
21651    fn cast(syntax: SyntaxNode) -> Option<Self> {
21652        if Self::can_cast(syntax.kind()) {
21653            Some(Self { syntax })
21654        } else {
21655            None
21656        }
21657    }
21658    #[inline]
21659    fn syntax(&self) -> &SyntaxNode {
21660        &self.syntax
21661    }
21662}
21663impl AstNode for FromTable {
21664    #[inline]
21665    fn can_cast(kind: SyntaxKind) -> bool {
21666        kind == SyntaxKind::FROM_TABLE
21667    }
21668    #[inline]
21669    fn cast(syntax: SyntaxNode) -> Option<Self> {
21670        if Self::can_cast(syntax.kind()) {
21671            Some(Self { syntax })
21672        } else {
21673            None
21674        }
21675    }
21676    #[inline]
21677    fn syntax(&self) -> &SyntaxNode {
21678        &self.syntax
21679    }
21680}
21681impl AstNode for FuncOptionList {
21682    #[inline]
21683    fn can_cast(kind: SyntaxKind) -> bool {
21684        kind == SyntaxKind::FUNC_OPTION_LIST
21685    }
21686    #[inline]
21687    fn cast(syntax: SyntaxNode) -> Option<Self> {
21688        if Self::can_cast(syntax.kind()) {
21689            Some(Self { syntax })
21690        } else {
21691            None
21692        }
21693    }
21694    #[inline]
21695    fn syntax(&self) -> &SyntaxNode {
21696        &self.syntax
21697    }
21698}
21699impl AstNode for FunctionSig {
21700    #[inline]
21701    fn can_cast(kind: SyntaxKind) -> bool {
21702        kind == SyntaxKind::FUNCTION_SIG
21703    }
21704    #[inline]
21705    fn cast(syntax: SyntaxNode) -> Option<Self> {
21706        if Self::can_cast(syntax.kind()) {
21707            Some(Self { syntax })
21708        } else {
21709            None
21710        }
21711    }
21712    #[inline]
21713    fn syntax(&self) -> &SyntaxNode {
21714        &self.syntax
21715    }
21716}
21717impl AstNode for FunctionSigList {
21718    #[inline]
21719    fn can_cast(kind: SyntaxKind) -> bool {
21720        kind == SyntaxKind::FUNCTION_SIG_LIST
21721    }
21722    #[inline]
21723    fn cast(syntax: SyntaxNode) -> Option<Self> {
21724        if Self::can_cast(syntax.kind()) {
21725            Some(Self { syntax })
21726        } else {
21727            None
21728        }
21729    }
21730    #[inline]
21731    fn syntax(&self) -> &SyntaxNode {
21732        &self.syntax
21733    }
21734}
21735impl AstNode for GeneratedConstraint {
21736    #[inline]
21737    fn can_cast(kind: SyntaxKind) -> bool {
21738        kind == SyntaxKind::GENERATED_CONSTRAINT
21739    }
21740    #[inline]
21741    fn cast(syntax: SyntaxNode) -> Option<Self> {
21742        if Self::can_cast(syntax.kind()) {
21743            Some(Self { syntax })
21744        } else {
21745            None
21746        }
21747    }
21748    #[inline]
21749    fn syntax(&self) -> &SyntaxNode {
21750        &self.syntax
21751    }
21752}
21753impl AstNode for Grant {
21754    #[inline]
21755    fn can_cast(kind: SyntaxKind) -> bool {
21756        kind == SyntaxKind::GRANT
21757    }
21758    #[inline]
21759    fn cast(syntax: SyntaxNode) -> Option<Self> {
21760        if Self::can_cast(syntax.kind()) {
21761            Some(Self { syntax })
21762        } else {
21763            None
21764        }
21765    }
21766    #[inline]
21767    fn syntax(&self) -> &SyntaxNode {
21768        &self.syntax
21769    }
21770}
21771impl AstNode for GrantDefaultPrivileges {
21772    #[inline]
21773    fn can_cast(kind: SyntaxKind) -> bool {
21774        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
21775    }
21776    #[inline]
21777    fn cast(syntax: SyntaxNode) -> Option<Self> {
21778        if Self::can_cast(syntax.kind()) {
21779            Some(Self { syntax })
21780        } else {
21781            None
21782        }
21783    }
21784    #[inline]
21785    fn syntax(&self) -> &SyntaxNode {
21786        &self.syntax
21787    }
21788}
21789impl AstNode for GroupByClause {
21790    #[inline]
21791    fn can_cast(kind: SyntaxKind) -> bool {
21792        kind == SyntaxKind::GROUP_BY_CLAUSE
21793    }
21794    #[inline]
21795    fn cast(syntax: SyntaxNode) -> Option<Self> {
21796        if Self::can_cast(syntax.kind()) {
21797            Some(Self { syntax })
21798        } else {
21799            None
21800        }
21801    }
21802    #[inline]
21803    fn syntax(&self) -> &SyntaxNode {
21804        &self.syntax
21805    }
21806}
21807impl AstNode for GroupByList {
21808    #[inline]
21809    fn can_cast(kind: SyntaxKind) -> bool {
21810        kind == SyntaxKind::GROUP_BY_LIST
21811    }
21812    #[inline]
21813    fn cast(syntax: SyntaxNode) -> Option<Self> {
21814        if Self::can_cast(syntax.kind()) {
21815            Some(Self { syntax })
21816        } else {
21817            None
21818        }
21819    }
21820    #[inline]
21821    fn syntax(&self) -> &SyntaxNode {
21822        &self.syntax
21823    }
21824}
21825impl AstNode for GroupingCube {
21826    #[inline]
21827    fn can_cast(kind: SyntaxKind) -> bool {
21828        kind == SyntaxKind::GROUPING_CUBE
21829    }
21830    #[inline]
21831    fn cast(syntax: SyntaxNode) -> Option<Self> {
21832        if Self::can_cast(syntax.kind()) {
21833            Some(Self { syntax })
21834        } else {
21835            None
21836        }
21837    }
21838    #[inline]
21839    fn syntax(&self) -> &SyntaxNode {
21840        &self.syntax
21841    }
21842}
21843impl AstNode for GroupingExpr {
21844    #[inline]
21845    fn can_cast(kind: SyntaxKind) -> bool {
21846        kind == SyntaxKind::GROUPING_EXPR
21847    }
21848    #[inline]
21849    fn cast(syntax: SyntaxNode) -> Option<Self> {
21850        if Self::can_cast(syntax.kind()) {
21851            Some(Self { syntax })
21852        } else {
21853            None
21854        }
21855    }
21856    #[inline]
21857    fn syntax(&self) -> &SyntaxNode {
21858        &self.syntax
21859    }
21860}
21861impl AstNode for GroupingRollup {
21862    #[inline]
21863    fn can_cast(kind: SyntaxKind) -> bool {
21864        kind == SyntaxKind::GROUPING_ROLLUP
21865    }
21866    #[inline]
21867    fn cast(syntax: SyntaxNode) -> Option<Self> {
21868        if Self::can_cast(syntax.kind()) {
21869            Some(Self { syntax })
21870        } else {
21871            None
21872        }
21873    }
21874    #[inline]
21875    fn syntax(&self) -> &SyntaxNode {
21876        &self.syntax
21877    }
21878}
21879impl AstNode for GroupingSets {
21880    #[inline]
21881    fn can_cast(kind: SyntaxKind) -> bool {
21882        kind == SyntaxKind::GROUPING_SETS
21883    }
21884    #[inline]
21885    fn cast(syntax: SyntaxNode) -> Option<Self> {
21886        if Self::can_cast(syntax.kind()) {
21887            Some(Self { syntax })
21888        } else {
21889            None
21890        }
21891    }
21892    #[inline]
21893    fn syntax(&self) -> &SyntaxNode {
21894        &self.syntax
21895    }
21896}
21897impl AstNode for Gteq {
21898    #[inline]
21899    fn can_cast(kind: SyntaxKind) -> bool {
21900        kind == SyntaxKind::GTEQ
21901    }
21902    #[inline]
21903    fn cast(syntax: SyntaxNode) -> Option<Self> {
21904        if Self::can_cast(syntax.kind()) {
21905            Some(Self { syntax })
21906        } else {
21907            None
21908        }
21909    }
21910    #[inline]
21911    fn syntax(&self) -> &SyntaxNode {
21912        &self.syntax
21913    }
21914}
21915impl AstNode for HandlerClause {
21916    #[inline]
21917    fn can_cast(kind: SyntaxKind) -> bool {
21918        kind == SyntaxKind::HANDLER_CLAUSE
21919    }
21920    #[inline]
21921    fn cast(syntax: SyntaxNode) -> Option<Self> {
21922        if Self::can_cast(syntax.kind()) {
21923            Some(Self { syntax })
21924        } else {
21925            None
21926        }
21927    }
21928    #[inline]
21929    fn syntax(&self) -> &SyntaxNode {
21930        &self.syntax
21931    }
21932}
21933impl AstNode for HavingClause {
21934    #[inline]
21935    fn can_cast(kind: SyntaxKind) -> bool {
21936        kind == SyntaxKind::HAVING_CLAUSE
21937    }
21938    #[inline]
21939    fn cast(syntax: SyntaxNode) -> Option<Self> {
21940        if Self::can_cast(syntax.kind()) {
21941            Some(Self { syntax })
21942        } else {
21943            None
21944        }
21945    }
21946    #[inline]
21947    fn syntax(&self) -> &SyntaxNode {
21948        &self.syntax
21949    }
21950}
21951impl AstNode for IfExists {
21952    #[inline]
21953    fn can_cast(kind: SyntaxKind) -> bool {
21954        kind == SyntaxKind::IF_EXISTS
21955    }
21956    #[inline]
21957    fn cast(syntax: SyntaxNode) -> Option<Self> {
21958        if Self::can_cast(syntax.kind()) {
21959            Some(Self { syntax })
21960        } else {
21961            None
21962        }
21963    }
21964    #[inline]
21965    fn syntax(&self) -> &SyntaxNode {
21966        &self.syntax
21967    }
21968}
21969impl AstNode for IfNotExists {
21970    #[inline]
21971    fn can_cast(kind: SyntaxKind) -> bool {
21972        kind == SyntaxKind::IF_NOT_EXISTS
21973    }
21974    #[inline]
21975    fn cast(syntax: SyntaxNode) -> Option<Self> {
21976        if Self::can_cast(syntax.kind()) {
21977            Some(Self { syntax })
21978        } else {
21979            None
21980        }
21981    }
21982    #[inline]
21983    fn syntax(&self) -> &SyntaxNode {
21984        &self.syntax
21985    }
21986}
21987impl AstNode for ImportForeignSchema {
21988    #[inline]
21989    fn can_cast(kind: SyntaxKind) -> bool {
21990        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
21991    }
21992    #[inline]
21993    fn cast(syntax: SyntaxNode) -> Option<Self> {
21994        if Self::can_cast(syntax.kind()) {
21995            Some(Self { syntax })
21996        } else {
21997            None
21998        }
21999    }
22000    #[inline]
22001    fn syntax(&self) -> &SyntaxNode {
22002        &self.syntax
22003    }
22004}
22005impl AstNode for IndexExpr {
22006    #[inline]
22007    fn can_cast(kind: SyntaxKind) -> bool {
22008        kind == SyntaxKind::INDEX_EXPR
22009    }
22010    #[inline]
22011    fn cast(syntax: SyntaxNode) -> Option<Self> {
22012        if Self::can_cast(syntax.kind()) {
22013            Some(Self { syntax })
22014        } else {
22015            None
22016        }
22017    }
22018    #[inline]
22019    fn syntax(&self) -> &SyntaxNode {
22020        &self.syntax
22021    }
22022}
22023impl AstNode for Inherit {
22024    #[inline]
22025    fn can_cast(kind: SyntaxKind) -> bool {
22026        kind == SyntaxKind::INHERIT
22027    }
22028    #[inline]
22029    fn cast(syntax: SyntaxNode) -> Option<Self> {
22030        if Self::can_cast(syntax.kind()) {
22031            Some(Self { syntax })
22032        } else {
22033            None
22034        }
22035    }
22036    #[inline]
22037    fn syntax(&self) -> &SyntaxNode {
22038        &self.syntax
22039    }
22040}
22041impl AstNode for InheritTable {
22042    #[inline]
22043    fn can_cast(kind: SyntaxKind) -> bool {
22044        kind == SyntaxKind::INHERIT_TABLE
22045    }
22046    #[inline]
22047    fn cast(syntax: SyntaxNode) -> Option<Self> {
22048        if Self::can_cast(syntax.kind()) {
22049            Some(Self { syntax })
22050        } else {
22051            None
22052        }
22053    }
22054    #[inline]
22055    fn syntax(&self) -> &SyntaxNode {
22056        &self.syntax
22057    }
22058}
22059impl AstNode for Inherits {
22060    #[inline]
22061    fn can_cast(kind: SyntaxKind) -> bool {
22062        kind == SyntaxKind::INHERITS
22063    }
22064    #[inline]
22065    fn cast(syntax: SyntaxNode) -> Option<Self> {
22066        if Self::can_cast(syntax.kind()) {
22067            Some(Self { syntax })
22068        } else {
22069            None
22070        }
22071    }
22072    #[inline]
22073    fn syntax(&self) -> &SyntaxNode {
22074        &self.syntax
22075    }
22076}
22077impl AstNode for InitiallyDeferredConstraintOption {
22078    #[inline]
22079    fn can_cast(kind: SyntaxKind) -> bool {
22080        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
22081    }
22082    #[inline]
22083    fn cast(syntax: SyntaxNode) -> Option<Self> {
22084        if Self::can_cast(syntax.kind()) {
22085            Some(Self { syntax })
22086        } else {
22087            None
22088        }
22089    }
22090    #[inline]
22091    fn syntax(&self) -> &SyntaxNode {
22092        &self.syntax
22093    }
22094}
22095impl AstNode for InitiallyImmediateConstraintOption {
22096    #[inline]
22097    fn can_cast(kind: SyntaxKind) -> bool {
22098        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
22099    }
22100    #[inline]
22101    fn cast(syntax: SyntaxNode) -> Option<Self> {
22102        if Self::can_cast(syntax.kind()) {
22103            Some(Self { syntax })
22104        } else {
22105            None
22106        }
22107    }
22108    #[inline]
22109    fn syntax(&self) -> &SyntaxNode {
22110        &self.syntax
22111    }
22112}
22113impl AstNode for Insert {
22114    #[inline]
22115    fn can_cast(kind: SyntaxKind) -> bool {
22116        kind == SyntaxKind::INSERT
22117    }
22118    #[inline]
22119    fn cast(syntax: SyntaxNode) -> Option<Self> {
22120        if Self::can_cast(syntax.kind()) {
22121            Some(Self { syntax })
22122        } else {
22123            None
22124        }
22125    }
22126    #[inline]
22127    fn syntax(&self) -> &SyntaxNode {
22128        &self.syntax
22129    }
22130}
22131impl AstNode for IntervalType {
22132    #[inline]
22133    fn can_cast(kind: SyntaxKind) -> bool {
22134        kind == SyntaxKind::INTERVAL_TYPE
22135    }
22136    #[inline]
22137    fn cast(syntax: SyntaxNode) -> Option<Self> {
22138        if Self::can_cast(syntax.kind()) {
22139            Some(Self { syntax })
22140        } else {
22141            None
22142        }
22143    }
22144    #[inline]
22145    fn syntax(&self) -> &SyntaxNode {
22146        &self.syntax
22147    }
22148}
22149impl AstNode for IntoClause {
22150    #[inline]
22151    fn can_cast(kind: SyntaxKind) -> bool {
22152        kind == SyntaxKind::INTO_CLAUSE
22153    }
22154    #[inline]
22155    fn cast(syntax: SyntaxNode) -> Option<Self> {
22156        if Self::can_cast(syntax.kind()) {
22157            Some(Self { syntax })
22158        } else {
22159            None
22160        }
22161    }
22162    #[inline]
22163    fn syntax(&self) -> &SyntaxNode {
22164        &self.syntax
22165    }
22166}
22167impl AstNode for IntoSchema {
22168    #[inline]
22169    fn can_cast(kind: SyntaxKind) -> bool {
22170        kind == SyntaxKind::INTO_SCHEMA
22171    }
22172    #[inline]
22173    fn cast(syntax: SyntaxNode) -> Option<Self> {
22174        if Self::can_cast(syntax.kind()) {
22175            Some(Self { syntax })
22176        } else {
22177            None
22178        }
22179    }
22180    #[inline]
22181    fn syntax(&self) -> &SyntaxNode {
22182        &self.syntax
22183    }
22184}
22185impl AstNode for IsDistinctFrom {
22186    #[inline]
22187    fn can_cast(kind: SyntaxKind) -> bool {
22188        kind == SyntaxKind::IS_DISTINCT_FROM
22189    }
22190    #[inline]
22191    fn cast(syntax: SyntaxNode) -> Option<Self> {
22192        if Self::can_cast(syntax.kind()) {
22193            Some(Self { syntax })
22194        } else {
22195            None
22196        }
22197    }
22198    #[inline]
22199    fn syntax(&self) -> &SyntaxNode {
22200        &self.syntax
22201    }
22202}
22203impl AstNode for IsJson {
22204    #[inline]
22205    fn can_cast(kind: SyntaxKind) -> bool {
22206        kind == SyntaxKind::IS_JSON
22207    }
22208    #[inline]
22209    fn cast(syntax: SyntaxNode) -> Option<Self> {
22210        if Self::can_cast(syntax.kind()) {
22211            Some(Self { syntax })
22212        } else {
22213            None
22214        }
22215    }
22216    #[inline]
22217    fn syntax(&self) -> &SyntaxNode {
22218        &self.syntax
22219    }
22220}
22221impl AstNode for IsJsonArray {
22222    #[inline]
22223    fn can_cast(kind: SyntaxKind) -> bool {
22224        kind == SyntaxKind::IS_JSON_ARRAY
22225    }
22226    #[inline]
22227    fn cast(syntax: SyntaxNode) -> Option<Self> {
22228        if Self::can_cast(syntax.kind()) {
22229            Some(Self { syntax })
22230        } else {
22231            None
22232        }
22233    }
22234    #[inline]
22235    fn syntax(&self) -> &SyntaxNode {
22236        &self.syntax
22237    }
22238}
22239impl AstNode for IsJsonObject {
22240    #[inline]
22241    fn can_cast(kind: SyntaxKind) -> bool {
22242        kind == SyntaxKind::IS_JSON_OBJECT
22243    }
22244    #[inline]
22245    fn cast(syntax: SyntaxNode) -> Option<Self> {
22246        if Self::can_cast(syntax.kind()) {
22247            Some(Self { syntax })
22248        } else {
22249            None
22250        }
22251    }
22252    #[inline]
22253    fn syntax(&self) -> &SyntaxNode {
22254        &self.syntax
22255    }
22256}
22257impl AstNode for IsJsonScalar {
22258    #[inline]
22259    fn can_cast(kind: SyntaxKind) -> bool {
22260        kind == SyntaxKind::IS_JSON_SCALAR
22261    }
22262    #[inline]
22263    fn cast(syntax: SyntaxNode) -> Option<Self> {
22264        if Self::can_cast(syntax.kind()) {
22265            Some(Self { syntax })
22266        } else {
22267            None
22268        }
22269    }
22270    #[inline]
22271    fn syntax(&self) -> &SyntaxNode {
22272        &self.syntax
22273    }
22274}
22275impl AstNode for IsJsonValue {
22276    #[inline]
22277    fn can_cast(kind: SyntaxKind) -> bool {
22278        kind == SyntaxKind::IS_JSON_VALUE
22279    }
22280    #[inline]
22281    fn cast(syntax: SyntaxNode) -> Option<Self> {
22282        if Self::can_cast(syntax.kind()) {
22283            Some(Self { syntax })
22284        } else {
22285            None
22286        }
22287    }
22288    #[inline]
22289    fn syntax(&self) -> &SyntaxNode {
22290        &self.syntax
22291    }
22292}
22293impl AstNode for IsNormalized {
22294    #[inline]
22295    fn can_cast(kind: SyntaxKind) -> bool {
22296        kind == SyntaxKind::IS_NORMALIZED
22297    }
22298    #[inline]
22299    fn cast(syntax: SyntaxNode) -> Option<Self> {
22300        if Self::can_cast(syntax.kind()) {
22301            Some(Self { syntax })
22302        } else {
22303            None
22304        }
22305    }
22306    #[inline]
22307    fn syntax(&self) -> &SyntaxNode {
22308        &self.syntax
22309    }
22310}
22311impl AstNode for IsNot {
22312    #[inline]
22313    fn can_cast(kind: SyntaxKind) -> bool {
22314        kind == SyntaxKind::IS_NOT
22315    }
22316    #[inline]
22317    fn cast(syntax: SyntaxNode) -> Option<Self> {
22318        if Self::can_cast(syntax.kind()) {
22319            Some(Self { syntax })
22320        } else {
22321            None
22322        }
22323    }
22324    #[inline]
22325    fn syntax(&self) -> &SyntaxNode {
22326        &self.syntax
22327    }
22328}
22329impl AstNode for IsNotDistinctFrom {
22330    #[inline]
22331    fn can_cast(kind: SyntaxKind) -> bool {
22332        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
22333    }
22334    #[inline]
22335    fn cast(syntax: SyntaxNode) -> Option<Self> {
22336        if Self::can_cast(syntax.kind()) {
22337            Some(Self { syntax })
22338        } else {
22339            None
22340        }
22341    }
22342    #[inline]
22343    fn syntax(&self) -> &SyntaxNode {
22344        &self.syntax
22345    }
22346}
22347impl AstNode for IsNotJson {
22348    #[inline]
22349    fn can_cast(kind: SyntaxKind) -> bool {
22350        kind == SyntaxKind::IS_NOT_JSON
22351    }
22352    #[inline]
22353    fn cast(syntax: SyntaxNode) -> Option<Self> {
22354        if Self::can_cast(syntax.kind()) {
22355            Some(Self { syntax })
22356        } else {
22357            None
22358        }
22359    }
22360    #[inline]
22361    fn syntax(&self) -> &SyntaxNode {
22362        &self.syntax
22363    }
22364}
22365impl AstNode for IsNotJsonArray {
22366    #[inline]
22367    fn can_cast(kind: SyntaxKind) -> bool {
22368        kind == SyntaxKind::IS_NOT_JSON_ARRAY
22369    }
22370    #[inline]
22371    fn cast(syntax: SyntaxNode) -> Option<Self> {
22372        if Self::can_cast(syntax.kind()) {
22373            Some(Self { syntax })
22374        } else {
22375            None
22376        }
22377    }
22378    #[inline]
22379    fn syntax(&self) -> &SyntaxNode {
22380        &self.syntax
22381    }
22382}
22383impl AstNode for IsNotJsonObject {
22384    #[inline]
22385    fn can_cast(kind: SyntaxKind) -> bool {
22386        kind == SyntaxKind::IS_NOT_JSON_OBJECT
22387    }
22388    #[inline]
22389    fn cast(syntax: SyntaxNode) -> Option<Self> {
22390        if Self::can_cast(syntax.kind()) {
22391            Some(Self { syntax })
22392        } else {
22393            None
22394        }
22395    }
22396    #[inline]
22397    fn syntax(&self) -> &SyntaxNode {
22398        &self.syntax
22399    }
22400}
22401impl AstNode for IsNotJsonScalar {
22402    #[inline]
22403    fn can_cast(kind: SyntaxKind) -> bool {
22404        kind == SyntaxKind::IS_NOT_JSON_SCALAR
22405    }
22406    #[inline]
22407    fn cast(syntax: SyntaxNode) -> Option<Self> {
22408        if Self::can_cast(syntax.kind()) {
22409            Some(Self { syntax })
22410        } else {
22411            None
22412        }
22413    }
22414    #[inline]
22415    fn syntax(&self) -> &SyntaxNode {
22416        &self.syntax
22417    }
22418}
22419impl AstNode for IsNotJsonValue {
22420    #[inline]
22421    fn can_cast(kind: SyntaxKind) -> bool {
22422        kind == SyntaxKind::IS_NOT_JSON_VALUE
22423    }
22424    #[inline]
22425    fn cast(syntax: SyntaxNode) -> Option<Self> {
22426        if Self::can_cast(syntax.kind()) {
22427            Some(Self { syntax })
22428        } else {
22429            None
22430        }
22431    }
22432    #[inline]
22433    fn syntax(&self) -> &SyntaxNode {
22434        &self.syntax
22435    }
22436}
22437impl AstNode for IsNotNormalized {
22438    #[inline]
22439    fn can_cast(kind: SyntaxKind) -> bool {
22440        kind == SyntaxKind::IS_NOT_NORMALIZED
22441    }
22442    #[inline]
22443    fn cast(syntax: SyntaxNode) -> Option<Self> {
22444        if Self::can_cast(syntax.kind()) {
22445            Some(Self { syntax })
22446        } else {
22447            None
22448        }
22449    }
22450    #[inline]
22451    fn syntax(&self) -> &SyntaxNode {
22452        &self.syntax
22453    }
22454}
22455impl AstNode for Join {
22456    #[inline]
22457    fn can_cast(kind: SyntaxKind) -> bool {
22458        kind == SyntaxKind::JOIN
22459    }
22460    #[inline]
22461    fn cast(syntax: SyntaxNode) -> Option<Self> {
22462        if Self::can_cast(syntax.kind()) {
22463            Some(Self { syntax })
22464        } else {
22465            None
22466        }
22467    }
22468    #[inline]
22469    fn syntax(&self) -> &SyntaxNode {
22470        &self.syntax
22471    }
22472}
22473impl AstNode for JoinCross {
22474    #[inline]
22475    fn can_cast(kind: SyntaxKind) -> bool {
22476        kind == SyntaxKind::JOIN_CROSS
22477    }
22478    #[inline]
22479    fn cast(syntax: SyntaxNode) -> Option<Self> {
22480        if Self::can_cast(syntax.kind()) {
22481            Some(Self { syntax })
22482        } else {
22483            None
22484        }
22485    }
22486    #[inline]
22487    fn syntax(&self) -> &SyntaxNode {
22488        &self.syntax
22489    }
22490}
22491impl AstNode for JoinExpr {
22492    #[inline]
22493    fn can_cast(kind: SyntaxKind) -> bool {
22494        kind == SyntaxKind::JOIN_EXPR
22495    }
22496    #[inline]
22497    fn cast(syntax: SyntaxNode) -> Option<Self> {
22498        if Self::can_cast(syntax.kind()) {
22499            Some(Self { syntax })
22500        } else {
22501            None
22502        }
22503    }
22504    #[inline]
22505    fn syntax(&self) -> &SyntaxNode {
22506        &self.syntax
22507    }
22508}
22509impl AstNode for JoinFull {
22510    #[inline]
22511    fn can_cast(kind: SyntaxKind) -> bool {
22512        kind == SyntaxKind::JOIN_FULL
22513    }
22514    #[inline]
22515    fn cast(syntax: SyntaxNode) -> Option<Self> {
22516        if Self::can_cast(syntax.kind()) {
22517            Some(Self { syntax })
22518        } else {
22519            None
22520        }
22521    }
22522    #[inline]
22523    fn syntax(&self) -> &SyntaxNode {
22524        &self.syntax
22525    }
22526}
22527impl AstNode for JoinInner {
22528    #[inline]
22529    fn can_cast(kind: SyntaxKind) -> bool {
22530        kind == SyntaxKind::JOIN_INNER
22531    }
22532    #[inline]
22533    fn cast(syntax: SyntaxNode) -> Option<Self> {
22534        if Self::can_cast(syntax.kind()) {
22535            Some(Self { syntax })
22536        } else {
22537            None
22538        }
22539    }
22540    #[inline]
22541    fn syntax(&self) -> &SyntaxNode {
22542        &self.syntax
22543    }
22544}
22545impl AstNode for JoinLeft {
22546    #[inline]
22547    fn can_cast(kind: SyntaxKind) -> bool {
22548        kind == SyntaxKind::JOIN_LEFT
22549    }
22550    #[inline]
22551    fn cast(syntax: SyntaxNode) -> Option<Self> {
22552        if Self::can_cast(syntax.kind()) {
22553            Some(Self { syntax })
22554        } else {
22555            None
22556        }
22557    }
22558    #[inline]
22559    fn syntax(&self) -> &SyntaxNode {
22560        &self.syntax
22561    }
22562}
22563impl AstNode for JoinRight {
22564    #[inline]
22565    fn can_cast(kind: SyntaxKind) -> bool {
22566        kind == SyntaxKind::JOIN_RIGHT
22567    }
22568    #[inline]
22569    fn cast(syntax: SyntaxNode) -> Option<Self> {
22570        if Self::can_cast(syntax.kind()) {
22571            Some(Self { syntax })
22572        } else {
22573            None
22574        }
22575    }
22576    #[inline]
22577    fn syntax(&self) -> &SyntaxNode {
22578        &self.syntax
22579    }
22580}
22581impl AstNode for JoinUsingClause {
22582    #[inline]
22583    fn can_cast(kind: SyntaxKind) -> bool {
22584        kind == SyntaxKind::JOIN_USING_CLAUSE
22585    }
22586    #[inline]
22587    fn cast(syntax: SyntaxNode) -> Option<Self> {
22588        if Self::can_cast(syntax.kind()) {
22589            Some(Self { syntax })
22590        } else {
22591            None
22592        }
22593    }
22594    #[inline]
22595    fn syntax(&self) -> &SyntaxNode {
22596        &self.syntax
22597    }
22598}
22599impl AstNode for JsonArrayAggFn {
22600    #[inline]
22601    fn can_cast(kind: SyntaxKind) -> bool {
22602        kind == SyntaxKind::JSON_ARRAY_AGG_FN
22603    }
22604    #[inline]
22605    fn cast(syntax: SyntaxNode) -> Option<Self> {
22606        if Self::can_cast(syntax.kind()) {
22607            Some(Self { syntax })
22608        } else {
22609            None
22610        }
22611    }
22612    #[inline]
22613    fn syntax(&self) -> &SyntaxNode {
22614        &self.syntax
22615    }
22616}
22617impl AstNode for JsonArrayFn {
22618    #[inline]
22619    fn can_cast(kind: SyntaxKind) -> bool {
22620        kind == SyntaxKind::JSON_ARRAY_FN
22621    }
22622    #[inline]
22623    fn cast(syntax: SyntaxNode) -> Option<Self> {
22624        if Self::can_cast(syntax.kind()) {
22625            Some(Self { syntax })
22626        } else {
22627            None
22628        }
22629    }
22630    #[inline]
22631    fn syntax(&self) -> &SyntaxNode {
22632        &self.syntax
22633    }
22634}
22635impl AstNode for JsonBehaviorClause {
22636    #[inline]
22637    fn can_cast(kind: SyntaxKind) -> bool {
22638        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
22639    }
22640    #[inline]
22641    fn cast(syntax: SyntaxNode) -> Option<Self> {
22642        if Self::can_cast(syntax.kind()) {
22643            Some(Self { syntax })
22644        } else {
22645            None
22646        }
22647    }
22648    #[inline]
22649    fn syntax(&self) -> &SyntaxNode {
22650        &self.syntax
22651    }
22652}
22653impl AstNode for JsonBehaviorDefault {
22654    #[inline]
22655    fn can_cast(kind: SyntaxKind) -> bool {
22656        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
22657    }
22658    #[inline]
22659    fn cast(syntax: SyntaxNode) -> Option<Self> {
22660        if Self::can_cast(syntax.kind()) {
22661            Some(Self { syntax })
22662        } else {
22663            None
22664        }
22665    }
22666    #[inline]
22667    fn syntax(&self) -> &SyntaxNode {
22668        &self.syntax
22669    }
22670}
22671impl AstNode for JsonBehaviorEmptyArray {
22672    #[inline]
22673    fn can_cast(kind: SyntaxKind) -> bool {
22674        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
22675    }
22676    #[inline]
22677    fn cast(syntax: SyntaxNode) -> Option<Self> {
22678        if Self::can_cast(syntax.kind()) {
22679            Some(Self { syntax })
22680        } else {
22681            None
22682        }
22683    }
22684    #[inline]
22685    fn syntax(&self) -> &SyntaxNode {
22686        &self.syntax
22687    }
22688}
22689impl AstNode for JsonBehaviorEmptyObject {
22690    #[inline]
22691    fn can_cast(kind: SyntaxKind) -> bool {
22692        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
22693    }
22694    #[inline]
22695    fn cast(syntax: SyntaxNode) -> Option<Self> {
22696        if Self::can_cast(syntax.kind()) {
22697            Some(Self { syntax })
22698        } else {
22699            None
22700        }
22701    }
22702    #[inline]
22703    fn syntax(&self) -> &SyntaxNode {
22704        &self.syntax
22705    }
22706}
22707impl AstNode for JsonBehaviorError {
22708    #[inline]
22709    fn can_cast(kind: SyntaxKind) -> bool {
22710        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
22711    }
22712    #[inline]
22713    fn cast(syntax: SyntaxNode) -> Option<Self> {
22714        if Self::can_cast(syntax.kind()) {
22715            Some(Self { syntax })
22716        } else {
22717            None
22718        }
22719    }
22720    #[inline]
22721    fn syntax(&self) -> &SyntaxNode {
22722        &self.syntax
22723    }
22724}
22725impl AstNode for JsonBehaviorFalse {
22726    #[inline]
22727    fn can_cast(kind: SyntaxKind) -> bool {
22728        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
22729    }
22730    #[inline]
22731    fn cast(syntax: SyntaxNode) -> Option<Self> {
22732        if Self::can_cast(syntax.kind()) {
22733            Some(Self { syntax })
22734        } else {
22735            None
22736        }
22737    }
22738    #[inline]
22739    fn syntax(&self) -> &SyntaxNode {
22740        &self.syntax
22741    }
22742}
22743impl AstNode for JsonBehaviorNull {
22744    #[inline]
22745    fn can_cast(kind: SyntaxKind) -> bool {
22746        kind == SyntaxKind::JSON_BEHAVIOR_NULL
22747    }
22748    #[inline]
22749    fn cast(syntax: SyntaxNode) -> Option<Self> {
22750        if Self::can_cast(syntax.kind()) {
22751            Some(Self { syntax })
22752        } else {
22753            None
22754        }
22755    }
22756    #[inline]
22757    fn syntax(&self) -> &SyntaxNode {
22758        &self.syntax
22759    }
22760}
22761impl AstNode for JsonBehaviorTrue {
22762    #[inline]
22763    fn can_cast(kind: SyntaxKind) -> bool {
22764        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
22765    }
22766    #[inline]
22767    fn cast(syntax: SyntaxNode) -> Option<Self> {
22768        if Self::can_cast(syntax.kind()) {
22769            Some(Self { syntax })
22770        } else {
22771            None
22772        }
22773    }
22774    #[inline]
22775    fn syntax(&self) -> &SyntaxNode {
22776        &self.syntax
22777    }
22778}
22779impl AstNode for JsonBehaviorUnknown {
22780    #[inline]
22781    fn can_cast(kind: SyntaxKind) -> bool {
22782        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
22783    }
22784    #[inline]
22785    fn cast(syntax: SyntaxNode) -> Option<Self> {
22786        if Self::can_cast(syntax.kind()) {
22787            Some(Self { syntax })
22788        } else {
22789            None
22790        }
22791    }
22792    #[inline]
22793    fn syntax(&self) -> &SyntaxNode {
22794        &self.syntax
22795    }
22796}
22797impl AstNode for JsonEncodingClause {
22798    #[inline]
22799    fn can_cast(kind: SyntaxKind) -> bool {
22800        kind == SyntaxKind::JSON_ENCODING_CLAUSE
22801    }
22802    #[inline]
22803    fn cast(syntax: SyntaxNode) -> Option<Self> {
22804        if Self::can_cast(syntax.kind()) {
22805            Some(Self { syntax })
22806        } else {
22807            None
22808        }
22809    }
22810    #[inline]
22811    fn syntax(&self) -> &SyntaxNode {
22812        &self.syntax
22813    }
22814}
22815impl AstNode for JsonExistsFn {
22816    #[inline]
22817    fn can_cast(kind: SyntaxKind) -> bool {
22818        kind == SyntaxKind::JSON_EXISTS_FN
22819    }
22820    #[inline]
22821    fn cast(syntax: SyntaxNode) -> Option<Self> {
22822        if Self::can_cast(syntax.kind()) {
22823            Some(Self { syntax })
22824        } else {
22825            None
22826        }
22827    }
22828    #[inline]
22829    fn syntax(&self) -> &SyntaxNode {
22830        &self.syntax
22831    }
22832}
22833impl AstNode for JsonExprFormat {
22834    #[inline]
22835    fn can_cast(kind: SyntaxKind) -> bool {
22836        kind == SyntaxKind::JSON_EXPR_FORMAT
22837    }
22838    #[inline]
22839    fn cast(syntax: SyntaxNode) -> Option<Self> {
22840        if Self::can_cast(syntax.kind()) {
22841            Some(Self { syntax })
22842        } else {
22843            None
22844        }
22845    }
22846    #[inline]
22847    fn syntax(&self) -> &SyntaxNode {
22848        &self.syntax
22849    }
22850}
22851impl AstNode for JsonFn {
22852    #[inline]
22853    fn can_cast(kind: SyntaxKind) -> bool {
22854        kind == SyntaxKind::JSON_FN
22855    }
22856    #[inline]
22857    fn cast(syntax: SyntaxNode) -> Option<Self> {
22858        if Self::can_cast(syntax.kind()) {
22859            Some(Self { syntax })
22860        } else {
22861            None
22862        }
22863    }
22864    #[inline]
22865    fn syntax(&self) -> &SyntaxNode {
22866        &self.syntax
22867    }
22868}
22869impl AstNode for JsonFormatClause {
22870    #[inline]
22871    fn can_cast(kind: SyntaxKind) -> bool {
22872        kind == SyntaxKind::JSON_FORMAT_CLAUSE
22873    }
22874    #[inline]
22875    fn cast(syntax: SyntaxNode) -> Option<Self> {
22876        if Self::can_cast(syntax.kind()) {
22877            Some(Self { syntax })
22878        } else {
22879            None
22880        }
22881    }
22882    #[inline]
22883    fn syntax(&self) -> &SyntaxNode {
22884        &self.syntax
22885    }
22886}
22887impl AstNode for JsonKeyValue {
22888    #[inline]
22889    fn can_cast(kind: SyntaxKind) -> bool {
22890        kind == SyntaxKind::JSON_KEY_VALUE
22891    }
22892    #[inline]
22893    fn cast(syntax: SyntaxNode) -> Option<Self> {
22894        if Self::can_cast(syntax.kind()) {
22895            Some(Self { syntax })
22896        } else {
22897            None
22898        }
22899    }
22900    #[inline]
22901    fn syntax(&self) -> &SyntaxNode {
22902        &self.syntax
22903    }
22904}
22905impl AstNode for JsonKeysUniqueClause {
22906    #[inline]
22907    fn can_cast(kind: SyntaxKind) -> bool {
22908        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
22909    }
22910    #[inline]
22911    fn cast(syntax: SyntaxNode) -> Option<Self> {
22912        if Self::can_cast(syntax.kind()) {
22913            Some(Self { syntax })
22914        } else {
22915            None
22916        }
22917    }
22918    #[inline]
22919    fn syntax(&self) -> &SyntaxNode {
22920        &self.syntax
22921    }
22922}
22923impl AstNode for JsonNullClause {
22924    #[inline]
22925    fn can_cast(kind: SyntaxKind) -> bool {
22926        kind == SyntaxKind::JSON_NULL_CLAUSE
22927    }
22928    #[inline]
22929    fn cast(syntax: SyntaxNode) -> Option<Self> {
22930        if Self::can_cast(syntax.kind()) {
22931            Some(Self { syntax })
22932        } else {
22933            None
22934        }
22935    }
22936    #[inline]
22937    fn syntax(&self) -> &SyntaxNode {
22938        &self.syntax
22939    }
22940}
22941impl AstNode for JsonObjectAggFn {
22942    #[inline]
22943    fn can_cast(kind: SyntaxKind) -> bool {
22944        kind == SyntaxKind::JSON_OBJECT_AGG_FN
22945    }
22946    #[inline]
22947    fn cast(syntax: SyntaxNode) -> Option<Self> {
22948        if Self::can_cast(syntax.kind()) {
22949            Some(Self { syntax })
22950        } else {
22951            None
22952        }
22953    }
22954    #[inline]
22955    fn syntax(&self) -> &SyntaxNode {
22956        &self.syntax
22957    }
22958}
22959impl AstNode for JsonObjectFn {
22960    #[inline]
22961    fn can_cast(kind: SyntaxKind) -> bool {
22962        kind == SyntaxKind::JSON_OBJECT_FN
22963    }
22964    #[inline]
22965    fn cast(syntax: SyntaxNode) -> Option<Self> {
22966        if Self::can_cast(syntax.kind()) {
22967            Some(Self { syntax })
22968        } else {
22969            None
22970        }
22971    }
22972    #[inline]
22973    fn syntax(&self) -> &SyntaxNode {
22974        &self.syntax
22975    }
22976}
22977impl AstNode for JsonOnEmptyClause {
22978    #[inline]
22979    fn can_cast(kind: SyntaxKind) -> bool {
22980        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
22981    }
22982    #[inline]
22983    fn cast(syntax: SyntaxNode) -> Option<Self> {
22984        if Self::can_cast(syntax.kind()) {
22985            Some(Self { syntax })
22986        } else {
22987            None
22988        }
22989    }
22990    #[inline]
22991    fn syntax(&self) -> &SyntaxNode {
22992        &self.syntax
22993    }
22994}
22995impl AstNode for JsonOnErrorClause {
22996    #[inline]
22997    fn can_cast(kind: SyntaxKind) -> bool {
22998        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
22999    }
23000    #[inline]
23001    fn cast(syntax: SyntaxNode) -> Option<Self> {
23002        if Self::can_cast(syntax.kind()) {
23003            Some(Self { syntax })
23004        } else {
23005            None
23006        }
23007    }
23008    #[inline]
23009    fn syntax(&self) -> &SyntaxNode {
23010        &self.syntax
23011    }
23012}
23013impl AstNode for JsonPassingArg {
23014    #[inline]
23015    fn can_cast(kind: SyntaxKind) -> bool {
23016        kind == SyntaxKind::JSON_PASSING_ARG
23017    }
23018    #[inline]
23019    fn cast(syntax: SyntaxNode) -> Option<Self> {
23020        if Self::can_cast(syntax.kind()) {
23021            Some(Self { syntax })
23022        } else {
23023            None
23024        }
23025    }
23026    #[inline]
23027    fn syntax(&self) -> &SyntaxNode {
23028        &self.syntax
23029    }
23030}
23031impl AstNode for JsonPassingClause {
23032    #[inline]
23033    fn can_cast(kind: SyntaxKind) -> bool {
23034        kind == SyntaxKind::JSON_PASSING_CLAUSE
23035    }
23036    #[inline]
23037    fn cast(syntax: SyntaxNode) -> Option<Self> {
23038        if Self::can_cast(syntax.kind()) {
23039            Some(Self { syntax })
23040        } else {
23041            None
23042        }
23043    }
23044    #[inline]
23045    fn syntax(&self) -> &SyntaxNode {
23046        &self.syntax
23047    }
23048}
23049impl AstNode for JsonPathClause {
23050    #[inline]
23051    fn can_cast(kind: SyntaxKind) -> bool {
23052        kind == SyntaxKind::JSON_PATH_CLAUSE
23053    }
23054    #[inline]
23055    fn cast(syntax: SyntaxNode) -> Option<Self> {
23056        if Self::can_cast(syntax.kind()) {
23057            Some(Self { syntax })
23058        } else {
23059            None
23060        }
23061    }
23062    #[inline]
23063    fn syntax(&self) -> &SyntaxNode {
23064        &self.syntax
23065    }
23066}
23067impl AstNode for JsonQueryFn {
23068    #[inline]
23069    fn can_cast(kind: SyntaxKind) -> bool {
23070        kind == SyntaxKind::JSON_QUERY_FN
23071    }
23072    #[inline]
23073    fn cast(syntax: SyntaxNode) -> Option<Self> {
23074        if Self::can_cast(syntax.kind()) {
23075            Some(Self { syntax })
23076        } else {
23077            None
23078        }
23079    }
23080    #[inline]
23081    fn syntax(&self) -> &SyntaxNode {
23082        &self.syntax
23083    }
23084}
23085impl AstNode for JsonQuotesClause {
23086    #[inline]
23087    fn can_cast(kind: SyntaxKind) -> bool {
23088        kind == SyntaxKind::JSON_QUOTES_CLAUSE
23089    }
23090    #[inline]
23091    fn cast(syntax: SyntaxNode) -> Option<Self> {
23092        if Self::can_cast(syntax.kind()) {
23093            Some(Self { syntax })
23094        } else {
23095            None
23096        }
23097    }
23098    #[inline]
23099    fn syntax(&self) -> &SyntaxNode {
23100        &self.syntax
23101    }
23102}
23103impl AstNode for JsonReturningClause {
23104    #[inline]
23105    fn can_cast(kind: SyntaxKind) -> bool {
23106        kind == SyntaxKind::JSON_RETURNING_CLAUSE
23107    }
23108    #[inline]
23109    fn cast(syntax: SyntaxNode) -> Option<Self> {
23110        if Self::can_cast(syntax.kind()) {
23111            Some(Self { syntax })
23112        } else {
23113            None
23114        }
23115    }
23116    #[inline]
23117    fn syntax(&self) -> &SyntaxNode {
23118        &self.syntax
23119    }
23120}
23121impl AstNode for JsonScalarFn {
23122    #[inline]
23123    fn can_cast(kind: SyntaxKind) -> bool {
23124        kind == SyntaxKind::JSON_SCALAR_FN
23125    }
23126    #[inline]
23127    fn cast(syntax: SyntaxNode) -> Option<Self> {
23128        if Self::can_cast(syntax.kind()) {
23129            Some(Self { syntax })
23130        } else {
23131            None
23132        }
23133    }
23134    #[inline]
23135    fn syntax(&self) -> &SyntaxNode {
23136        &self.syntax
23137    }
23138}
23139impl AstNode for JsonSelectFormat {
23140    #[inline]
23141    fn can_cast(kind: SyntaxKind) -> bool {
23142        kind == SyntaxKind::JSON_SELECT_FORMAT
23143    }
23144    #[inline]
23145    fn cast(syntax: SyntaxNode) -> Option<Self> {
23146        if Self::can_cast(syntax.kind()) {
23147            Some(Self { syntax })
23148        } else {
23149            None
23150        }
23151    }
23152    #[inline]
23153    fn syntax(&self) -> &SyntaxNode {
23154        &self.syntax
23155    }
23156}
23157impl AstNode for JsonSerializeFn {
23158    #[inline]
23159    fn can_cast(kind: SyntaxKind) -> bool {
23160        kind == SyntaxKind::JSON_SERIALIZE_FN
23161    }
23162    #[inline]
23163    fn cast(syntax: SyntaxNode) -> Option<Self> {
23164        if Self::can_cast(syntax.kind()) {
23165            Some(Self { syntax })
23166        } else {
23167            None
23168        }
23169    }
23170    #[inline]
23171    fn syntax(&self) -> &SyntaxNode {
23172        &self.syntax
23173    }
23174}
23175impl AstNode for JsonTable {
23176    #[inline]
23177    fn can_cast(kind: SyntaxKind) -> bool {
23178        kind == SyntaxKind::JSON_TABLE
23179    }
23180    #[inline]
23181    fn cast(syntax: SyntaxNode) -> Option<Self> {
23182        if Self::can_cast(syntax.kind()) {
23183            Some(Self { syntax })
23184        } else {
23185            None
23186        }
23187    }
23188    #[inline]
23189    fn syntax(&self) -> &SyntaxNode {
23190        &self.syntax
23191    }
23192}
23193impl AstNode for JsonTableColumn {
23194    #[inline]
23195    fn can_cast(kind: SyntaxKind) -> bool {
23196        kind == SyntaxKind::JSON_TABLE_COLUMN
23197    }
23198    #[inline]
23199    fn cast(syntax: SyntaxNode) -> Option<Self> {
23200        if Self::can_cast(syntax.kind()) {
23201            Some(Self { syntax })
23202        } else {
23203            None
23204        }
23205    }
23206    #[inline]
23207    fn syntax(&self) -> &SyntaxNode {
23208        &self.syntax
23209    }
23210}
23211impl AstNode for JsonTableColumnList {
23212    #[inline]
23213    fn can_cast(kind: SyntaxKind) -> bool {
23214        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
23215    }
23216    #[inline]
23217    fn cast(syntax: SyntaxNode) -> Option<Self> {
23218        if Self::can_cast(syntax.kind()) {
23219            Some(Self { syntax })
23220        } else {
23221            None
23222        }
23223    }
23224    #[inline]
23225    fn syntax(&self) -> &SyntaxNode {
23226        &self.syntax
23227    }
23228}
23229impl AstNode for JsonValueExpr {
23230    #[inline]
23231    fn can_cast(kind: SyntaxKind) -> bool {
23232        kind == SyntaxKind::JSON_VALUE_EXPR
23233    }
23234    #[inline]
23235    fn cast(syntax: SyntaxNode) -> Option<Self> {
23236        if Self::can_cast(syntax.kind()) {
23237            Some(Self { syntax })
23238        } else {
23239            None
23240        }
23241    }
23242    #[inline]
23243    fn syntax(&self) -> &SyntaxNode {
23244        &self.syntax
23245    }
23246}
23247impl AstNode for JsonValueFn {
23248    #[inline]
23249    fn can_cast(kind: SyntaxKind) -> bool {
23250        kind == SyntaxKind::JSON_VALUE_FN
23251    }
23252    #[inline]
23253    fn cast(syntax: SyntaxNode) -> Option<Self> {
23254        if Self::can_cast(syntax.kind()) {
23255            Some(Self { syntax })
23256        } else {
23257            None
23258        }
23259    }
23260    #[inline]
23261    fn syntax(&self) -> &SyntaxNode {
23262        &self.syntax
23263    }
23264}
23265impl AstNode for JsonWrapperBehaviorClause {
23266    #[inline]
23267    fn can_cast(kind: SyntaxKind) -> bool {
23268        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
23269    }
23270    #[inline]
23271    fn cast(syntax: SyntaxNode) -> Option<Self> {
23272        if Self::can_cast(syntax.kind()) {
23273            Some(Self { syntax })
23274        } else {
23275            None
23276        }
23277    }
23278    #[inline]
23279    fn syntax(&self) -> &SyntaxNode {
23280        &self.syntax
23281    }
23282}
23283impl AstNode for LanguageFuncOption {
23284    #[inline]
23285    fn can_cast(kind: SyntaxKind) -> bool {
23286        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
23287    }
23288    #[inline]
23289    fn cast(syntax: SyntaxNode) -> Option<Self> {
23290        if Self::can_cast(syntax.kind()) {
23291            Some(Self { syntax })
23292        } else {
23293            None
23294        }
23295    }
23296    #[inline]
23297    fn syntax(&self) -> &SyntaxNode {
23298        &self.syntax
23299    }
23300}
23301impl AstNode for LeakproofFuncOption {
23302    #[inline]
23303    fn can_cast(kind: SyntaxKind) -> bool {
23304        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
23305    }
23306    #[inline]
23307    fn cast(syntax: SyntaxNode) -> Option<Self> {
23308        if Self::can_cast(syntax.kind()) {
23309            Some(Self { syntax })
23310        } else {
23311            None
23312        }
23313    }
23314    #[inline]
23315    fn syntax(&self) -> &SyntaxNode {
23316        &self.syntax
23317    }
23318}
23319impl AstNode for LikeClause {
23320    #[inline]
23321    fn can_cast(kind: SyntaxKind) -> bool {
23322        kind == SyntaxKind::LIKE_CLAUSE
23323    }
23324    #[inline]
23325    fn cast(syntax: SyntaxNode) -> Option<Self> {
23326        if Self::can_cast(syntax.kind()) {
23327            Some(Self { syntax })
23328        } else {
23329            None
23330        }
23331    }
23332    #[inline]
23333    fn syntax(&self) -> &SyntaxNode {
23334        &self.syntax
23335    }
23336}
23337impl AstNode for LikeOption {
23338    #[inline]
23339    fn can_cast(kind: SyntaxKind) -> bool {
23340        kind == SyntaxKind::LIKE_OPTION
23341    }
23342    #[inline]
23343    fn cast(syntax: SyntaxNode) -> Option<Self> {
23344        if Self::can_cast(syntax.kind()) {
23345            Some(Self { syntax })
23346        } else {
23347            None
23348        }
23349    }
23350    #[inline]
23351    fn syntax(&self) -> &SyntaxNode {
23352        &self.syntax
23353    }
23354}
23355impl AstNode for LimitClause {
23356    #[inline]
23357    fn can_cast(kind: SyntaxKind) -> bool {
23358        kind == SyntaxKind::LIMIT_CLAUSE
23359    }
23360    #[inline]
23361    fn cast(syntax: SyntaxNode) -> Option<Self> {
23362        if Self::can_cast(syntax.kind()) {
23363            Some(Self { syntax })
23364        } else {
23365            None
23366        }
23367    }
23368    #[inline]
23369    fn syntax(&self) -> &SyntaxNode {
23370        &self.syntax
23371    }
23372}
23373impl AstNode for LimitToTables {
23374    #[inline]
23375    fn can_cast(kind: SyntaxKind) -> bool {
23376        kind == SyntaxKind::LIMIT_TO_TABLES
23377    }
23378    #[inline]
23379    fn cast(syntax: SyntaxNode) -> Option<Self> {
23380        if Self::can_cast(syntax.kind()) {
23381            Some(Self { syntax })
23382        } else {
23383            None
23384        }
23385    }
23386    #[inline]
23387    fn syntax(&self) -> &SyntaxNode {
23388        &self.syntax
23389    }
23390}
23391impl AstNode for Listen {
23392    #[inline]
23393    fn can_cast(kind: SyntaxKind) -> bool {
23394        kind == SyntaxKind::LISTEN
23395    }
23396    #[inline]
23397    fn cast(syntax: SyntaxNode) -> Option<Self> {
23398        if Self::can_cast(syntax.kind()) {
23399            Some(Self { syntax })
23400        } else {
23401            None
23402        }
23403    }
23404    #[inline]
23405    fn syntax(&self) -> &SyntaxNode {
23406        &self.syntax
23407    }
23408}
23409impl AstNode for Literal {
23410    #[inline]
23411    fn can_cast(kind: SyntaxKind) -> bool {
23412        kind == SyntaxKind::LITERAL
23413    }
23414    #[inline]
23415    fn cast(syntax: SyntaxNode) -> Option<Self> {
23416        if Self::can_cast(syntax.kind()) {
23417            Some(Self { syntax })
23418        } else {
23419            None
23420        }
23421    }
23422    #[inline]
23423    fn syntax(&self) -> &SyntaxNode {
23424        &self.syntax
23425    }
23426}
23427impl AstNode for Load {
23428    #[inline]
23429    fn can_cast(kind: SyntaxKind) -> bool {
23430        kind == SyntaxKind::LOAD
23431    }
23432    #[inline]
23433    fn cast(syntax: SyntaxNode) -> Option<Self> {
23434        if Self::can_cast(syntax.kind()) {
23435            Some(Self { syntax })
23436        } else {
23437            None
23438        }
23439    }
23440    #[inline]
23441    fn syntax(&self) -> &SyntaxNode {
23442        &self.syntax
23443    }
23444}
23445impl AstNode for Lock {
23446    #[inline]
23447    fn can_cast(kind: SyntaxKind) -> bool {
23448        kind == SyntaxKind::LOCK
23449    }
23450    #[inline]
23451    fn cast(syntax: SyntaxNode) -> Option<Self> {
23452        if Self::can_cast(syntax.kind()) {
23453            Some(Self { syntax })
23454        } else {
23455            None
23456        }
23457    }
23458    #[inline]
23459    fn syntax(&self) -> &SyntaxNode {
23460        &self.syntax
23461    }
23462}
23463impl AstNode for LockingClause {
23464    #[inline]
23465    fn can_cast(kind: SyntaxKind) -> bool {
23466        kind == SyntaxKind::LOCKING_CLAUSE
23467    }
23468    #[inline]
23469    fn cast(syntax: SyntaxNode) -> Option<Self> {
23470        if Self::can_cast(syntax.kind()) {
23471            Some(Self { syntax })
23472        } else {
23473            None
23474        }
23475    }
23476    #[inline]
23477    fn syntax(&self) -> &SyntaxNode {
23478        &self.syntax
23479    }
23480}
23481impl AstNode for Lteq {
23482    #[inline]
23483    fn can_cast(kind: SyntaxKind) -> bool {
23484        kind == SyntaxKind::LTEQ
23485    }
23486    #[inline]
23487    fn cast(syntax: SyntaxNode) -> Option<Self> {
23488        if Self::can_cast(syntax.kind()) {
23489            Some(Self { syntax })
23490        } else {
23491            None
23492        }
23493    }
23494    #[inline]
23495    fn syntax(&self) -> &SyntaxNode {
23496        &self.syntax
23497    }
23498}
23499impl AstNode for MatchFull {
23500    #[inline]
23501    fn can_cast(kind: SyntaxKind) -> bool {
23502        kind == SyntaxKind::MATCH_FULL
23503    }
23504    #[inline]
23505    fn cast(syntax: SyntaxNode) -> Option<Self> {
23506        if Self::can_cast(syntax.kind()) {
23507            Some(Self { syntax })
23508        } else {
23509            None
23510        }
23511    }
23512    #[inline]
23513    fn syntax(&self) -> &SyntaxNode {
23514        &self.syntax
23515    }
23516}
23517impl AstNode for MatchPartial {
23518    #[inline]
23519    fn can_cast(kind: SyntaxKind) -> bool {
23520        kind == SyntaxKind::MATCH_PARTIAL
23521    }
23522    #[inline]
23523    fn cast(syntax: SyntaxNode) -> Option<Self> {
23524        if Self::can_cast(syntax.kind()) {
23525            Some(Self { syntax })
23526        } else {
23527            None
23528        }
23529    }
23530    #[inline]
23531    fn syntax(&self) -> &SyntaxNode {
23532        &self.syntax
23533    }
23534}
23535impl AstNode for MatchSimple {
23536    #[inline]
23537    fn can_cast(kind: SyntaxKind) -> bool {
23538        kind == SyntaxKind::MATCH_SIMPLE
23539    }
23540    #[inline]
23541    fn cast(syntax: SyntaxNode) -> Option<Self> {
23542        if Self::can_cast(syntax.kind()) {
23543            Some(Self { syntax })
23544        } else {
23545            None
23546        }
23547    }
23548    #[inline]
23549    fn syntax(&self) -> &SyntaxNode {
23550        &self.syntax
23551    }
23552}
23553impl AstNode for Materialized {
23554    #[inline]
23555    fn can_cast(kind: SyntaxKind) -> bool {
23556        kind == SyntaxKind::MATERIALIZED
23557    }
23558    #[inline]
23559    fn cast(syntax: SyntaxNode) -> Option<Self> {
23560        if Self::can_cast(syntax.kind()) {
23561            Some(Self { syntax })
23562        } else {
23563            None
23564        }
23565    }
23566    #[inline]
23567    fn syntax(&self) -> &SyntaxNode {
23568        &self.syntax
23569    }
23570}
23571impl AstNode for Merge {
23572    #[inline]
23573    fn can_cast(kind: SyntaxKind) -> bool {
23574        kind == SyntaxKind::MERGE
23575    }
23576    #[inline]
23577    fn cast(syntax: SyntaxNode) -> Option<Self> {
23578        if Self::can_cast(syntax.kind()) {
23579            Some(Self { syntax })
23580        } else {
23581            None
23582        }
23583    }
23584    #[inline]
23585    fn syntax(&self) -> &SyntaxNode {
23586        &self.syntax
23587    }
23588}
23589impl AstNode for MergeDelete {
23590    #[inline]
23591    fn can_cast(kind: SyntaxKind) -> bool {
23592        kind == SyntaxKind::MERGE_DELETE
23593    }
23594    #[inline]
23595    fn cast(syntax: SyntaxNode) -> Option<Self> {
23596        if Self::can_cast(syntax.kind()) {
23597            Some(Self { syntax })
23598        } else {
23599            None
23600        }
23601    }
23602    #[inline]
23603    fn syntax(&self) -> &SyntaxNode {
23604        &self.syntax
23605    }
23606}
23607impl AstNode for MergeDoNothing {
23608    #[inline]
23609    fn can_cast(kind: SyntaxKind) -> bool {
23610        kind == SyntaxKind::MERGE_DO_NOTHING
23611    }
23612    #[inline]
23613    fn cast(syntax: SyntaxNode) -> Option<Self> {
23614        if Self::can_cast(syntax.kind()) {
23615            Some(Self { syntax })
23616        } else {
23617            None
23618        }
23619    }
23620    #[inline]
23621    fn syntax(&self) -> &SyntaxNode {
23622        &self.syntax
23623    }
23624}
23625impl AstNode for MergeInsert {
23626    #[inline]
23627    fn can_cast(kind: SyntaxKind) -> bool {
23628        kind == SyntaxKind::MERGE_INSERT
23629    }
23630    #[inline]
23631    fn cast(syntax: SyntaxNode) -> Option<Self> {
23632        if Self::can_cast(syntax.kind()) {
23633            Some(Self { syntax })
23634        } else {
23635            None
23636        }
23637    }
23638    #[inline]
23639    fn syntax(&self) -> &SyntaxNode {
23640        &self.syntax
23641    }
23642}
23643impl AstNode for MergePartitions {
23644    #[inline]
23645    fn can_cast(kind: SyntaxKind) -> bool {
23646        kind == SyntaxKind::MERGE_PARTITIONS
23647    }
23648    #[inline]
23649    fn cast(syntax: SyntaxNode) -> Option<Self> {
23650        if Self::can_cast(syntax.kind()) {
23651            Some(Self { syntax })
23652        } else {
23653            None
23654        }
23655    }
23656    #[inline]
23657    fn syntax(&self) -> &SyntaxNode {
23658        &self.syntax
23659    }
23660}
23661impl AstNode for MergeUpdate {
23662    #[inline]
23663    fn can_cast(kind: SyntaxKind) -> bool {
23664        kind == SyntaxKind::MERGE_UPDATE
23665    }
23666    #[inline]
23667    fn cast(syntax: SyntaxNode) -> Option<Self> {
23668        if Self::can_cast(syntax.kind()) {
23669            Some(Self { syntax })
23670        } else {
23671            None
23672        }
23673    }
23674    #[inline]
23675    fn syntax(&self) -> &SyntaxNode {
23676        &self.syntax
23677    }
23678}
23679impl AstNode for MergeWhenMatched {
23680    #[inline]
23681    fn can_cast(kind: SyntaxKind) -> bool {
23682        kind == SyntaxKind::MERGE_WHEN_MATCHED
23683    }
23684    #[inline]
23685    fn cast(syntax: SyntaxNode) -> Option<Self> {
23686        if Self::can_cast(syntax.kind()) {
23687            Some(Self { syntax })
23688        } else {
23689            None
23690        }
23691    }
23692    #[inline]
23693    fn syntax(&self) -> &SyntaxNode {
23694        &self.syntax
23695    }
23696}
23697impl AstNode for MergeWhenNotMatchedSource {
23698    #[inline]
23699    fn can_cast(kind: SyntaxKind) -> bool {
23700        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
23701    }
23702    #[inline]
23703    fn cast(syntax: SyntaxNode) -> Option<Self> {
23704        if Self::can_cast(syntax.kind()) {
23705            Some(Self { syntax })
23706        } else {
23707            None
23708        }
23709    }
23710    #[inline]
23711    fn syntax(&self) -> &SyntaxNode {
23712        &self.syntax
23713    }
23714}
23715impl AstNode for MergeWhenNotMatchedTarget {
23716    #[inline]
23717    fn can_cast(kind: SyntaxKind) -> bool {
23718        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
23719    }
23720    #[inline]
23721    fn cast(syntax: SyntaxNode) -> Option<Self> {
23722        if Self::can_cast(syntax.kind()) {
23723            Some(Self { syntax })
23724        } else {
23725            None
23726        }
23727    }
23728    #[inline]
23729    fn syntax(&self) -> &SyntaxNode {
23730        &self.syntax
23731    }
23732}
23733impl AstNode for Move {
23734    #[inline]
23735    fn can_cast(kind: SyntaxKind) -> bool {
23736        kind == SyntaxKind::MOVE
23737    }
23738    #[inline]
23739    fn cast(syntax: SyntaxNode) -> Option<Self> {
23740        if Self::can_cast(syntax.kind()) {
23741            Some(Self { syntax })
23742        } else {
23743            None
23744        }
23745    }
23746    #[inline]
23747    fn syntax(&self) -> &SyntaxNode {
23748        &self.syntax
23749    }
23750}
23751impl AstNode for Name {
23752    #[inline]
23753    fn can_cast(kind: SyntaxKind) -> bool {
23754        kind == SyntaxKind::NAME
23755    }
23756    #[inline]
23757    fn cast(syntax: SyntaxNode) -> Option<Self> {
23758        if Self::can_cast(syntax.kind()) {
23759            Some(Self { syntax })
23760        } else {
23761            None
23762        }
23763    }
23764    #[inline]
23765    fn syntax(&self) -> &SyntaxNode {
23766        &self.syntax
23767    }
23768}
23769impl AstNode for NameRef {
23770    #[inline]
23771    fn can_cast(kind: SyntaxKind) -> bool {
23772        kind == SyntaxKind::NAME_REF
23773    }
23774    #[inline]
23775    fn cast(syntax: SyntaxNode) -> Option<Self> {
23776        if Self::can_cast(syntax.kind()) {
23777            Some(Self { syntax })
23778        } else {
23779            None
23780        }
23781    }
23782    #[inline]
23783    fn syntax(&self) -> &SyntaxNode {
23784        &self.syntax
23785    }
23786}
23787impl AstNode for NamedArg {
23788    #[inline]
23789    fn can_cast(kind: SyntaxKind) -> bool {
23790        kind == SyntaxKind::NAMED_ARG
23791    }
23792    #[inline]
23793    fn cast(syntax: SyntaxNode) -> Option<Self> {
23794        if Self::can_cast(syntax.kind()) {
23795            Some(Self { syntax })
23796        } else {
23797            None
23798        }
23799    }
23800    #[inline]
23801    fn syntax(&self) -> &SyntaxNode {
23802        &self.syntax
23803    }
23804}
23805impl AstNode for Neq {
23806    #[inline]
23807    fn can_cast(kind: SyntaxKind) -> bool {
23808        kind == SyntaxKind::NEQ
23809    }
23810    #[inline]
23811    fn cast(syntax: SyntaxNode) -> Option<Self> {
23812        if Self::can_cast(syntax.kind()) {
23813            Some(Self { syntax })
23814        } else {
23815            None
23816        }
23817    }
23818    #[inline]
23819    fn syntax(&self) -> &SyntaxNode {
23820        &self.syntax
23821    }
23822}
23823impl AstNode for Neqb {
23824    #[inline]
23825    fn can_cast(kind: SyntaxKind) -> bool {
23826        kind == SyntaxKind::NEQB
23827    }
23828    #[inline]
23829    fn cast(syntax: SyntaxNode) -> Option<Self> {
23830        if Self::can_cast(syntax.kind()) {
23831            Some(Self { syntax })
23832        } else {
23833            None
23834        }
23835    }
23836    #[inline]
23837    fn syntax(&self) -> &SyntaxNode {
23838        &self.syntax
23839    }
23840}
23841impl AstNode for NoAction {
23842    #[inline]
23843    fn can_cast(kind: SyntaxKind) -> bool {
23844        kind == SyntaxKind::NO_ACTION
23845    }
23846    #[inline]
23847    fn cast(syntax: SyntaxNode) -> Option<Self> {
23848        if Self::can_cast(syntax.kind()) {
23849            Some(Self { syntax })
23850        } else {
23851            None
23852        }
23853    }
23854    #[inline]
23855    fn syntax(&self) -> &SyntaxNode {
23856        &self.syntax
23857    }
23858}
23859impl AstNode for NoDependsOnExtension {
23860    #[inline]
23861    fn can_cast(kind: SyntaxKind) -> bool {
23862        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
23863    }
23864    #[inline]
23865    fn cast(syntax: SyntaxNode) -> Option<Self> {
23866        if Self::can_cast(syntax.kind()) {
23867            Some(Self { syntax })
23868        } else {
23869            None
23870        }
23871    }
23872    #[inline]
23873    fn syntax(&self) -> &SyntaxNode {
23874        &self.syntax
23875    }
23876}
23877impl AstNode for NoForceRls {
23878    #[inline]
23879    fn can_cast(kind: SyntaxKind) -> bool {
23880        kind == SyntaxKind::NO_FORCE_RLS
23881    }
23882    #[inline]
23883    fn cast(syntax: SyntaxNode) -> Option<Self> {
23884        if Self::can_cast(syntax.kind()) {
23885            Some(Self { syntax })
23886        } else {
23887            None
23888        }
23889    }
23890    #[inline]
23891    fn syntax(&self) -> &SyntaxNode {
23892        &self.syntax
23893    }
23894}
23895impl AstNode for NoInherit {
23896    #[inline]
23897    fn can_cast(kind: SyntaxKind) -> bool {
23898        kind == SyntaxKind::NO_INHERIT
23899    }
23900    #[inline]
23901    fn cast(syntax: SyntaxNode) -> Option<Self> {
23902        if Self::can_cast(syntax.kind()) {
23903            Some(Self { syntax })
23904        } else {
23905            None
23906        }
23907    }
23908    #[inline]
23909    fn syntax(&self) -> &SyntaxNode {
23910        &self.syntax
23911    }
23912}
23913impl AstNode for NoInheritTable {
23914    #[inline]
23915    fn can_cast(kind: SyntaxKind) -> bool {
23916        kind == SyntaxKind::NO_INHERIT_TABLE
23917    }
23918    #[inline]
23919    fn cast(syntax: SyntaxNode) -> Option<Self> {
23920        if Self::can_cast(syntax.kind()) {
23921            Some(Self { syntax })
23922        } else {
23923            None
23924        }
23925    }
23926    #[inline]
23927    fn syntax(&self) -> &SyntaxNode {
23928        &self.syntax
23929    }
23930}
23931impl AstNode for NonStandardParam {
23932    #[inline]
23933    fn can_cast(kind: SyntaxKind) -> bool {
23934        kind == SyntaxKind::NON_STANDARD_PARAM
23935    }
23936    #[inline]
23937    fn cast(syntax: SyntaxNode) -> Option<Self> {
23938        if Self::can_cast(syntax.kind()) {
23939            Some(Self { syntax })
23940        } else {
23941            None
23942        }
23943    }
23944    #[inline]
23945    fn syntax(&self) -> &SyntaxNode {
23946        &self.syntax
23947    }
23948}
23949impl AstNode for NotDeferrable {
23950    #[inline]
23951    fn can_cast(kind: SyntaxKind) -> bool {
23952        kind == SyntaxKind::NOT_DEFERRABLE
23953    }
23954    #[inline]
23955    fn cast(syntax: SyntaxNode) -> Option<Self> {
23956        if Self::can_cast(syntax.kind()) {
23957            Some(Self { syntax })
23958        } else {
23959            None
23960        }
23961    }
23962    #[inline]
23963    fn syntax(&self) -> &SyntaxNode {
23964        &self.syntax
23965    }
23966}
23967impl AstNode for NotDeferrableConstraintOption {
23968    #[inline]
23969    fn can_cast(kind: SyntaxKind) -> bool {
23970        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
23971    }
23972    #[inline]
23973    fn cast(syntax: SyntaxNode) -> Option<Self> {
23974        if Self::can_cast(syntax.kind()) {
23975            Some(Self { syntax })
23976        } else {
23977            None
23978        }
23979    }
23980    #[inline]
23981    fn syntax(&self) -> &SyntaxNode {
23982        &self.syntax
23983    }
23984}
23985impl AstNode for NotEnforced {
23986    #[inline]
23987    fn can_cast(kind: SyntaxKind) -> bool {
23988        kind == SyntaxKind::NOT_ENFORCED
23989    }
23990    #[inline]
23991    fn cast(syntax: SyntaxNode) -> Option<Self> {
23992        if Self::can_cast(syntax.kind()) {
23993            Some(Self { syntax })
23994        } else {
23995            None
23996        }
23997    }
23998    #[inline]
23999    fn syntax(&self) -> &SyntaxNode {
24000        &self.syntax
24001    }
24002}
24003impl AstNode for NotIlike {
24004    #[inline]
24005    fn can_cast(kind: SyntaxKind) -> bool {
24006        kind == SyntaxKind::NOT_ILIKE
24007    }
24008    #[inline]
24009    fn cast(syntax: SyntaxNode) -> Option<Self> {
24010        if Self::can_cast(syntax.kind()) {
24011            Some(Self { syntax })
24012        } else {
24013            None
24014        }
24015    }
24016    #[inline]
24017    fn syntax(&self) -> &SyntaxNode {
24018        &self.syntax
24019    }
24020}
24021impl AstNode for NotIn {
24022    #[inline]
24023    fn can_cast(kind: SyntaxKind) -> bool {
24024        kind == SyntaxKind::NOT_IN
24025    }
24026    #[inline]
24027    fn cast(syntax: SyntaxNode) -> Option<Self> {
24028        if Self::can_cast(syntax.kind()) {
24029            Some(Self { syntax })
24030        } else {
24031            None
24032        }
24033    }
24034    #[inline]
24035    fn syntax(&self) -> &SyntaxNode {
24036        &self.syntax
24037    }
24038}
24039impl AstNode for NotLike {
24040    #[inline]
24041    fn can_cast(kind: SyntaxKind) -> bool {
24042        kind == SyntaxKind::NOT_LIKE
24043    }
24044    #[inline]
24045    fn cast(syntax: SyntaxNode) -> Option<Self> {
24046        if Self::can_cast(syntax.kind()) {
24047            Some(Self { syntax })
24048        } else {
24049            None
24050        }
24051    }
24052    #[inline]
24053    fn syntax(&self) -> &SyntaxNode {
24054        &self.syntax
24055    }
24056}
24057impl AstNode for NotMaterialized {
24058    #[inline]
24059    fn can_cast(kind: SyntaxKind) -> bool {
24060        kind == SyntaxKind::NOT_MATERIALIZED
24061    }
24062    #[inline]
24063    fn cast(syntax: SyntaxNode) -> Option<Self> {
24064        if Self::can_cast(syntax.kind()) {
24065            Some(Self { syntax })
24066        } else {
24067            None
24068        }
24069    }
24070    #[inline]
24071    fn syntax(&self) -> &SyntaxNode {
24072        &self.syntax
24073    }
24074}
24075impl AstNode for NotNullConstraint {
24076    #[inline]
24077    fn can_cast(kind: SyntaxKind) -> bool {
24078        kind == SyntaxKind::NOT_NULL_CONSTRAINT
24079    }
24080    #[inline]
24081    fn cast(syntax: SyntaxNode) -> Option<Self> {
24082        if Self::can_cast(syntax.kind()) {
24083            Some(Self { syntax })
24084        } else {
24085            None
24086        }
24087    }
24088    #[inline]
24089    fn syntax(&self) -> &SyntaxNode {
24090        &self.syntax
24091    }
24092}
24093impl AstNode for NotOf {
24094    #[inline]
24095    fn can_cast(kind: SyntaxKind) -> bool {
24096        kind == SyntaxKind::NOT_OF
24097    }
24098    #[inline]
24099    fn cast(syntax: SyntaxNode) -> Option<Self> {
24100        if Self::can_cast(syntax.kind()) {
24101            Some(Self { syntax })
24102        } else {
24103            None
24104        }
24105    }
24106    #[inline]
24107    fn syntax(&self) -> &SyntaxNode {
24108        &self.syntax
24109    }
24110}
24111impl AstNode for NotSimilarTo {
24112    #[inline]
24113    fn can_cast(kind: SyntaxKind) -> bool {
24114        kind == SyntaxKind::NOT_SIMILAR_TO
24115    }
24116    #[inline]
24117    fn cast(syntax: SyntaxNode) -> Option<Self> {
24118        if Self::can_cast(syntax.kind()) {
24119            Some(Self { syntax })
24120        } else {
24121            None
24122        }
24123    }
24124    #[inline]
24125    fn syntax(&self) -> &SyntaxNode {
24126        &self.syntax
24127    }
24128}
24129impl AstNode for NotValid {
24130    #[inline]
24131    fn can_cast(kind: SyntaxKind) -> bool {
24132        kind == SyntaxKind::NOT_VALID
24133    }
24134    #[inline]
24135    fn cast(syntax: SyntaxNode) -> Option<Self> {
24136        if Self::can_cast(syntax.kind()) {
24137            Some(Self { syntax })
24138        } else {
24139            None
24140        }
24141    }
24142    #[inline]
24143    fn syntax(&self) -> &SyntaxNode {
24144        &self.syntax
24145    }
24146}
24147impl AstNode for Notify {
24148    #[inline]
24149    fn can_cast(kind: SyntaxKind) -> bool {
24150        kind == SyntaxKind::NOTIFY
24151    }
24152    #[inline]
24153    fn cast(syntax: SyntaxNode) -> Option<Self> {
24154        if Self::can_cast(syntax.kind()) {
24155            Some(Self { syntax })
24156        } else {
24157            None
24158        }
24159    }
24160    #[inline]
24161    fn syntax(&self) -> &SyntaxNode {
24162        &self.syntax
24163    }
24164}
24165impl AstNode for NullConstraint {
24166    #[inline]
24167    fn can_cast(kind: SyntaxKind) -> bool {
24168        kind == SyntaxKind::NULL_CONSTRAINT
24169    }
24170    #[inline]
24171    fn cast(syntax: SyntaxNode) -> Option<Self> {
24172        if Self::can_cast(syntax.kind()) {
24173            Some(Self { syntax })
24174        } else {
24175            None
24176        }
24177    }
24178    #[inline]
24179    fn syntax(&self) -> &SyntaxNode {
24180        &self.syntax
24181    }
24182}
24183impl AstNode for NullsDistinct {
24184    #[inline]
24185    fn can_cast(kind: SyntaxKind) -> bool {
24186        kind == SyntaxKind::NULLS_DISTINCT
24187    }
24188    #[inline]
24189    fn cast(syntax: SyntaxNode) -> Option<Self> {
24190        if Self::can_cast(syntax.kind()) {
24191            Some(Self { syntax })
24192        } else {
24193            None
24194        }
24195    }
24196    #[inline]
24197    fn syntax(&self) -> &SyntaxNode {
24198        &self.syntax
24199    }
24200}
24201impl AstNode for NullsFirst {
24202    #[inline]
24203    fn can_cast(kind: SyntaxKind) -> bool {
24204        kind == SyntaxKind::NULLS_FIRST
24205    }
24206    #[inline]
24207    fn cast(syntax: SyntaxNode) -> Option<Self> {
24208        if Self::can_cast(syntax.kind()) {
24209            Some(Self { syntax })
24210        } else {
24211            None
24212        }
24213    }
24214    #[inline]
24215    fn syntax(&self) -> &SyntaxNode {
24216        &self.syntax
24217    }
24218}
24219impl AstNode for NullsLast {
24220    #[inline]
24221    fn can_cast(kind: SyntaxKind) -> bool {
24222        kind == SyntaxKind::NULLS_LAST
24223    }
24224    #[inline]
24225    fn cast(syntax: SyntaxNode) -> Option<Self> {
24226        if Self::can_cast(syntax.kind()) {
24227            Some(Self { syntax })
24228        } else {
24229            None
24230        }
24231    }
24232    #[inline]
24233    fn syntax(&self) -> &SyntaxNode {
24234        &self.syntax
24235    }
24236}
24237impl AstNode for NullsNotDistinct {
24238    #[inline]
24239    fn can_cast(kind: SyntaxKind) -> bool {
24240        kind == SyntaxKind::NULLS_NOT_DISTINCT
24241    }
24242    #[inline]
24243    fn cast(syntax: SyntaxNode) -> Option<Self> {
24244        if Self::can_cast(syntax.kind()) {
24245            Some(Self { syntax })
24246        } else {
24247            None
24248        }
24249    }
24250    #[inline]
24251    fn syntax(&self) -> &SyntaxNode {
24252        &self.syntax
24253    }
24254}
24255impl AstNode for OfType {
24256    #[inline]
24257    fn can_cast(kind: SyntaxKind) -> bool {
24258        kind == SyntaxKind::OF_TYPE
24259    }
24260    #[inline]
24261    fn cast(syntax: SyntaxNode) -> Option<Self> {
24262        if Self::can_cast(syntax.kind()) {
24263            Some(Self { syntax })
24264        } else {
24265            None
24266        }
24267    }
24268    #[inline]
24269    fn syntax(&self) -> &SyntaxNode {
24270        &self.syntax
24271    }
24272}
24273impl AstNode for OffsetClause {
24274    #[inline]
24275    fn can_cast(kind: SyntaxKind) -> bool {
24276        kind == SyntaxKind::OFFSET_CLAUSE
24277    }
24278    #[inline]
24279    fn cast(syntax: SyntaxNode) -> Option<Self> {
24280        if Self::can_cast(syntax.kind()) {
24281            Some(Self { syntax })
24282        } else {
24283            None
24284        }
24285    }
24286    #[inline]
24287    fn syntax(&self) -> &SyntaxNode {
24288        &self.syntax
24289    }
24290}
24291impl AstNode for OnClause {
24292    #[inline]
24293    fn can_cast(kind: SyntaxKind) -> bool {
24294        kind == SyntaxKind::ON_CLAUSE
24295    }
24296    #[inline]
24297    fn cast(syntax: SyntaxNode) -> Option<Self> {
24298        if Self::can_cast(syntax.kind()) {
24299            Some(Self { syntax })
24300        } else {
24301            None
24302        }
24303    }
24304    #[inline]
24305    fn syntax(&self) -> &SyntaxNode {
24306        &self.syntax
24307    }
24308}
24309impl AstNode for OnCommit {
24310    #[inline]
24311    fn can_cast(kind: SyntaxKind) -> bool {
24312        kind == SyntaxKind::ON_COMMIT
24313    }
24314    #[inline]
24315    fn cast(syntax: SyntaxNode) -> Option<Self> {
24316        if Self::can_cast(syntax.kind()) {
24317            Some(Self { syntax })
24318        } else {
24319            None
24320        }
24321    }
24322    #[inline]
24323    fn syntax(&self) -> &SyntaxNode {
24324        &self.syntax
24325    }
24326}
24327impl AstNode for OnConflictClause {
24328    #[inline]
24329    fn can_cast(kind: SyntaxKind) -> bool {
24330        kind == SyntaxKind::ON_CONFLICT_CLAUSE
24331    }
24332    #[inline]
24333    fn cast(syntax: SyntaxNode) -> Option<Self> {
24334        if Self::can_cast(syntax.kind()) {
24335            Some(Self { syntax })
24336        } else {
24337            None
24338        }
24339    }
24340    #[inline]
24341    fn syntax(&self) -> &SyntaxNode {
24342        &self.syntax
24343    }
24344}
24345impl AstNode for OnDeleteAction {
24346    #[inline]
24347    fn can_cast(kind: SyntaxKind) -> bool {
24348        kind == SyntaxKind::ON_DELETE_ACTION
24349    }
24350    #[inline]
24351    fn cast(syntax: SyntaxNode) -> Option<Self> {
24352        if Self::can_cast(syntax.kind()) {
24353            Some(Self { syntax })
24354        } else {
24355            None
24356        }
24357    }
24358    #[inline]
24359    fn syntax(&self) -> &SyntaxNode {
24360        &self.syntax
24361    }
24362}
24363impl AstNode for OnTable {
24364    #[inline]
24365    fn can_cast(kind: SyntaxKind) -> bool {
24366        kind == SyntaxKind::ON_TABLE
24367    }
24368    #[inline]
24369    fn cast(syntax: SyntaxNode) -> Option<Self> {
24370        if Self::can_cast(syntax.kind()) {
24371            Some(Self { syntax })
24372        } else {
24373            None
24374        }
24375    }
24376    #[inline]
24377    fn syntax(&self) -> &SyntaxNode {
24378        &self.syntax
24379    }
24380}
24381impl AstNode for OnUpdateAction {
24382    #[inline]
24383    fn can_cast(kind: SyntaxKind) -> bool {
24384        kind == SyntaxKind::ON_UPDATE_ACTION
24385    }
24386    #[inline]
24387    fn cast(syntax: SyntaxNode) -> Option<Self> {
24388        if Self::can_cast(syntax.kind()) {
24389            Some(Self { syntax })
24390        } else {
24391            None
24392        }
24393    }
24394    #[inline]
24395    fn syntax(&self) -> &SyntaxNode {
24396        &self.syntax
24397    }
24398}
24399impl AstNode for Op {
24400    #[inline]
24401    fn can_cast(kind: SyntaxKind) -> bool {
24402        kind == SyntaxKind::OP
24403    }
24404    #[inline]
24405    fn cast(syntax: SyntaxNode) -> Option<Self> {
24406        if Self::can_cast(syntax.kind()) {
24407            Some(Self { syntax })
24408        } else {
24409            None
24410        }
24411    }
24412    #[inline]
24413    fn syntax(&self) -> &SyntaxNode {
24414        &self.syntax
24415    }
24416}
24417impl AstNode for OpClassOption {
24418    #[inline]
24419    fn can_cast(kind: SyntaxKind) -> bool {
24420        kind == SyntaxKind::OP_CLASS_OPTION
24421    }
24422    #[inline]
24423    fn cast(syntax: SyntaxNode) -> Option<Self> {
24424        if Self::can_cast(syntax.kind()) {
24425            Some(Self { syntax })
24426        } else {
24427            None
24428        }
24429    }
24430    #[inline]
24431    fn syntax(&self) -> &SyntaxNode {
24432        &self.syntax
24433    }
24434}
24435impl AstNode for OpSig {
24436    #[inline]
24437    fn can_cast(kind: SyntaxKind) -> bool {
24438        kind == SyntaxKind::OP_SIG
24439    }
24440    #[inline]
24441    fn cast(syntax: SyntaxNode) -> Option<Self> {
24442        if Self::can_cast(syntax.kind()) {
24443            Some(Self { syntax })
24444        } else {
24445            None
24446        }
24447    }
24448    #[inline]
24449    fn syntax(&self) -> &SyntaxNode {
24450        &self.syntax
24451    }
24452}
24453impl AstNode for OpSigList {
24454    #[inline]
24455    fn can_cast(kind: SyntaxKind) -> bool {
24456        kind == SyntaxKind::OP_SIG_LIST
24457    }
24458    #[inline]
24459    fn cast(syntax: SyntaxNode) -> Option<Self> {
24460        if Self::can_cast(syntax.kind()) {
24461            Some(Self { syntax })
24462        } else {
24463            None
24464        }
24465    }
24466    #[inline]
24467    fn syntax(&self) -> &SyntaxNode {
24468        &self.syntax
24469    }
24470}
24471impl AstNode for OperatorCall {
24472    #[inline]
24473    fn can_cast(kind: SyntaxKind) -> bool {
24474        kind == SyntaxKind::OPERATOR_CALL
24475    }
24476    #[inline]
24477    fn cast(syntax: SyntaxNode) -> Option<Self> {
24478        if Self::can_cast(syntax.kind()) {
24479            Some(Self { syntax })
24480        } else {
24481            None
24482        }
24483    }
24484    #[inline]
24485    fn syntax(&self) -> &SyntaxNode {
24486        &self.syntax
24487    }
24488}
24489impl AstNode for OperatorClassOptionList {
24490    #[inline]
24491    fn can_cast(kind: SyntaxKind) -> bool {
24492        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
24493    }
24494    #[inline]
24495    fn cast(syntax: SyntaxNode) -> Option<Self> {
24496        if Self::can_cast(syntax.kind()) {
24497            Some(Self { syntax })
24498        } else {
24499            None
24500        }
24501    }
24502    #[inline]
24503    fn syntax(&self) -> &SyntaxNode {
24504        &self.syntax
24505    }
24506}
24507impl AstNode for OptionItem {
24508    #[inline]
24509    fn can_cast(kind: SyntaxKind) -> bool {
24510        kind == SyntaxKind::OPTION_ITEM
24511    }
24512    #[inline]
24513    fn cast(syntax: SyntaxNode) -> Option<Self> {
24514        if Self::can_cast(syntax.kind()) {
24515            Some(Self { syntax })
24516        } else {
24517            None
24518        }
24519    }
24520    #[inline]
24521    fn syntax(&self) -> &SyntaxNode {
24522        &self.syntax
24523    }
24524}
24525impl AstNode for OptionItemList {
24526    #[inline]
24527    fn can_cast(kind: SyntaxKind) -> bool {
24528        kind == SyntaxKind::OPTION_ITEM_LIST
24529    }
24530    #[inline]
24531    fn cast(syntax: SyntaxNode) -> Option<Self> {
24532        if Self::can_cast(syntax.kind()) {
24533            Some(Self { syntax })
24534        } else {
24535            None
24536        }
24537    }
24538    #[inline]
24539    fn syntax(&self) -> &SyntaxNode {
24540        &self.syntax
24541    }
24542}
24543impl AstNode for OrReplace {
24544    #[inline]
24545    fn can_cast(kind: SyntaxKind) -> bool {
24546        kind == SyntaxKind::OR_REPLACE
24547    }
24548    #[inline]
24549    fn cast(syntax: SyntaxNode) -> Option<Self> {
24550        if Self::can_cast(syntax.kind()) {
24551            Some(Self { syntax })
24552        } else {
24553            None
24554        }
24555    }
24556    #[inline]
24557    fn syntax(&self) -> &SyntaxNode {
24558        &self.syntax
24559    }
24560}
24561impl AstNode for OrderByClause {
24562    #[inline]
24563    fn can_cast(kind: SyntaxKind) -> bool {
24564        kind == SyntaxKind::ORDER_BY_CLAUSE
24565    }
24566    #[inline]
24567    fn cast(syntax: SyntaxNode) -> Option<Self> {
24568        if Self::can_cast(syntax.kind()) {
24569            Some(Self { syntax })
24570        } else {
24571            None
24572        }
24573    }
24574    #[inline]
24575    fn syntax(&self) -> &SyntaxNode {
24576        &self.syntax
24577    }
24578}
24579impl AstNode for OverClause {
24580    #[inline]
24581    fn can_cast(kind: SyntaxKind) -> bool {
24582        kind == SyntaxKind::OVER_CLAUSE
24583    }
24584    #[inline]
24585    fn cast(syntax: SyntaxNode) -> Option<Self> {
24586        if Self::can_cast(syntax.kind()) {
24587            Some(Self { syntax })
24588        } else {
24589            None
24590        }
24591    }
24592    #[inline]
24593    fn syntax(&self) -> &SyntaxNode {
24594        &self.syntax
24595    }
24596}
24597impl AstNode for OverlayFn {
24598    #[inline]
24599    fn can_cast(kind: SyntaxKind) -> bool {
24600        kind == SyntaxKind::OVERLAY_FN
24601    }
24602    #[inline]
24603    fn cast(syntax: SyntaxNode) -> Option<Self> {
24604        if Self::can_cast(syntax.kind()) {
24605            Some(Self { syntax })
24606        } else {
24607            None
24608        }
24609    }
24610    #[inline]
24611    fn syntax(&self) -> &SyntaxNode {
24612        &self.syntax
24613    }
24614}
24615impl AstNode for OwnerTo {
24616    #[inline]
24617    fn can_cast(kind: SyntaxKind) -> bool {
24618        kind == SyntaxKind::OWNER_TO
24619    }
24620    #[inline]
24621    fn cast(syntax: SyntaxNode) -> Option<Self> {
24622        if Self::can_cast(syntax.kind()) {
24623            Some(Self { syntax })
24624        } else {
24625            None
24626        }
24627    }
24628    #[inline]
24629    fn syntax(&self) -> &SyntaxNode {
24630        &self.syntax
24631    }
24632}
24633impl AstNode for ParallelFuncOption {
24634    #[inline]
24635    fn can_cast(kind: SyntaxKind) -> bool {
24636        kind == SyntaxKind::PARALLEL_FUNC_OPTION
24637    }
24638    #[inline]
24639    fn cast(syntax: SyntaxNode) -> Option<Self> {
24640        if Self::can_cast(syntax.kind()) {
24641            Some(Self { syntax })
24642        } else {
24643            None
24644        }
24645    }
24646    #[inline]
24647    fn syntax(&self) -> &SyntaxNode {
24648        &self.syntax
24649    }
24650}
24651impl AstNode for Param {
24652    #[inline]
24653    fn can_cast(kind: SyntaxKind) -> bool {
24654        kind == SyntaxKind::PARAM
24655    }
24656    #[inline]
24657    fn cast(syntax: SyntaxNode) -> Option<Self> {
24658        if Self::can_cast(syntax.kind()) {
24659            Some(Self { syntax })
24660        } else {
24661            None
24662        }
24663    }
24664    #[inline]
24665    fn syntax(&self) -> &SyntaxNode {
24666        &self.syntax
24667    }
24668}
24669impl AstNode for ParamDefault {
24670    #[inline]
24671    fn can_cast(kind: SyntaxKind) -> bool {
24672        kind == SyntaxKind::PARAM_DEFAULT
24673    }
24674    #[inline]
24675    fn cast(syntax: SyntaxNode) -> Option<Self> {
24676        if Self::can_cast(syntax.kind()) {
24677            Some(Self { syntax })
24678        } else {
24679            None
24680        }
24681    }
24682    #[inline]
24683    fn syntax(&self) -> &SyntaxNode {
24684        &self.syntax
24685    }
24686}
24687impl AstNode for ParamIn {
24688    #[inline]
24689    fn can_cast(kind: SyntaxKind) -> bool {
24690        kind == SyntaxKind::PARAM_IN
24691    }
24692    #[inline]
24693    fn cast(syntax: SyntaxNode) -> Option<Self> {
24694        if Self::can_cast(syntax.kind()) {
24695            Some(Self { syntax })
24696        } else {
24697            None
24698        }
24699    }
24700    #[inline]
24701    fn syntax(&self) -> &SyntaxNode {
24702        &self.syntax
24703    }
24704}
24705impl AstNode for ParamInOut {
24706    #[inline]
24707    fn can_cast(kind: SyntaxKind) -> bool {
24708        kind == SyntaxKind::PARAM_IN_OUT
24709    }
24710    #[inline]
24711    fn cast(syntax: SyntaxNode) -> Option<Self> {
24712        if Self::can_cast(syntax.kind()) {
24713            Some(Self { syntax })
24714        } else {
24715            None
24716        }
24717    }
24718    #[inline]
24719    fn syntax(&self) -> &SyntaxNode {
24720        &self.syntax
24721    }
24722}
24723impl AstNode for ParamList {
24724    #[inline]
24725    fn can_cast(kind: SyntaxKind) -> bool {
24726        kind == SyntaxKind::PARAM_LIST
24727    }
24728    #[inline]
24729    fn cast(syntax: SyntaxNode) -> Option<Self> {
24730        if Self::can_cast(syntax.kind()) {
24731            Some(Self { syntax })
24732        } else {
24733            None
24734        }
24735    }
24736    #[inline]
24737    fn syntax(&self) -> &SyntaxNode {
24738        &self.syntax
24739    }
24740}
24741impl AstNode for ParamOut {
24742    #[inline]
24743    fn can_cast(kind: SyntaxKind) -> bool {
24744        kind == SyntaxKind::PARAM_OUT
24745    }
24746    #[inline]
24747    fn cast(syntax: SyntaxNode) -> Option<Self> {
24748        if Self::can_cast(syntax.kind()) {
24749            Some(Self { syntax })
24750        } else {
24751            None
24752        }
24753    }
24754    #[inline]
24755    fn syntax(&self) -> &SyntaxNode {
24756        &self.syntax
24757    }
24758}
24759impl AstNode for ParamVariadic {
24760    #[inline]
24761    fn can_cast(kind: SyntaxKind) -> bool {
24762        kind == SyntaxKind::PARAM_VARIADIC
24763    }
24764    #[inline]
24765    fn cast(syntax: SyntaxNode) -> Option<Self> {
24766        if Self::can_cast(syntax.kind()) {
24767            Some(Self { syntax })
24768        } else {
24769            None
24770        }
24771    }
24772    #[inline]
24773    fn syntax(&self) -> &SyntaxNode {
24774        &self.syntax
24775    }
24776}
24777impl AstNode for ParenExpr {
24778    #[inline]
24779    fn can_cast(kind: SyntaxKind) -> bool {
24780        kind == SyntaxKind::PAREN_EXPR
24781    }
24782    #[inline]
24783    fn cast(syntax: SyntaxNode) -> Option<Self> {
24784        if Self::can_cast(syntax.kind()) {
24785            Some(Self { syntax })
24786        } else {
24787            None
24788        }
24789    }
24790    #[inline]
24791    fn syntax(&self) -> &SyntaxNode {
24792        &self.syntax
24793    }
24794}
24795impl AstNode for ParenSelect {
24796    #[inline]
24797    fn can_cast(kind: SyntaxKind) -> bool {
24798        kind == SyntaxKind::PAREN_SELECT
24799    }
24800    #[inline]
24801    fn cast(syntax: SyntaxNode) -> Option<Self> {
24802        if Self::can_cast(syntax.kind()) {
24803            Some(Self { syntax })
24804        } else {
24805            None
24806        }
24807    }
24808    #[inline]
24809    fn syntax(&self) -> &SyntaxNode {
24810        &self.syntax
24811    }
24812}
24813impl AstNode for Partition {
24814    #[inline]
24815    fn can_cast(kind: SyntaxKind) -> bool {
24816        kind == SyntaxKind::PARTITION
24817    }
24818    #[inline]
24819    fn cast(syntax: SyntaxNode) -> Option<Self> {
24820        if Self::can_cast(syntax.kind()) {
24821            Some(Self { syntax })
24822        } else {
24823            None
24824        }
24825    }
24826    #[inline]
24827    fn syntax(&self) -> &SyntaxNode {
24828        &self.syntax
24829    }
24830}
24831impl AstNode for PartitionBy {
24832    #[inline]
24833    fn can_cast(kind: SyntaxKind) -> bool {
24834        kind == SyntaxKind::PARTITION_BY
24835    }
24836    #[inline]
24837    fn cast(syntax: SyntaxNode) -> Option<Self> {
24838        if Self::can_cast(syntax.kind()) {
24839            Some(Self { syntax })
24840        } else {
24841            None
24842        }
24843    }
24844    #[inline]
24845    fn syntax(&self) -> &SyntaxNode {
24846        &self.syntax
24847    }
24848}
24849impl AstNode for PartitionDefault {
24850    #[inline]
24851    fn can_cast(kind: SyntaxKind) -> bool {
24852        kind == SyntaxKind::PARTITION_DEFAULT
24853    }
24854    #[inline]
24855    fn cast(syntax: SyntaxNode) -> Option<Self> {
24856        if Self::can_cast(syntax.kind()) {
24857            Some(Self { syntax })
24858        } else {
24859            None
24860        }
24861    }
24862    #[inline]
24863    fn syntax(&self) -> &SyntaxNode {
24864        &self.syntax
24865    }
24866}
24867impl AstNode for PartitionForValuesFrom {
24868    #[inline]
24869    fn can_cast(kind: SyntaxKind) -> bool {
24870        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
24871    }
24872    #[inline]
24873    fn cast(syntax: SyntaxNode) -> Option<Self> {
24874        if Self::can_cast(syntax.kind()) {
24875            Some(Self { syntax })
24876        } else {
24877            None
24878        }
24879    }
24880    #[inline]
24881    fn syntax(&self) -> &SyntaxNode {
24882        &self.syntax
24883    }
24884}
24885impl AstNode for PartitionForValuesIn {
24886    #[inline]
24887    fn can_cast(kind: SyntaxKind) -> bool {
24888        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
24889    }
24890    #[inline]
24891    fn cast(syntax: SyntaxNode) -> Option<Self> {
24892        if Self::can_cast(syntax.kind()) {
24893            Some(Self { syntax })
24894        } else {
24895            None
24896        }
24897    }
24898    #[inline]
24899    fn syntax(&self) -> &SyntaxNode {
24900        &self.syntax
24901    }
24902}
24903impl AstNode for PartitionForValuesWith {
24904    #[inline]
24905    fn can_cast(kind: SyntaxKind) -> bool {
24906        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
24907    }
24908    #[inline]
24909    fn cast(syntax: SyntaxNode) -> Option<Self> {
24910        if Self::can_cast(syntax.kind()) {
24911            Some(Self { syntax })
24912        } else {
24913            None
24914        }
24915    }
24916    #[inline]
24917    fn syntax(&self) -> &SyntaxNode {
24918        &self.syntax
24919    }
24920}
24921impl AstNode for PartitionItem {
24922    #[inline]
24923    fn can_cast(kind: SyntaxKind) -> bool {
24924        kind == SyntaxKind::PARTITION_ITEM
24925    }
24926    #[inline]
24927    fn cast(syntax: SyntaxNode) -> Option<Self> {
24928        if Self::can_cast(syntax.kind()) {
24929            Some(Self { syntax })
24930        } else {
24931            None
24932        }
24933    }
24934    #[inline]
24935    fn syntax(&self) -> &SyntaxNode {
24936        &self.syntax
24937    }
24938}
24939impl AstNode for PartitionItemList {
24940    #[inline]
24941    fn can_cast(kind: SyntaxKind) -> bool {
24942        kind == SyntaxKind::PARTITION_ITEM_LIST
24943    }
24944    #[inline]
24945    fn cast(syntax: SyntaxNode) -> Option<Self> {
24946        if Self::can_cast(syntax.kind()) {
24947            Some(Self { syntax })
24948        } else {
24949            None
24950        }
24951    }
24952    #[inline]
24953    fn syntax(&self) -> &SyntaxNode {
24954        &self.syntax
24955    }
24956}
24957impl AstNode for PartitionList {
24958    #[inline]
24959    fn can_cast(kind: SyntaxKind) -> bool {
24960        kind == SyntaxKind::PARTITION_LIST
24961    }
24962    #[inline]
24963    fn cast(syntax: SyntaxNode) -> Option<Self> {
24964        if Self::can_cast(syntax.kind()) {
24965            Some(Self { syntax })
24966        } else {
24967            None
24968        }
24969    }
24970    #[inline]
24971    fn syntax(&self) -> &SyntaxNode {
24972        &self.syntax
24973    }
24974}
24975impl AstNode for PartitionOf {
24976    #[inline]
24977    fn can_cast(kind: SyntaxKind) -> bool {
24978        kind == SyntaxKind::PARTITION_OF
24979    }
24980    #[inline]
24981    fn cast(syntax: SyntaxNode) -> Option<Self> {
24982        if Self::can_cast(syntax.kind()) {
24983            Some(Self { syntax })
24984        } else {
24985            None
24986        }
24987    }
24988    #[inline]
24989    fn syntax(&self) -> &SyntaxNode {
24990        &self.syntax
24991    }
24992}
24993impl AstNode for Path {
24994    #[inline]
24995    fn can_cast(kind: SyntaxKind) -> bool {
24996        kind == SyntaxKind::PATH
24997    }
24998    #[inline]
24999    fn cast(syntax: SyntaxNode) -> Option<Self> {
25000        if Self::can_cast(syntax.kind()) {
25001            Some(Self { syntax })
25002        } else {
25003            None
25004        }
25005    }
25006    #[inline]
25007    fn syntax(&self) -> &SyntaxNode {
25008        &self.syntax
25009    }
25010}
25011impl AstNode for PathSegment {
25012    #[inline]
25013    fn can_cast(kind: SyntaxKind) -> bool {
25014        kind == SyntaxKind::PATH_SEGMENT
25015    }
25016    #[inline]
25017    fn cast(syntax: SyntaxNode) -> Option<Self> {
25018        if Self::can_cast(syntax.kind()) {
25019            Some(Self { syntax })
25020        } else {
25021            None
25022        }
25023    }
25024    #[inline]
25025    fn syntax(&self) -> &SyntaxNode {
25026        &self.syntax
25027    }
25028}
25029impl AstNode for PathType {
25030    #[inline]
25031    fn can_cast(kind: SyntaxKind) -> bool {
25032        kind == SyntaxKind::PATH_TYPE
25033    }
25034    #[inline]
25035    fn cast(syntax: SyntaxNode) -> Option<Self> {
25036        if Self::can_cast(syntax.kind()) {
25037            Some(Self { syntax })
25038        } else {
25039            None
25040        }
25041    }
25042    #[inline]
25043    fn syntax(&self) -> &SyntaxNode {
25044        &self.syntax
25045    }
25046}
25047impl AstNode for PercentType {
25048    #[inline]
25049    fn can_cast(kind: SyntaxKind) -> bool {
25050        kind == SyntaxKind::PERCENT_TYPE
25051    }
25052    #[inline]
25053    fn cast(syntax: SyntaxNode) -> Option<Self> {
25054        if Self::can_cast(syntax.kind()) {
25055            Some(Self { syntax })
25056        } else {
25057            None
25058        }
25059    }
25060    #[inline]
25061    fn syntax(&self) -> &SyntaxNode {
25062        &self.syntax
25063    }
25064}
25065impl AstNode for PercentTypeClause {
25066    #[inline]
25067    fn can_cast(kind: SyntaxKind) -> bool {
25068        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
25069    }
25070    #[inline]
25071    fn cast(syntax: SyntaxNode) -> Option<Self> {
25072        if Self::can_cast(syntax.kind()) {
25073            Some(Self { syntax })
25074        } else {
25075            None
25076        }
25077    }
25078    #[inline]
25079    fn syntax(&self) -> &SyntaxNode {
25080        &self.syntax
25081    }
25082}
25083impl AstNode for PositionFn {
25084    #[inline]
25085    fn can_cast(kind: SyntaxKind) -> bool {
25086        kind == SyntaxKind::POSITION_FN
25087    }
25088    #[inline]
25089    fn cast(syntax: SyntaxNode) -> Option<Self> {
25090        if Self::can_cast(syntax.kind()) {
25091            Some(Self { syntax })
25092        } else {
25093            None
25094        }
25095    }
25096    #[inline]
25097    fn syntax(&self) -> &SyntaxNode {
25098        &self.syntax
25099    }
25100}
25101impl AstNode for PostfixExpr {
25102    #[inline]
25103    fn can_cast(kind: SyntaxKind) -> bool {
25104        kind == SyntaxKind::POSTFIX_EXPR
25105    }
25106    #[inline]
25107    fn cast(syntax: SyntaxNode) -> Option<Self> {
25108        if Self::can_cast(syntax.kind()) {
25109            Some(Self { syntax })
25110        } else {
25111            None
25112        }
25113    }
25114    #[inline]
25115    fn syntax(&self) -> &SyntaxNode {
25116        &self.syntax
25117    }
25118}
25119impl AstNode for PrefixExpr {
25120    #[inline]
25121    fn can_cast(kind: SyntaxKind) -> bool {
25122        kind == SyntaxKind::PREFIX_EXPR
25123    }
25124    #[inline]
25125    fn cast(syntax: SyntaxNode) -> Option<Self> {
25126        if Self::can_cast(syntax.kind()) {
25127            Some(Self { syntax })
25128        } else {
25129            None
25130        }
25131    }
25132    #[inline]
25133    fn syntax(&self) -> &SyntaxNode {
25134        &self.syntax
25135    }
25136}
25137impl AstNode for Prepare {
25138    #[inline]
25139    fn can_cast(kind: SyntaxKind) -> bool {
25140        kind == SyntaxKind::PREPARE
25141    }
25142    #[inline]
25143    fn cast(syntax: SyntaxNode) -> Option<Self> {
25144        if Self::can_cast(syntax.kind()) {
25145            Some(Self { syntax })
25146        } else {
25147            None
25148        }
25149    }
25150    #[inline]
25151    fn syntax(&self) -> &SyntaxNode {
25152        &self.syntax
25153    }
25154}
25155impl AstNode for PrepareTransaction {
25156    #[inline]
25157    fn can_cast(kind: SyntaxKind) -> bool {
25158        kind == SyntaxKind::PREPARE_TRANSACTION
25159    }
25160    #[inline]
25161    fn cast(syntax: SyntaxNode) -> Option<Self> {
25162        if Self::can_cast(syntax.kind()) {
25163            Some(Self { syntax })
25164        } else {
25165            None
25166        }
25167    }
25168    #[inline]
25169    fn syntax(&self) -> &SyntaxNode {
25170        &self.syntax
25171    }
25172}
25173impl AstNode for PreserveRows {
25174    #[inline]
25175    fn can_cast(kind: SyntaxKind) -> bool {
25176        kind == SyntaxKind::PRESERVE_ROWS
25177    }
25178    #[inline]
25179    fn cast(syntax: SyntaxNode) -> Option<Self> {
25180        if Self::can_cast(syntax.kind()) {
25181            Some(Self { syntax })
25182        } else {
25183            None
25184        }
25185    }
25186    #[inline]
25187    fn syntax(&self) -> &SyntaxNode {
25188        &self.syntax
25189    }
25190}
25191impl AstNode for PrimaryKeyConstraint {
25192    #[inline]
25193    fn can_cast(kind: SyntaxKind) -> bool {
25194        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
25195    }
25196    #[inline]
25197    fn cast(syntax: SyntaxNode) -> Option<Self> {
25198        if Self::can_cast(syntax.kind()) {
25199            Some(Self { syntax })
25200        } else {
25201            None
25202        }
25203    }
25204    #[inline]
25205    fn syntax(&self) -> &SyntaxNode {
25206        &self.syntax
25207    }
25208}
25209impl AstNode for PrivilegeTarget {
25210    #[inline]
25211    fn can_cast(kind: SyntaxKind) -> bool {
25212        kind == SyntaxKind::PRIVILEGE_TARGET
25213    }
25214    #[inline]
25215    fn cast(syntax: SyntaxNode) -> Option<Self> {
25216        if Self::can_cast(syntax.kind()) {
25217            Some(Self { syntax })
25218        } else {
25219            None
25220        }
25221    }
25222    #[inline]
25223    fn syntax(&self) -> &SyntaxNode {
25224        &self.syntax
25225    }
25226}
25227impl AstNode for Privileges {
25228    #[inline]
25229    fn can_cast(kind: SyntaxKind) -> bool {
25230        kind == SyntaxKind::PRIVILEGES
25231    }
25232    #[inline]
25233    fn cast(syntax: SyntaxNode) -> Option<Self> {
25234        if Self::can_cast(syntax.kind()) {
25235            Some(Self { syntax })
25236        } else {
25237            None
25238        }
25239    }
25240    #[inline]
25241    fn syntax(&self) -> &SyntaxNode {
25242        &self.syntax
25243    }
25244}
25245impl AstNode for PublicationObject {
25246    #[inline]
25247    fn can_cast(kind: SyntaxKind) -> bool {
25248        kind == SyntaxKind::PUBLICATION_OBJECT
25249    }
25250    #[inline]
25251    fn cast(syntax: SyntaxNode) -> Option<Self> {
25252        if Self::can_cast(syntax.kind()) {
25253            Some(Self { syntax })
25254        } else {
25255            None
25256        }
25257    }
25258    #[inline]
25259    fn syntax(&self) -> &SyntaxNode {
25260        &self.syntax
25261    }
25262}
25263impl AstNode for ReadCommitted {
25264    #[inline]
25265    fn can_cast(kind: SyntaxKind) -> bool {
25266        kind == SyntaxKind::READ_COMMITTED
25267    }
25268    #[inline]
25269    fn cast(syntax: SyntaxNode) -> Option<Self> {
25270        if Self::can_cast(syntax.kind()) {
25271            Some(Self { syntax })
25272        } else {
25273            None
25274        }
25275    }
25276    #[inline]
25277    fn syntax(&self) -> &SyntaxNode {
25278        &self.syntax
25279    }
25280}
25281impl AstNode for ReadOnly {
25282    #[inline]
25283    fn can_cast(kind: SyntaxKind) -> bool {
25284        kind == SyntaxKind::READ_ONLY
25285    }
25286    #[inline]
25287    fn cast(syntax: SyntaxNode) -> Option<Self> {
25288        if Self::can_cast(syntax.kind()) {
25289            Some(Self { syntax })
25290        } else {
25291            None
25292        }
25293    }
25294    #[inline]
25295    fn syntax(&self) -> &SyntaxNode {
25296        &self.syntax
25297    }
25298}
25299impl AstNode for ReadUncommitted {
25300    #[inline]
25301    fn can_cast(kind: SyntaxKind) -> bool {
25302        kind == SyntaxKind::READ_UNCOMMITTED
25303    }
25304    #[inline]
25305    fn cast(syntax: SyntaxNode) -> Option<Self> {
25306        if Self::can_cast(syntax.kind()) {
25307            Some(Self { syntax })
25308        } else {
25309            None
25310        }
25311    }
25312    #[inline]
25313    fn syntax(&self) -> &SyntaxNode {
25314        &self.syntax
25315    }
25316}
25317impl AstNode for ReadWrite {
25318    #[inline]
25319    fn can_cast(kind: SyntaxKind) -> bool {
25320        kind == SyntaxKind::READ_WRITE
25321    }
25322    #[inline]
25323    fn cast(syntax: SyntaxNode) -> Option<Self> {
25324        if Self::can_cast(syntax.kind()) {
25325            Some(Self { syntax })
25326        } else {
25327            None
25328        }
25329    }
25330    #[inline]
25331    fn syntax(&self) -> &SyntaxNode {
25332        &self.syntax
25333    }
25334}
25335impl AstNode for Reassign {
25336    #[inline]
25337    fn can_cast(kind: SyntaxKind) -> bool {
25338        kind == SyntaxKind::REASSIGN
25339    }
25340    #[inline]
25341    fn cast(syntax: SyntaxNode) -> Option<Self> {
25342        if Self::can_cast(syntax.kind()) {
25343            Some(Self { syntax })
25344        } else {
25345            None
25346        }
25347    }
25348    #[inline]
25349    fn syntax(&self) -> &SyntaxNode {
25350        &self.syntax
25351    }
25352}
25353impl AstNode for ReferencesConstraint {
25354    #[inline]
25355    fn can_cast(kind: SyntaxKind) -> bool {
25356        kind == SyntaxKind::REFERENCES_CONSTRAINT
25357    }
25358    #[inline]
25359    fn cast(syntax: SyntaxNode) -> Option<Self> {
25360        if Self::can_cast(syntax.kind()) {
25361            Some(Self { syntax })
25362        } else {
25363            None
25364        }
25365    }
25366    #[inline]
25367    fn syntax(&self) -> &SyntaxNode {
25368        &self.syntax
25369    }
25370}
25371impl AstNode for Referencing {
25372    #[inline]
25373    fn can_cast(kind: SyntaxKind) -> bool {
25374        kind == SyntaxKind::REFERENCING
25375    }
25376    #[inline]
25377    fn cast(syntax: SyntaxNode) -> Option<Self> {
25378        if Self::can_cast(syntax.kind()) {
25379            Some(Self { syntax })
25380        } else {
25381            None
25382        }
25383    }
25384    #[inline]
25385    fn syntax(&self) -> &SyntaxNode {
25386        &self.syntax
25387    }
25388}
25389impl AstNode for ReferencingTable {
25390    #[inline]
25391    fn can_cast(kind: SyntaxKind) -> bool {
25392        kind == SyntaxKind::REFERENCING_TABLE
25393    }
25394    #[inline]
25395    fn cast(syntax: SyntaxNode) -> Option<Self> {
25396        if Self::can_cast(syntax.kind()) {
25397            Some(Self { syntax })
25398        } else {
25399            None
25400        }
25401    }
25402    #[inline]
25403    fn syntax(&self) -> &SyntaxNode {
25404        &self.syntax
25405    }
25406}
25407impl AstNode for Refresh {
25408    #[inline]
25409    fn can_cast(kind: SyntaxKind) -> bool {
25410        kind == SyntaxKind::REFRESH
25411    }
25412    #[inline]
25413    fn cast(syntax: SyntaxNode) -> Option<Self> {
25414        if Self::can_cast(syntax.kind()) {
25415            Some(Self { syntax })
25416        } else {
25417            None
25418        }
25419    }
25420    #[inline]
25421    fn syntax(&self) -> &SyntaxNode {
25422        &self.syntax
25423    }
25424}
25425impl AstNode for RefreshCollationVersion {
25426    #[inline]
25427    fn can_cast(kind: SyntaxKind) -> bool {
25428        kind == SyntaxKind::REFRESH_COLLATION_VERSION
25429    }
25430    #[inline]
25431    fn cast(syntax: SyntaxNode) -> Option<Self> {
25432        if Self::can_cast(syntax.kind()) {
25433            Some(Self { syntax })
25434        } else {
25435            None
25436        }
25437    }
25438    #[inline]
25439    fn syntax(&self) -> &SyntaxNode {
25440        &self.syntax
25441    }
25442}
25443impl AstNode for RefreshVersion {
25444    #[inline]
25445    fn can_cast(kind: SyntaxKind) -> bool {
25446        kind == SyntaxKind::REFRESH_VERSION
25447    }
25448    #[inline]
25449    fn cast(syntax: SyntaxNode) -> Option<Self> {
25450        if Self::can_cast(syntax.kind()) {
25451            Some(Self { syntax })
25452        } else {
25453            None
25454        }
25455    }
25456    #[inline]
25457    fn syntax(&self) -> &SyntaxNode {
25458        &self.syntax
25459    }
25460}
25461impl AstNode for Reindex {
25462    #[inline]
25463    fn can_cast(kind: SyntaxKind) -> bool {
25464        kind == SyntaxKind::REINDEX
25465    }
25466    #[inline]
25467    fn cast(syntax: SyntaxNode) -> Option<Self> {
25468        if Self::can_cast(syntax.kind()) {
25469            Some(Self { syntax })
25470        } else {
25471            None
25472        }
25473    }
25474    #[inline]
25475    fn syntax(&self) -> &SyntaxNode {
25476        &self.syntax
25477    }
25478}
25479impl AstNode for RelationName {
25480    #[inline]
25481    fn can_cast(kind: SyntaxKind) -> bool {
25482        kind == SyntaxKind::RELATION_NAME
25483    }
25484    #[inline]
25485    fn cast(syntax: SyntaxNode) -> Option<Self> {
25486        if Self::can_cast(syntax.kind()) {
25487            Some(Self { syntax })
25488        } else {
25489            None
25490        }
25491    }
25492    #[inline]
25493    fn syntax(&self) -> &SyntaxNode {
25494        &self.syntax
25495    }
25496}
25497impl AstNode for ReleaseSavepoint {
25498    #[inline]
25499    fn can_cast(kind: SyntaxKind) -> bool {
25500        kind == SyntaxKind::RELEASE_SAVEPOINT
25501    }
25502    #[inline]
25503    fn cast(syntax: SyntaxNode) -> Option<Self> {
25504        if Self::can_cast(syntax.kind()) {
25505            Some(Self { syntax })
25506        } else {
25507            None
25508        }
25509    }
25510    #[inline]
25511    fn syntax(&self) -> &SyntaxNode {
25512        &self.syntax
25513    }
25514}
25515impl AstNode for RenameColumn {
25516    #[inline]
25517    fn can_cast(kind: SyntaxKind) -> bool {
25518        kind == SyntaxKind::RENAME_COLUMN
25519    }
25520    #[inline]
25521    fn cast(syntax: SyntaxNode) -> Option<Self> {
25522        if Self::can_cast(syntax.kind()) {
25523            Some(Self { syntax })
25524        } else {
25525            None
25526        }
25527    }
25528    #[inline]
25529    fn syntax(&self) -> &SyntaxNode {
25530        &self.syntax
25531    }
25532}
25533impl AstNode for RenameConstraint {
25534    #[inline]
25535    fn can_cast(kind: SyntaxKind) -> bool {
25536        kind == SyntaxKind::RENAME_CONSTRAINT
25537    }
25538    #[inline]
25539    fn cast(syntax: SyntaxNode) -> Option<Self> {
25540        if Self::can_cast(syntax.kind()) {
25541            Some(Self { syntax })
25542        } else {
25543            None
25544        }
25545    }
25546    #[inline]
25547    fn syntax(&self) -> &SyntaxNode {
25548        &self.syntax
25549    }
25550}
25551impl AstNode for RenameTo {
25552    #[inline]
25553    fn can_cast(kind: SyntaxKind) -> bool {
25554        kind == SyntaxKind::RENAME_TO
25555    }
25556    #[inline]
25557    fn cast(syntax: SyntaxNode) -> Option<Self> {
25558        if Self::can_cast(syntax.kind()) {
25559            Some(Self { syntax })
25560        } else {
25561            None
25562        }
25563    }
25564    #[inline]
25565    fn syntax(&self) -> &SyntaxNode {
25566        &self.syntax
25567    }
25568}
25569impl AstNode for RepeatableClause {
25570    #[inline]
25571    fn can_cast(kind: SyntaxKind) -> bool {
25572        kind == SyntaxKind::REPEATABLE_CLAUSE
25573    }
25574    #[inline]
25575    fn cast(syntax: SyntaxNode) -> Option<Self> {
25576        if Self::can_cast(syntax.kind()) {
25577            Some(Self { syntax })
25578        } else {
25579            None
25580        }
25581    }
25582    #[inline]
25583    fn syntax(&self) -> &SyntaxNode {
25584        &self.syntax
25585    }
25586}
25587impl AstNode for RepeatableRead {
25588    #[inline]
25589    fn can_cast(kind: SyntaxKind) -> bool {
25590        kind == SyntaxKind::REPEATABLE_READ
25591    }
25592    #[inline]
25593    fn cast(syntax: SyntaxNode) -> Option<Self> {
25594        if Self::can_cast(syntax.kind()) {
25595            Some(Self { syntax })
25596        } else {
25597            None
25598        }
25599    }
25600    #[inline]
25601    fn syntax(&self) -> &SyntaxNode {
25602        &self.syntax
25603    }
25604}
25605impl AstNode for ReplicaIdentity {
25606    #[inline]
25607    fn can_cast(kind: SyntaxKind) -> bool {
25608        kind == SyntaxKind::REPLICA_IDENTITY
25609    }
25610    #[inline]
25611    fn cast(syntax: SyntaxNode) -> Option<Self> {
25612        if Self::can_cast(syntax.kind()) {
25613            Some(Self { syntax })
25614        } else {
25615            None
25616        }
25617    }
25618    #[inline]
25619    fn syntax(&self) -> &SyntaxNode {
25620        &self.syntax
25621    }
25622}
25623impl AstNode for Reset {
25624    #[inline]
25625    fn can_cast(kind: SyntaxKind) -> bool {
25626        kind == SyntaxKind::RESET
25627    }
25628    #[inline]
25629    fn cast(syntax: SyntaxNode) -> Option<Self> {
25630        if Self::can_cast(syntax.kind()) {
25631            Some(Self { syntax })
25632        } else {
25633            None
25634        }
25635    }
25636    #[inline]
25637    fn syntax(&self) -> &SyntaxNode {
25638        &self.syntax
25639    }
25640}
25641impl AstNode for ResetConfigParam {
25642    #[inline]
25643    fn can_cast(kind: SyntaxKind) -> bool {
25644        kind == SyntaxKind::RESET_CONFIG_PARAM
25645    }
25646    #[inline]
25647    fn cast(syntax: SyntaxNode) -> Option<Self> {
25648        if Self::can_cast(syntax.kind()) {
25649            Some(Self { syntax })
25650        } else {
25651            None
25652        }
25653    }
25654    #[inline]
25655    fn syntax(&self) -> &SyntaxNode {
25656        &self.syntax
25657    }
25658}
25659impl AstNode for ResetFuncOption {
25660    #[inline]
25661    fn can_cast(kind: SyntaxKind) -> bool {
25662        kind == SyntaxKind::RESET_FUNC_OPTION
25663    }
25664    #[inline]
25665    fn cast(syntax: SyntaxNode) -> Option<Self> {
25666        if Self::can_cast(syntax.kind()) {
25667            Some(Self { syntax })
25668        } else {
25669            None
25670        }
25671    }
25672    #[inline]
25673    fn syntax(&self) -> &SyntaxNode {
25674        &self.syntax
25675    }
25676}
25677impl AstNode for ResetOptions {
25678    #[inline]
25679    fn can_cast(kind: SyntaxKind) -> bool {
25680        kind == SyntaxKind::RESET_OPTIONS
25681    }
25682    #[inline]
25683    fn cast(syntax: SyntaxNode) -> Option<Self> {
25684        if Self::can_cast(syntax.kind()) {
25685            Some(Self { syntax })
25686        } else {
25687            None
25688        }
25689    }
25690    #[inline]
25691    fn syntax(&self) -> &SyntaxNode {
25692        &self.syntax
25693    }
25694}
25695impl AstNode for ResetSessionAuth {
25696    #[inline]
25697    fn can_cast(kind: SyntaxKind) -> bool {
25698        kind == SyntaxKind::RESET_SESSION_AUTH
25699    }
25700    #[inline]
25701    fn cast(syntax: SyntaxNode) -> Option<Self> {
25702        if Self::can_cast(syntax.kind()) {
25703            Some(Self { syntax })
25704        } else {
25705            None
25706        }
25707    }
25708    #[inline]
25709    fn syntax(&self) -> &SyntaxNode {
25710        &self.syntax
25711    }
25712}
25713impl AstNode for Restart {
25714    #[inline]
25715    fn can_cast(kind: SyntaxKind) -> bool {
25716        kind == SyntaxKind::RESTART
25717    }
25718    #[inline]
25719    fn cast(syntax: SyntaxNode) -> Option<Self> {
25720        if Self::can_cast(syntax.kind()) {
25721            Some(Self { syntax })
25722        } else {
25723            None
25724        }
25725    }
25726    #[inline]
25727    fn syntax(&self) -> &SyntaxNode {
25728        &self.syntax
25729    }
25730}
25731impl AstNode for Restrict {
25732    #[inline]
25733    fn can_cast(kind: SyntaxKind) -> bool {
25734        kind == SyntaxKind::RESTRICT
25735    }
25736    #[inline]
25737    fn cast(syntax: SyntaxNode) -> Option<Self> {
25738        if Self::can_cast(syntax.kind()) {
25739            Some(Self { syntax })
25740        } else {
25741            None
25742        }
25743    }
25744    #[inline]
25745    fn syntax(&self) -> &SyntaxNode {
25746        &self.syntax
25747    }
25748}
25749impl AstNode for RetType {
25750    #[inline]
25751    fn can_cast(kind: SyntaxKind) -> bool {
25752        kind == SyntaxKind::RET_TYPE
25753    }
25754    #[inline]
25755    fn cast(syntax: SyntaxNode) -> Option<Self> {
25756        if Self::can_cast(syntax.kind()) {
25757            Some(Self { syntax })
25758        } else {
25759            None
25760        }
25761    }
25762    #[inline]
25763    fn syntax(&self) -> &SyntaxNode {
25764        &self.syntax
25765    }
25766}
25767impl AstNode for ReturnFuncOption {
25768    #[inline]
25769    fn can_cast(kind: SyntaxKind) -> bool {
25770        kind == SyntaxKind::RETURN_FUNC_OPTION
25771    }
25772    #[inline]
25773    fn cast(syntax: SyntaxNode) -> Option<Self> {
25774        if Self::can_cast(syntax.kind()) {
25775            Some(Self { syntax })
25776        } else {
25777            None
25778        }
25779    }
25780    #[inline]
25781    fn syntax(&self) -> &SyntaxNode {
25782        &self.syntax
25783    }
25784}
25785impl AstNode for ReturningClause {
25786    #[inline]
25787    fn can_cast(kind: SyntaxKind) -> bool {
25788        kind == SyntaxKind::RETURNING_CLAUSE
25789    }
25790    #[inline]
25791    fn cast(syntax: SyntaxNode) -> Option<Self> {
25792        if Self::can_cast(syntax.kind()) {
25793            Some(Self { syntax })
25794        } else {
25795            None
25796        }
25797    }
25798    #[inline]
25799    fn syntax(&self) -> &SyntaxNode {
25800        &self.syntax
25801    }
25802}
25803impl AstNode for ReturningOption {
25804    #[inline]
25805    fn can_cast(kind: SyntaxKind) -> bool {
25806        kind == SyntaxKind::RETURNING_OPTION
25807    }
25808    #[inline]
25809    fn cast(syntax: SyntaxNode) -> Option<Self> {
25810        if Self::can_cast(syntax.kind()) {
25811            Some(Self { syntax })
25812        } else {
25813            None
25814        }
25815    }
25816    #[inline]
25817    fn syntax(&self) -> &SyntaxNode {
25818        &self.syntax
25819    }
25820}
25821impl AstNode for ReturningOptionList {
25822    #[inline]
25823    fn can_cast(kind: SyntaxKind) -> bool {
25824        kind == SyntaxKind::RETURNING_OPTION_LIST
25825    }
25826    #[inline]
25827    fn cast(syntax: SyntaxNode) -> Option<Self> {
25828        if Self::can_cast(syntax.kind()) {
25829            Some(Self { syntax })
25830        } else {
25831            None
25832        }
25833    }
25834    #[inline]
25835    fn syntax(&self) -> &SyntaxNode {
25836        &self.syntax
25837    }
25838}
25839impl AstNode for Revoke {
25840    #[inline]
25841    fn can_cast(kind: SyntaxKind) -> bool {
25842        kind == SyntaxKind::REVOKE
25843    }
25844    #[inline]
25845    fn cast(syntax: SyntaxNode) -> Option<Self> {
25846        if Self::can_cast(syntax.kind()) {
25847            Some(Self { syntax })
25848        } else {
25849            None
25850        }
25851    }
25852    #[inline]
25853    fn syntax(&self) -> &SyntaxNode {
25854        &self.syntax
25855    }
25856}
25857impl AstNode for RevokeCommand {
25858    #[inline]
25859    fn can_cast(kind: SyntaxKind) -> bool {
25860        kind == SyntaxKind::REVOKE_COMMAND
25861    }
25862    #[inline]
25863    fn cast(syntax: SyntaxNode) -> Option<Self> {
25864        if Self::can_cast(syntax.kind()) {
25865            Some(Self { syntax })
25866        } else {
25867            None
25868        }
25869    }
25870    #[inline]
25871    fn syntax(&self) -> &SyntaxNode {
25872        &self.syntax
25873    }
25874}
25875impl AstNode for RevokeCommandList {
25876    #[inline]
25877    fn can_cast(kind: SyntaxKind) -> bool {
25878        kind == SyntaxKind::REVOKE_COMMAND_LIST
25879    }
25880    #[inline]
25881    fn cast(syntax: SyntaxNode) -> Option<Self> {
25882        if Self::can_cast(syntax.kind()) {
25883            Some(Self { syntax })
25884        } else {
25885            None
25886        }
25887    }
25888    #[inline]
25889    fn syntax(&self) -> &SyntaxNode {
25890        &self.syntax
25891    }
25892}
25893impl AstNode for RevokeDefaultPrivileges {
25894    #[inline]
25895    fn can_cast(kind: SyntaxKind) -> bool {
25896        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
25897    }
25898    #[inline]
25899    fn cast(syntax: SyntaxNode) -> Option<Self> {
25900        if Self::can_cast(syntax.kind()) {
25901            Some(Self { syntax })
25902        } else {
25903            None
25904        }
25905    }
25906    #[inline]
25907    fn syntax(&self) -> &SyntaxNode {
25908        &self.syntax
25909    }
25910}
25911impl AstNode for Role {
25912    #[inline]
25913    fn can_cast(kind: SyntaxKind) -> bool {
25914        kind == SyntaxKind::ROLE
25915    }
25916    #[inline]
25917    fn cast(syntax: SyntaxNode) -> Option<Self> {
25918        if Self::can_cast(syntax.kind()) {
25919            Some(Self { syntax })
25920        } else {
25921            None
25922        }
25923    }
25924    #[inline]
25925    fn syntax(&self) -> &SyntaxNode {
25926        &self.syntax
25927    }
25928}
25929impl AstNode for RoleList {
25930    #[inline]
25931    fn can_cast(kind: SyntaxKind) -> bool {
25932        kind == SyntaxKind::ROLE_LIST
25933    }
25934    #[inline]
25935    fn cast(syntax: SyntaxNode) -> Option<Self> {
25936        if Self::can_cast(syntax.kind()) {
25937            Some(Self { syntax })
25938        } else {
25939            None
25940        }
25941    }
25942    #[inline]
25943    fn syntax(&self) -> &SyntaxNode {
25944        &self.syntax
25945    }
25946}
25947impl AstNode for RoleOption {
25948    #[inline]
25949    fn can_cast(kind: SyntaxKind) -> bool {
25950        kind == SyntaxKind::ROLE_OPTION
25951    }
25952    #[inline]
25953    fn cast(syntax: SyntaxNode) -> Option<Self> {
25954        if Self::can_cast(syntax.kind()) {
25955            Some(Self { syntax })
25956        } else {
25957            None
25958        }
25959    }
25960    #[inline]
25961    fn syntax(&self) -> &SyntaxNode {
25962        &self.syntax
25963    }
25964}
25965impl AstNode for RoleOptionList {
25966    #[inline]
25967    fn can_cast(kind: SyntaxKind) -> bool {
25968        kind == SyntaxKind::ROLE_OPTION_LIST
25969    }
25970    #[inline]
25971    fn cast(syntax: SyntaxNode) -> Option<Self> {
25972        if Self::can_cast(syntax.kind()) {
25973            Some(Self { syntax })
25974        } else {
25975            None
25976        }
25977    }
25978    #[inline]
25979    fn syntax(&self) -> &SyntaxNode {
25980        &self.syntax
25981    }
25982}
25983impl AstNode for Rollback {
25984    #[inline]
25985    fn can_cast(kind: SyntaxKind) -> bool {
25986        kind == SyntaxKind::ROLLBACK
25987    }
25988    #[inline]
25989    fn cast(syntax: SyntaxNode) -> Option<Self> {
25990        if Self::can_cast(syntax.kind()) {
25991            Some(Self { syntax })
25992        } else {
25993            None
25994        }
25995    }
25996    #[inline]
25997    fn syntax(&self) -> &SyntaxNode {
25998        &self.syntax
25999    }
26000}
26001impl AstNode for Row {
26002    #[inline]
26003    fn can_cast(kind: SyntaxKind) -> bool {
26004        kind == SyntaxKind::ROW
26005    }
26006    #[inline]
26007    fn cast(syntax: SyntaxNode) -> Option<Self> {
26008        if Self::can_cast(syntax.kind()) {
26009            Some(Self { syntax })
26010        } else {
26011            None
26012        }
26013    }
26014    #[inline]
26015    fn syntax(&self) -> &SyntaxNode {
26016        &self.syntax
26017    }
26018}
26019impl AstNode for RowList {
26020    #[inline]
26021    fn can_cast(kind: SyntaxKind) -> bool {
26022        kind == SyntaxKind::ROW_LIST
26023    }
26024    #[inline]
26025    fn cast(syntax: SyntaxNode) -> Option<Self> {
26026        if Self::can_cast(syntax.kind()) {
26027            Some(Self { syntax })
26028        } else {
26029            None
26030        }
26031    }
26032    #[inline]
26033    fn syntax(&self) -> &SyntaxNode {
26034        &self.syntax
26035    }
26036}
26037impl AstNode for RowsFuncOption {
26038    #[inline]
26039    fn can_cast(kind: SyntaxKind) -> bool {
26040        kind == SyntaxKind::ROWS_FUNC_OPTION
26041    }
26042    #[inline]
26043    fn cast(syntax: SyntaxNode) -> Option<Self> {
26044        if Self::can_cast(syntax.kind()) {
26045            Some(Self { syntax })
26046        } else {
26047            None
26048        }
26049    }
26050    #[inline]
26051    fn syntax(&self) -> &SyntaxNode {
26052        &self.syntax
26053    }
26054}
26055impl AstNode for Savepoint {
26056    #[inline]
26057    fn can_cast(kind: SyntaxKind) -> bool {
26058        kind == SyntaxKind::SAVEPOINT
26059    }
26060    #[inline]
26061    fn cast(syntax: SyntaxNode) -> Option<Self> {
26062        if Self::can_cast(syntax.kind()) {
26063            Some(Self { syntax })
26064        } else {
26065            None
26066        }
26067    }
26068    #[inline]
26069    fn syntax(&self) -> &SyntaxNode {
26070        &self.syntax
26071    }
26072}
26073impl AstNode for SchemaAuthorization {
26074    #[inline]
26075    fn can_cast(kind: SyntaxKind) -> bool {
26076        kind == SyntaxKind::SCHEMA_AUTHORIZATION
26077    }
26078    #[inline]
26079    fn cast(syntax: SyntaxNode) -> Option<Self> {
26080        if Self::can_cast(syntax.kind()) {
26081            Some(Self { syntax })
26082        } else {
26083            None
26084        }
26085    }
26086    #[inline]
26087    fn syntax(&self) -> &SyntaxNode {
26088        &self.syntax
26089    }
26090}
26091impl AstNode for SecurityFuncOption {
26092    #[inline]
26093    fn can_cast(kind: SyntaxKind) -> bool {
26094        kind == SyntaxKind::SECURITY_FUNC_OPTION
26095    }
26096    #[inline]
26097    fn cast(syntax: SyntaxNode) -> Option<Self> {
26098        if Self::can_cast(syntax.kind()) {
26099            Some(Self { syntax })
26100        } else {
26101            None
26102        }
26103    }
26104    #[inline]
26105    fn syntax(&self) -> &SyntaxNode {
26106        &self.syntax
26107    }
26108}
26109impl AstNode for SecurityLabel {
26110    #[inline]
26111    fn can_cast(kind: SyntaxKind) -> bool {
26112        kind == SyntaxKind::SECURITY_LABEL
26113    }
26114    #[inline]
26115    fn cast(syntax: SyntaxNode) -> Option<Self> {
26116        if Self::can_cast(syntax.kind()) {
26117            Some(Self { syntax })
26118        } else {
26119            None
26120        }
26121    }
26122    #[inline]
26123    fn syntax(&self) -> &SyntaxNode {
26124        &self.syntax
26125    }
26126}
26127impl AstNode for Select {
26128    #[inline]
26129    fn can_cast(kind: SyntaxKind) -> bool {
26130        kind == SyntaxKind::SELECT
26131    }
26132    #[inline]
26133    fn cast(syntax: SyntaxNode) -> Option<Self> {
26134        if Self::can_cast(syntax.kind()) {
26135            Some(Self { syntax })
26136        } else {
26137            None
26138        }
26139    }
26140    #[inline]
26141    fn syntax(&self) -> &SyntaxNode {
26142        &self.syntax
26143    }
26144}
26145impl AstNode for SelectClause {
26146    #[inline]
26147    fn can_cast(kind: SyntaxKind) -> bool {
26148        kind == SyntaxKind::SELECT_CLAUSE
26149    }
26150    #[inline]
26151    fn cast(syntax: SyntaxNode) -> Option<Self> {
26152        if Self::can_cast(syntax.kind()) {
26153            Some(Self { syntax })
26154        } else {
26155            None
26156        }
26157    }
26158    #[inline]
26159    fn syntax(&self) -> &SyntaxNode {
26160        &self.syntax
26161    }
26162}
26163impl AstNode for SelectInto {
26164    #[inline]
26165    fn can_cast(kind: SyntaxKind) -> bool {
26166        kind == SyntaxKind::SELECT_INTO
26167    }
26168    #[inline]
26169    fn cast(syntax: SyntaxNode) -> Option<Self> {
26170        if Self::can_cast(syntax.kind()) {
26171            Some(Self { syntax })
26172        } else {
26173            None
26174        }
26175    }
26176    #[inline]
26177    fn syntax(&self) -> &SyntaxNode {
26178        &self.syntax
26179    }
26180}
26181impl AstNode for SequenceOption {
26182    #[inline]
26183    fn can_cast(kind: SyntaxKind) -> bool {
26184        kind == SyntaxKind::SEQUENCE_OPTION
26185    }
26186    #[inline]
26187    fn cast(syntax: SyntaxNode) -> Option<Self> {
26188        if Self::can_cast(syntax.kind()) {
26189            Some(Self { syntax })
26190        } else {
26191            None
26192        }
26193    }
26194    #[inline]
26195    fn syntax(&self) -> &SyntaxNode {
26196        &self.syntax
26197    }
26198}
26199impl AstNode for SequenceOptionList {
26200    #[inline]
26201    fn can_cast(kind: SyntaxKind) -> bool {
26202        kind == SyntaxKind::SEQUENCE_OPTION_LIST
26203    }
26204    #[inline]
26205    fn cast(syntax: SyntaxNode) -> Option<Self> {
26206        if Self::can_cast(syntax.kind()) {
26207            Some(Self { syntax })
26208        } else {
26209            None
26210        }
26211    }
26212    #[inline]
26213    fn syntax(&self) -> &SyntaxNode {
26214        &self.syntax
26215    }
26216}
26217impl AstNode for Serializable {
26218    #[inline]
26219    fn can_cast(kind: SyntaxKind) -> bool {
26220        kind == SyntaxKind::SERIALIZABLE
26221    }
26222    #[inline]
26223    fn cast(syntax: SyntaxNode) -> Option<Self> {
26224        if Self::can_cast(syntax.kind()) {
26225            Some(Self { syntax })
26226        } else {
26227            None
26228        }
26229    }
26230    #[inline]
26231    fn syntax(&self) -> &SyntaxNode {
26232        &self.syntax
26233    }
26234}
26235impl AstNode for ServerName {
26236    #[inline]
26237    fn can_cast(kind: SyntaxKind) -> bool {
26238        kind == SyntaxKind::SERVER_NAME
26239    }
26240    #[inline]
26241    fn cast(syntax: SyntaxNode) -> Option<Self> {
26242        if Self::can_cast(syntax.kind()) {
26243            Some(Self { syntax })
26244        } else {
26245            None
26246        }
26247    }
26248    #[inline]
26249    fn syntax(&self) -> &SyntaxNode {
26250        &self.syntax
26251    }
26252}
26253impl AstNode for Set {
26254    #[inline]
26255    fn can_cast(kind: SyntaxKind) -> bool {
26256        kind == SyntaxKind::SET
26257    }
26258    #[inline]
26259    fn cast(syntax: SyntaxNode) -> Option<Self> {
26260        if Self::can_cast(syntax.kind()) {
26261            Some(Self { syntax })
26262        } else {
26263            None
26264        }
26265    }
26266    #[inline]
26267    fn syntax(&self) -> &SyntaxNode {
26268        &self.syntax
26269    }
26270}
26271impl AstNode for SetAccessMethod {
26272    #[inline]
26273    fn can_cast(kind: SyntaxKind) -> bool {
26274        kind == SyntaxKind::SET_ACCESS_METHOD
26275    }
26276    #[inline]
26277    fn cast(syntax: SyntaxNode) -> Option<Self> {
26278        if Self::can_cast(syntax.kind()) {
26279            Some(Self { syntax })
26280        } else {
26281            None
26282        }
26283    }
26284    #[inline]
26285    fn syntax(&self) -> &SyntaxNode {
26286        &self.syntax
26287    }
26288}
26289impl AstNode for SetClause {
26290    #[inline]
26291    fn can_cast(kind: SyntaxKind) -> bool {
26292        kind == SyntaxKind::SET_CLAUSE
26293    }
26294    #[inline]
26295    fn cast(syntax: SyntaxNode) -> Option<Self> {
26296        if Self::can_cast(syntax.kind()) {
26297            Some(Self { syntax })
26298        } else {
26299            None
26300        }
26301    }
26302    #[inline]
26303    fn syntax(&self) -> &SyntaxNode {
26304        &self.syntax
26305    }
26306}
26307impl AstNode for SetColumnList {
26308    #[inline]
26309    fn can_cast(kind: SyntaxKind) -> bool {
26310        kind == SyntaxKind::SET_COLUMN_LIST
26311    }
26312    #[inline]
26313    fn cast(syntax: SyntaxNode) -> Option<Self> {
26314        if Self::can_cast(syntax.kind()) {
26315            Some(Self { syntax })
26316        } else {
26317            None
26318        }
26319    }
26320    #[inline]
26321    fn syntax(&self) -> &SyntaxNode {
26322        &self.syntax
26323    }
26324}
26325impl AstNode for SetCompression {
26326    #[inline]
26327    fn can_cast(kind: SyntaxKind) -> bool {
26328        kind == SyntaxKind::SET_COMPRESSION
26329    }
26330    #[inline]
26331    fn cast(syntax: SyntaxNode) -> Option<Self> {
26332        if Self::can_cast(syntax.kind()) {
26333            Some(Self { syntax })
26334        } else {
26335            None
26336        }
26337    }
26338    #[inline]
26339    fn syntax(&self) -> &SyntaxNode {
26340        &self.syntax
26341    }
26342}
26343impl AstNode for SetConfigParam {
26344    #[inline]
26345    fn can_cast(kind: SyntaxKind) -> bool {
26346        kind == SyntaxKind::SET_CONFIG_PARAM
26347    }
26348    #[inline]
26349    fn cast(syntax: SyntaxNode) -> Option<Self> {
26350        if Self::can_cast(syntax.kind()) {
26351            Some(Self { syntax })
26352        } else {
26353            None
26354        }
26355    }
26356    #[inline]
26357    fn syntax(&self) -> &SyntaxNode {
26358        &self.syntax
26359    }
26360}
26361impl AstNode for SetConstraints {
26362    #[inline]
26363    fn can_cast(kind: SyntaxKind) -> bool {
26364        kind == SyntaxKind::SET_CONSTRAINTS
26365    }
26366    #[inline]
26367    fn cast(syntax: SyntaxNode) -> Option<Self> {
26368        if Self::can_cast(syntax.kind()) {
26369            Some(Self { syntax })
26370        } else {
26371            None
26372        }
26373    }
26374    #[inline]
26375    fn syntax(&self) -> &SyntaxNode {
26376        &self.syntax
26377    }
26378}
26379impl AstNode for SetDefault {
26380    #[inline]
26381    fn can_cast(kind: SyntaxKind) -> bool {
26382        kind == SyntaxKind::SET_DEFAULT
26383    }
26384    #[inline]
26385    fn cast(syntax: SyntaxNode) -> Option<Self> {
26386        if Self::can_cast(syntax.kind()) {
26387            Some(Self { syntax })
26388        } else {
26389            None
26390        }
26391    }
26392    #[inline]
26393    fn syntax(&self) -> &SyntaxNode {
26394        &self.syntax
26395    }
26396}
26397impl AstNode for SetDefaultColumns {
26398    #[inline]
26399    fn can_cast(kind: SyntaxKind) -> bool {
26400        kind == SyntaxKind::SET_DEFAULT_COLUMNS
26401    }
26402    #[inline]
26403    fn cast(syntax: SyntaxNode) -> Option<Self> {
26404        if Self::can_cast(syntax.kind()) {
26405            Some(Self { syntax })
26406        } else {
26407            None
26408        }
26409    }
26410    #[inline]
26411    fn syntax(&self) -> &SyntaxNode {
26412        &self.syntax
26413    }
26414}
26415impl AstNode for SetExpr {
26416    #[inline]
26417    fn can_cast(kind: SyntaxKind) -> bool {
26418        kind == SyntaxKind::SET_EXPR
26419    }
26420    #[inline]
26421    fn cast(syntax: SyntaxNode) -> Option<Self> {
26422        if Self::can_cast(syntax.kind()) {
26423            Some(Self { syntax })
26424        } else {
26425            None
26426        }
26427    }
26428    #[inline]
26429    fn syntax(&self) -> &SyntaxNode {
26430        &self.syntax
26431    }
26432}
26433impl AstNode for SetExprList {
26434    #[inline]
26435    fn can_cast(kind: SyntaxKind) -> bool {
26436        kind == SyntaxKind::SET_EXPR_LIST
26437    }
26438    #[inline]
26439    fn cast(syntax: SyntaxNode) -> Option<Self> {
26440        if Self::can_cast(syntax.kind()) {
26441            Some(Self { syntax })
26442        } else {
26443            None
26444        }
26445    }
26446    #[inline]
26447    fn syntax(&self) -> &SyntaxNode {
26448        &self.syntax
26449    }
26450}
26451impl AstNode for SetExpression {
26452    #[inline]
26453    fn can_cast(kind: SyntaxKind) -> bool {
26454        kind == SyntaxKind::SET_EXPRESSION
26455    }
26456    #[inline]
26457    fn cast(syntax: SyntaxNode) -> Option<Self> {
26458        if Self::can_cast(syntax.kind()) {
26459            Some(Self { syntax })
26460        } else {
26461            None
26462        }
26463    }
26464    #[inline]
26465    fn syntax(&self) -> &SyntaxNode {
26466        &self.syntax
26467    }
26468}
26469impl AstNode for SetFuncOption {
26470    #[inline]
26471    fn can_cast(kind: SyntaxKind) -> bool {
26472        kind == SyntaxKind::SET_FUNC_OPTION
26473    }
26474    #[inline]
26475    fn cast(syntax: SyntaxNode) -> Option<Self> {
26476        if Self::can_cast(syntax.kind()) {
26477            Some(Self { syntax })
26478        } else {
26479            None
26480        }
26481    }
26482    #[inline]
26483    fn syntax(&self) -> &SyntaxNode {
26484        &self.syntax
26485    }
26486}
26487impl AstNode for SetGenerated {
26488    #[inline]
26489    fn can_cast(kind: SyntaxKind) -> bool {
26490        kind == SyntaxKind::SET_GENERATED
26491    }
26492    #[inline]
26493    fn cast(syntax: SyntaxNode) -> Option<Self> {
26494        if Self::can_cast(syntax.kind()) {
26495            Some(Self { syntax })
26496        } else {
26497            None
26498        }
26499    }
26500    #[inline]
26501    fn syntax(&self) -> &SyntaxNode {
26502        &self.syntax
26503    }
26504}
26505impl AstNode for SetGeneratedOptions {
26506    #[inline]
26507    fn can_cast(kind: SyntaxKind) -> bool {
26508        kind == SyntaxKind::SET_GENERATED_OPTIONS
26509    }
26510    #[inline]
26511    fn cast(syntax: SyntaxNode) -> Option<Self> {
26512        if Self::can_cast(syntax.kind()) {
26513            Some(Self { syntax })
26514        } else {
26515            None
26516        }
26517    }
26518    #[inline]
26519    fn syntax(&self) -> &SyntaxNode {
26520        &self.syntax
26521    }
26522}
26523impl AstNode for SetLogged {
26524    #[inline]
26525    fn can_cast(kind: SyntaxKind) -> bool {
26526        kind == SyntaxKind::SET_LOGGED
26527    }
26528    #[inline]
26529    fn cast(syntax: SyntaxNode) -> Option<Self> {
26530        if Self::can_cast(syntax.kind()) {
26531            Some(Self { syntax })
26532        } else {
26533            None
26534        }
26535    }
26536    #[inline]
26537    fn syntax(&self) -> &SyntaxNode {
26538        &self.syntax
26539    }
26540}
26541impl AstNode for SetMultipleColumns {
26542    #[inline]
26543    fn can_cast(kind: SyntaxKind) -> bool {
26544        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
26545    }
26546    #[inline]
26547    fn cast(syntax: SyntaxNode) -> Option<Self> {
26548        if Self::can_cast(syntax.kind()) {
26549            Some(Self { syntax })
26550        } else {
26551            None
26552        }
26553    }
26554    #[inline]
26555    fn syntax(&self) -> &SyntaxNode {
26556        &self.syntax
26557    }
26558}
26559impl AstNode for SetNotNull {
26560    #[inline]
26561    fn can_cast(kind: SyntaxKind) -> bool {
26562        kind == SyntaxKind::SET_NOT_NULL
26563    }
26564    #[inline]
26565    fn cast(syntax: SyntaxNode) -> Option<Self> {
26566        if Self::can_cast(syntax.kind()) {
26567            Some(Self { syntax })
26568        } else {
26569            None
26570        }
26571    }
26572    #[inline]
26573    fn syntax(&self) -> &SyntaxNode {
26574        &self.syntax
26575    }
26576}
26577impl AstNode for SetNullColumns {
26578    #[inline]
26579    fn can_cast(kind: SyntaxKind) -> bool {
26580        kind == SyntaxKind::SET_NULL_COLUMNS
26581    }
26582    #[inline]
26583    fn cast(syntax: SyntaxNode) -> Option<Self> {
26584        if Self::can_cast(syntax.kind()) {
26585            Some(Self { syntax })
26586        } else {
26587            None
26588        }
26589    }
26590    #[inline]
26591    fn syntax(&self) -> &SyntaxNode {
26592        &self.syntax
26593    }
26594}
26595impl AstNode for SetOptions {
26596    #[inline]
26597    fn can_cast(kind: SyntaxKind) -> bool {
26598        kind == SyntaxKind::SET_OPTIONS
26599    }
26600    #[inline]
26601    fn cast(syntax: SyntaxNode) -> Option<Self> {
26602        if Self::can_cast(syntax.kind()) {
26603            Some(Self { syntax })
26604        } else {
26605            None
26606        }
26607    }
26608    #[inline]
26609    fn syntax(&self) -> &SyntaxNode {
26610        &self.syntax
26611    }
26612}
26613impl AstNode for SetOptionsList {
26614    #[inline]
26615    fn can_cast(kind: SyntaxKind) -> bool {
26616        kind == SyntaxKind::SET_OPTIONS_LIST
26617    }
26618    #[inline]
26619    fn cast(syntax: SyntaxNode) -> Option<Self> {
26620        if Self::can_cast(syntax.kind()) {
26621            Some(Self { syntax })
26622        } else {
26623            None
26624        }
26625    }
26626    #[inline]
26627    fn syntax(&self) -> &SyntaxNode {
26628        &self.syntax
26629    }
26630}
26631impl AstNode for SetRole {
26632    #[inline]
26633    fn can_cast(kind: SyntaxKind) -> bool {
26634        kind == SyntaxKind::SET_ROLE
26635    }
26636    #[inline]
26637    fn cast(syntax: SyntaxNode) -> Option<Self> {
26638        if Self::can_cast(syntax.kind()) {
26639            Some(Self { syntax })
26640        } else {
26641            None
26642        }
26643    }
26644    #[inline]
26645    fn syntax(&self) -> &SyntaxNode {
26646        &self.syntax
26647    }
26648}
26649impl AstNode for SetSchema {
26650    #[inline]
26651    fn can_cast(kind: SyntaxKind) -> bool {
26652        kind == SyntaxKind::SET_SCHEMA
26653    }
26654    #[inline]
26655    fn cast(syntax: SyntaxNode) -> Option<Self> {
26656        if Self::can_cast(syntax.kind()) {
26657            Some(Self { syntax })
26658        } else {
26659            None
26660        }
26661    }
26662    #[inline]
26663    fn syntax(&self) -> &SyntaxNode {
26664        &self.syntax
26665    }
26666}
26667impl AstNode for SetSequenceOption {
26668    #[inline]
26669    fn can_cast(kind: SyntaxKind) -> bool {
26670        kind == SyntaxKind::SET_SEQUENCE_OPTION
26671    }
26672    #[inline]
26673    fn cast(syntax: SyntaxNode) -> Option<Self> {
26674        if Self::can_cast(syntax.kind()) {
26675            Some(Self { syntax })
26676        } else {
26677            None
26678        }
26679    }
26680    #[inline]
26681    fn syntax(&self) -> &SyntaxNode {
26682        &self.syntax
26683    }
26684}
26685impl AstNode for SetSessionAuth {
26686    #[inline]
26687    fn can_cast(kind: SyntaxKind) -> bool {
26688        kind == SyntaxKind::SET_SESSION_AUTH
26689    }
26690    #[inline]
26691    fn cast(syntax: SyntaxNode) -> Option<Self> {
26692        if Self::can_cast(syntax.kind()) {
26693            Some(Self { syntax })
26694        } else {
26695            None
26696        }
26697    }
26698    #[inline]
26699    fn syntax(&self) -> &SyntaxNode {
26700        &self.syntax
26701    }
26702}
26703impl AstNode for SetSingleColumn {
26704    #[inline]
26705    fn can_cast(kind: SyntaxKind) -> bool {
26706        kind == SyntaxKind::SET_SINGLE_COLUMN
26707    }
26708    #[inline]
26709    fn cast(syntax: SyntaxNode) -> Option<Self> {
26710        if Self::can_cast(syntax.kind()) {
26711            Some(Self { syntax })
26712        } else {
26713            None
26714        }
26715    }
26716    #[inline]
26717    fn syntax(&self) -> &SyntaxNode {
26718        &self.syntax
26719    }
26720}
26721impl AstNode for SetStatistics {
26722    #[inline]
26723    fn can_cast(kind: SyntaxKind) -> bool {
26724        kind == SyntaxKind::SET_STATISTICS
26725    }
26726    #[inline]
26727    fn cast(syntax: SyntaxNode) -> Option<Self> {
26728        if Self::can_cast(syntax.kind()) {
26729            Some(Self { syntax })
26730        } else {
26731            None
26732        }
26733    }
26734    #[inline]
26735    fn syntax(&self) -> &SyntaxNode {
26736        &self.syntax
26737    }
26738}
26739impl AstNode for SetStorage {
26740    #[inline]
26741    fn can_cast(kind: SyntaxKind) -> bool {
26742        kind == SyntaxKind::SET_STORAGE
26743    }
26744    #[inline]
26745    fn cast(syntax: SyntaxNode) -> Option<Self> {
26746        if Self::can_cast(syntax.kind()) {
26747            Some(Self { syntax })
26748        } else {
26749            None
26750        }
26751    }
26752    #[inline]
26753    fn syntax(&self) -> &SyntaxNode {
26754        &self.syntax
26755    }
26756}
26757impl AstNode for SetTablespace {
26758    #[inline]
26759    fn can_cast(kind: SyntaxKind) -> bool {
26760        kind == SyntaxKind::SET_TABLESPACE
26761    }
26762    #[inline]
26763    fn cast(syntax: SyntaxNode) -> Option<Self> {
26764        if Self::can_cast(syntax.kind()) {
26765            Some(Self { syntax })
26766        } else {
26767            None
26768        }
26769    }
26770    #[inline]
26771    fn syntax(&self) -> &SyntaxNode {
26772        &self.syntax
26773    }
26774}
26775impl AstNode for SetTransaction {
26776    #[inline]
26777    fn can_cast(kind: SyntaxKind) -> bool {
26778        kind == SyntaxKind::SET_TRANSACTION
26779    }
26780    #[inline]
26781    fn cast(syntax: SyntaxNode) -> Option<Self> {
26782        if Self::can_cast(syntax.kind()) {
26783            Some(Self { syntax })
26784        } else {
26785            None
26786        }
26787    }
26788    #[inline]
26789    fn syntax(&self) -> &SyntaxNode {
26790        &self.syntax
26791    }
26792}
26793impl AstNode for SetType {
26794    #[inline]
26795    fn can_cast(kind: SyntaxKind) -> bool {
26796        kind == SyntaxKind::SET_TYPE
26797    }
26798    #[inline]
26799    fn cast(syntax: SyntaxNode) -> Option<Self> {
26800        if Self::can_cast(syntax.kind()) {
26801            Some(Self { syntax })
26802        } else {
26803            None
26804        }
26805    }
26806    #[inline]
26807    fn syntax(&self) -> &SyntaxNode {
26808        &self.syntax
26809    }
26810}
26811impl AstNode for SetUnlogged {
26812    #[inline]
26813    fn can_cast(kind: SyntaxKind) -> bool {
26814        kind == SyntaxKind::SET_UNLOGGED
26815    }
26816    #[inline]
26817    fn cast(syntax: SyntaxNode) -> Option<Self> {
26818        if Self::can_cast(syntax.kind()) {
26819            Some(Self { syntax })
26820        } else {
26821            None
26822        }
26823    }
26824    #[inline]
26825    fn syntax(&self) -> &SyntaxNode {
26826        &self.syntax
26827    }
26828}
26829impl AstNode for SetWithoutCluster {
26830    #[inline]
26831    fn can_cast(kind: SyntaxKind) -> bool {
26832        kind == SyntaxKind::SET_WITHOUT_CLUSTER
26833    }
26834    #[inline]
26835    fn cast(syntax: SyntaxNode) -> Option<Self> {
26836        if Self::can_cast(syntax.kind()) {
26837            Some(Self { syntax })
26838        } else {
26839            None
26840        }
26841    }
26842    #[inline]
26843    fn syntax(&self) -> &SyntaxNode {
26844        &self.syntax
26845    }
26846}
26847impl AstNode for SetWithoutOids {
26848    #[inline]
26849    fn can_cast(kind: SyntaxKind) -> bool {
26850        kind == SyntaxKind::SET_WITHOUT_OIDS
26851    }
26852    #[inline]
26853    fn cast(syntax: SyntaxNode) -> Option<Self> {
26854        if Self::can_cast(syntax.kind()) {
26855            Some(Self { syntax })
26856        } else {
26857            None
26858        }
26859    }
26860    #[inline]
26861    fn syntax(&self) -> &SyntaxNode {
26862        &self.syntax
26863    }
26864}
26865impl AstNode for Show {
26866    #[inline]
26867    fn can_cast(kind: SyntaxKind) -> bool {
26868        kind == SyntaxKind::SHOW
26869    }
26870    #[inline]
26871    fn cast(syntax: SyntaxNode) -> Option<Self> {
26872        if Self::can_cast(syntax.kind()) {
26873            Some(Self { syntax })
26874        } else {
26875            None
26876        }
26877    }
26878    #[inline]
26879    fn syntax(&self) -> &SyntaxNode {
26880        &self.syntax
26881    }
26882}
26883impl AstNode for SimilarTo {
26884    #[inline]
26885    fn can_cast(kind: SyntaxKind) -> bool {
26886        kind == SyntaxKind::SIMILAR_TO
26887    }
26888    #[inline]
26889    fn cast(syntax: SyntaxNode) -> Option<Self> {
26890        if Self::can_cast(syntax.kind()) {
26891            Some(Self { syntax })
26892        } else {
26893            None
26894        }
26895    }
26896    #[inline]
26897    fn syntax(&self) -> &SyntaxNode {
26898        &self.syntax
26899    }
26900}
26901impl AstNode for SliceExpr {
26902    #[inline]
26903    fn can_cast(kind: SyntaxKind) -> bool {
26904        kind == SyntaxKind::SLICE_EXPR
26905    }
26906    #[inline]
26907    fn cast(syntax: SyntaxNode) -> Option<Self> {
26908        if Self::can_cast(syntax.kind()) {
26909            Some(Self { syntax })
26910        } else {
26911            None
26912        }
26913    }
26914    #[inline]
26915    fn syntax(&self) -> &SyntaxNode {
26916        &self.syntax
26917    }
26918}
26919impl AstNode for SomeFn {
26920    #[inline]
26921    fn can_cast(kind: SyntaxKind) -> bool {
26922        kind == SyntaxKind::SOME_FN
26923    }
26924    #[inline]
26925    fn cast(syntax: SyntaxNode) -> Option<Self> {
26926        if Self::can_cast(syntax.kind()) {
26927            Some(Self { syntax })
26928        } else {
26929            None
26930        }
26931    }
26932    #[inline]
26933    fn syntax(&self) -> &SyntaxNode {
26934        &self.syntax
26935    }
26936}
26937impl AstNode for SortAsc {
26938    #[inline]
26939    fn can_cast(kind: SyntaxKind) -> bool {
26940        kind == SyntaxKind::SORT_ASC
26941    }
26942    #[inline]
26943    fn cast(syntax: SyntaxNode) -> Option<Self> {
26944        if Self::can_cast(syntax.kind()) {
26945            Some(Self { syntax })
26946        } else {
26947            None
26948        }
26949    }
26950    #[inline]
26951    fn syntax(&self) -> &SyntaxNode {
26952        &self.syntax
26953    }
26954}
26955impl AstNode for SortBy {
26956    #[inline]
26957    fn can_cast(kind: SyntaxKind) -> bool {
26958        kind == SyntaxKind::SORT_BY
26959    }
26960    #[inline]
26961    fn cast(syntax: SyntaxNode) -> Option<Self> {
26962        if Self::can_cast(syntax.kind()) {
26963            Some(Self { syntax })
26964        } else {
26965            None
26966        }
26967    }
26968    #[inline]
26969    fn syntax(&self) -> &SyntaxNode {
26970        &self.syntax
26971    }
26972}
26973impl AstNode for SortByList {
26974    #[inline]
26975    fn can_cast(kind: SyntaxKind) -> bool {
26976        kind == SyntaxKind::SORT_BY_LIST
26977    }
26978    #[inline]
26979    fn cast(syntax: SyntaxNode) -> Option<Self> {
26980        if Self::can_cast(syntax.kind()) {
26981            Some(Self { syntax })
26982        } else {
26983            None
26984        }
26985    }
26986    #[inline]
26987    fn syntax(&self) -> &SyntaxNode {
26988        &self.syntax
26989    }
26990}
26991impl AstNode for SortDesc {
26992    #[inline]
26993    fn can_cast(kind: SyntaxKind) -> bool {
26994        kind == SyntaxKind::SORT_DESC
26995    }
26996    #[inline]
26997    fn cast(syntax: SyntaxNode) -> Option<Self> {
26998        if Self::can_cast(syntax.kind()) {
26999            Some(Self { syntax })
27000        } else {
27001            None
27002        }
27003    }
27004    #[inline]
27005    fn syntax(&self) -> &SyntaxNode {
27006        &self.syntax
27007    }
27008}
27009impl AstNode for SortUsing {
27010    #[inline]
27011    fn can_cast(kind: SyntaxKind) -> bool {
27012        kind == SyntaxKind::SORT_USING
27013    }
27014    #[inline]
27015    fn cast(syntax: SyntaxNode) -> Option<Self> {
27016        if Self::can_cast(syntax.kind()) {
27017            Some(Self { syntax })
27018        } else {
27019            None
27020        }
27021    }
27022    #[inline]
27023    fn syntax(&self) -> &SyntaxNode {
27024        &self.syntax
27025    }
27026}
27027impl AstNode for SourceFile {
27028    #[inline]
27029    fn can_cast(kind: SyntaxKind) -> bool {
27030        kind == SyntaxKind::SOURCE_FILE
27031    }
27032    #[inline]
27033    fn cast(syntax: SyntaxNode) -> Option<Self> {
27034        if Self::can_cast(syntax.kind()) {
27035            Some(Self { syntax })
27036        } else {
27037            None
27038        }
27039    }
27040    #[inline]
27041    fn syntax(&self) -> &SyntaxNode {
27042        &self.syntax
27043    }
27044}
27045impl AstNode for SplitPartition {
27046    #[inline]
27047    fn can_cast(kind: SyntaxKind) -> bool {
27048        kind == SyntaxKind::SPLIT_PARTITION
27049    }
27050    #[inline]
27051    fn cast(syntax: SyntaxNode) -> Option<Self> {
27052        if Self::can_cast(syntax.kind()) {
27053            Some(Self { syntax })
27054        } else {
27055            None
27056        }
27057    }
27058    #[inline]
27059    fn syntax(&self) -> &SyntaxNode {
27060        &self.syntax
27061    }
27062}
27063impl AstNode for Storage {
27064    #[inline]
27065    fn can_cast(kind: SyntaxKind) -> bool {
27066        kind == SyntaxKind::STORAGE
27067    }
27068    #[inline]
27069    fn cast(syntax: SyntaxNode) -> Option<Self> {
27070        if Self::can_cast(syntax.kind()) {
27071            Some(Self { syntax })
27072        } else {
27073            None
27074        }
27075    }
27076    #[inline]
27077    fn syntax(&self) -> &SyntaxNode {
27078        &self.syntax
27079    }
27080}
27081impl AstNode for StrictFuncOption {
27082    #[inline]
27083    fn can_cast(kind: SyntaxKind) -> bool {
27084        kind == SyntaxKind::STRICT_FUNC_OPTION
27085    }
27086    #[inline]
27087    fn cast(syntax: SyntaxNode) -> Option<Self> {
27088        if Self::can_cast(syntax.kind()) {
27089            Some(Self { syntax })
27090        } else {
27091            None
27092        }
27093    }
27094    #[inline]
27095    fn syntax(&self) -> &SyntaxNode {
27096        &self.syntax
27097    }
27098}
27099impl AstNode for SubstringFn {
27100    #[inline]
27101    fn can_cast(kind: SyntaxKind) -> bool {
27102        kind == SyntaxKind::SUBSTRING_FN
27103    }
27104    #[inline]
27105    fn cast(syntax: SyntaxNode) -> Option<Self> {
27106        if Self::can_cast(syntax.kind()) {
27107            Some(Self { syntax })
27108        } else {
27109            None
27110        }
27111    }
27112    #[inline]
27113    fn syntax(&self) -> &SyntaxNode {
27114        &self.syntax
27115    }
27116}
27117impl AstNode for SupportFuncOption {
27118    #[inline]
27119    fn can_cast(kind: SyntaxKind) -> bool {
27120        kind == SyntaxKind::SUPPORT_FUNC_OPTION
27121    }
27122    #[inline]
27123    fn cast(syntax: SyntaxNode) -> Option<Self> {
27124        if Self::can_cast(syntax.kind()) {
27125            Some(Self { syntax })
27126        } else {
27127            None
27128        }
27129    }
27130    #[inline]
27131    fn syntax(&self) -> &SyntaxNode {
27132        &self.syntax
27133    }
27134}
27135impl AstNode for Table {
27136    #[inline]
27137    fn can_cast(kind: SyntaxKind) -> bool {
27138        kind == SyntaxKind::TABLE
27139    }
27140    #[inline]
27141    fn cast(syntax: SyntaxNode) -> Option<Self> {
27142        if Self::can_cast(syntax.kind()) {
27143            Some(Self { syntax })
27144        } else {
27145            None
27146        }
27147    }
27148    #[inline]
27149    fn syntax(&self) -> &SyntaxNode {
27150        &self.syntax
27151    }
27152}
27153impl AstNode for TableAndColumns {
27154    #[inline]
27155    fn can_cast(kind: SyntaxKind) -> bool {
27156        kind == SyntaxKind::TABLE_AND_COLUMNS
27157    }
27158    #[inline]
27159    fn cast(syntax: SyntaxNode) -> Option<Self> {
27160        if Self::can_cast(syntax.kind()) {
27161            Some(Self { syntax })
27162        } else {
27163            None
27164        }
27165    }
27166    #[inline]
27167    fn syntax(&self) -> &SyntaxNode {
27168        &self.syntax
27169    }
27170}
27171impl AstNode for TableAndColumnsList {
27172    #[inline]
27173    fn can_cast(kind: SyntaxKind) -> bool {
27174        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
27175    }
27176    #[inline]
27177    fn cast(syntax: SyntaxNode) -> Option<Self> {
27178        if Self::can_cast(syntax.kind()) {
27179            Some(Self { syntax })
27180        } else {
27181            None
27182        }
27183    }
27184    #[inline]
27185    fn syntax(&self) -> &SyntaxNode {
27186        &self.syntax
27187    }
27188}
27189impl AstNode for TableArgList {
27190    #[inline]
27191    fn can_cast(kind: SyntaxKind) -> bool {
27192        kind == SyntaxKind::TABLE_ARG_LIST
27193    }
27194    #[inline]
27195    fn cast(syntax: SyntaxNode) -> Option<Self> {
27196        if Self::can_cast(syntax.kind()) {
27197            Some(Self { syntax })
27198        } else {
27199            None
27200        }
27201    }
27202    #[inline]
27203    fn syntax(&self) -> &SyntaxNode {
27204        &self.syntax
27205    }
27206}
27207impl AstNode for TableList {
27208    #[inline]
27209    fn can_cast(kind: SyntaxKind) -> bool {
27210        kind == SyntaxKind::TABLE_LIST
27211    }
27212    #[inline]
27213    fn cast(syntax: SyntaxNode) -> Option<Self> {
27214        if Self::can_cast(syntax.kind()) {
27215            Some(Self { syntax })
27216        } else {
27217            None
27218        }
27219    }
27220    #[inline]
27221    fn syntax(&self) -> &SyntaxNode {
27222        &self.syntax
27223    }
27224}
27225impl AstNode for TablesampleClause {
27226    #[inline]
27227    fn can_cast(kind: SyntaxKind) -> bool {
27228        kind == SyntaxKind::TABLESAMPLE_CLAUSE
27229    }
27230    #[inline]
27231    fn cast(syntax: SyntaxNode) -> Option<Self> {
27232        if Self::can_cast(syntax.kind()) {
27233            Some(Self { syntax })
27234        } else {
27235            None
27236        }
27237    }
27238    #[inline]
27239    fn syntax(&self) -> &SyntaxNode {
27240        &self.syntax
27241    }
27242}
27243impl AstNode for Tablespace {
27244    #[inline]
27245    fn can_cast(kind: SyntaxKind) -> bool {
27246        kind == SyntaxKind::TABLESPACE
27247    }
27248    #[inline]
27249    fn cast(syntax: SyntaxNode) -> Option<Self> {
27250        if Self::can_cast(syntax.kind()) {
27251            Some(Self { syntax })
27252        } else {
27253            None
27254        }
27255    }
27256    #[inline]
27257    fn syntax(&self) -> &SyntaxNode {
27258        &self.syntax
27259    }
27260}
27261impl AstNode for Target {
27262    #[inline]
27263    fn can_cast(kind: SyntaxKind) -> bool {
27264        kind == SyntaxKind::TARGET
27265    }
27266    #[inline]
27267    fn cast(syntax: SyntaxNode) -> Option<Self> {
27268        if Self::can_cast(syntax.kind()) {
27269            Some(Self { syntax })
27270        } else {
27271            None
27272        }
27273    }
27274    #[inline]
27275    fn syntax(&self) -> &SyntaxNode {
27276        &self.syntax
27277    }
27278}
27279impl AstNode for TargetList {
27280    #[inline]
27281    fn can_cast(kind: SyntaxKind) -> bool {
27282        kind == SyntaxKind::TARGET_LIST
27283    }
27284    #[inline]
27285    fn cast(syntax: SyntaxNode) -> Option<Self> {
27286        if Self::can_cast(syntax.kind()) {
27287            Some(Self { syntax })
27288        } else {
27289            None
27290        }
27291    }
27292    #[inline]
27293    fn syntax(&self) -> &SyntaxNode {
27294        &self.syntax
27295    }
27296}
27297impl AstNode for TimeType {
27298    #[inline]
27299    fn can_cast(kind: SyntaxKind) -> bool {
27300        kind == SyntaxKind::TIME_TYPE
27301    }
27302    #[inline]
27303    fn cast(syntax: SyntaxNode) -> Option<Self> {
27304        if Self::can_cast(syntax.kind()) {
27305            Some(Self { syntax })
27306        } else {
27307            None
27308        }
27309    }
27310    #[inline]
27311    fn syntax(&self) -> &SyntaxNode {
27312        &self.syntax
27313    }
27314}
27315impl AstNode for Timing {
27316    #[inline]
27317    fn can_cast(kind: SyntaxKind) -> bool {
27318        kind == SyntaxKind::TIMING
27319    }
27320    #[inline]
27321    fn cast(syntax: SyntaxNode) -> Option<Self> {
27322        if Self::can_cast(syntax.kind()) {
27323            Some(Self { syntax })
27324        } else {
27325            None
27326        }
27327    }
27328    #[inline]
27329    fn syntax(&self) -> &SyntaxNode {
27330        &self.syntax
27331    }
27332}
27333impl AstNode for TransactionModeList {
27334    #[inline]
27335    fn can_cast(kind: SyntaxKind) -> bool {
27336        kind == SyntaxKind::TRANSACTION_MODE_LIST
27337    }
27338    #[inline]
27339    fn cast(syntax: SyntaxNode) -> Option<Self> {
27340        if Self::can_cast(syntax.kind()) {
27341            Some(Self { syntax })
27342        } else {
27343            None
27344        }
27345    }
27346    #[inline]
27347    fn syntax(&self) -> &SyntaxNode {
27348        &self.syntax
27349    }
27350}
27351impl AstNode for TransformFromFunc {
27352    #[inline]
27353    fn can_cast(kind: SyntaxKind) -> bool {
27354        kind == SyntaxKind::TRANSFORM_FROM_FUNC
27355    }
27356    #[inline]
27357    fn cast(syntax: SyntaxNode) -> Option<Self> {
27358        if Self::can_cast(syntax.kind()) {
27359            Some(Self { syntax })
27360        } else {
27361            None
27362        }
27363    }
27364    #[inline]
27365    fn syntax(&self) -> &SyntaxNode {
27366        &self.syntax
27367    }
27368}
27369impl AstNode for TransformFuncOption {
27370    #[inline]
27371    fn can_cast(kind: SyntaxKind) -> bool {
27372        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
27373    }
27374    #[inline]
27375    fn cast(syntax: SyntaxNode) -> Option<Self> {
27376        if Self::can_cast(syntax.kind()) {
27377            Some(Self { syntax })
27378        } else {
27379            None
27380        }
27381    }
27382    #[inline]
27383    fn syntax(&self) -> &SyntaxNode {
27384        &self.syntax
27385    }
27386}
27387impl AstNode for TransformToFunc {
27388    #[inline]
27389    fn can_cast(kind: SyntaxKind) -> bool {
27390        kind == SyntaxKind::TRANSFORM_TO_FUNC
27391    }
27392    #[inline]
27393    fn cast(syntax: SyntaxNode) -> Option<Self> {
27394        if Self::can_cast(syntax.kind()) {
27395            Some(Self { syntax })
27396        } else {
27397            None
27398        }
27399    }
27400    #[inline]
27401    fn syntax(&self) -> &SyntaxNode {
27402        &self.syntax
27403    }
27404}
27405impl AstNode for TriggerEvent {
27406    #[inline]
27407    fn can_cast(kind: SyntaxKind) -> bool {
27408        kind == SyntaxKind::TRIGGER_EVENT
27409    }
27410    #[inline]
27411    fn cast(syntax: SyntaxNode) -> Option<Self> {
27412        if Self::can_cast(syntax.kind()) {
27413            Some(Self { syntax })
27414        } else {
27415            None
27416        }
27417    }
27418    #[inline]
27419    fn syntax(&self) -> &SyntaxNode {
27420        &self.syntax
27421    }
27422}
27423impl AstNode for TriggerEventList {
27424    #[inline]
27425    fn can_cast(kind: SyntaxKind) -> bool {
27426        kind == SyntaxKind::TRIGGER_EVENT_LIST
27427    }
27428    #[inline]
27429    fn cast(syntax: SyntaxNode) -> Option<Self> {
27430        if Self::can_cast(syntax.kind()) {
27431            Some(Self { syntax })
27432        } else {
27433            None
27434        }
27435    }
27436    #[inline]
27437    fn syntax(&self) -> &SyntaxNode {
27438        &self.syntax
27439    }
27440}
27441impl AstNode for TriggerEventUpdate {
27442    #[inline]
27443    fn can_cast(kind: SyntaxKind) -> bool {
27444        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
27445    }
27446    #[inline]
27447    fn cast(syntax: SyntaxNode) -> Option<Self> {
27448        if Self::can_cast(syntax.kind()) {
27449            Some(Self { syntax })
27450        } else {
27451            None
27452        }
27453    }
27454    #[inline]
27455    fn syntax(&self) -> &SyntaxNode {
27456        &self.syntax
27457    }
27458}
27459impl AstNode for TrimFn {
27460    #[inline]
27461    fn can_cast(kind: SyntaxKind) -> bool {
27462        kind == SyntaxKind::TRIM_FN
27463    }
27464    #[inline]
27465    fn cast(syntax: SyntaxNode) -> Option<Self> {
27466        if Self::can_cast(syntax.kind()) {
27467            Some(Self { syntax })
27468        } else {
27469            None
27470        }
27471    }
27472    #[inline]
27473    fn syntax(&self) -> &SyntaxNode {
27474        &self.syntax
27475    }
27476}
27477impl AstNode for Truncate {
27478    #[inline]
27479    fn can_cast(kind: SyntaxKind) -> bool {
27480        kind == SyntaxKind::TRUNCATE
27481    }
27482    #[inline]
27483    fn cast(syntax: SyntaxNode) -> Option<Self> {
27484        if Self::can_cast(syntax.kind()) {
27485            Some(Self { syntax })
27486        } else {
27487            None
27488        }
27489    }
27490    #[inline]
27491    fn syntax(&self) -> &SyntaxNode {
27492        &self.syntax
27493    }
27494}
27495impl AstNode for TupleExpr {
27496    #[inline]
27497    fn can_cast(kind: SyntaxKind) -> bool {
27498        kind == SyntaxKind::TUPLE_EXPR
27499    }
27500    #[inline]
27501    fn cast(syntax: SyntaxNode) -> Option<Self> {
27502        if Self::can_cast(syntax.kind()) {
27503            Some(Self { syntax })
27504        } else {
27505            None
27506        }
27507    }
27508    #[inline]
27509    fn syntax(&self) -> &SyntaxNode {
27510        &self.syntax
27511    }
27512}
27513impl AstNode for UnicodeNormalForm {
27514    #[inline]
27515    fn can_cast(kind: SyntaxKind) -> bool {
27516        kind == SyntaxKind::UNICODE_NORMAL_FORM
27517    }
27518    #[inline]
27519    fn cast(syntax: SyntaxNode) -> Option<Self> {
27520        if Self::can_cast(syntax.kind()) {
27521            Some(Self { syntax })
27522        } else {
27523            None
27524        }
27525    }
27526    #[inline]
27527    fn syntax(&self) -> &SyntaxNode {
27528        &self.syntax
27529    }
27530}
27531impl AstNode for UniqueConstraint {
27532    #[inline]
27533    fn can_cast(kind: SyntaxKind) -> bool {
27534        kind == SyntaxKind::UNIQUE_CONSTRAINT
27535    }
27536    #[inline]
27537    fn cast(syntax: SyntaxNode) -> Option<Self> {
27538        if Self::can_cast(syntax.kind()) {
27539            Some(Self { syntax })
27540        } else {
27541            None
27542        }
27543    }
27544    #[inline]
27545    fn syntax(&self) -> &SyntaxNode {
27546        &self.syntax
27547    }
27548}
27549impl AstNode for Unlisten {
27550    #[inline]
27551    fn can_cast(kind: SyntaxKind) -> bool {
27552        kind == SyntaxKind::UNLISTEN
27553    }
27554    #[inline]
27555    fn cast(syntax: SyntaxNode) -> Option<Self> {
27556        if Self::can_cast(syntax.kind()) {
27557            Some(Self { syntax })
27558        } else {
27559            None
27560        }
27561    }
27562    #[inline]
27563    fn syntax(&self) -> &SyntaxNode {
27564        &self.syntax
27565    }
27566}
27567impl AstNode for Update {
27568    #[inline]
27569    fn can_cast(kind: SyntaxKind) -> bool {
27570        kind == SyntaxKind::UPDATE
27571    }
27572    #[inline]
27573    fn cast(syntax: SyntaxNode) -> Option<Self> {
27574        if Self::can_cast(syntax.kind()) {
27575            Some(Self { syntax })
27576        } else {
27577            None
27578        }
27579    }
27580    #[inline]
27581    fn syntax(&self) -> &SyntaxNode {
27582        &self.syntax
27583    }
27584}
27585impl AstNode for UsingClause {
27586    #[inline]
27587    fn can_cast(kind: SyntaxKind) -> bool {
27588        kind == SyntaxKind::USING_CLAUSE
27589    }
27590    #[inline]
27591    fn cast(syntax: SyntaxNode) -> Option<Self> {
27592        if Self::can_cast(syntax.kind()) {
27593            Some(Self { syntax })
27594        } else {
27595            None
27596        }
27597    }
27598    #[inline]
27599    fn syntax(&self) -> &SyntaxNode {
27600        &self.syntax
27601    }
27602}
27603impl AstNode for UsingIndex {
27604    #[inline]
27605    fn can_cast(kind: SyntaxKind) -> bool {
27606        kind == SyntaxKind::USING_INDEX
27607    }
27608    #[inline]
27609    fn cast(syntax: SyntaxNode) -> Option<Self> {
27610        if Self::can_cast(syntax.kind()) {
27611            Some(Self { syntax })
27612        } else {
27613            None
27614        }
27615    }
27616    #[inline]
27617    fn syntax(&self) -> &SyntaxNode {
27618        &self.syntax
27619    }
27620}
27621impl AstNode for UsingMethod {
27622    #[inline]
27623    fn can_cast(kind: SyntaxKind) -> bool {
27624        kind == SyntaxKind::USING_METHOD
27625    }
27626    #[inline]
27627    fn cast(syntax: SyntaxNode) -> Option<Self> {
27628        if Self::can_cast(syntax.kind()) {
27629            Some(Self { syntax })
27630        } else {
27631            None
27632        }
27633    }
27634    #[inline]
27635    fn syntax(&self) -> &SyntaxNode {
27636        &self.syntax
27637    }
27638}
27639impl AstNode for UsingOnClause {
27640    #[inline]
27641    fn can_cast(kind: SyntaxKind) -> bool {
27642        kind == SyntaxKind::USING_ON_CLAUSE
27643    }
27644    #[inline]
27645    fn cast(syntax: SyntaxNode) -> Option<Self> {
27646        if Self::can_cast(syntax.kind()) {
27647            Some(Self { syntax })
27648        } else {
27649            None
27650        }
27651    }
27652    #[inline]
27653    fn syntax(&self) -> &SyntaxNode {
27654        &self.syntax
27655    }
27656}
27657impl AstNode for Vacuum {
27658    #[inline]
27659    fn can_cast(kind: SyntaxKind) -> bool {
27660        kind == SyntaxKind::VACUUM
27661    }
27662    #[inline]
27663    fn cast(syntax: SyntaxNode) -> Option<Self> {
27664        if Self::can_cast(syntax.kind()) {
27665            Some(Self { syntax })
27666        } else {
27667            None
27668        }
27669    }
27670    #[inline]
27671    fn syntax(&self) -> &SyntaxNode {
27672        &self.syntax
27673    }
27674}
27675impl AstNode for VacuumOption {
27676    #[inline]
27677    fn can_cast(kind: SyntaxKind) -> bool {
27678        kind == SyntaxKind::VACUUM_OPTION
27679    }
27680    #[inline]
27681    fn cast(syntax: SyntaxNode) -> Option<Self> {
27682        if Self::can_cast(syntax.kind()) {
27683            Some(Self { syntax })
27684        } else {
27685            None
27686        }
27687    }
27688    #[inline]
27689    fn syntax(&self) -> &SyntaxNode {
27690        &self.syntax
27691    }
27692}
27693impl AstNode for VacuumOptionList {
27694    #[inline]
27695    fn can_cast(kind: SyntaxKind) -> bool {
27696        kind == SyntaxKind::VACUUM_OPTION_LIST
27697    }
27698    #[inline]
27699    fn cast(syntax: SyntaxNode) -> Option<Self> {
27700        if Self::can_cast(syntax.kind()) {
27701            Some(Self { syntax })
27702        } else {
27703            None
27704        }
27705    }
27706    #[inline]
27707    fn syntax(&self) -> &SyntaxNode {
27708        &self.syntax
27709    }
27710}
27711impl AstNode for ValidateConstraint {
27712    #[inline]
27713    fn can_cast(kind: SyntaxKind) -> bool {
27714        kind == SyntaxKind::VALIDATE_CONSTRAINT
27715    }
27716    #[inline]
27717    fn cast(syntax: SyntaxNode) -> Option<Self> {
27718        if Self::can_cast(syntax.kind()) {
27719            Some(Self { syntax })
27720        } else {
27721            None
27722        }
27723    }
27724    #[inline]
27725    fn syntax(&self) -> &SyntaxNode {
27726        &self.syntax
27727    }
27728}
27729impl AstNode for Values {
27730    #[inline]
27731    fn can_cast(kind: SyntaxKind) -> bool {
27732        kind == SyntaxKind::VALUES
27733    }
27734    #[inline]
27735    fn cast(syntax: SyntaxNode) -> Option<Self> {
27736        if Self::can_cast(syntax.kind()) {
27737            Some(Self { syntax })
27738        } else {
27739            None
27740        }
27741    }
27742    #[inline]
27743    fn syntax(&self) -> &SyntaxNode {
27744        &self.syntax
27745    }
27746}
27747impl AstNode for Variant {
27748    #[inline]
27749    fn can_cast(kind: SyntaxKind) -> bool {
27750        kind == SyntaxKind::VARIANT
27751    }
27752    #[inline]
27753    fn cast(syntax: SyntaxNode) -> Option<Self> {
27754        if Self::can_cast(syntax.kind()) {
27755            Some(Self { syntax })
27756        } else {
27757            None
27758        }
27759    }
27760    #[inline]
27761    fn syntax(&self) -> &SyntaxNode {
27762        &self.syntax
27763    }
27764}
27765impl AstNode for VariantList {
27766    #[inline]
27767    fn can_cast(kind: SyntaxKind) -> bool {
27768        kind == SyntaxKind::VARIANT_LIST
27769    }
27770    #[inline]
27771    fn cast(syntax: SyntaxNode) -> Option<Self> {
27772        if Self::can_cast(syntax.kind()) {
27773            Some(Self { syntax })
27774        } else {
27775            None
27776        }
27777    }
27778    #[inline]
27779    fn syntax(&self) -> &SyntaxNode {
27780        &self.syntax
27781    }
27782}
27783impl AstNode for VolatilityFuncOption {
27784    #[inline]
27785    fn can_cast(kind: SyntaxKind) -> bool {
27786        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
27787    }
27788    #[inline]
27789    fn cast(syntax: SyntaxNode) -> Option<Self> {
27790        if Self::can_cast(syntax.kind()) {
27791            Some(Self { syntax })
27792        } else {
27793            None
27794        }
27795    }
27796    #[inline]
27797    fn syntax(&self) -> &SyntaxNode {
27798        &self.syntax
27799    }
27800}
27801impl AstNode for WhenClause {
27802    #[inline]
27803    fn can_cast(kind: SyntaxKind) -> bool {
27804        kind == SyntaxKind::WHEN_CLAUSE
27805    }
27806    #[inline]
27807    fn cast(syntax: SyntaxNode) -> Option<Self> {
27808        if Self::can_cast(syntax.kind()) {
27809            Some(Self { syntax })
27810        } else {
27811            None
27812        }
27813    }
27814    #[inline]
27815    fn syntax(&self) -> &SyntaxNode {
27816        &self.syntax
27817    }
27818}
27819impl AstNode for WhenClauseList {
27820    #[inline]
27821    fn can_cast(kind: SyntaxKind) -> bool {
27822        kind == SyntaxKind::WHEN_CLAUSE_LIST
27823    }
27824    #[inline]
27825    fn cast(syntax: SyntaxNode) -> Option<Self> {
27826        if Self::can_cast(syntax.kind()) {
27827            Some(Self { syntax })
27828        } else {
27829            None
27830        }
27831    }
27832    #[inline]
27833    fn syntax(&self) -> &SyntaxNode {
27834        &self.syntax
27835    }
27836}
27837impl AstNode for WhenCondition {
27838    #[inline]
27839    fn can_cast(kind: SyntaxKind) -> bool {
27840        kind == SyntaxKind::WHEN_CONDITION
27841    }
27842    #[inline]
27843    fn cast(syntax: SyntaxNode) -> Option<Self> {
27844        if Self::can_cast(syntax.kind()) {
27845            Some(Self { syntax })
27846        } else {
27847            None
27848        }
27849    }
27850    #[inline]
27851    fn syntax(&self) -> &SyntaxNode {
27852        &self.syntax
27853    }
27854}
27855impl AstNode for WhereClause {
27856    #[inline]
27857    fn can_cast(kind: SyntaxKind) -> bool {
27858        kind == SyntaxKind::WHERE_CLAUSE
27859    }
27860    #[inline]
27861    fn cast(syntax: SyntaxNode) -> Option<Self> {
27862        if Self::can_cast(syntax.kind()) {
27863            Some(Self { syntax })
27864        } else {
27865            None
27866        }
27867    }
27868    #[inline]
27869    fn syntax(&self) -> &SyntaxNode {
27870        &self.syntax
27871    }
27872}
27873impl AstNode for WhereConditionClause {
27874    #[inline]
27875    fn can_cast(kind: SyntaxKind) -> bool {
27876        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
27877    }
27878    #[inline]
27879    fn cast(syntax: SyntaxNode) -> Option<Self> {
27880        if Self::can_cast(syntax.kind()) {
27881            Some(Self { syntax })
27882        } else {
27883            None
27884        }
27885    }
27886    #[inline]
27887    fn syntax(&self) -> &SyntaxNode {
27888        &self.syntax
27889    }
27890}
27891impl AstNode for WhereCurrentOf {
27892    #[inline]
27893    fn can_cast(kind: SyntaxKind) -> bool {
27894        kind == SyntaxKind::WHERE_CURRENT_OF
27895    }
27896    #[inline]
27897    fn cast(syntax: SyntaxNode) -> Option<Self> {
27898        if Self::can_cast(syntax.kind()) {
27899            Some(Self { syntax })
27900        } else {
27901            None
27902        }
27903    }
27904    #[inline]
27905    fn syntax(&self) -> &SyntaxNode {
27906        &self.syntax
27907    }
27908}
27909impl AstNode for WindowClause {
27910    #[inline]
27911    fn can_cast(kind: SyntaxKind) -> bool {
27912        kind == SyntaxKind::WINDOW_CLAUSE
27913    }
27914    #[inline]
27915    fn cast(syntax: SyntaxNode) -> Option<Self> {
27916        if Self::can_cast(syntax.kind()) {
27917            Some(Self { syntax })
27918        } else {
27919            None
27920        }
27921    }
27922    #[inline]
27923    fn syntax(&self) -> &SyntaxNode {
27924        &self.syntax
27925    }
27926}
27927impl AstNode for WindowDef {
27928    #[inline]
27929    fn can_cast(kind: SyntaxKind) -> bool {
27930        kind == SyntaxKind::WINDOW_DEF
27931    }
27932    #[inline]
27933    fn cast(syntax: SyntaxNode) -> Option<Self> {
27934        if Self::can_cast(syntax.kind()) {
27935            Some(Self { syntax })
27936        } else {
27937            None
27938        }
27939    }
27940    #[inline]
27941    fn syntax(&self) -> &SyntaxNode {
27942        &self.syntax
27943    }
27944}
27945impl AstNode for WindowFuncOption {
27946    #[inline]
27947    fn can_cast(kind: SyntaxKind) -> bool {
27948        kind == SyntaxKind::WINDOW_FUNC_OPTION
27949    }
27950    #[inline]
27951    fn cast(syntax: SyntaxNode) -> Option<Self> {
27952        if Self::can_cast(syntax.kind()) {
27953            Some(Self { syntax })
27954        } else {
27955            None
27956        }
27957    }
27958    #[inline]
27959    fn syntax(&self) -> &SyntaxNode {
27960        &self.syntax
27961    }
27962}
27963impl AstNode for WindowSpec {
27964    #[inline]
27965    fn can_cast(kind: SyntaxKind) -> bool {
27966        kind == SyntaxKind::WINDOW_SPEC
27967    }
27968    #[inline]
27969    fn cast(syntax: SyntaxNode) -> Option<Self> {
27970        if Self::can_cast(syntax.kind()) {
27971            Some(Self { syntax })
27972        } else {
27973            None
27974        }
27975    }
27976    #[inline]
27977    fn syntax(&self) -> &SyntaxNode {
27978        &self.syntax
27979    }
27980}
27981impl AstNode for WithClause {
27982    #[inline]
27983    fn can_cast(kind: SyntaxKind) -> bool {
27984        kind == SyntaxKind::WITH_CLAUSE
27985    }
27986    #[inline]
27987    fn cast(syntax: SyntaxNode) -> Option<Self> {
27988        if Self::can_cast(syntax.kind()) {
27989            Some(Self { syntax })
27990        } else {
27991            None
27992        }
27993    }
27994    #[inline]
27995    fn syntax(&self) -> &SyntaxNode {
27996        &self.syntax
27997    }
27998}
27999impl AstNode for WithData {
28000    #[inline]
28001    fn can_cast(kind: SyntaxKind) -> bool {
28002        kind == SyntaxKind::WITH_DATA
28003    }
28004    #[inline]
28005    fn cast(syntax: SyntaxNode) -> Option<Self> {
28006        if Self::can_cast(syntax.kind()) {
28007            Some(Self { syntax })
28008        } else {
28009            None
28010        }
28011    }
28012    #[inline]
28013    fn syntax(&self) -> &SyntaxNode {
28014        &self.syntax
28015    }
28016}
28017impl AstNode for WithNoData {
28018    #[inline]
28019    fn can_cast(kind: SyntaxKind) -> bool {
28020        kind == SyntaxKind::WITH_NO_DATA
28021    }
28022    #[inline]
28023    fn cast(syntax: SyntaxNode) -> Option<Self> {
28024        if Self::can_cast(syntax.kind()) {
28025            Some(Self { syntax })
28026        } else {
28027            None
28028        }
28029    }
28030    #[inline]
28031    fn syntax(&self) -> &SyntaxNode {
28032        &self.syntax
28033    }
28034}
28035impl AstNode for WithOptions {
28036    #[inline]
28037    fn can_cast(kind: SyntaxKind) -> bool {
28038        kind == SyntaxKind::WITH_OPTIONS
28039    }
28040    #[inline]
28041    fn cast(syntax: SyntaxNode) -> Option<Self> {
28042        if Self::can_cast(syntax.kind()) {
28043            Some(Self { syntax })
28044        } else {
28045            None
28046        }
28047    }
28048    #[inline]
28049    fn syntax(&self) -> &SyntaxNode {
28050        &self.syntax
28051    }
28052}
28053impl AstNode for WithParams {
28054    #[inline]
28055    fn can_cast(kind: SyntaxKind) -> bool {
28056        kind == SyntaxKind::WITH_PARAMS
28057    }
28058    #[inline]
28059    fn cast(syntax: SyntaxNode) -> Option<Self> {
28060        if Self::can_cast(syntax.kind()) {
28061            Some(Self { syntax })
28062        } else {
28063            None
28064        }
28065    }
28066    #[inline]
28067    fn syntax(&self) -> &SyntaxNode {
28068        &self.syntax
28069    }
28070}
28071impl AstNode for WithTable {
28072    #[inline]
28073    fn can_cast(kind: SyntaxKind) -> bool {
28074        kind == SyntaxKind::WITH_TABLE
28075    }
28076    #[inline]
28077    fn cast(syntax: SyntaxNode) -> Option<Self> {
28078        if Self::can_cast(syntax.kind()) {
28079            Some(Self { syntax })
28080        } else {
28081            None
28082        }
28083    }
28084    #[inline]
28085    fn syntax(&self) -> &SyntaxNode {
28086        &self.syntax
28087    }
28088}
28089impl AstNode for WithTimezone {
28090    #[inline]
28091    fn can_cast(kind: SyntaxKind) -> bool {
28092        kind == SyntaxKind::WITH_TIMEZONE
28093    }
28094    #[inline]
28095    fn cast(syntax: SyntaxNode) -> Option<Self> {
28096        if Self::can_cast(syntax.kind()) {
28097            Some(Self { syntax })
28098        } else {
28099            None
28100        }
28101    }
28102    #[inline]
28103    fn syntax(&self) -> &SyntaxNode {
28104        &self.syntax
28105    }
28106}
28107impl AstNode for WithinClause {
28108    #[inline]
28109    fn can_cast(kind: SyntaxKind) -> bool {
28110        kind == SyntaxKind::WITHIN_CLAUSE
28111    }
28112    #[inline]
28113    fn cast(syntax: SyntaxNode) -> Option<Self> {
28114        if Self::can_cast(syntax.kind()) {
28115            Some(Self { syntax })
28116        } else {
28117            None
28118        }
28119    }
28120    #[inline]
28121    fn syntax(&self) -> &SyntaxNode {
28122        &self.syntax
28123    }
28124}
28125impl AstNode for WithoutOids {
28126    #[inline]
28127    fn can_cast(kind: SyntaxKind) -> bool {
28128        kind == SyntaxKind::WITHOUT_OIDS
28129    }
28130    #[inline]
28131    fn cast(syntax: SyntaxNode) -> Option<Self> {
28132        if Self::can_cast(syntax.kind()) {
28133            Some(Self { syntax })
28134        } else {
28135            None
28136        }
28137    }
28138    #[inline]
28139    fn syntax(&self) -> &SyntaxNode {
28140        &self.syntax
28141    }
28142}
28143impl AstNode for WithoutTimezone {
28144    #[inline]
28145    fn can_cast(kind: SyntaxKind) -> bool {
28146        kind == SyntaxKind::WITHOUT_TIMEZONE
28147    }
28148    #[inline]
28149    fn cast(syntax: SyntaxNode) -> Option<Self> {
28150        if Self::can_cast(syntax.kind()) {
28151            Some(Self { syntax })
28152        } else {
28153            None
28154        }
28155    }
28156    #[inline]
28157    fn syntax(&self) -> &SyntaxNode {
28158        &self.syntax
28159    }
28160}
28161impl AstNode for XmlAttributeList {
28162    #[inline]
28163    fn can_cast(kind: SyntaxKind) -> bool {
28164        kind == SyntaxKind::XML_ATTRIBUTE_LIST
28165    }
28166    #[inline]
28167    fn cast(syntax: SyntaxNode) -> Option<Self> {
28168        if Self::can_cast(syntax.kind()) {
28169            Some(Self { syntax })
28170        } else {
28171            None
28172        }
28173    }
28174    #[inline]
28175    fn syntax(&self) -> &SyntaxNode {
28176        &self.syntax
28177    }
28178}
28179impl AstNode for XmlColumnOption {
28180    #[inline]
28181    fn can_cast(kind: SyntaxKind) -> bool {
28182        kind == SyntaxKind::XML_COLUMN_OPTION
28183    }
28184    #[inline]
28185    fn cast(syntax: SyntaxNode) -> Option<Self> {
28186        if Self::can_cast(syntax.kind()) {
28187            Some(Self { syntax })
28188        } else {
28189            None
28190        }
28191    }
28192    #[inline]
28193    fn syntax(&self) -> &SyntaxNode {
28194        &self.syntax
28195    }
28196}
28197impl AstNode for XmlColumnOptionList {
28198    #[inline]
28199    fn can_cast(kind: SyntaxKind) -> bool {
28200        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
28201    }
28202    #[inline]
28203    fn cast(syntax: SyntaxNode) -> Option<Self> {
28204        if Self::can_cast(syntax.kind()) {
28205            Some(Self { syntax })
28206        } else {
28207            None
28208        }
28209    }
28210    #[inline]
28211    fn syntax(&self) -> &SyntaxNode {
28212        &self.syntax
28213    }
28214}
28215impl AstNode for XmlElementFn {
28216    #[inline]
28217    fn can_cast(kind: SyntaxKind) -> bool {
28218        kind == SyntaxKind::XML_ELEMENT_FN
28219    }
28220    #[inline]
28221    fn cast(syntax: SyntaxNode) -> Option<Self> {
28222        if Self::can_cast(syntax.kind()) {
28223            Some(Self { syntax })
28224        } else {
28225            None
28226        }
28227    }
28228    #[inline]
28229    fn syntax(&self) -> &SyntaxNode {
28230        &self.syntax
28231    }
28232}
28233impl AstNode for XmlExistsFn {
28234    #[inline]
28235    fn can_cast(kind: SyntaxKind) -> bool {
28236        kind == SyntaxKind::XML_EXISTS_FN
28237    }
28238    #[inline]
28239    fn cast(syntax: SyntaxNode) -> Option<Self> {
28240        if Self::can_cast(syntax.kind()) {
28241            Some(Self { syntax })
28242        } else {
28243            None
28244        }
28245    }
28246    #[inline]
28247    fn syntax(&self) -> &SyntaxNode {
28248        &self.syntax
28249    }
28250}
28251impl AstNode for XmlForestFn {
28252    #[inline]
28253    fn can_cast(kind: SyntaxKind) -> bool {
28254        kind == SyntaxKind::XML_FOREST_FN
28255    }
28256    #[inline]
28257    fn cast(syntax: SyntaxNode) -> Option<Self> {
28258        if Self::can_cast(syntax.kind()) {
28259            Some(Self { syntax })
28260        } else {
28261            None
28262        }
28263    }
28264    #[inline]
28265    fn syntax(&self) -> &SyntaxNode {
28266        &self.syntax
28267    }
28268}
28269impl AstNode for XmlNamespace {
28270    #[inline]
28271    fn can_cast(kind: SyntaxKind) -> bool {
28272        kind == SyntaxKind::XML_NAMESPACE
28273    }
28274    #[inline]
28275    fn cast(syntax: SyntaxNode) -> Option<Self> {
28276        if Self::can_cast(syntax.kind()) {
28277            Some(Self { syntax })
28278        } else {
28279            None
28280        }
28281    }
28282    #[inline]
28283    fn syntax(&self) -> &SyntaxNode {
28284        &self.syntax
28285    }
28286}
28287impl AstNode for XmlNamespaceList {
28288    #[inline]
28289    fn can_cast(kind: SyntaxKind) -> bool {
28290        kind == SyntaxKind::XML_NAMESPACE_LIST
28291    }
28292    #[inline]
28293    fn cast(syntax: SyntaxNode) -> Option<Self> {
28294        if Self::can_cast(syntax.kind()) {
28295            Some(Self { syntax })
28296        } else {
28297            None
28298        }
28299    }
28300    #[inline]
28301    fn syntax(&self) -> &SyntaxNode {
28302        &self.syntax
28303    }
28304}
28305impl AstNode for XmlParseFn {
28306    #[inline]
28307    fn can_cast(kind: SyntaxKind) -> bool {
28308        kind == SyntaxKind::XML_PARSE_FN
28309    }
28310    #[inline]
28311    fn cast(syntax: SyntaxNode) -> Option<Self> {
28312        if Self::can_cast(syntax.kind()) {
28313            Some(Self { syntax })
28314        } else {
28315            None
28316        }
28317    }
28318    #[inline]
28319    fn syntax(&self) -> &SyntaxNode {
28320        &self.syntax
28321    }
28322}
28323impl AstNode for XmlPassingMech {
28324    #[inline]
28325    fn can_cast(kind: SyntaxKind) -> bool {
28326        kind == SyntaxKind::XML_PASSING_MECH
28327    }
28328    #[inline]
28329    fn cast(syntax: SyntaxNode) -> Option<Self> {
28330        if Self::can_cast(syntax.kind()) {
28331            Some(Self { syntax })
28332        } else {
28333            None
28334        }
28335    }
28336    #[inline]
28337    fn syntax(&self) -> &SyntaxNode {
28338        &self.syntax
28339    }
28340}
28341impl AstNode for XmlPiFn {
28342    #[inline]
28343    fn can_cast(kind: SyntaxKind) -> bool {
28344        kind == SyntaxKind::XML_PI_FN
28345    }
28346    #[inline]
28347    fn cast(syntax: SyntaxNode) -> Option<Self> {
28348        if Self::can_cast(syntax.kind()) {
28349            Some(Self { syntax })
28350        } else {
28351            None
28352        }
28353    }
28354    #[inline]
28355    fn syntax(&self) -> &SyntaxNode {
28356        &self.syntax
28357    }
28358}
28359impl AstNode for XmlRootFn {
28360    #[inline]
28361    fn can_cast(kind: SyntaxKind) -> bool {
28362        kind == SyntaxKind::XML_ROOT_FN
28363    }
28364    #[inline]
28365    fn cast(syntax: SyntaxNode) -> Option<Self> {
28366        if Self::can_cast(syntax.kind()) {
28367            Some(Self { syntax })
28368        } else {
28369            None
28370        }
28371    }
28372    #[inline]
28373    fn syntax(&self) -> &SyntaxNode {
28374        &self.syntax
28375    }
28376}
28377impl AstNode for XmlRowPassingClause {
28378    #[inline]
28379    fn can_cast(kind: SyntaxKind) -> bool {
28380        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
28381    }
28382    #[inline]
28383    fn cast(syntax: SyntaxNode) -> Option<Self> {
28384        if Self::can_cast(syntax.kind()) {
28385            Some(Self { syntax })
28386        } else {
28387            None
28388        }
28389    }
28390    #[inline]
28391    fn syntax(&self) -> &SyntaxNode {
28392        &self.syntax
28393    }
28394}
28395impl AstNode for XmlSerializeFn {
28396    #[inline]
28397    fn can_cast(kind: SyntaxKind) -> bool {
28398        kind == SyntaxKind::XML_SERIALIZE_FN
28399    }
28400    #[inline]
28401    fn cast(syntax: SyntaxNode) -> Option<Self> {
28402        if Self::can_cast(syntax.kind()) {
28403            Some(Self { syntax })
28404        } else {
28405            None
28406        }
28407    }
28408    #[inline]
28409    fn syntax(&self) -> &SyntaxNode {
28410        &self.syntax
28411    }
28412}
28413impl AstNode for XmlTable {
28414    #[inline]
28415    fn can_cast(kind: SyntaxKind) -> bool {
28416        kind == SyntaxKind::XML_TABLE
28417    }
28418    #[inline]
28419    fn cast(syntax: SyntaxNode) -> Option<Self> {
28420        if Self::can_cast(syntax.kind()) {
28421            Some(Self { syntax })
28422        } else {
28423            None
28424        }
28425    }
28426    #[inline]
28427    fn syntax(&self) -> &SyntaxNode {
28428        &self.syntax
28429    }
28430}
28431impl AstNode for XmlTableColumn {
28432    #[inline]
28433    fn can_cast(kind: SyntaxKind) -> bool {
28434        kind == SyntaxKind::XML_TABLE_COLUMN
28435    }
28436    #[inline]
28437    fn cast(syntax: SyntaxNode) -> Option<Self> {
28438        if Self::can_cast(syntax.kind()) {
28439            Some(Self { syntax })
28440        } else {
28441            None
28442        }
28443    }
28444    #[inline]
28445    fn syntax(&self) -> &SyntaxNode {
28446        &self.syntax
28447    }
28448}
28449impl AstNode for XmlTableColumnList {
28450    #[inline]
28451    fn can_cast(kind: SyntaxKind) -> bool {
28452        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
28453    }
28454    #[inline]
28455    fn cast(syntax: SyntaxNode) -> Option<Self> {
28456        if Self::can_cast(syntax.kind()) {
28457            Some(Self { syntax })
28458        } else {
28459            None
28460        }
28461    }
28462    #[inline]
28463    fn syntax(&self) -> &SyntaxNode {
28464        &self.syntax
28465    }
28466}
28467impl AstNode for AlterColumnOption {
28468    #[inline]
28469    fn can_cast(kind: SyntaxKind) -> bool {
28470        matches!(
28471            kind,
28472            SyntaxKind::ADD_GENERATED
28473                | SyntaxKind::DROP_DEFAULT
28474                | SyntaxKind::DROP_EXPRESSION
28475                | SyntaxKind::DROP_IDENTITY
28476                | SyntaxKind::DROP_NOT_NULL
28477                | SyntaxKind::RESET_OPTIONS
28478                | SyntaxKind::RESTART
28479                | SyntaxKind::SET_COMPRESSION
28480                | SyntaxKind::SET_DEFAULT
28481                | SyntaxKind::SET_EXPRESSION
28482                | SyntaxKind::SET_GENERATED
28483                | SyntaxKind::SET_GENERATED_OPTIONS
28484                | SyntaxKind::SET_NOT_NULL
28485                | SyntaxKind::SET_OPTIONS
28486                | SyntaxKind::SET_OPTIONS_LIST
28487                | SyntaxKind::SET_SEQUENCE_OPTION
28488                | SyntaxKind::SET_STATISTICS
28489                | SyntaxKind::SET_STORAGE
28490                | SyntaxKind::SET_TYPE
28491        )
28492    }
28493    #[inline]
28494    fn cast(syntax: SyntaxNode) -> Option<Self> {
28495        let res = match syntax.kind() {
28496            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
28497            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
28498            SyntaxKind::DROP_EXPRESSION => {
28499                AlterColumnOption::DropExpression(DropExpression { syntax })
28500            }
28501            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
28502            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
28503            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
28504            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
28505            SyntaxKind::SET_COMPRESSION => {
28506                AlterColumnOption::SetCompression(SetCompression { syntax })
28507            }
28508            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
28509            SyntaxKind::SET_EXPRESSION => {
28510                AlterColumnOption::SetExpression(SetExpression { syntax })
28511            }
28512            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
28513            SyntaxKind::SET_GENERATED_OPTIONS => {
28514                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
28515            }
28516            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
28517            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
28518            SyntaxKind::SET_OPTIONS_LIST => {
28519                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
28520            }
28521            SyntaxKind::SET_SEQUENCE_OPTION => {
28522                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
28523            }
28524            SyntaxKind::SET_STATISTICS => {
28525                AlterColumnOption::SetStatistics(SetStatistics { syntax })
28526            }
28527            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
28528            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
28529            _ => {
28530                return None;
28531            }
28532        };
28533        Some(res)
28534    }
28535    #[inline]
28536    fn syntax(&self) -> &SyntaxNode {
28537        match self {
28538            AlterColumnOption::AddGenerated(it) => &it.syntax,
28539            AlterColumnOption::DropDefault(it) => &it.syntax,
28540            AlterColumnOption::DropExpression(it) => &it.syntax,
28541            AlterColumnOption::DropIdentity(it) => &it.syntax,
28542            AlterColumnOption::DropNotNull(it) => &it.syntax,
28543            AlterColumnOption::ResetOptions(it) => &it.syntax,
28544            AlterColumnOption::Restart(it) => &it.syntax,
28545            AlterColumnOption::SetCompression(it) => &it.syntax,
28546            AlterColumnOption::SetDefault(it) => &it.syntax,
28547            AlterColumnOption::SetExpression(it) => &it.syntax,
28548            AlterColumnOption::SetGenerated(it) => &it.syntax,
28549            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
28550            AlterColumnOption::SetNotNull(it) => &it.syntax,
28551            AlterColumnOption::SetOptions(it) => &it.syntax,
28552            AlterColumnOption::SetOptionsList(it) => &it.syntax,
28553            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
28554            AlterColumnOption::SetStatistics(it) => &it.syntax,
28555            AlterColumnOption::SetStorage(it) => &it.syntax,
28556            AlterColumnOption::SetType(it) => &it.syntax,
28557        }
28558    }
28559}
28560impl From<AddGenerated> for AlterColumnOption {
28561    #[inline]
28562    fn from(node: AddGenerated) -> AlterColumnOption {
28563        AlterColumnOption::AddGenerated(node)
28564    }
28565}
28566impl From<DropDefault> for AlterColumnOption {
28567    #[inline]
28568    fn from(node: DropDefault) -> AlterColumnOption {
28569        AlterColumnOption::DropDefault(node)
28570    }
28571}
28572impl From<DropExpression> for AlterColumnOption {
28573    #[inline]
28574    fn from(node: DropExpression) -> AlterColumnOption {
28575        AlterColumnOption::DropExpression(node)
28576    }
28577}
28578impl From<DropIdentity> for AlterColumnOption {
28579    #[inline]
28580    fn from(node: DropIdentity) -> AlterColumnOption {
28581        AlterColumnOption::DropIdentity(node)
28582    }
28583}
28584impl From<DropNotNull> for AlterColumnOption {
28585    #[inline]
28586    fn from(node: DropNotNull) -> AlterColumnOption {
28587        AlterColumnOption::DropNotNull(node)
28588    }
28589}
28590impl From<ResetOptions> for AlterColumnOption {
28591    #[inline]
28592    fn from(node: ResetOptions) -> AlterColumnOption {
28593        AlterColumnOption::ResetOptions(node)
28594    }
28595}
28596impl From<Restart> for AlterColumnOption {
28597    #[inline]
28598    fn from(node: Restart) -> AlterColumnOption {
28599        AlterColumnOption::Restart(node)
28600    }
28601}
28602impl From<SetCompression> for AlterColumnOption {
28603    #[inline]
28604    fn from(node: SetCompression) -> AlterColumnOption {
28605        AlterColumnOption::SetCompression(node)
28606    }
28607}
28608impl From<SetDefault> for AlterColumnOption {
28609    #[inline]
28610    fn from(node: SetDefault) -> AlterColumnOption {
28611        AlterColumnOption::SetDefault(node)
28612    }
28613}
28614impl From<SetExpression> for AlterColumnOption {
28615    #[inline]
28616    fn from(node: SetExpression) -> AlterColumnOption {
28617        AlterColumnOption::SetExpression(node)
28618    }
28619}
28620impl From<SetGenerated> for AlterColumnOption {
28621    #[inline]
28622    fn from(node: SetGenerated) -> AlterColumnOption {
28623        AlterColumnOption::SetGenerated(node)
28624    }
28625}
28626impl From<SetGeneratedOptions> for AlterColumnOption {
28627    #[inline]
28628    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
28629        AlterColumnOption::SetGeneratedOptions(node)
28630    }
28631}
28632impl From<SetNotNull> for AlterColumnOption {
28633    #[inline]
28634    fn from(node: SetNotNull) -> AlterColumnOption {
28635        AlterColumnOption::SetNotNull(node)
28636    }
28637}
28638impl From<SetOptions> for AlterColumnOption {
28639    #[inline]
28640    fn from(node: SetOptions) -> AlterColumnOption {
28641        AlterColumnOption::SetOptions(node)
28642    }
28643}
28644impl From<SetOptionsList> for AlterColumnOption {
28645    #[inline]
28646    fn from(node: SetOptionsList) -> AlterColumnOption {
28647        AlterColumnOption::SetOptionsList(node)
28648    }
28649}
28650impl From<SetSequenceOption> for AlterColumnOption {
28651    #[inline]
28652    fn from(node: SetSequenceOption) -> AlterColumnOption {
28653        AlterColumnOption::SetSequenceOption(node)
28654    }
28655}
28656impl From<SetStatistics> for AlterColumnOption {
28657    #[inline]
28658    fn from(node: SetStatistics) -> AlterColumnOption {
28659        AlterColumnOption::SetStatistics(node)
28660    }
28661}
28662impl From<SetStorage> for AlterColumnOption {
28663    #[inline]
28664    fn from(node: SetStorage) -> AlterColumnOption {
28665        AlterColumnOption::SetStorage(node)
28666    }
28667}
28668impl From<SetType> for AlterColumnOption {
28669    #[inline]
28670    fn from(node: SetType) -> AlterColumnOption {
28671        AlterColumnOption::SetType(node)
28672    }
28673}
28674impl AstNode for AlterDomainAction {
28675    #[inline]
28676    fn can_cast(kind: SyntaxKind) -> bool {
28677        matches!(
28678            kind,
28679            SyntaxKind::ADD_CONSTRAINT
28680                | SyntaxKind::DROP_CONSTRAINT
28681                | SyntaxKind::DROP_DEFAULT
28682                | SyntaxKind::DROP_NOT_NULL
28683                | SyntaxKind::OWNER_TO
28684                | SyntaxKind::RENAME_CONSTRAINT
28685                | SyntaxKind::RENAME_TO
28686                | SyntaxKind::SET_DEFAULT
28687                | SyntaxKind::SET_NOT_NULL
28688                | SyntaxKind::SET_SCHEMA
28689                | SyntaxKind::VALIDATE_CONSTRAINT
28690        )
28691    }
28692    #[inline]
28693    fn cast(syntax: SyntaxNode) -> Option<Self> {
28694        let res = match syntax.kind() {
28695            SyntaxKind::ADD_CONSTRAINT => {
28696                AlterDomainAction::AddConstraint(AddConstraint { syntax })
28697            }
28698            SyntaxKind::DROP_CONSTRAINT => {
28699                AlterDomainAction::DropConstraint(DropConstraint { syntax })
28700            }
28701            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
28702            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
28703            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
28704            SyntaxKind::RENAME_CONSTRAINT => {
28705                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
28706            }
28707            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
28708            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
28709            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
28710            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
28711            SyntaxKind::VALIDATE_CONSTRAINT => {
28712                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
28713            }
28714            _ => {
28715                return None;
28716            }
28717        };
28718        Some(res)
28719    }
28720    #[inline]
28721    fn syntax(&self) -> &SyntaxNode {
28722        match self {
28723            AlterDomainAction::AddConstraint(it) => &it.syntax,
28724            AlterDomainAction::DropConstraint(it) => &it.syntax,
28725            AlterDomainAction::DropDefault(it) => &it.syntax,
28726            AlterDomainAction::DropNotNull(it) => &it.syntax,
28727            AlterDomainAction::OwnerTo(it) => &it.syntax,
28728            AlterDomainAction::RenameConstraint(it) => &it.syntax,
28729            AlterDomainAction::RenameTo(it) => &it.syntax,
28730            AlterDomainAction::SetDefault(it) => &it.syntax,
28731            AlterDomainAction::SetNotNull(it) => &it.syntax,
28732            AlterDomainAction::SetSchema(it) => &it.syntax,
28733            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
28734        }
28735    }
28736}
28737impl From<AddConstraint> for AlterDomainAction {
28738    #[inline]
28739    fn from(node: AddConstraint) -> AlterDomainAction {
28740        AlterDomainAction::AddConstraint(node)
28741    }
28742}
28743impl From<DropConstraint> for AlterDomainAction {
28744    #[inline]
28745    fn from(node: DropConstraint) -> AlterDomainAction {
28746        AlterDomainAction::DropConstraint(node)
28747    }
28748}
28749impl From<DropDefault> for AlterDomainAction {
28750    #[inline]
28751    fn from(node: DropDefault) -> AlterDomainAction {
28752        AlterDomainAction::DropDefault(node)
28753    }
28754}
28755impl From<DropNotNull> for AlterDomainAction {
28756    #[inline]
28757    fn from(node: DropNotNull) -> AlterDomainAction {
28758        AlterDomainAction::DropNotNull(node)
28759    }
28760}
28761impl From<OwnerTo> for AlterDomainAction {
28762    #[inline]
28763    fn from(node: OwnerTo) -> AlterDomainAction {
28764        AlterDomainAction::OwnerTo(node)
28765    }
28766}
28767impl From<RenameConstraint> for AlterDomainAction {
28768    #[inline]
28769    fn from(node: RenameConstraint) -> AlterDomainAction {
28770        AlterDomainAction::RenameConstraint(node)
28771    }
28772}
28773impl From<RenameTo> for AlterDomainAction {
28774    #[inline]
28775    fn from(node: RenameTo) -> AlterDomainAction {
28776        AlterDomainAction::RenameTo(node)
28777    }
28778}
28779impl From<SetDefault> for AlterDomainAction {
28780    #[inline]
28781    fn from(node: SetDefault) -> AlterDomainAction {
28782        AlterDomainAction::SetDefault(node)
28783    }
28784}
28785impl From<SetNotNull> for AlterDomainAction {
28786    #[inline]
28787    fn from(node: SetNotNull) -> AlterDomainAction {
28788        AlterDomainAction::SetNotNull(node)
28789    }
28790}
28791impl From<SetSchema> for AlterDomainAction {
28792    #[inline]
28793    fn from(node: SetSchema) -> AlterDomainAction {
28794        AlterDomainAction::SetSchema(node)
28795    }
28796}
28797impl From<ValidateConstraint> for AlterDomainAction {
28798    #[inline]
28799    fn from(node: ValidateConstraint) -> AlterDomainAction {
28800        AlterDomainAction::ValidateConstraint(node)
28801    }
28802}
28803impl AstNode for AlterMaterializedViewAction {
28804    #[inline]
28805    fn can_cast(kind: SyntaxKind) -> bool {
28806        matches!(
28807            kind,
28808            SyntaxKind::DEPENDS_ON_EXTENSION
28809                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
28810                | SyntaxKind::RENAME_COLUMN
28811                | SyntaxKind::RENAME_TO
28812                | SyntaxKind::SET_SCHEMA
28813        )
28814    }
28815    #[inline]
28816    fn cast(syntax: SyntaxNode) -> Option<Self> {
28817        let res = match syntax.kind() {
28818            SyntaxKind::DEPENDS_ON_EXTENSION => {
28819                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
28820            }
28821            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
28822                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
28823            }
28824            SyntaxKind::RENAME_COLUMN => {
28825                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
28826            }
28827            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
28828            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
28829            _ => {
28830                if let Some(result) = AlterTableAction::cast(syntax) {
28831                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
28832                }
28833                return None;
28834            }
28835        };
28836        Some(res)
28837    }
28838    #[inline]
28839    fn syntax(&self) -> &SyntaxNode {
28840        match self {
28841            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
28842            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
28843            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
28844            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
28845            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
28846            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
28847        }
28848    }
28849}
28850impl From<DependsOnExtension> for AlterMaterializedViewAction {
28851    #[inline]
28852    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
28853        AlterMaterializedViewAction::DependsOnExtension(node)
28854    }
28855}
28856impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
28857    #[inline]
28858    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
28859        AlterMaterializedViewAction::NoDependsOnExtension(node)
28860    }
28861}
28862impl From<RenameColumn> for AlterMaterializedViewAction {
28863    #[inline]
28864    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
28865        AlterMaterializedViewAction::RenameColumn(node)
28866    }
28867}
28868impl From<RenameTo> for AlterMaterializedViewAction {
28869    #[inline]
28870    fn from(node: RenameTo) -> AlterMaterializedViewAction {
28871        AlterMaterializedViewAction::RenameTo(node)
28872    }
28873}
28874impl From<SetSchema> for AlterMaterializedViewAction {
28875    #[inline]
28876    fn from(node: SetSchema) -> AlterMaterializedViewAction {
28877        AlterMaterializedViewAction::SetSchema(node)
28878    }
28879}
28880impl AstNode for AlterTableAction {
28881    #[inline]
28882    fn can_cast(kind: SyntaxKind) -> bool {
28883        matches!(
28884            kind,
28885            SyntaxKind::ADD_COLUMN
28886                | SyntaxKind::ADD_CONSTRAINT
28887                | SyntaxKind::ALTER_COLUMN
28888                | SyntaxKind::ALTER_CONSTRAINT
28889                | SyntaxKind::ATTACH_PARTITION
28890                | SyntaxKind::CLUSTER_ON
28891                | SyntaxKind::DETACH_PARTITION
28892                | SyntaxKind::DISABLE_RLS
28893                | SyntaxKind::DISABLE_RULE
28894                | SyntaxKind::DISABLE_TRIGGER
28895                | SyntaxKind::DROP_COLUMN
28896                | SyntaxKind::DROP_CONSTRAINT
28897                | SyntaxKind::ENABLE_ALWAYS_RULE
28898                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
28899                | SyntaxKind::ENABLE_REPLICA_RULE
28900                | SyntaxKind::ENABLE_REPLICA_TRIGGER
28901                | SyntaxKind::ENABLE_RLS
28902                | SyntaxKind::ENABLE_RULE
28903                | SyntaxKind::ENABLE_TRIGGER
28904                | SyntaxKind::FORCE_RLS
28905                | SyntaxKind::INHERIT_TABLE
28906                | SyntaxKind::MERGE_PARTITIONS
28907                | SyntaxKind::NO_FORCE_RLS
28908                | SyntaxKind::NO_INHERIT_TABLE
28909                | SyntaxKind::NOT_OF
28910                | SyntaxKind::OF_TYPE
28911                | SyntaxKind::OPTION_ITEM_LIST
28912                | SyntaxKind::OWNER_TO
28913                | SyntaxKind::RENAME_COLUMN
28914                | SyntaxKind::RENAME_CONSTRAINT
28915                | SyntaxKind::RENAME_TO
28916                | SyntaxKind::REPLICA_IDENTITY
28917                | SyntaxKind::RESET_OPTIONS
28918                | SyntaxKind::SET_ACCESS_METHOD
28919                | SyntaxKind::SET_LOGGED
28920                | SyntaxKind::SET_OPTIONS
28921                | SyntaxKind::SET_SCHEMA
28922                | SyntaxKind::SET_TABLESPACE
28923                | SyntaxKind::SET_UNLOGGED
28924                | SyntaxKind::SET_WITHOUT_CLUSTER
28925                | SyntaxKind::SET_WITHOUT_OIDS
28926                | SyntaxKind::SPLIT_PARTITION
28927                | SyntaxKind::VALIDATE_CONSTRAINT
28928        )
28929    }
28930    #[inline]
28931    fn cast(syntax: SyntaxNode) -> Option<Self> {
28932        let res = match syntax.kind() {
28933            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
28934            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
28935            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
28936            SyntaxKind::ALTER_CONSTRAINT => {
28937                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
28938            }
28939            SyntaxKind::ATTACH_PARTITION => {
28940                AlterTableAction::AttachPartition(AttachPartition { syntax })
28941            }
28942            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
28943            SyntaxKind::DETACH_PARTITION => {
28944                AlterTableAction::DetachPartition(DetachPartition { syntax })
28945            }
28946            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
28947            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
28948            SyntaxKind::DISABLE_TRIGGER => {
28949                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
28950            }
28951            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
28952            SyntaxKind::DROP_CONSTRAINT => {
28953                AlterTableAction::DropConstraint(DropConstraint { syntax })
28954            }
28955            SyntaxKind::ENABLE_ALWAYS_RULE => {
28956                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
28957            }
28958            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
28959                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
28960            }
28961            SyntaxKind::ENABLE_REPLICA_RULE => {
28962                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
28963            }
28964            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
28965                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
28966            }
28967            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
28968            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
28969            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
28970            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
28971            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
28972            SyntaxKind::MERGE_PARTITIONS => {
28973                AlterTableAction::MergePartitions(MergePartitions { syntax })
28974            }
28975            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
28976            SyntaxKind::NO_INHERIT_TABLE => {
28977                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
28978            }
28979            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
28980            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
28981            SyntaxKind::OPTION_ITEM_LIST => {
28982                AlterTableAction::OptionItemList(OptionItemList { syntax })
28983            }
28984            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
28985            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
28986            SyntaxKind::RENAME_CONSTRAINT => {
28987                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
28988            }
28989            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
28990            SyntaxKind::REPLICA_IDENTITY => {
28991                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
28992            }
28993            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
28994            SyntaxKind::SET_ACCESS_METHOD => {
28995                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
28996            }
28997            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
28998            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
28999            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
29000            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
29001            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
29002            SyntaxKind::SET_WITHOUT_CLUSTER => {
29003                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
29004            }
29005            SyntaxKind::SET_WITHOUT_OIDS => {
29006                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
29007            }
29008            SyntaxKind::SPLIT_PARTITION => {
29009                AlterTableAction::SplitPartition(SplitPartition { syntax })
29010            }
29011            SyntaxKind::VALIDATE_CONSTRAINT => {
29012                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
29013            }
29014            _ => {
29015                return None;
29016            }
29017        };
29018        Some(res)
29019    }
29020    #[inline]
29021    fn syntax(&self) -> &SyntaxNode {
29022        match self {
29023            AlterTableAction::AddColumn(it) => &it.syntax,
29024            AlterTableAction::AddConstraint(it) => &it.syntax,
29025            AlterTableAction::AlterColumn(it) => &it.syntax,
29026            AlterTableAction::AlterConstraint(it) => &it.syntax,
29027            AlterTableAction::AttachPartition(it) => &it.syntax,
29028            AlterTableAction::ClusterOn(it) => &it.syntax,
29029            AlterTableAction::DetachPartition(it) => &it.syntax,
29030            AlterTableAction::DisableRls(it) => &it.syntax,
29031            AlterTableAction::DisableRule(it) => &it.syntax,
29032            AlterTableAction::DisableTrigger(it) => &it.syntax,
29033            AlterTableAction::DropColumn(it) => &it.syntax,
29034            AlterTableAction::DropConstraint(it) => &it.syntax,
29035            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
29036            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
29037            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
29038            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
29039            AlterTableAction::EnableRls(it) => &it.syntax,
29040            AlterTableAction::EnableRule(it) => &it.syntax,
29041            AlterTableAction::EnableTrigger(it) => &it.syntax,
29042            AlterTableAction::ForceRls(it) => &it.syntax,
29043            AlterTableAction::InheritTable(it) => &it.syntax,
29044            AlterTableAction::MergePartitions(it) => &it.syntax,
29045            AlterTableAction::NoForceRls(it) => &it.syntax,
29046            AlterTableAction::NoInheritTable(it) => &it.syntax,
29047            AlterTableAction::NotOf(it) => &it.syntax,
29048            AlterTableAction::OfType(it) => &it.syntax,
29049            AlterTableAction::OptionItemList(it) => &it.syntax,
29050            AlterTableAction::OwnerTo(it) => &it.syntax,
29051            AlterTableAction::RenameColumn(it) => &it.syntax,
29052            AlterTableAction::RenameConstraint(it) => &it.syntax,
29053            AlterTableAction::RenameTo(it) => &it.syntax,
29054            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
29055            AlterTableAction::ResetOptions(it) => &it.syntax,
29056            AlterTableAction::SetAccessMethod(it) => &it.syntax,
29057            AlterTableAction::SetLogged(it) => &it.syntax,
29058            AlterTableAction::SetOptions(it) => &it.syntax,
29059            AlterTableAction::SetSchema(it) => &it.syntax,
29060            AlterTableAction::SetTablespace(it) => &it.syntax,
29061            AlterTableAction::SetUnlogged(it) => &it.syntax,
29062            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
29063            AlterTableAction::SetWithoutOids(it) => &it.syntax,
29064            AlterTableAction::SplitPartition(it) => &it.syntax,
29065            AlterTableAction::ValidateConstraint(it) => &it.syntax,
29066        }
29067    }
29068}
29069impl From<AddColumn> for AlterTableAction {
29070    #[inline]
29071    fn from(node: AddColumn) -> AlterTableAction {
29072        AlterTableAction::AddColumn(node)
29073    }
29074}
29075impl From<AddConstraint> for AlterTableAction {
29076    #[inline]
29077    fn from(node: AddConstraint) -> AlterTableAction {
29078        AlterTableAction::AddConstraint(node)
29079    }
29080}
29081impl From<AlterColumn> for AlterTableAction {
29082    #[inline]
29083    fn from(node: AlterColumn) -> AlterTableAction {
29084        AlterTableAction::AlterColumn(node)
29085    }
29086}
29087impl From<AlterConstraint> for AlterTableAction {
29088    #[inline]
29089    fn from(node: AlterConstraint) -> AlterTableAction {
29090        AlterTableAction::AlterConstraint(node)
29091    }
29092}
29093impl From<AttachPartition> for AlterTableAction {
29094    #[inline]
29095    fn from(node: AttachPartition) -> AlterTableAction {
29096        AlterTableAction::AttachPartition(node)
29097    }
29098}
29099impl From<ClusterOn> for AlterTableAction {
29100    #[inline]
29101    fn from(node: ClusterOn) -> AlterTableAction {
29102        AlterTableAction::ClusterOn(node)
29103    }
29104}
29105impl From<DetachPartition> for AlterTableAction {
29106    #[inline]
29107    fn from(node: DetachPartition) -> AlterTableAction {
29108        AlterTableAction::DetachPartition(node)
29109    }
29110}
29111impl From<DisableRls> for AlterTableAction {
29112    #[inline]
29113    fn from(node: DisableRls) -> AlterTableAction {
29114        AlterTableAction::DisableRls(node)
29115    }
29116}
29117impl From<DisableRule> for AlterTableAction {
29118    #[inline]
29119    fn from(node: DisableRule) -> AlterTableAction {
29120        AlterTableAction::DisableRule(node)
29121    }
29122}
29123impl From<DisableTrigger> for AlterTableAction {
29124    #[inline]
29125    fn from(node: DisableTrigger) -> AlterTableAction {
29126        AlterTableAction::DisableTrigger(node)
29127    }
29128}
29129impl From<DropColumn> for AlterTableAction {
29130    #[inline]
29131    fn from(node: DropColumn) -> AlterTableAction {
29132        AlterTableAction::DropColumn(node)
29133    }
29134}
29135impl From<DropConstraint> for AlterTableAction {
29136    #[inline]
29137    fn from(node: DropConstraint) -> AlterTableAction {
29138        AlterTableAction::DropConstraint(node)
29139    }
29140}
29141impl From<EnableAlwaysRule> for AlterTableAction {
29142    #[inline]
29143    fn from(node: EnableAlwaysRule) -> AlterTableAction {
29144        AlterTableAction::EnableAlwaysRule(node)
29145    }
29146}
29147impl From<EnableAlwaysTrigger> for AlterTableAction {
29148    #[inline]
29149    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
29150        AlterTableAction::EnableAlwaysTrigger(node)
29151    }
29152}
29153impl From<EnableReplicaRule> for AlterTableAction {
29154    #[inline]
29155    fn from(node: EnableReplicaRule) -> AlterTableAction {
29156        AlterTableAction::EnableReplicaRule(node)
29157    }
29158}
29159impl From<EnableReplicaTrigger> for AlterTableAction {
29160    #[inline]
29161    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
29162        AlterTableAction::EnableReplicaTrigger(node)
29163    }
29164}
29165impl From<EnableRls> for AlterTableAction {
29166    #[inline]
29167    fn from(node: EnableRls) -> AlterTableAction {
29168        AlterTableAction::EnableRls(node)
29169    }
29170}
29171impl From<EnableRule> for AlterTableAction {
29172    #[inline]
29173    fn from(node: EnableRule) -> AlterTableAction {
29174        AlterTableAction::EnableRule(node)
29175    }
29176}
29177impl From<EnableTrigger> for AlterTableAction {
29178    #[inline]
29179    fn from(node: EnableTrigger) -> AlterTableAction {
29180        AlterTableAction::EnableTrigger(node)
29181    }
29182}
29183impl From<ForceRls> for AlterTableAction {
29184    #[inline]
29185    fn from(node: ForceRls) -> AlterTableAction {
29186        AlterTableAction::ForceRls(node)
29187    }
29188}
29189impl From<InheritTable> for AlterTableAction {
29190    #[inline]
29191    fn from(node: InheritTable) -> AlterTableAction {
29192        AlterTableAction::InheritTable(node)
29193    }
29194}
29195impl From<MergePartitions> for AlterTableAction {
29196    #[inline]
29197    fn from(node: MergePartitions) -> AlterTableAction {
29198        AlterTableAction::MergePartitions(node)
29199    }
29200}
29201impl From<NoForceRls> for AlterTableAction {
29202    #[inline]
29203    fn from(node: NoForceRls) -> AlterTableAction {
29204        AlterTableAction::NoForceRls(node)
29205    }
29206}
29207impl From<NoInheritTable> for AlterTableAction {
29208    #[inline]
29209    fn from(node: NoInheritTable) -> AlterTableAction {
29210        AlterTableAction::NoInheritTable(node)
29211    }
29212}
29213impl From<NotOf> for AlterTableAction {
29214    #[inline]
29215    fn from(node: NotOf) -> AlterTableAction {
29216        AlterTableAction::NotOf(node)
29217    }
29218}
29219impl From<OfType> for AlterTableAction {
29220    #[inline]
29221    fn from(node: OfType) -> AlterTableAction {
29222        AlterTableAction::OfType(node)
29223    }
29224}
29225impl From<OptionItemList> for AlterTableAction {
29226    #[inline]
29227    fn from(node: OptionItemList) -> AlterTableAction {
29228        AlterTableAction::OptionItemList(node)
29229    }
29230}
29231impl From<OwnerTo> for AlterTableAction {
29232    #[inline]
29233    fn from(node: OwnerTo) -> AlterTableAction {
29234        AlterTableAction::OwnerTo(node)
29235    }
29236}
29237impl From<RenameColumn> for AlterTableAction {
29238    #[inline]
29239    fn from(node: RenameColumn) -> AlterTableAction {
29240        AlterTableAction::RenameColumn(node)
29241    }
29242}
29243impl From<RenameConstraint> for AlterTableAction {
29244    #[inline]
29245    fn from(node: RenameConstraint) -> AlterTableAction {
29246        AlterTableAction::RenameConstraint(node)
29247    }
29248}
29249impl From<RenameTo> for AlterTableAction {
29250    #[inline]
29251    fn from(node: RenameTo) -> AlterTableAction {
29252        AlterTableAction::RenameTo(node)
29253    }
29254}
29255impl From<ReplicaIdentity> for AlterTableAction {
29256    #[inline]
29257    fn from(node: ReplicaIdentity) -> AlterTableAction {
29258        AlterTableAction::ReplicaIdentity(node)
29259    }
29260}
29261impl From<ResetOptions> for AlterTableAction {
29262    #[inline]
29263    fn from(node: ResetOptions) -> AlterTableAction {
29264        AlterTableAction::ResetOptions(node)
29265    }
29266}
29267impl From<SetAccessMethod> for AlterTableAction {
29268    #[inline]
29269    fn from(node: SetAccessMethod) -> AlterTableAction {
29270        AlterTableAction::SetAccessMethod(node)
29271    }
29272}
29273impl From<SetLogged> for AlterTableAction {
29274    #[inline]
29275    fn from(node: SetLogged) -> AlterTableAction {
29276        AlterTableAction::SetLogged(node)
29277    }
29278}
29279impl From<SetOptions> for AlterTableAction {
29280    #[inline]
29281    fn from(node: SetOptions) -> AlterTableAction {
29282        AlterTableAction::SetOptions(node)
29283    }
29284}
29285impl From<SetSchema> for AlterTableAction {
29286    #[inline]
29287    fn from(node: SetSchema) -> AlterTableAction {
29288        AlterTableAction::SetSchema(node)
29289    }
29290}
29291impl From<SetTablespace> for AlterTableAction {
29292    #[inline]
29293    fn from(node: SetTablespace) -> AlterTableAction {
29294        AlterTableAction::SetTablespace(node)
29295    }
29296}
29297impl From<SetUnlogged> for AlterTableAction {
29298    #[inline]
29299    fn from(node: SetUnlogged) -> AlterTableAction {
29300        AlterTableAction::SetUnlogged(node)
29301    }
29302}
29303impl From<SetWithoutCluster> for AlterTableAction {
29304    #[inline]
29305    fn from(node: SetWithoutCluster) -> AlterTableAction {
29306        AlterTableAction::SetWithoutCluster(node)
29307    }
29308}
29309impl From<SetWithoutOids> for AlterTableAction {
29310    #[inline]
29311    fn from(node: SetWithoutOids) -> AlterTableAction {
29312        AlterTableAction::SetWithoutOids(node)
29313    }
29314}
29315impl From<SplitPartition> for AlterTableAction {
29316    #[inline]
29317    fn from(node: SplitPartition) -> AlterTableAction {
29318        AlterTableAction::SplitPartition(node)
29319    }
29320}
29321impl From<ValidateConstraint> for AlterTableAction {
29322    #[inline]
29323    fn from(node: ValidateConstraint) -> AlterTableAction {
29324        AlterTableAction::ValidateConstraint(node)
29325    }
29326}
29327impl AstNode for ColumnConstraint {
29328    #[inline]
29329    fn can_cast(kind: SyntaxKind) -> bool {
29330        matches!(
29331            kind,
29332            SyntaxKind::CHECK_CONSTRAINT
29333                | SyntaxKind::DEFAULT_CONSTRAINT
29334                | SyntaxKind::EXCLUDE_CONSTRAINT
29335                | SyntaxKind::NOT_NULL_CONSTRAINT
29336                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
29337                | SyntaxKind::REFERENCES_CONSTRAINT
29338                | SyntaxKind::UNIQUE_CONSTRAINT
29339        )
29340    }
29341    #[inline]
29342    fn cast(syntax: SyntaxNode) -> Option<Self> {
29343        let res = match syntax.kind() {
29344            SyntaxKind::CHECK_CONSTRAINT => {
29345                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
29346            }
29347            SyntaxKind::DEFAULT_CONSTRAINT => {
29348                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
29349            }
29350            SyntaxKind::EXCLUDE_CONSTRAINT => {
29351                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
29352            }
29353            SyntaxKind::NOT_NULL_CONSTRAINT => {
29354                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
29355            }
29356            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
29357                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
29358            }
29359            SyntaxKind::REFERENCES_CONSTRAINT => {
29360                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
29361            }
29362            SyntaxKind::UNIQUE_CONSTRAINT => {
29363                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
29364            }
29365            _ => {
29366                return None;
29367            }
29368        };
29369        Some(res)
29370    }
29371    #[inline]
29372    fn syntax(&self) -> &SyntaxNode {
29373        match self {
29374            ColumnConstraint::CheckConstraint(it) => &it.syntax,
29375            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
29376            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
29377            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
29378            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
29379            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
29380            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
29381        }
29382    }
29383}
29384impl From<CheckConstraint> for ColumnConstraint {
29385    #[inline]
29386    fn from(node: CheckConstraint) -> ColumnConstraint {
29387        ColumnConstraint::CheckConstraint(node)
29388    }
29389}
29390impl From<DefaultConstraint> for ColumnConstraint {
29391    #[inline]
29392    fn from(node: DefaultConstraint) -> ColumnConstraint {
29393        ColumnConstraint::DefaultConstraint(node)
29394    }
29395}
29396impl From<ExcludeConstraint> for ColumnConstraint {
29397    #[inline]
29398    fn from(node: ExcludeConstraint) -> ColumnConstraint {
29399        ColumnConstraint::ExcludeConstraint(node)
29400    }
29401}
29402impl From<NotNullConstraint> for ColumnConstraint {
29403    #[inline]
29404    fn from(node: NotNullConstraint) -> ColumnConstraint {
29405        ColumnConstraint::NotNullConstraint(node)
29406    }
29407}
29408impl From<PrimaryKeyConstraint> for ColumnConstraint {
29409    #[inline]
29410    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
29411        ColumnConstraint::PrimaryKeyConstraint(node)
29412    }
29413}
29414impl From<ReferencesConstraint> for ColumnConstraint {
29415    #[inline]
29416    fn from(node: ReferencesConstraint) -> ColumnConstraint {
29417        ColumnConstraint::ReferencesConstraint(node)
29418    }
29419}
29420impl From<UniqueConstraint> for ColumnConstraint {
29421    #[inline]
29422    fn from(node: UniqueConstraint) -> ColumnConstraint {
29423        ColumnConstraint::UniqueConstraint(node)
29424    }
29425}
29426impl AstNode for ConfigValue {
29427    #[inline]
29428    fn can_cast(kind: SyntaxKind) -> bool {
29429        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
29430    }
29431    #[inline]
29432    fn cast(syntax: SyntaxNode) -> Option<Self> {
29433        let res = match syntax.kind() {
29434            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
29435            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
29436            _ => {
29437                return None;
29438            }
29439        };
29440        Some(res)
29441    }
29442    #[inline]
29443    fn syntax(&self) -> &SyntaxNode {
29444        match self {
29445            ConfigValue::Literal(it) => &it.syntax,
29446            ConfigValue::NameRef(it) => &it.syntax,
29447        }
29448    }
29449}
29450impl From<Literal> for ConfigValue {
29451    #[inline]
29452    fn from(node: Literal) -> ConfigValue {
29453        ConfigValue::Literal(node)
29454    }
29455}
29456impl From<NameRef> for ConfigValue {
29457    #[inline]
29458    fn from(node: NameRef) -> ConfigValue {
29459        ConfigValue::NameRef(node)
29460    }
29461}
29462impl AstNode for ConflictAction {
29463    #[inline]
29464    fn can_cast(kind: SyntaxKind) -> bool {
29465        matches!(
29466            kind,
29467            SyntaxKind::CONFLICT_DO_NOTHING | SyntaxKind::CONFLICT_DO_UPDATE_SET
29468        )
29469    }
29470    #[inline]
29471    fn cast(syntax: SyntaxNode) -> Option<Self> {
29472        let res = match syntax.kind() {
29473            SyntaxKind::CONFLICT_DO_NOTHING => {
29474                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
29475            }
29476            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
29477                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
29478            }
29479            _ => {
29480                return None;
29481            }
29482        };
29483        Some(res)
29484    }
29485    #[inline]
29486    fn syntax(&self) -> &SyntaxNode {
29487        match self {
29488            ConflictAction::ConflictDoNothing(it) => &it.syntax,
29489            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
29490        }
29491    }
29492}
29493impl From<ConflictDoNothing> for ConflictAction {
29494    #[inline]
29495    fn from(node: ConflictDoNothing) -> ConflictAction {
29496        ConflictAction::ConflictDoNothing(node)
29497    }
29498}
29499impl From<ConflictDoUpdateSet> for ConflictAction {
29500    #[inline]
29501    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
29502        ConflictAction::ConflictDoUpdateSet(node)
29503    }
29504}
29505impl AstNode for ConflictTarget {
29506    #[inline]
29507    fn can_cast(kind: SyntaxKind) -> bool {
29508        matches!(
29509            kind,
29510            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
29511        )
29512    }
29513    #[inline]
29514    fn cast(syntax: SyntaxNode) -> Option<Self> {
29515        let res = match syntax.kind() {
29516            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
29517                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
29518            }
29519            SyntaxKind::CONFLICT_ON_INDEX => {
29520                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
29521            }
29522            _ => {
29523                return None;
29524            }
29525        };
29526        Some(res)
29527    }
29528    #[inline]
29529    fn syntax(&self) -> &SyntaxNode {
29530        match self {
29531            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
29532            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
29533        }
29534    }
29535}
29536impl From<ConflictOnConstraint> for ConflictTarget {
29537    #[inline]
29538    fn from(node: ConflictOnConstraint) -> ConflictTarget {
29539        ConflictTarget::ConflictOnConstraint(node)
29540    }
29541}
29542impl From<ConflictOnIndex> for ConflictTarget {
29543    #[inline]
29544    fn from(node: ConflictOnIndex) -> ConflictTarget {
29545        ConflictTarget::ConflictOnIndex(node)
29546    }
29547}
29548impl AstNode for Constraint {
29549    #[inline]
29550    fn can_cast(kind: SyntaxKind) -> bool {
29551        matches!(
29552            kind,
29553            SyntaxKind::CHECK_CONSTRAINT
29554                | SyntaxKind::DEFAULT_CONSTRAINT
29555                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
29556                | SyntaxKind::GENERATED_CONSTRAINT
29557                | SyntaxKind::NOT_NULL_CONSTRAINT
29558                | SyntaxKind::NULL_CONSTRAINT
29559                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
29560                | SyntaxKind::REFERENCES_CONSTRAINT
29561                | SyntaxKind::UNIQUE_CONSTRAINT
29562        )
29563    }
29564    #[inline]
29565    fn cast(syntax: SyntaxNode) -> Option<Self> {
29566        let res = match syntax.kind() {
29567            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
29568            SyntaxKind::DEFAULT_CONSTRAINT => {
29569                Constraint::DefaultConstraint(DefaultConstraint { syntax })
29570            }
29571            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
29572                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
29573            }
29574            SyntaxKind::GENERATED_CONSTRAINT => {
29575                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
29576            }
29577            SyntaxKind::NOT_NULL_CONSTRAINT => {
29578                Constraint::NotNullConstraint(NotNullConstraint { syntax })
29579            }
29580            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
29581            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
29582                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
29583            }
29584            SyntaxKind::REFERENCES_CONSTRAINT => {
29585                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
29586            }
29587            SyntaxKind::UNIQUE_CONSTRAINT => {
29588                Constraint::UniqueConstraint(UniqueConstraint { syntax })
29589            }
29590            _ => {
29591                return None;
29592            }
29593        };
29594        Some(res)
29595    }
29596    #[inline]
29597    fn syntax(&self) -> &SyntaxNode {
29598        match self {
29599            Constraint::CheckConstraint(it) => &it.syntax,
29600            Constraint::DefaultConstraint(it) => &it.syntax,
29601            Constraint::ForeignKeyConstraint(it) => &it.syntax,
29602            Constraint::GeneratedConstraint(it) => &it.syntax,
29603            Constraint::NotNullConstraint(it) => &it.syntax,
29604            Constraint::NullConstraint(it) => &it.syntax,
29605            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
29606            Constraint::ReferencesConstraint(it) => &it.syntax,
29607            Constraint::UniqueConstraint(it) => &it.syntax,
29608        }
29609    }
29610}
29611impl From<CheckConstraint> for Constraint {
29612    #[inline]
29613    fn from(node: CheckConstraint) -> Constraint {
29614        Constraint::CheckConstraint(node)
29615    }
29616}
29617impl From<DefaultConstraint> for Constraint {
29618    #[inline]
29619    fn from(node: DefaultConstraint) -> Constraint {
29620        Constraint::DefaultConstraint(node)
29621    }
29622}
29623impl From<ForeignKeyConstraint> for Constraint {
29624    #[inline]
29625    fn from(node: ForeignKeyConstraint) -> Constraint {
29626        Constraint::ForeignKeyConstraint(node)
29627    }
29628}
29629impl From<GeneratedConstraint> for Constraint {
29630    #[inline]
29631    fn from(node: GeneratedConstraint) -> Constraint {
29632        Constraint::GeneratedConstraint(node)
29633    }
29634}
29635impl From<NotNullConstraint> for Constraint {
29636    #[inline]
29637    fn from(node: NotNullConstraint) -> Constraint {
29638        Constraint::NotNullConstraint(node)
29639    }
29640}
29641impl From<NullConstraint> for Constraint {
29642    #[inline]
29643    fn from(node: NullConstraint) -> Constraint {
29644        Constraint::NullConstraint(node)
29645    }
29646}
29647impl From<PrimaryKeyConstraint> for Constraint {
29648    #[inline]
29649    fn from(node: PrimaryKeyConstraint) -> Constraint {
29650        Constraint::PrimaryKeyConstraint(node)
29651    }
29652}
29653impl From<ReferencesConstraint> for Constraint {
29654    #[inline]
29655    fn from(node: ReferencesConstraint) -> Constraint {
29656        Constraint::ReferencesConstraint(node)
29657    }
29658}
29659impl From<UniqueConstraint> for Constraint {
29660    #[inline]
29661    fn from(node: UniqueConstraint) -> Constraint {
29662        Constraint::UniqueConstraint(node)
29663    }
29664}
29665impl AstNode for ExplainStmt {
29666    #[inline]
29667    fn can_cast(kind: SyntaxKind) -> bool {
29668        matches!(
29669            kind,
29670            SyntaxKind::COMPOUND_SELECT
29671                | SyntaxKind::CREATE_MATERIALIZED_VIEW
29672                | SyntaxKind::CREATE_TABLE_AS
29673                | SyntaxKind::DECLARE
29674                | SyntaxKind::DELETE
29675                | SyntaxKind::EXECUTE
29676                | SyntaxKind::INSERT
29677                | SyntaxKind::MERGE
29678                | SyntaxKind::PAREN_SELECT
29679                | SyntaxKind::SELECT
29680                | SyntaxKind::SELECT_INTO
29681                | SyntaxKind::TABLE
29682                | SyntaxKind::UPDATE
29683                | SyntaxKind::VALUES
29684        )
29685    }
29686    #[inline]
29687    fn cast(syntax: SyntaxNode) -> Option<Self> {
29688        let res = match syntax.kind() {
29689            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
29690            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
29691                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
29692            }
29693            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
29694            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
29695            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
29696            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
29697            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
29698            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
29699            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
29700            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
29701            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
29702            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
29703            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
29704            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
29705            _ => {
29706                return None;
29707            }
29708        };
29709        Some(res)
29710    }
29711    #[inline]
29712    fn syntax(&self) -> &SyntaxNode {
29713        match self {
29714            ExplainStmt::CompoundSelect(it) => &it.syntax,
29715            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
29716            ExplainStmt::CreateTableAs(it) => &it.syntax,
29717            ExplainStmt::Declare(it) => &it.syntax,
29718            ExplainStmt::Delete(it) => &it.syntax,
29719            ExplainStmt::Execute(it) => &it.syntax,
29720            ExplainStmt::Insert(it) => &it.syntax,
29721            ExplainStmt::Merge(it) => &it.syntax,
29722            ExplainStmt::ParenSelect(it) => &it.syntax,
29723            ExplainStmt::Select(it) => &it.syntax,
29724            ExplainStmt::SelectInto(it) => &it.syntax,
29725            ExplainStmt::Table(it) => &it.syntax,
29726            ExplainStmt::Update(it) => &it.syntax,
29727            ExplainStmt::Values(it) => &it.syntax,
29728        }
29729    }
29730}
29731impl From<CompoundSelect> for ExplainStmt {
29732    #[inline]
29733    fn from(node: CompoundSelect) -> ExplainStmt {
29734        ExplainStmt::CompoundSelect(node)
29735    }
29736}
29737impl From<CreateMaterializedView> for ExplainStmt {
29738    #[inline]
29739    fn from(node: CreateMaterializedView) -> ExplainStmt {
29740        ExplainStmt::CreateMaterializedView(node)
29741    }
29742}
29743impl From<CreateTableAs> for ExplainStmt {
29744    #[inline]
29745    fn from(node: CreateTableAs) -> ExplainStmt {
29746        ExplainStmt::CreateTableAs(node)
29747    }
29748}
29749impl From<Declare> for ExplainStmt {
29750    #[inline]
29751    fn from(node: Declare) -> ExplainStmt {
29752        ExplainStmt::Declare(node)
29753    }
29754}
29755impl From<Delete> for ExplainStmt {
29756    #[inline]
29757    fn from(node: Delete) -> ExplainStmt {
29758        ExplainStmt::Delete(node)
29759    }
29760}
29761impl From<Execute> for ExplainStmt {
29762    #[inline]
29763    fn from(node: Execute) -> ExplainStmt {
29764        ExplainStmt::Execute(node)
29765    }
29766}
29767impl From<Insert> for ExplainStmt {
29768    #[inline]
29769    fn from(node: Insert) -> ExplainStmt {
29770        ExplainStmt::Insert(node)
29771    }
29772}
29773impl From<Merge> for ExplainStmt {
29774    #[inline]
29775    fn from(node: Merge) -> ExplainStmt {
29776        ExplainStmt::Merge(node)
29777    }
29778}
29779impl From<ParenSelect> for ExplainStmt {
29780    #[inline]
29781    fn from(node: ParenSelect) -> ExplainStmt {
29782        ExplainStmt::ParenSelect(node)
29783    }
29784}
29785impl From<Select> for ExplainStmt {
29786    #[inline]
29787    fn from(node: Select) -> ExplainStmt {
29788        ExplainStmt::Select(node)
29789    }
29790}
29791impl From<SelectInto> for ExplainStmt {
29792    #[inline]
29793    fn from(node: SelectInto) -> ExplainStmt {
29794        ExplainStmt::SelectInto(node)
29795    }
29796}
29797impl From<Table> for ExplainStmt {
29798    #[inline]
29799    fn from(node: Table) -> ExplainStmt {
29800        ExplainStmt::Table(node)
29801    }
29802}
29803impl From<Update> for ExplainStmt {
29804    #[inline]
29805    fn from(node: Update) -> ExplainStmt {
29806        ExplainStmt::Update(node)
29807    }
29808}
29809impl From<Values> for ExplainStmt {
29810    #[inline]
29811    fn from(node: Values) -> ExplainStmt {
29812        ExplainStmt::Values(node)
29813    }
29814}
29815impl AstNode for Expr {
29816    #[inline]
29817    fn can_cast(kind: SyntaxKind) -> bool {
29818        matches!(
29819            kind,
29820            SyntaxKind::ARRAY_EXPR
29821                | SyntaxKind::BETWEEN_EXPR
29822                | SyntaxKind::BIN_EXPR
29823                | SyntaxKind::CALL_EXPR
29824                | SyntaxKind::CASE_EXPR
29825                | SyntaxKind::CAST_EXPR
29826                | SyntaxKind::FIELD_EXPR
29827                | SyntaxKind::INDEX_EXPR
29828                | SyntaxKind::LITERAL
29829                | SyntaxKind::NAME_REF
29830                | SyntaxKind::PAREN_EXPR
29831                | SyntaxKind::POSTFIX_EXPR
29832                | SyntaxKind::PREFIX_EXPR
29833                | SyntaxKind::SLICE_EXPR
29834                | SyntaxKind::TUPLE_EXPR
29835        )
29836    }
29837    #[inline]
29838    fn cast(syntax: SyntaxNode) -> Option<Self> {
29839        let res = match syntax.kind() {
29840            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
29841            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
29842            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
29843            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
29844            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
29845            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
29846            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
29847            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
29848            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
29849            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
29850            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
29851            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
29852            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
29853            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
29854            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
29855            _ => {
29856                return None;
29857            }
29858        };
29859        Some(res)
29860    }
29861    #[inline]
29862    fn syntax(&self) -> &SyntaxNode {
29863        match self {
29864            Expr::ArrayExpr(it) => &it.syntax,
29865            Expr::BetweenExpr(it) => &it.syntax,
29866            Expr::BinExpr(it) => &it.syntax,
29867            Expr::CallExpr(it) => &it.syntax,
29868            Expr::CaseExpr(it) => &it.syntax,
29869            Expr::CastExpr(it) => &it.syntax,
29870            Expr::FieldExpr(it) => &it.syntax,
29871            Expr::IndexExpr(it) => &it.syntax,
29872            Expr::Literal(it) => &it.syntax,
29873            Expr::NameRef(it) => &it.syntax,
29874            Expr::ParenExpr(it) => &it.syntax,
29875            Expr::PostfixExpr(it) => &it.syntax,
29876            Expr::PrefixExpr(it) => &it.syntax,
29877            Expr::SliceExpr(it) => &it.syntax,
29878            Expr::TupleExpr(it) => &it.syntax,
29879        }
29880    }
29881}
29882impl From<ArrayExpr> for Expr {
29883    #[inline]
29884    fn from(node: ArrayExpr) -> Expr {
29885        Expr::ArrayExpr(node)
29886    }
29887}
29888impl From<BetweenExpr> for Expr {
29889    #[inline]
29890    fn from(node: BetweenExpr) -> Expr {
29891        Expr::BetweenExpr(node)
29892    }
29893}
29894impl From<BinExpr> for Expr {
29895    #[inline]
29896    fn from(node: BinExpr) -> Expr {
29897        Expr::BinExpr(node)
29898    }
29899}
29900impl From<CallExpr> for Expr {
29901    #[inline]
29902    fn from(node: CallExpr) -> Expr {
29903        Expr::CallExpr(node)
29904    }
29905}
29906impl From<CaseExpr> for Expr {
29907    #[inline]
29908    fn from(node: CaseExpr) -> Expr {
29909        Expr::CaseExpr(node)
29910    }
29911}
29912impl From<CastExpr> for Expr {
29913    #[inline]
29914    fn from(node: CastExpr) -> Expr {
29915        Expr::CastExpr(node)
29916    }
29917}
29918impl From<FieldExpr> for Expr {
29919    #[inline]
29920    fn from(node: FieldExpr) -> Expr {
29921        Expr::FieldExpr(node)
29922    }
29923}
29924impl From<IndexExpr> for Expr {
29925    #[inline]
29926    fn from(node: IndexExpr) -> Expr {
29927        Expr::IndexExpr(node)
29928    }
29929}
29930impl From<Literal> for Expr {
29931    #[inline]
29932    fn from(node: Literal) -> Expr {
29933        Expr::Literal(node)
29934    }
29935}
29936impl From<NameRef> for Expr {
29937    #[inline]
29938    fn from(node: NameRef) -> Expr {
29939        Expr::NameRef(node)
29940    }
29941}
29942impl From<ParenExpr> for Expr {
29943    #[inline]
29944    fn from(node: ParenExpr) -> Expr {
29945        Expr::ParenExpr(node)
29946    }
29947}
29948impl From<PostfixExpr> for Expr {
29949    #[inline]
29950    fn from(node: PostfixExpr) -> Expr {
29951        Expr::PostfixExpr(node)
29952    }
29953}
29954impl From<PrefixExpr> for Expr {
29955    #[inline]
29956    fn from(node: PrefixExpr) -> Expr {
29957        Expr::PrefixExpr(node)
29958    }
29959}
29960impl From<SliceExpr> for Expr {
29961    #[inline]
29962    fn from(node: SliceExpr) -> Expr {
29963        Expr::SliceExpr(node)
29964    }
29965}
29966impl From<TupleExpr> for Expr {
29967    #[inline]
29968    fn from(node: TupleExpr) -> Expr {
29969        Expr::TupleExpr(node)
29970    }
29971}
29972impl AstNode for FuncOption {
29973    #[inline]
29974    fn can_cast(kind: SyntaxKind) -> bool {
29975        matches!(
29976            kind,
29977            SyntaxKind::AS_FUNC_OPTION
29978                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
29979                | SyntaxKind::COST_FUNC_OPTION
29980                | SyntaxKind::LANGUAGE_FUNC_OPTION
29981                | SyntaxKind::LEAKPROOF_FUNC_OPTION
29982                | SyntaxKind::PARALLEL_FUNC_OPTION
29983                | SyntaxKind::RESET_FUNC_OPTION
29984                | SyntaxKind::RETURN_FUNC_OPTION
29985                | SyntaxKind::ROWS_FUNC_OPTION
29986                | SyntaxKind::SECURITY_FUNC_OPTION
29987                | SyntaxKind::SET_FUNC_OPTION
29988                | SyntaxKind::STRICT_FUNC_OPTION
29989                | SyntaxKind::SUPPORT_FUNC_OPTION
29990                | SyntaxKind::TRANSFORM_FUNC_OPTION
29991                | SyntaxKind::VOLATILITY_FUNC_OPTION
29992                | SyntaxKind::WINDOW_FUNC_OPTION
29993        )
29994    }
29995    #[inline]
29996    fn cast(syntax: SyntaxNode) -> Option<Self> {
29997        let res = match syntax.kind() {
29998            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
29999            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
30000                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
30001            }
30002            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
30003            SyntaxKind::LANGUAGE_FUNC_OPTION => {
30004                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
30005            }
30006            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
30007                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
30008            }
30009            SyntaxKind::PARALLEL_FUNC_OPTION => {
30010                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
30011            }
30012            SyntaxKind::RESET_FUNC_OPTION => {
30013                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
30014            }
30015            SyntaxKind::RETURN_FUNC_OPTION => {
30016                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
30017            }
30018            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
30019            SyntaxKind::SECURITY_FUNC_OPTION => {
30020                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
30021            }
30022            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
30023            SyntaxKind::STRICT_FUNC_OPTION => {
30024                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
30025            }
30026            SyntaxKind::SUPPORT_FUNC_OPTION => {
30027                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
30028            }
30029            SyntaxKind::TRANSFORM_FUNC_OPTION => {
30030                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
30031            }
30032            SyntaxKind::VOLATILITY_FUNC_OPTION => {
30033                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
30034            }
30035            SyntaxKind::WINDOW_FUNC_OPTION => {
30036                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
30037            }
30038            _ => {
30039                return None;
30040            }
30041        };
30042        Some(res)
30043    }
30044    #[inline]
30045    fn syntax(&self) -> &SyntaxNode {
30046        match self {
30047            FuncOption::AsFuncOption(it) => &it.syntax,
30048            FuncOption::BeginFuncOptionList(it) => &it.syntax,
30049            FuncOption::CostFuncOption(it) => &it.syntax,
30050            FuncOption::LanguageFuncOption(it) => &it.syntax,
30051            FuncOption::LeakproofFuncOption(it) => &it.syntax,
30052            FuncOption::ParallelFuncOption(it) => &it.syntax,
30053            FuncOption::ResetFuncOption(it) => &it.syntax,
30054            FuncOption::ReturnFuncOption(it) => &it.syntax,
30055            FuncOption::RowsFuncOption(it) => &it.syntax,
30056            FuncOption::SecurityFuncOption(it) => &it.syntax,
30057            FuncOption::SetFuncOption(it) => &it.syntax,
30058            FuncOption::StrictFuncOption(it) => &it.syntax,
30059            FuncOption::SupportFuncOption(it) => &it.syntax,
30060            FuncOption::TransformFuncOption(it) => &it.syntax,
30061            FuncOption::VolatilityFuncOption(it) => &it.syntax,
30062            FuncOption::WindowFuncOption(it) => &it.syntax,
30063        }
30064    }
30065}
30066impl From<AsFuncOption> for FuncOption {
30067    #[inline]
30068    fn from(node: AsFuncOption) -> FuncOption {
30069        FuncOption::AsFuncOption(node)
30070    }
30071}
30072impl From<BeginFuncOptionList> for FuncOption {
30073    #[inline]
30074    fn from(node: BeginFuncOptionList) -> FuncOption {
30075        FuncOption::BeginFuncOptionList(node)
30076    }
30077}
30078impl From<CostFuncOption> for FuncOption {
30079    #[inline]
30080    fn from(node: CostFuncOption) -> FuncOption {
30081        FuncOption::CostFuncOption(node)
30082    }
30083}
30084impl From<LanguageFuncOption> for FuncOption {
30085    #[inline]
30086    fn from(node: LanguageFuncOption) -> FuncOption {
30087        FuncOption::LanguageFuncOption(node)
30088    }
30089}
30090impl From<LeakproofFuncOption> for FuncOption {
30091    #[inline]
30092    fn from(node: LeakproofFuncOption) -> FuncOption {
30093        FuncOption::LeakproofFuncOption(node)
30094    }
30095}
30096impl From<ParallelFuncOption> for FuncOption {
30097    #[inline]
30098    fn from(node: ParallelFuncOption) -> FuncOption {
30099        FuncOption::ParallelFuncOption(node)
30100    }
30101}
30102impl From<ResetFuncOption> for FuncOption {
30103    #[inline]
30104    fn from(node: ResetFuncOption) -> FuncOption {
30105        FuncOption::ResetFuncOption(node)
30106    }
30107}
30108impl From<ReturnFuncOption> for FuncOption {
30109    #[inline]
30110    fn from(node: ReturnFuncOption) -> FuncOption {
30111        FuncOption::ReturnFuncOption(node)
30112    }
30113}
30114impl From<RowsFuncOption> for FuncOption {
30115    #[inline]
30116    fn from(node: RowsFuncOption) -> FuncOption {
30117        FuncOption::RowsFuncOption(node)
30118    }
30119}
30120impl From<SecurityFuncOption> for FuncOption {
30121    #[inline]
30122    fn from(node: SecurityFuncOption) -> FuncOption {
30123        FuncOption::SecurityFuncOption(node)
30124    }
30125}
30126impl From<SetFuncOption> for FuncOption {
30127    #[inline]
30128    fn from(node: SetFuncOption) -> FuncOption {
30129        FuncOption::SetFuncOption(node)
30130    }
30131}
30132impl From<StrictFuncOption> for FuncOption {
30133    #[inline]
30134    fn from(node: StrictFuncOption) -> FuncOption {
30135        FuncOption::StrictFuncOption(node)
30136    }
30137}
30138impl From<SupportFuncOption> for FuncOption {
30139    #[inline]
30140    fn from(node: SupportFuncOption) -> FuncOption {
30141        FuncOption::SupportFuncOption(node)
30142    }
30143}
30144impl From<TransformFuncOption> for FuncOption {
30145    #[inline]
30146    fn from(node: TransformFuncOption) -> FuncOption {
30147        FuncOption::TransformFuncOption(node)
30148    }
30149}
30150impl From<VolatilityFuncOption> for FuncOption {
30151    #[inline]
30152    fn from(node: VolatilityFuncOption) -> FuncOption {
30153        FuncOption::VolatilityFuncOption(node)
30154    }
30155}
30156impl From<WindowFuncOption> for FuncOption {
30157    #[inline]
30158    fn from(node: WindowFuncOption) -> FuncOption {
30159        FuncOption::WindowFuncOption(node)
30160    }
30161}
30162impl AstNode for GroupBy {
30163    #[inline]
30164    fn can_cast(kind: SyntaxKind) -> bool {
30165        matches!(
30166            kind,
30167            SyntaxKind::GROUPING_CUBE
30168                | SyntaxKind::GROUPING_EXPR
30169                | SyntaxKind::GROUPING_ROLLUP
30170                | SyntaxKind::GROUPING_SETS
30171        )
30172    }
30173    #[inline]
30174    fn cast(syntax: SyntaxNode) -> Option<Self> {
30175        let res = match syntax.kind() {
30176            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
30177            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
30178            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
30179            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
30180            _ => {
30181                return None;
30182            }
30183        };
30184        Some(res)
30185    }
30186    #[inline]
30187    fn syntax(&self) -> &SyntaxNode {
30188        match self {
30189            GroupBy::GroupingCube(it) => &it.syntax,
30190            GroupBy::GroupingExpr(it) => &it.syntax,
30191            GroupBy::GroupingRollup(it) => &it.syntax,
30192            GroupBy::GroupingSets(it) => &it.syntax,
30193        }
30194    }
30195}
30196impl From<GroupingCube> for GroupBy {
30197    #[inline]
30198    fn from(node: GroupingCube) -> GroupBy {
30199        GroupBy::GroupingCube(node)
30200    }
30201}
30202impl From<GroupingExpr> for GroupBy {
30203    #[inline]
30204    fn from(node: GroupingExpr) -> GroupBy {
30205        GroupBy::GroupingExpr(node)
30206    }
30207}
30208impl From<GroupingRollup> for GroupBy {
30209    #[inline]
30210    fn from(node: GroupingRollup) -> GroupBy {
30211        GroupBy::GroupingRollup(node)
30212    }
30213}
30214impl From<GroupingSets> for GroupBy {
30215    #[inline]
30216    fn from(node: GroupingSets) -> GroupBy {
30217        GroupBy::GroupingSets(node)
30218    }
30219}
30220impl AstNode for JoinType {
30221    #[inline]
30222    fn can_cast(kind: SyntaxKind) -> bool {
30223        matches!(
30224            kind,
30225            SyntaxKind::JOIN_CROSS
30226                | SyntaxKind::JOIN_FULL
30227                | SyntaxKind::JOIN_INNER
30228                | SyntaxKind::JOIN_LEFT
30229                | SyntaxKind::JOIN_RIGHT
30230        )
30231    }
30232    #[inline]
30233    fn cast(syntax: SyntaxNode) -> Option<Self> {
30234        let res = match syntax.kind() {
30235            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
30236            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
30237            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
30238            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
30239            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
30240            _ => {
30241                return None;
30242            }
30243        };
30244        Some(res)
30245    }
30246    #[inline]
30247    fn syntax(&self) -> &SyntaxNode {
30248        match self {
30249            JoinType::JoinCross(it) => &it.syntax,
30250            JoinType::JoinFull(it) => &it.syntax,
30251            JoinType::JoinInner(it) => &it.syntax,
30252            JoinType::JoinLeft(it) => &it.syntax,
30253            JoinType::JoinRight(it) => &it.syntax,
30254        }
30255    }
30256}
30257impl From<JoinCross> for JoinType {
30258    #[inline]
30259    fn from(node: JoinCross) -> JoinType {
30260        JoinType::JoinCross(node)
30261    }
30262}
30263impl From<JoinFull> for JoinType {
30264    #[inline]
30265    fn from(node: JoinFull) -> JoinType {
30266        JoinType::JoinFull(node)
30267    }
30268}
30269impl From<JoinInner> for JoinType {
30270    #[inline]
30271    fn from(node: JoinInner) -> JoinType {
30272        JoinType::JoinInner(node)
30273    }
30274}
30275impl From<JoinLeft> for JoinType {
30276    #[inline]
30277    fn from(node: JoinLeft) -> JoinType {
30278        JoinType::JoinLeft(node)
30279    }
30280}
30281impl From<JoinRight> for JoinType {
30282    #[inline]
30283    fn from(node: JoinRight) -> JoinType {
30284        JoinType::JoinRight(node)
30285    }
30286}
30287impl AstNode for JsonBehavior {
30288    #[inline]
30289    fn can_cast(kind: SyntaxKind) -> bool {
30290        matches!(
30291            kind,
30292            SyntaxKind::JSON_BEHAVIOR_DEFAULT
30293                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
30294                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
30295                | SyntaxKind::JSON_BEHAVIOR_ERROR
30296                | SyntaxKind::JSON_BEHAVIOR_FALSE
30297                | SyntaxKind::JSON_BEHAVIOR_NULL
30298                | SyntaxKind::JSON_BEHAVIOR_TRUE
30299                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
30300        )
30301    }
30302    #[inline]
30303    fn cast(syntax: SyntaxNode) -> Option<Self> {
30304        let res = match syntax.kind() {
30305            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
30306                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
30307            }
30308            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
30309                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
30310            }
30311            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
30312                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
30313            }
30314            SyntaxKind::JSON_BEHAVIOR_ERROR => {
30315                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
30316            }
30317            SyntaxKind::JSON_BEHAVIOR_FALSE => {
30318                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
30319            }
30320            SyntaxKind::JSON_BEHAVIOR_NULL => {
30321                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
30322            }
30323            SyntaxKind::JSON_BEHAVIOR_TRUE => {
30324                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
30325            }
30326            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
30327                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
30328            }
30329            _ => {
30330                return None;
30331            }
30332        };
30333        Some(res)
30334    }
30335    #[inline]
30336    fn syntax(&self) -> &SyntaxNode {
30337        match self {
30338            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
30339            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
30340            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
30341            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
30342            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
30343            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
30344            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
30345            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
30346        }
30347    }
30348}
30349impl From<JsonBehaviorDefault> for JsonBehavior {
30350    #[inline]
30351    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
30352        JsonBehavior::JsonBehaviorDefault(node)
30353    }
30354}
30355impl From<JsonBehaviorEmptyArray> for JsonBehavior {
30356    #[inline]
30357    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
30358        JsonBehavior::JsonBehaviorEmptyArray(node)
30359    }
30360}
30361impl From<JsonBehaviorEmptyObject> for JsonBehavior {
30362    #[inline]
30363    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
30364        JsonBehavior::JsonBehaviorEmptyObject(node)
30365    }
30366}
30367impl From<JsonBehaviorError> for JsonBehavior {
30368    #[inline]
30369    fn from(node: JsonBehaviorError) -> JsonBehavior {
30370        JsonBehavior::JsonBehaviorError(node)
30371    }
30372}
30373impl From<JsonBehaviorFalse> for JsonBehavior {
30374    #[inline]
30375    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
30376        JsonBehavior::JsonBehaviorFalse(node)
30377    }
30378}
30379impl From<JsonBehaviorNull> for JsonBehavior {
30380    #[inline]
30381    fn from(node: JsonBehaviorNull) -> JsonBehavior {
30382        JsonBehavior::JsonBehaviorNull(node)
30383    }
30384}
30385impl From<JsonBehaviorTrue> for JsonBehavior {
30386    #[inline]
30387    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
30388        JsonBehavior::JsonBehaviorTrue(node)
30389    }
30390}
30391impl From<JsonBehaviorUnknown> for JsonBehavior {
30392    #[inline]
30393    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
30394        JsonBehavior::JsonBehaviorUnknown(node)
30395    }
30396}
30397impl AstNode for MatchType {
30398    #[inline]
30399    fn can_cast(kind: SyntaxKind) -> bool {
30400        matches!(
30401            kind,
30402            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
30403        )
30404    }
30405    #[inline]
30406    fn cast(syntax: SyntaxNode) -> Option<Self> {
30407        let res = match syntax.kind() {
30408            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
30409            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
30410            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
30411            _ => {
30412                return None;
30413            }
30414        };
30415        Some(res)
30416    }
30417    #[inline]
30418    fn syntax(&self) -> &SyntaxNode {
30419        match self {
30420            MatchType::MatchFull(it) => &it.syntax,
30421            MatchType::MatchPartial(it) => &it.syntax,
30422            MatchType::MatchSimple(it) => &it.syntax,
30423        }
30424    }
30425}
30426impl From<MatchFull> for MatchType {
30427    #[inline]
30428    fn from(node: MatchFull) -> MatchType {
30429        MatchType::MatchFull(node)
30430    }
30431}
30432impl From<MatchPartial> for MatchType {
30433    #[inline]
30434    fn from(node: MatchPartial) -> MatchType {
30435        MatchType::MatchPartial(node)
30436    }
30437}
30438impl From<MatchSimple> for MatchType {
30439    #[inline]
30440    fn from(node: MatchSimple) -> MatchType {
30441        MatchType::MatchSimple(node)
30442    }
30443}
30444impl AstNode for MergeAction {
30445    #[inline]
30446    fn can_cast(kind: SyntaxKind) -> bool {
30447        matches!(
30448            kind,
30449            SyntaxKind::MERGE_DELETE
30450                | SyntaxKind::MERGE_DO_NOTHING
30451                | SyntaxKind::MERGE_INSERT
30452                | SyntaxKind::MERGE_UPDATE
30453        )
30454    }
30455    #[inline]
30456    fn cast(syntax: SyntaxNode) -> Option<Self> {
30457        let res = match syntax.kind() {
30458            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
30459            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
30460            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
30461            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
30462            _ => {
30463                return None;
30464            }
30465        };
30466        Some(res)
30467    }
30468    #[inline]
30469    fn syntax(&self) -> &SyntaxNode {
30470        match self {
30471            MergeAction::MergeDelete(it) => &it.syntax,
30472            MergeAction::MergeDoNothing(it) => &it.syntax,
30473            MergeAction::MergeInsert(it) => &it.syntax,
30474            MergeAction::MergeUpdate(it) => &it.syntax,
30475        }
30476    }
30477}
30478impl From<MergeDelete> for MergeAction {
30479    #[inline]
30480    fn from(node: MergeDelete) -> MergeAction {
30481        MergeAction::MergeDelete(node)
30482    }
30483}
30484impl From<MergeDoNothing> for MergeAction {
30485    #[inline]
30486    fn from(node: MergeDoNothing) -> MergeAction {
30487        MergeAction::MergeDoNothing(node)
30488    }
30489}
30490impl From<MergeInsert> for MergeAction {
30491    #[inline]
30492    fn from(node: MergeInsert) -> MergeAction {
30493        MergeAction::MergeInsert(node)
30494    }
30495}
30496impl From<MergeUpdate> for MergeAction {
30497    #[inline]
30498    fn from(node: MergeUpdate) -> MergeAction {
30499        MergeAction::MergeUpdate(node)
30500    }
30501}
30502impl AstNode for MergeWhenClause {
30503    #[inline]
30504    fn can_cast(kind: SyntaxKind) -> bool {
30505        matches!(
30506            kind,
30507            SyntaxKind::MERGE_WHEN_MATCHED
30508                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
30509                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
30510        )
30511    }
30512    #[inline]
30513    fn cast(syntax: SyntaxNode) -> Option<Self> {
30514        let res = match syntax.kind() {
30515            SyntaxKind::MERGE_WHEN_MATCHED => {
30516                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
30517            }
30518            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
30519                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
30520            }
30521            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
30522                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
30523            }
30524            _ => {
30525                return None;
30526            }
30527        };
30528        Some(res)
30529    }
30530    #[inline]
30531    fn syntax(&self) -> &SyntaxNode {
30532        match self {
30533            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
30534            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
30535            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
30536        }
30537    }
30538}
30539impl From<MergeWhenMatched> for MergeWhenClause {
30540    #[inline]
30541    fn from(node: MergeWhenMatched) -> MergeWhenClause {
30542        MergeWhenClause::MergeWhenMatched(node)
30543    }
30544}
30545impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
30546    #[inline]
30547    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
30548        MergeWhenClause::MergeWhenNotMatchedSource(node)
30549    }
30550}
30551impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
30552    #[inline]
30553    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
30554        MergeWhenClause::MergeWhenNotMatchedTarget(node)
30555    }
30556}
30557impl AstNode for OnCommitAction {
30558    #[inline]
30559    fn can_cast(kind: SyntaxKind) -> bool {
30560        matches!(
30561            kind,
30562            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
30563        )
30564    }
30565    #[inline]
30566    fn cast(syntax: SyntaxNode) -> Option<Self> {
30567        let res = match syntax.kind() {
30568            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
30569            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
30570            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
30571            _ => {
30572                return None;
30573            }
30574        };
30575        Some(res)
30576    }
30577    #[inline]
30578    fn syntax(&self) -> &SyntaxNode {
30579        match self {
30580            OnCommitAction::DeleteRows(it) => &it.syntax,
30581            OnCommitAction::Drop(it) => &it.syntax,
30582            OnCommitAction::PreserveRows(it) => &it.syntax,
30583        }
30584    }
30585}
30586impl From<DeleteRows> for OnCommitAction {
30587    #[inline]
30588    fn from(node: DeleteRows) -> OnCommitAction {
30589        OnCommitAction::DeleteRows(node)
30590    }
30591}
30592impl From<Drop> for OnCommitAction {
30593    #[inline]
30594    fn from(node: Drop) -> OnCommitAction {
30595        OnCommitAction::Drop(node)
30596    }
30597}
30598impl From<PreserveRows> for OnCommitAction {
30599    #[inline]
30600    fn from(node: PreserveRows) -> OnCommitAction {
30601        OnCommitAction::PreserveRows(node)
30602    }
30603}
30604impl AstNode for ParamMode {
30605    #[inline]
30606    fn can_cast(kind: SyntaxKind) -> bool {
30607        matches!(
30608            kind,
30609            SyntaxKind::PARAM_IN
30610                | SyntaxKind::PARAM_IN_OUT
30611                | SyntaxKind::PARAM_OUT
30612                | SyntaxKind::PARAM_VARIADIC
30613        )
30614    }
30615    #[inline]
30616    fn cast(syntax: SyntaxNode) -> Option<Self> {
30617        let res = match syntax.kind() {
30618            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
30619            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
30620            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
30621            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
30622            _ => {
30623                return None;
30624            }
30625        };
30626        Some(res)
30627    }
30628    #[inline]
30629    fn syntax(&self) -> &SyntaxNode {
30630        match self {
30631            ParamMode::ParamIn(it) => &it.syntax,
30632            ParamMode::ParamInOut(it) => &it.syntax,
30633            ParamMode::ParamOut(it) => &it.syntax,
30634            ParamMode::ParamVariadic(it) => &it.syntax,
30635        }
30636    }
30637}
30638impl From<ParamIn> for ParamMode {
30639    #[inline]
30640    fn from(node: ParamIn) -> ParamMode {
30641        ParamMode::ParamIn(node)
30642    }
30643}
30644impl From<ParamInOut> for ParamMode {
30645    #[inline]
30646    fn from(node: ParamInOut) -> ParamMode {
30647        ParamMode::ParamInOut(node)
30648    }
30649}
30650impl From<ParamOut> for ParamMode {
30651    #[inline]
30652    fn from(node: ParamOut) -> ParamMode {
30653        ParamMode::ParamOut(node)
30654    }
30655}
30656impl From<ParamVariadic> for ParamMode {
30657    #[inline]
30658    fn from(node: ParamVariadic) -> ParamMode {
30659        ParamMode::ParamVariadic(node)
30660    }
30661}
30662impl AstNode for PartitionType {
30663    #[inline]
30664    fn can_cast(kind: SyntaxKind) -> bool {
30665        matches!(
30666            kind,
30667            SyntaxKind::PARTITION_DEFAULT
30668                | SyntaxKind::PARTITION_FOR_VALUES_FROM
30669                | SyntaxKind::PARTITION_FOR_VALUES_IN
30670                | SyntaxKind::PARTITION_FOR_VALUES_WITH
30671        )
30672    }
30673    #[inline]
30674    fn cast(syntax: SyntaxNode) -> Option<Self> {
30675        let res = match syntax.kind() {
30676            SyntaxKind::PARTITION_DEFAULT => {
30677                PartitionType::PartitionDefault(PartitionDefault { syntax })
30678            }
30679            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
30680                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
30681            }
30682            SyntaxKind::PARTITION_FOR_VALUES_IN => {
30683                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
30684            }
30685            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
30686                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
30687            }
30688            _ => {
30689                return None;
30690            }
30691        };
30692        Some(res)
30693    }
30694    #[inline]
30695    fn syntax(&self) -> &SyntaxNode {
30696        match self {
30697            PartitionType::PartitionDefault(it) => &it.syntax,
30698            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
30699            PartitionType::PartitionForValuesIn(it) => &it.syntax,
30700            PartitionType::PartitionForValuesWith(it) => &it.syntax,
30701        }
30702    }
30703}
30704impl From<PartitionDefault> for PartitionType {
30705    #[inline]
30706    fn from(node: PartitionDefault) -> PartitionType {
30707        PartitionType::PartitionDefault(node)
30708    }
30709}
30710impl From<PartitionForValuesFrom> for PartitionType {
30711    #[inline]
30712    fn from(node: PartitionForValuesFrom) -> PartitionType {
30713        PartitionType::PartitionForValuesFrom(node)
30714    }
30715}
30716impl From<PartitionForValuesIn> for PartitionType {
30717    #[inline]
30718    fn from(node: PartitionForValuesIn) -> PartitionType {
30719        PartitionType::PartitionForValuesIn(node)
30720    }
30721}
30722impl From<PartitionForValuesWith> for PartitionType {
30723    #[inline]
30724    fn from(node: PartitionForValuesWith) -> PartitionType {
30725        PartitionType::PartitionForValuesWith(node)
30726    }
30727}
30728impl AstNode for PreparableStmt {
30729    #[inline]
30730    fn can_cast(kind: SyntaxKind) -> bool {
30731        matches!(
30732            kind,
30733            SyntaxKind::COMPOUND_SELECT
30734                | SyntaxKind::DELETE
30735                | SyntaxKind::INSERT
30736                | SyntaxKind::MERGE
30737                | SyntaxKind::SELECT
30738                | SyntaxKind::SELECT_INTO
30739                | SyntaxKind::TABLE
30740                | SyntaxKind::UPDATE
30741                | SyntaxKind::VALUES
30742        )
30743    }
30744    #[inline]
30745    fn cast(syntax: SyntaxNode) -> Option<Self> {
30746        let res = match syntax.kind() {
30747            SyntaxKind::COMPOUND_SELECT => {
30748                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
30749            }
30750            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
30751            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
30752            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
30753            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
30754            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
30755            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
30756            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
30757            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
30758            _ => {
30759                return None;
30760            }
30761        };
30762        Some(res)
30763    }
30764    #[inline]
30765    fn syntax(&self) -> &SyntaxNode {
30766        match self {
30767            PreparableStmt::CompoundSelect(it) => &it.syntax,
30768            PreparableStmt::Delete(it) => &it.syntax,
30769            PreparableStmt::Insert(it) => &it.syntax,
30770            PreparableStmt::Merge(it) => &it.syntax,
30771            PreparableStmt::Select(it) => &it.syntax,
30772            PreparableStmt::SelectInto(it) => &it.syntax,
30773            PreparableStmt::Table(it) => &it.syntax,
30774            PreparableStmt::Update(it) => &it.syntax,
30775            PreparableStmt::Values(it) => &it.syntax,
30776        }
30777    }
30778}
30779impl From<CompoundSelect> for PreparableStmt {
30780    #[inline]
30781    fn from(node: CompoundSelect) -> PreparableStmt {
30782        PreparableStmt::CompoundSelect(node)
30783    }
30784}
30785impl From<Delete> for PreparableStmt {
30786    #[inline]
30787    fn from(node: Delete) -> PreparableStmt {
30788        PreparableStmt::Delete(node)
30789    }
30790}
30791impl From<Insert> for PreparableStmt {
30792    #[inline]
30793    fn from(node: Insert) -> PreparableStmt {
30794        PreparableStmt::Insert(node)
30795    }
30796}
30797impl From<Merge> for PreparableStmt {
30798    #[inline]
30799    fn from(node: Merge) -> PreparableStmt {
30800        PreparableStmt::Merge(node)
30801    }
30802}
30803impl From<Select> for PreparableStmt {
30804    #[inline]
30805    fn from(node: Select) -> PreparableStmt {
30806        PreparableStmt::Select(node)
30807    }
30808}
30809impl From<SelectInto> for PreparableStmt {
30810    #[inline]
30811    fn from(node: SelectInto) -> PreparableStmt {
30812        PreparableStmt::SelectInto(node)
30813    }
30814}
30815impl From<Table> for PreparableStmt {
30816    #[inline]
30817    fn from(node: Table) -> PreparableStmt {
30818        PreparableStmt::Table(node)
30819    }
30820}
30821impl From<Update> for PreparableStmt {
30822    #[inline]
30823    fn from(node: Update) -> PreparableStmt {
30824        PreparableStmt::Update(node)
30825    }
30826}
30827impl From<Values> for PreparableStmt {
30828    #[inline]
30829    fn from(node: Values) -> PreparableStmt {
30830        PreparableStmt::Values(node)
30831    }
30832}
30833impl AstNode for RefAction {
30834    #[inline]
30835    fn can_cast(kind: SyntaxKind) -> bool {
30836        matches!(
30837            kind,
30838            SyntaxKind::CASCADE
30839                | SyntaxKind::NO_ACTION
30840                | SyntaxKind::RESTRICT
30841                | SyntaxKind::SET_DEFAULT_COLUMNS
30842                | SyntaxKind::SET_NULL_COLUMNS
30843        )
30844    }
30845    #[inline]
30846    fn cast(syntax: SyntaxNode) -> Option<Self> {
30847        let res = match syntax.kind() {
30848            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
30849            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
30850            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
30851            SyntaxKind::SET_DEFAULT_COLUMNS => {
30852                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
30853            }
30854            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
30855            _ => {
30856                return None;
30857            }
30858        };
30859        Some(res)
30860    }
30861    #[inline]
30862    fn syntax(&self) -> &SyntaxNode {
30863        match self {
30864            RefAction::Cascade(it) => &it.syntax,
30865            RefAction::NoAction(it) => &it.syntax,
30866            RefAction::Restrict(it) => &it.syntax,
30867            RefAction::SetDefaultColumns(it) => &it.syntax,
30868            RefAction::SetNullColumns(it) => &it.syntax,
30869        }
30870    }
30871}
30872impl From<Cascade> for RefAction {
30873    #[inline]
30874    fn from(node: Cascade) -> RefAction {
30875        RefAction::Cascade(node)
30876    }
30877}
30878impl From<NoAction> for RefAction {
30879    #[inline]
30880    fn from(node: NoAction) -> RefAction {
30881        RefAction::NoAction(node)
30882    }
30883}
30884impl From<Restrict> for RefAction {
30885    #[inline]
30886    fn from(node: Restrict) -> RefAction {
30887        RefAction::Restrict(node)
30888    }
30889}
30890impl From<SetDefaultColumns> for RefAction {
30891    #[inline]
30892    fn from(node: SetDefaultColumns) -> RefAction {
30893        RefAction::SetDefaultColumns(node)
30894    }
30895}
30896impl From<SetNullColumns> for RefAction {
30897    #[inline]
30898    fn from(node: SetNullColumns) -> RefAction {
30899        RefAction::SetNullColumns(node)
30900    }
30901}
30902impl AstNode for SchemaElement {
30903    #[inline]
30904    fn can_cast(kind: SyntaxKind) -> bool {
30905        matches!(
30906            kind,
30907            SyntaxKind::CREATE_INDEX
30908                | SyntaxKind::CREATE_SEQUENCE
30909                | SyntaxKind::CREATE_TABLE
30910                | SyntaxKind::CREATE_TRIGGER
30911                | SyntaxKind::CREATE_VIEW
30912                | SyntaxKind::GRANT
30913        )
30914    }
30915    #[inline]
30916    fn cast(syntax: SyntaxNode) -> Option<Self> {
30917        let res = match syntax.kind() {
30918            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
30919            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
30920            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
30921            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
30922            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
30923            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
30924            _ => {
30925                return None;
30926            }
30927        };
30928        Some(res)
30929    }
30930    #[inline]
30931    fn syntax(&self) -> &SyntaxNode {
30932        match self {
30933            SchemaElement::CreateIndex(it) => &it.syntax,
30934            SchemaElement::CreateSequence(it) => &it.syntax,
30935            SchemaElement::CreateTable(it) => &it.syntax,
30936            SchemaElement::CreateTrigger(it) => &it.syntax,
30937            SchemaElement::CreateView(it) => &it.syntax,
30938            SchemaElement::Grant(it) => &it.syntax,
30939        }
30940    }
30941}
30942impl From<CreateIndex> for SchemaElement {
30943    #[inline]
30944    fn from(node: CreateIndex) -> SchemaElement {
30945        SchemaElement::CreateIndex(node)
30946    }
30947}
30948impl From<CreateSequence> for SchemaElement {
30949    #[inline]
30950    fn from(node: CreateSequence) -> SchemaElement {
30951        SchemaElement::CreateSequence(node)
30952    }
30953}
30954impl From<CreateTable> for SchemaElement {
30955    #[inline]
30956    fn from(node: CreateTable) -> SchemaElement {
30957        SchemaElement::CreateTable(node)
30958    }
30959}
30960impl From<CreateTrigger> for SchemaElement {
30961    #[inline]
30962    fn from(node: CreateTrigger) -> SchemaElement {
30963        SchemaElement::CreateTrigger(node)
30964    }
30965}
30966impl From<CreateView> for SchemaElement {
30967    #[inline]
30968    fn from(node: CreateView) -> SchemaElement {
30969        SchemaElement::CreateView(node)
30970    }
30971}
30972impl From<Grant> for SchemaElement {
30973    #[inline]
30974    fn from(node: Grant) -> SchemaElement {
30975        SchemaElement::Grant(node)
30976    }
30977}
30978impl AstNode for SelectVariant {
30979    #[inline]
30980    fn can_cast(kind: SyntaxKind) -> bool {
30981        matches!(
30982            kind,
30983            SyntaxKind::COMPOUND_SELECT
30984                | SyntaxKind::PAREN_SELECT
30985                | SyntaxKind::SELECT
30986                | SyntaxKind::SELECT_INTO
30987                | SyntaxKind::TABLE
30988                | SyntaxKind::VALUES
30989        )
30990    }
30991    #[inline]
30992    fn cast(syntax: SyntaxNode) -> Option<Self> {
30993        let res = match syntax.kind() {
30994            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
30995            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
30996            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
30997            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
30998            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
30999            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
31000            _ => {
31001                return None;
31002            }
31003        };
31004        Some(res)
31005    }
31006    #[inline]
31007    fn syntax(&self) -> &SyntaxNode {
31008        match self {
31009            SelectVariant::CompoundSelect(it) => &it.syntax,
31010            SelectVariant::ParenSelect(it) => &it.syntax,
31011            SelectVariant::Select(it) => &it.syntax,
31012            SelectVariant::SelectInto(it) => &it.syntax,
31013            SelectVariant::Table(it) => &it.syntax,
31014            SelectVariant::Values(it) => &it.syntax,
31015        }
31016    }
31017}
31018impl From<CompoundSelect> for SelectVariant {
31019    #[inline]
31020    fn from(node: CompoundSelect) -> SelectVariant {
31021        SelectVariant::CompoundSelect(node)
31022    }
31023}
31024impl From<ParenSelect> for SelectVariant {
31025    #[inline]
31026    fn from(node: ParenSelect) -> SelectVariant {
31027        SelectVariant::ParenSelect(node)
31028    }
31029}
31030impl From<Select> for SelectVariant {
31031    #[inline]
31032    fn from(node: Select) -> SelectVariant {
31033        SelectVariant::Select(node)
31034    }
31035}
31036impl From<SelectInto> for SelectVariant {
31037    #[inline]
31038    fn from(node: SelectInto) -> SelectVariant {
31039        SelectVariant::SelectInto(node)
31040    }
31041}
31042impl From<Table> for SelectVariant {
31043    #[inline]
31044    fn from(node: Table) -> SelectVariant {
31045        SelectVariant::Table(node)
31046    }
31047}
31048impl From<Values> for SelectVariant {
31049    #[inline]
31050    fn from(node: Values) -> SelectVariant {
31051        SelectVariant::Values(node)
31052    }
31053}
31054impl AstNode for SetColumn {
31055    #[inline]
31056    fn can_cast(kind: SyntaxKind) -> bool {
31057        matches!(
31058            kind,
31059            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
31060        )
31061    }
31062    #[inline]
31063    fn cast(syntax: SyntaxNode) -> Option<Self> {
31064        let res = match syntax.kind() {
31065            SyntaxKind::SET_MULTIPLE_COLUMNS => {
31066                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
31067            }
31068            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
31069            _ => {
31070                return None;
31071            }
31072        };
31073        Some(res)
31074    }
31075    #[inline]
31076    fn syntax(&self) -> &SyntaxNode {
31077        match self {
31078            SetColumn::SetMultipleColumns(it) => &it.syntax,
31079            SetColumn::SetSingleColumn(it) => &it.syntax,
31080        }
31081    }
31082}
31083impl From<SetMultipleColumns> for SetColumn {
31084    #[inline]
31085    fn from(node: SetMultipleColumns) -> SetColumn {
31086        SetColumn::SetMultipleColumns(node)
31087    }
31088}
31089impl From<SetSingleColumn> for SetColumn {
31090    #[inline]
31091    fn from(node: SetSingleColumn) -> SetColumn {
31092        SetColumn::SetSingleColumn(node)
31093    }
31094}
31095impl AstNode for Stmt {
31096    #[inline]
31097    fn can_cast(kind: SyntaxKind) -> bool {
31098        matches!(
31099            kind,
31100            SyntaxKind::ALTER_AGGREGATE
31101                | SyntaxKind::ALTER_COLLATION
31102                | SyntaxKind::ALTER_CONVERSION
31103                | SyntaxKind::ALTER_DATABASE
31104                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
31105                | SyntaxKind::ALTER_DOMAIN
31106                | SyntaxKind::ALTER_EVENT_TRIGGER
31107                | SyntaxKind::ALTER_EXTENSION
31108                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
31109                | SyntaxKind::ALTER_FOREIGN_TABLE
31110                | SyntaxKind::ALTER_FUNCTION
31111                | SyntaxKind::ALTER_GROUP
31112                | SyntaxKind::ALTER_INDEX
31113                | SyntaxKind::ALTER_LANGUAGE
31114                | SyntaxKind::ALTER_LARGE_OBJECT
31115                | SyntaxKind::ALTER_MATERIALIZED_VIEW
31116                | SyntaxKind::ALTER_OPERATOR
31117                | SyntaxKind::ALTER_OPERATOR_CLASS
31118                | SyntaxKind::ALTER_OPERATOR_FAMILY
31119                | SyntaxKind::ALTER_POLICY
31120                | SyntaxKind::ALTER_PROCEDURE
31121                | SyntaxKind::ALTER_PUBLICATION
31122                | SyntaxKind::ALTER_ROLE
31123                | SyntaxKind::ALTER_ROUTINE
31124                | SyntaxKind::ALTER_RULE
31125                | SyntaxKind::ALTER_SCHEMA
31126                | SyntaxKind::ALTER_SEQUENCE
31127                | SyntaxKind::ALTER_SERVER
31128                | SyntaxKind::ALTER_STATISTICS
31129                | SyntaxKind::ALTER_SUBSCRIPTION
31130                | SyntaxKind::ALTER_SYSTEM
31131                | SyntaxKind::ALTER_TABLE
31132                | SyntaxKind::ALTER_TABLESPACE
31133                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
31134                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
31135                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
31136                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
31137                | SyntaxKind::ALTER_TRIGGER
31138                | SyntaxKind::ALTER_TYPE
31139                | SyntaxKind::ALTER_USER
31140                | SyntaxKind::ALTER_USER_MAPPING
31141                | SyntaxKind::ALTER_VIEW
31142                | SyntaxKind::ANALYZE
31143                | SyntaxKind::BEGIN
31144                | SyntaxKind::CALL
31145                | SyntaxKind::CHECKPOINT
31146                | SyntaxKind::CLOSE
31147                | SyntaxKind::CLUSTER
31148                | SyntaxKind::COMMENT_ON
31149                | SyntaxKind::COMMIT
31150                | SyntaxKind::COPY
31151                | SyntaxKind::CREATE_ACCESS_METHOD
31152                | SyntaxKind::CREATE_AGGREGATE
31153                | SyntaxKind::CREATE_CAST
31154                | SyntaxKind::CREATE_COLLATION
31155                | SyntaxKind::CREATE_CONVERSION
31156                | SyntaxKind::CREATE_DATABASE
31157                | SyntaxKind::CREATE_DOMAIN
31158                | SyntaxKind::CREATE_EVENT_TRIGGER
31159                | SyntaxKind::CREATE_EXTENSION
31160                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
31161                | SyntaxKind::CREATE_FOREIGN_TABLE
31162                | SyntaxKind::CREATE_FUNCTION
31163                | SyntaxKind::CREATE_GROUP
31164                | SyntaxKind::CREATE_INDEX
31165                | SyntaxKind::CREATE_LANGUAGE
31166                | SyntaxKind::CREATE_MATERIALIZED_VIEW
31167                | SyntaxKind::CREATE_OPERATOR
31168                | SyntaxKind::CREATE_OPERATOR_CLASS
31169                | SyntaxKind::CREATE_OPERATOR_FAMILY
31170                | SyntaxKind::CREATE_POLICY
31171                | SyntaxKind::CREATE_PROCEDURE
31172                | SyntaxKind::CREATE_PUBLICATION
31173                | SyntaxKind::CREATE_ROLE
31174                | SyntaxKind::CREATE_RULE
31175                | SyntaxKind::CREATE_SCHEMA
31176                | SyntaxKind::CREATE_SEQUENCE
31177                | SyntaxKind::CREATE_SERVER
31178                | SyntaxKind::CREATE_STATISTICS
31179                | SyntaxKind::CREATE_SUBSCRIPTION
31180                | SyntaxKind::CREATE_TABLE
31181                | SyntaxKind::CREATE_TABLE_AS
31182                | SyntaxKind::CREATE_TABLESPACE
31183                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
31184                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
31185                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
31186                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
31187                | SyntaxKind::CREATE_TRANSFORM
31188                | SyntaxKind::CREATE_TRIGGER
31189                | SyntaxKind::CREATE_TYPE
31190                | SyntaxKind::CREATE_USER
31191                | SyntaxKind::CREATE_USER_MAPPING
31192                | SyntaxKind::CREATE_VIEW
31193                | SyntaxKind::DEALLOCATE
31194                | SyntaxKind::DECLARE
31195                | SyntaxKind::DELETE
31196                | SyntaxKind::DISCARD
31197                | SyntaxKind::DO
31198                | SyntaxKind::DROP_ACCESS_METHOD
31199                | SyntaxKind::DROP_AGGREGATE
31200                | SyntaxKind::DROP_CAST
31201                | SyntaxKind::DROP_COLLATION
31202                | SyntaxKind::DROP_CONVERSION
31203                | SyntaxKind::DROP_DATABASE
31204                | SyntaxKind::DROP_DOMAIN
31205                | SyntaxKind::DROP_EVENT_TRIGGER
31206                | SyntaxKind::DROP_EXTENSION
31207                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
31208                | SyntaxKind::DROP_FOREIGN_TABLE
31209                | SyntaxKind::DROP_FUNCTION
31210                | SyntaxKind::DROP_GROUP
31211                | SyntaxKind::DROP_INDEX
31212                | SyntaxKind::DROP_LANGUAGE
31213                | SyntaxKind::DROP_MATERIALIZED_VIEW
31214                | SyntaxKind::DROP_OPERATOR
31215                | SyntaxKind::DROP_OPERATOR_CLASS
31216                | SyntaxKind::DROP_OPERATOR_FAMILY
31217                | SyntaxKind::DROP_OWNED
31218                | SyntaxKind::DROP_POLICY
31219                | SyntaxKind::DROP_PROCEDURE
31220                | SyntaxKind::DROP_PUBLICATION
31221                | SyntaxKind::DROP_ROLE
31222                | SyntaxKind::DROP_ROUTINE
31223                | SyntaxKind::DROP_RULE
31224                | SyntaxKind::DROP_SCHEMA
31225                | SyntaxKind::DROP_SEQUENCE
31226                | SyntaxKind::DROP_SERVER
31227                | SyntaxKind::DROP_STATISTICS
31228                | SyntaxKind::DROP_SUBSCRIPTION
31229                | SyntaxKind::DROP_TABLE
31230                | SyntaxKind::DROP_TABLESPACE
31231                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
31232                | SyntaxKind::DROP_TEXT_SEARCH_DICT
31233                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
31234                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
31235                | SyntaxKind::DROP_TRANSFORM
31236                | SyntaxKind::DROP_TRIGGER
31237                | SyntaxKind::DROP_TYPE
31238                | SyntaxKind::DROP_USER
31239                | SyntaxKind::DROP_USER_MAPPING
31240                | SyntaxKind::DROP_VIEW
31241                | SyntaxKind::EXECUTE
31242                | SyntaxKind::EXPLAIN
31243                | SyntaxKind::FETCH
31244                | SyntaxKind::GRANT
31245                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
31246                | SyntaxKind::INSERT
31247                | SyntaxKind::LISTEN
31248                | SyntaxKind::LOAD
31249                | SyntaxKind::LOCK
31250                | SyntaxKind::MERGE
31251                | SyntaxKind::MOVE
31252                | SyntaxKind::NOTIFY
31253                | SyntaxKind::PAREN_SELECT
31254                | SyntaxKind::PREPARE
31255                | SyntaxKind::PREPARE_TRANSACTION
31256                | SyntaxKind::REASSIGN
31257                | SyntaxKind::REFRESH
31258                | SyntaxKind::REINDEX
31259                | SyntaxKind::RELEASE_SAVEPOINT
31260                | SyntaxKind::RESET
31261                | SyntaxKind::RESET_SESSION_AUTH
31262                | SyntaxKind::REVOKE
31263                | SyntaxKind::ROLLBACK
31264                | SyntaxKind::SAVEPOINT
31265                | SyntaxKind::SECURITY_LABEL
31266                | SyntaxKind::SELECT
31267                | SyntaxKind::SELECT_INTO
31268                | SyntaxKind::SET
31269                | SyntaxKind::SET_CONSTRAINTS
31270                | SyntaxKind::SET_ROLE
31271                | SyntaxKind::SET_SESSION_AUTH
31272                | SyntaxKind::SET_TRANSACTION
31273                | SyntaxKind::SHOW
31274                | SyntaxKind::TABLE
31275                | SyntaxKind::TRUNCATE
31276                | SyntaxKind::UNLISTEN
31277                | SyntaxKind::UPDATE
31278                | SyntaxKind::VACUUM
31279                | SyntaxKind::VALUES
31280        )
31281    }
31282    #[inline]
31283    fn cast(syntax: SyntaxNode) -> Option<Self> {
31284        let res = match syntax.kind() {
31285            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
31286            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
31287            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
31288            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
31289            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
31290                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
31291            }
31292            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
31293            SyntaxKind::ALTER_EVENT_TRIGGER => {
31294                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
31295            }
31296            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
31297            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
31298                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
31299            }
31300            SyntaxKind::ALTER_FOREIGN_TABLE => {
31301                Stmt::AlterForeignTable(AlterForeignTable { syntax })
31302            }
31303            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
31304            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
31305            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
31306            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
31307            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
31308            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
31309                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
31310            }
31311            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
31312            SyntaxKind::ALTER_OPERATOR_CLASS => {
31313                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
31314            }
31315            SyntaxKind::ALTER_OPERATOR_FAMILY => {
31316                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
31317            }
31318            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
31319            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
31320            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
31321            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
31322            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
31323            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
31324            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
31325            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
31326            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
31327            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
31328            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
31329            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
31330            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
31331            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
31332            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
31333                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
31334            }
31335            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
31336                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
31337            }
31338            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
31339                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
31340            }
31341            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
31342                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
31343            }
31344            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
31345            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
31346            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
31347            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
31348            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
31349            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
31350            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
31351            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
31352            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
31353            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
31354            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
31355            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
31356            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
31357            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
31358            SyntaxKind::CREATE_ACCESS_METHOD => {
31359                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
31360            }
31361            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
31362            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
31363            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
31364            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
31365            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
31366            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
31367            SyntaxKind::CREATE_EVENT_TRIGGER => {
31368                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
31369            }
31370            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
31371            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
31372                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
31373            }
31374            SyntaxKind::CREATE_FOREIGN_TABLE => {
31375                Stmt::CreateForeignTable(CreateForeignTable { syntax })
31376            }
31377            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
31378            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
31379            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
31380            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
31381            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
31382                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
31383            }
31384            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
31385            SyntaxKind::CREATE_OPERATOR_CLASS => {
31386                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
31387            }
31388            SyntaxKind::CREATE_OPERATOR_FAMILY => {
31389                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
31390            }
31391            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
31392            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
31393            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
31394            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
31395            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
31396            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
31397            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
31398            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
31399            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
31400            SyntaxKind::CREATE_SUBSCRIPTION => {
31401                Stmt::CreateSubscription(CreateSubscription { syntax })
31402            }
31403            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
31404            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
31405            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
31406            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
31407                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
31408            }
31409            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
31410                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
31411            }
31412            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
31413                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
31414            }
31415            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
31416                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
31417            }
31418            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
31419            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
31420            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
31421            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
31422            SyntaxKind::CREATE_USER_MAPPING => {
31423                Stmt::CreateUserMapping(CreateUserMapping { syntax })
31424            }
31425            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
31426            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
31427            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
31428            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
31429            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
31430            SyntaxKind::DO => Stmt::Do(Do { syntax }),
31431            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
31432            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
31433            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
31434            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
31435            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
31436            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
31437            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
31438            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
31439            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
31440            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
31441                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
31442            }
31443            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
31444            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
31445            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
31446            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
31447            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
31448            SyntaxKind::DROP_MATERIALIZED_VIEW => {
31449                Stmt::DropMaterializedView(DropMaterializedView { syntax })
31450            }
31451            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
31452            SyntaxKind::DROP_OPERATOR_CLASS => {
31453                Stmt::DropOperatorClass(DropOperatorClass { syntax })
31454            }
31455            SyntaxKind::DROP_OPERATOR_FAMILY => {
31456                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
31457            }
31458            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
31459            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
31460            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
31461            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
31462            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
31463            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
31464            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
31465            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
31466            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
31467            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
31468            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
31469            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
31470            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
31471            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
31472            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
31473                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
31474            }
31475            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
31476                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
31477            }
31478            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
31479                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
31480            }
31481            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
31482                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
31483            }
31484            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
31485            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
31486            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
31487            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
31488            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
31489            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
31490            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
31491            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
31492            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
31493            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
31494            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
31495                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
31496            }
31497            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
31498            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
31499            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
31500            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
31501            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
31502            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
31503            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
31504            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
31505            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
31506            SyntaxKind::PREPARE_TRANSACTION => {
31507                Stmt::PrepareTransaction(PrepareTransaction { syntax })
31508            }
31509            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
31510            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
31511            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
31512            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
31513            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
31514            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
31515            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
31516            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
31517            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
31518            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
31519            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
31520            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
31521            SyntaxKind::SET => Stmt::Set(Set { syntax }),
31522            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
31523            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
31524            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
31525            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
31526            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
31527            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
31528            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
31529            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
31530            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
31531            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
31532            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
31533            _ => {
31534                return None;
31535            }
31536        };
31537        Some(res)
31538    }
31539    #[inline]
31540    fn syntax(&self) -> &SyntaxNode {
31541        match self {
31542            Stmt::AlterAggregate(it) => &it.syntax,
31543            Stmt::AlterCollation(it) => &it.syntax,
31544            Stmt::AlterConversion(it) => &it.syntax,
31545            Stmt::AlterDatabase(it) => &it.syntax,
31546            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
31547            Stmt::AlterDomain(it) => &it.syntax,
31548            Stmt::AlterEventTrigger(it) => &it.syntax,
31549            Stmt::AlterExtension(it) => &it.syntax,
31550            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
31551            Stmt::AlterForeignTable(it) => &it.syntax,
31552            Stmt::AlterFunction(it) => &it.syntax,
31553            Stmt::AlterGroup(it) => &it.syntax,
31554            Stmt::AlterIndex(it) => &it.syntax,
31555            Stmt::AlterLanguage(it) => &it.syntax,
31556            Stmt::AlterLargeObject(it) => &it.syntax,
31557            Stmt::AlterMaterializedView(it) => &it.syntax,
31558            Stmt::AlterOperator(it) => &it.syntax,
31559            Stmt::AlterOperatorClass(it) => &it.syntax,
31560            Stmt::AlterOperatorFamily(it) => &it.syntax,
31561            Stmt::AlterPolicy(it) => &it.syntax,
31562            Stmt::AlterProcedure(it) => &it.syntax,
31563            Stmt::AlterPublication(it) => &it.syntax,
31564            Stmt::AlterRole(it) => &it.syntax,
31565            Stmt::AlterRoutine(it) => &it.syntax,
31566            Stmt::AlterRule(it) => &it.syntax,
31567            Stmt::AlterSchema(it) => &it.syntax,
31568            Stmt::AlterSequence(it) => &it.syntax,
31569            Stmt::AlterServer(it) => &it.syntax,
31570            Stmt::AlterStatistics(it) => &it.syntax,
31571            Stmt::AlterSubscription(it) => &it.syntax,
31572            Stmt::AlterSystem(it) => &it.syntax,
31573            Stmt::AlterTable(it) => &it.syntax,
31574            Stmt::AlterTablespace(it) => &it.syntax,
31575            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
31576            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
31577            Stmt::AlterTextSearchParser(it) => &it.syntax,
31578            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
31579            Stmt::AlterTrigger(it) => &it.syntax,
31580            Stmt::AlterType(it) => &it.syntax,
31581            Stmt::AlterUser(it) => &it.syntax,
31582            Stmt::AlterUserMapping(it) => &it.syntax,
31583            Stmt::AlterView(it) => &it.syntax,
31584            Stmt::Analyze(it) => &it.syntax,
31585            Stmt::Begin(it) => &it.syntax,
31586            Stmt::Call(it) => &it.syntax,
31587            Stmt::Checkpoint(it) => &it.syntax,
31588            Stmt::Close(it) => &it.syntax,
31589            Stmt::Cluster(it) => &it.syntax,
31590            Stmt::CommentOn(it) => &it.syntax,
31591            Stmt::Commit(it) => &it.syntax,
31592            Stmt::Copy(it) => &it.syntax,
31593            Stmt::CreateAccessMethod(it) => &it.syntax,
31594            Stmt::CreateAggregate(it) => &it.syntax,
31595            Stmt::CreateCast(it) => &it.syntax,
31596            Stmt::CreateCollation(it) => &it.syntax,
31597            Stmt::CreateConversion(it) => &it.syntax,
31598            Stmt::CreateDatabase(it) => &it.syntax,
31599            Stmt::CreateDomain(it) => &it.syntax,
31600            Stmt::CreateEventTrigger(it) => &it.syntax,
31601            Stmt::CreateExtension(it) => &it.syntax,
31602            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
31603            Stmt::CreateForeignTable(it) => &it.syntax,
31604            Stmt::CreateFunction(it) => &it.syntax,
31605            Stmt::CreateGroup(it) => &it.syntax,
31606            Stmt::CreateIndex(it) => &it.syntax,
31607            Stmt::CreateLanguage(it) => &it.syntax,
31608            Stmt::CreateMaterializedView(it) => &it.syntax,
31609            Stmt::CreateOperator(it) => &it.syntax,
31610            Stmt::CreateOperatorClass(it) => &it.syntax,
31611            Stmt::CreateOperatorFamily(it) => &it.syntax,
31612            Stmt::CreatePolicy(it) => &it.syntax,
31613            Stmt::CreateProcedure(it) => &it.syntax,
31614            Stmt::CreatePublication(it) => &it.syntax,
31615            Stmt::CreateRole(it) => &it.syntax,
31616            Stmt::CreateRule(it) => &it.syntax,
31617            Stmt::CreateSchema(it) => &it.syntax,
31618            Stmt::CreateSequence(it) => &it.syntax,
31619            Stmt::CreateServer(it) => &it.syntax,
31620            Stmt::CreateStatistics(it) => &it.syntax,
31621            Stmt::CreateSubscription(it) => &it.syntax,
31622            Stmt::CreateTable(it) => &it.syntax,
31623            Stmt::CreateTableAs(it) => &it.syntax,
31624            Stmt::CreateTablespace(it) => &it.syntax,
31625            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
31626            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
31627            Stmt::CreateTextSearchParser(it) => &it.syntax,
31628            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
31629            Stmt::CreateTransform(it) => &it.syntax,
31630            Stmt::CreateTrigger(it) => &it.syntax,
31631            Stmt::CreateType(it) => &it.syntax,
31632            Stmt::CreateUser(it) => &it.syntax,
31633            Stmt::CreateUserMapping(it) => &it.syntax,
31634            Stmt::CreateView(it) => &it.syntax,
31635            Stmt::Deallocate(it) => &it.syntax,
31636            Stmt::Declare(it) => &it.syntax,
31637            Stmt::Delete(it) => &it.syntax,
31638            Stmt::Discard(it) => &it.syntax,
31639            Stmt::Do(it) => &it.syntax,
31640            Stmt::DropAccessMethod(it) => &it.syntax,
31641            Stmt::DropAggregate(it) => &it.syntax,
31642            Stmt::DropCast(it) => &it.syntax,
31643            Stmt::DropCollation(it) => &it.syntax,
31644            Stmt::DropConversion(it) => &it.syntax,
31645            Stmt::DropDatabase(it) => &it.syntax,
31646            Stmt::DropDomain(it) => &it.syntax,
31647            Stmt::DropEventTrigger(it) => &it.syntax,
31648            Stmt::DropExtension(it) => &it.syntax,
31649            Stmt::DropForeignDataWrapper(it) => &it.syntax,
31650            Stmt::DropForeignTable(it) => &it.syntax,
31651            Stmt::DropFunction(it) => &it.syntax,
31652            Stmt::DropGroup(it) => &it.syntax,
31653            Stmt::DropIndex(it) => &it.syntax,
31654            Stmt::DropLanguage(it) => &it.syntax,
31655            Stmt::DropMaterializedView(it) => &it.syntax,
31656            Stmt::DropOperator(it) => &it.syntax,
31657            Stmt::DropOperatorClass(it) => &it.syntax,
31658            Stmt::DropOperatorFamily(it) => &it.syntax,
31659            Stmt::DropOwned(it) => &it.syntax,
31660            Stmt::DropPolicy(it) => &it.syntax,
31661            Stmt::DropProcedure(it) => &it.syntax,
31662            Stmt::DropPublication(it) => &it.syntax,
31663            Stmt::DropRole(it) => &it.syntax,
31664            Stmt::DropRoutine(it) => &it.syntax,
31665            Stmt::DropRule(it) => &it.syntax,
31666            Stmt::DropSchema(it) => &it.syntax,
31667            Stmt::DropSequence(it) => &it.syntax,
31668            Stmt::DropServer(it) => &it.syntax,
31669            Stmt::DropStatistics(it) => &it.syntax,
31670            Stmt::DropSubscription(it) => &it.syntax,
31671            Stmt::DropTable(it) => &it.syntax,
31672            Stmt::DropTablespace(it) => &it.syntax,
31673            Stmt::DropTextSearchConfig(it) => &it.syntax,
31674            Stmt::DropTextSearchDict(it) => &it.syntax,
31675            Stmt::DropTextSearchParser(it) => &it.syntax,
31676            Stmt::DropTextSearchTemplate(it) => &it.syntax,
31677            Stmt::DropTransform(it) => &it.syntax,
31678            Stmt::DropTrigger(it) => &it.syntax,
31679            Stmt::DropType(it) => &it.syntax,
31680            Stmt::DropUser(it) => &it.syntax,
31681            Stmt::DropUserMapping(it) => &it.syntax,
31682            Stmt::DropView(it) => &it.syntax,
31683            Stmt::Execute(it) => &it.syntax,
31684            Stmt::Explain(it) => &it.syntax,
31685            Stmt::Fetch(it) => &it.syntax,
31686            Stmt::Grant(it) => &it.syntax,
31687            Stmt::ImportForeignSchema(it) => &it.syntax,
31688            Stmt::Insert(it) => &it.syntax,
31689            Stmt::Listen(it) => &it.syntax,
31690            Stmt::Load(it) => &it.syntax,
31691            Stmt::Lock(it) => &it.syntax,
31692            Stmt::Merge(it) => &it.syntax,
31693            Stmt::Move(it) => &it.syntax,
31694            Stmt::Notify(it) => &it.syntax,
31695            Stmt::ParenSelect(it) => &it.syntax,
31696            Stmt::Prepare(it) => &it.syntax,
31697            Stmt::PrepareTransaction(it) => &it.syntax,
31698            Stmt::Reassign(it) => &it.syntax,
31699            Stmt::Refresh(it) => &it.syntax,
31700            Stmt::Reindex(it) => &it.syntax,
31701            Stmt::ReleaseSavepoint(it) => &it.syntax,
31702            Stmt::Reset(it) => &it.syntax,
31703            Stmt::ResetSessionAuth(it) => &it.syntax,
31704            Stmt::Revoke(it) => &it.syntax,
31705            Stmt::Rollback(it) => &it.syntax,
31706            Stmt::Savepoint(it) => &it.syntax,
31707            Stmt::SecurityLabel(it) => &it.syntax,
31708            Stmt::Select(it) => &it.syntax,
31709            Stmt::SelectInto(it) => &it.syntax,
31710            Stmt::Set(it) => &it.syntax,
31711            Stmt::SetConstraints(it) => &it.syntax,
31712            Stmt::SetRole(it) => &it.syntax,
31713            Stmt::SetSessionAuth(it) => &it.syntax,
31714            Stmt::SetTransaction(it) => &it.syntax,
31715            Stmt::Show(it) => &it.syntax,
31716            Stmt::Table(it) => &it.syntax,
31717            Stmt::Truncate(it) => &it.syntax,
31718            Stmt::Unlisten(it) => &it.syntax,
31719            Stmt::Update(it) => &it.syntax,
31720            Stmt::Vacuum(it) => &it.syntax,
31721            Stmt::Values(it) => &it.syntax,
31722        }
31723    }
31724}
31725impl From<AlterAggregate> for Stmt {
31726    #[inline]
31727    fn from(node: AlterAggregate) -> Stmt {
31728        Stmt::AlterAggregate(node)
31729    }
31730}
31731impl From<AlterCollation> for Stmt {
31732    #[inline]
31733    fn from(node: AlterCollation) -> Stmt {
31734        Stmt::AlterCollation(node)
31735    }
31736}
31737impl From<AlterConversion> for Stmt {
31738    #[inline]
31739    fn from(node: AlterConversion) -> Stmt {
31740        Stmt::AlterConversion(node)
31741    }
31742}
31743impl From<AlterDatabase> for Stmt {
31744    #[inline]
31745    fn from(node: AlterDatabase) -> Stmt {
31746        Stmt::AlterDatabase(node)
31747    }
31748}
31749impl From<AlterDefaultPrivileges> for Stmt {
31750    #[inline]
31751    fn from(node: AlterDefaultPrivileges) -> Stmt {
31752        Stmt::AlterDefaultPrivileges(node)
31753    }
31754}
31755impl From<AlterDomain> for Stmt {
31756    #[inline]
31757    fn from(node: AlterDomain) -> Stmt {
31758        Stmt::AlterDomain(node)
31759    }
31760}
31761impl From<AlterEventTrigger> for Stmt {
31762    #[inline]
31763    fn from(node: AlterEventTrigger) -> Stmt {
31764        Stmt::AlterEventTrigger(node)
31765    }
31766}
31767impl From<AlterExtension> for Stmt {
31768    #[inline]
31769    fn from(node: AlterExtension) -> Stmt {
31770        Stmt::AlterExtension(node)
31771    }
31772}
31773impl From<AlterForeignDataWrapper> for Stmt {
31774    #[inline]
31775    fn from(node: AlterForeignDataWrapper) -> Stmt {
31776        Stmt::AlterForeignDataWrapper(node)
31777    }
31778}
31779impl From<AlterForeignTable> for Stmt {
31780    #[inline]
31781    fn from(node: AlterForeignTable) -> Stmt {
31782        Stmt::AlterForeignTable(node)
31783    }
31784}
31785impl From<AlterFunction> for Stmt {
31786    #[inline]
31787    fn from(node: AlterFunction) -> Stmt {
31788        Stmt::AlterFunction(node)
31789    }
31790}
31791impl From<AlterGroup> for Stmt {
31792    #[inline]
31793    fn from(node: AlterGroup) -> Stmt {
31794        Stmt::AlterGroup(node)
31795    }
31796}
31797impl From<AlterIndex> for Stmt {
31798    #[inline]
31799    fn from(node: AlterIndex) -> Stmt {
31800        Stmt::AlterIndex(node)
31801    }
31802}
31803impl From<AlterLanguage> for Stmt {
31804    #[inline]
31805    fn from(node: AlterLanguage) -> Stmt {
31806        Stmt::AlterLanguage(node)
31807    }
31808}
31809impl From<AlterLargeObject> for Stmt {
31810    #[inline]
31811    fn from(node: AlterLargeObject) -> Stmt {
31812        Stmt::AlterLargeObject(node)
31813    }
31814}
31815impl From<AlterMaterializedView> for Stmt {
31816    #[inline]
31817    fn from(node: AlterMaterializedView) -> Stmt {
31818        Stmt::AlterMaterializedView(node)
31819    }
31820}
31821impl From<AlterOperator> for Stmt {
31822    #[inline]
31823    fn from(node: AlterOperator) -> Stmt {
31824        Stmt::AlterOperator(node)
31825    }
31826}
31827impl From<AlterOperatorClass> for Stmt {
31828    #[inline]
31829    fn from(node: AlterOperatorClass) -> Stmt {
31830        Stmt::AlterOperatorClass(node)
31831    }
31832}
31833impl From<AlterOperatorFamily> for Stmt {
31834    #[inline]
31835    fn from(node: AlterOperatorFamily) -> Stmt {
31836        Stmt::AlterOperatorFamily(node)
31837    }
31838}
31839impl From<AlterPolicy> for Stmt {
31840    #[inline]
31841    fn from(node: AlterPolicy) -> Stmt {
31842        Stmt::AlterPolicy(node)
31843    }
31844}
31845impl From<AlterProcedure> for Stmt {
31846    #[inline]
31847    fn from(node: AlterProcedure) -> Stmt {
31848        Stmt::AlterProcedure(node)
31849    }
31850}
31851impl From<AlterPublication> for Stmt {
31852    #[inline]
31853    fn from(node: AlterPublication) -> Stmt {
31854        Stmt::AlterPublication(node)
31855    }
31856}
31857impl From<AlterRole> for Stmt {
31858    #[inline]
31859    fn from(node: AlterRole) -> Stmt {
31860        Stmt::AlterRole(node)
31861    }
31862}
31863impl From<AlterRoutine> for Stmt {
31864    #[inline]
31865    fn from(node: AlterRoutine) -> Stmt {
31866        Stmt::AlterRoutine(node)
31867    }
31868}
31869impl From<AlterRule> for Stmt {
31870    #[inline]
31871    fn from(node: AlterRule) -> Stmt {
31872        Stmt::AlterRule(node)
31873    }
31874}
31875impl From<AlterSchema> for Stmt {
31876    #[inline]
31877    fn from(node: AlterSchema) -> Stmt {
31878        Stmt::AlterSchema(node)
31879    }
31880}
31881impl From<AlterSequence> for Stmt {
31882    #[inline]
31883    fn from(node: AlterSequence) -> Stmt {
31884        Stmt::AlterSequence(node)
31885    }
31886}
31887impl From<AlterServer> for Stmt {
31888    #[inline]
31889    fn from(node: AlterServer) -> Stmt {
31890        Stmt::AlterServer(node)
31891    }
31892}
31893impl From<AlterStatistics> for Stmt {
31894    #[inline]
31895    fn from(node: AlterStatistics) -> Stmt {
31896        Stmt::AlterStatistics(node)
31897    }
31898}
31899impl From<AlterSubscription> for Stmt {
31900    #[inline]
31901    fn from(node: AlterSubscription) -> Stmt {
31902        Stmt::AlterSubscription(node)
31903    }
31904}
31905impl From<AlterSystem> for Stmt {
31906    #[inline]
31907    fn from(node: AlterSystem) -> Stmt {
31908        Stmt::AlterSystem(node)
31909    }
31910}
31911impl From<AlterTable> for Stmt {
31912    #[inline]
31913    fn from(node: AlterTable) -> Stmt {
31914        Stmt::AlterTable(node)
31915    }
31916}
31917impl From<AlterTablespace> for Stmt {
31918    #[inline]
31919    fn from(node: AlterTablespace) -> Stmt {
31920        Stmt::AlterTablespace(node)
31921    }
31922}
31923impl From<AlterTextSearchConfiguration> for Stmt {
31924    #[inline]
31925    fn from(node: AlterTextSearchConfiguration) -> Stmt {
31926        Stmt::AlterTextSearchConfiguration(node)
31927    }
31928}
31929impl From<AlterTextSearchDictionary> for Stmt {
31930    #[inline]
31931    fn from(node: AlterTextSearchDictionary) -> Stmt {
31932        Stmt::AlterTextSearchDictionary(node)
31933    }
31934}
31935impl From<AlterTextSearchParser> for Stmt {
31936    #[inline]
31937    fn from(node: AlterTextSearchParser) -> Stmt {
31938        Stmt::AlterTextSearchParser(node)
31939    }
31940}
31941impl From<AlterTextSearchTemplate> for Stmt {
31942    #[inline]
31943    fn from(node: AlterTextSearchTemplate) -> Stmt {
31944        Stmt::AlterTextSearchTemplate(node)
31945    }
31946}
31947impl From<AlterTrigger> for Stmt {
31948    #[inline]
31949    fn from(node: AlterTrigger) -> Stmt {
31950        Stmt::AlterTrigger(node)
31951    }
31952}
31953impl From<AlterType> for Stmt {
31954    #[inline]
31955    fn from(node: AlterType) -> Stmt {
31956        Stmt::AlterType(node)
31957    }
31958}
31959impl From<AlterUser> for Stmt {
31960    #[inline]
31961    fn from(node: AlterUser) -> Stmt {
31962        Stmt::AlterUser(node)
31963    }
31964}
31965impl From<AlterUserMapping> for Stmt {
31966    #[inline]
31967    fn from(node: AlterUserMapping) -> Stmt {
31968        Stmt::AlterUserMapping(node)
31969    }
31970}
31971impl From<AlterView> for Stmt {
31972    #[inline]
31973    fn from(node: AlterView) -> Stmt {
31974        Stmt::AlterView(node)
31975    }
31976}
31977impl From<Analyze> for Stmt {
31978    #[inline]
31979    fn from(node: Analyze) -> Stmt {
31980        Stmt::Analyze(node)
31981    }
31982}
31983impl From<Begin> for Stmt {
31984    #[inline]
31985    fn from(node: Begin) -> Stmt {
31986        Stmt::Begin(node)
31987    }
31988}
31989impl From<Call> for Stmt {
31990    #[inline]
31991    fn from(node: Call) -> Stmt {
31992        Stmt::Call(node)
31993    }
31994}
31995impl From<Checkpoint> for Stmt {
31996    #[inline]
31997    fn from(node: Checkpoint) -> Stmt {
31998        Stmt::Checkpoint(node)
31999    }
32000}
32001impl From<Close> for Stmt {
32002    #[inline]
32003    fn from(node: Close) -> Stmt {
32004        Stmt::Close(node)
32005    }
32006}
32007impl From<Cluster> for Stmt {
32008    #[inline]
32009    fn from(node: Cluster) -> Stmt {
32010        Stmt::Cluster(node)
32011    }
32012}
32013impl From<CommentOn> for Stmt {
32014    #[inline]
32015    fn from(node: CommentOn) -> Stmt {
32016        Stmt::CommentOn(node)
32017    }
32018}
32019impl From<Commit> for Stmt {
32020    #[inline]
32021    fn from(node: Commit) -> Stmt {
32022        Stmt::Commit(node)
32023    }
32024}
32025impl From<Copy> for Stmt {
32026    #[inline]
32027    fn from(node: Copy) -> Stmt {
32028        Stmt::Copy(node)
32029    }
32030}
32031impl From<CreateAccessMethod> for Stmt {
32032    #[inline]
32033    fn from(node: CreateAccessMethod) -> Stmt {
32034        Stmt::CreateAccessMethod(node)
32035    }
32036}
32037impl From<CreateAggregate> for Stmt {
32038    #[inline]
32039    fn from(node: CreateAggregate) -> Stmt {
32040        Stmt::CreateAggregate(node)
32041    }
32042}
32043impl From<CreateCast> for Stmt {
32044    #[inline]
32045    fn from(node: CreateCast) -> Stmt {
32046        Stmt::CreateCast(node)
32047    }
32048}
32049impl From<CreateCollation> for Stmt {
32050    #[inline]
32051    fn from(node: CreateCollation) -> Stmt {
32052        Stmt::CreateCollation(node)
32053    }
32054}
32055impl From<CreateConversion> for Stmt {
32056    #[inline]
32057    fn from(node: CreateConversion) -> Stmt {
32058        Stmt::CreateConversion(node)
32059    }
32060}
32061impl From<CreateDatabase> for Stmt {
32062    #[inline]
32063    fn from(node: CreateDatabase) -> Stmt {
32064        Stmt::CreateDatabase(node)
32065    }
32066}
32067impl From<CreateDomain> for Stmt {
32068    #[inline]
32069    fn from(node: CreateDomain) -> Stmt {
32070        Stmt::CreateDomain(node)
32071    }
32072}
32073impl From<CreateEventTrigger> for Stmt {
32074    #[inline]
32075    fn from(node: CreateEventTrigger) -> Stmt {
32076        Stmt::CreateEventTrigger(node)
32077    }
32078}
32079impl From<CreateExtension> for Stmt {
32080    #[inline]
32081    fn from(node: CreateExtension) -> Stmt {
32082        Stmt::CreateExtension(node)
32083    }
32084}
32085impl From<CreateForeignDataWrapper> for Stmt {
32086    #[inline]
32087    fn from(node: CreateForeignDataWrapper) -> Stmt {
32088        Stmt::CreateForeignDataWrapper(node)
32089    }
32090}
32091impl From<CreateForeignTable> for Stmt {
32092    #[inline]
32093    fn from(node: CreateForeignTable) -> Stmt {
32094        Stmt::CreateForeignTable(node)
32095    }
32096}
32097impl From<CreateFunction> for Stmt {
32098    #[inline]
32099    fn from(node: CreateFunction) -> Stmt {
32100        Stmt::CreateFunction(node)
32101    }
32102}
32103impl From<CreateGroup> for Stmt {
32104    #[inline]
32105    fn from(node: CreateGroup) -> Stmt {
32106        Stmt::CreateGroup(node)
32107    }
32108}
32109impl From<CreateIndex> for Stmt {
32110    #[inline]
32111    fn from(node: CreateIndex) -> Stmt {
32112        Stmt::CreateIndex(node)
32113    }
32114}
32115impl From<CreateLanguage> for Stmt {
32116    #[inline]
32117    fn from(node: CreateLanguage) -> Stmt {
32118        Stmt::CreateLanguage(node)
32119    }
32120}
32121impl From<CreateMaterializedView> for Stmt {
32122    #[inline]
32123    fn from(node: CreateMaterializedView) -> Stmt {
32124        Stmt::CreateMaterializedView(node)
32125    }
32126}
32127impl From<CreateOperator> for Stmt {
32128    #[inline]
32129    fn from(node: CreateOperator) -> Stmt {
32130        Stmt::CreateOperator(node)
32131    }
32132}
32133impl From<CreateOperatorClass> for Stmt {
32134    #[inline]
32135    fn from(node: CreateOperatorClass) -> Stmt {
32136        Stmt::CreateOperatorClass(node)
32137    }
32138}
32139impl From<CreateOperatorFamily> for Stmt {
32140    #[inline]
32141    fn from(node: CreateOperatorFamily) -> Stmt {
32142        Stmt::CreateOperatorFamily(node)
32143    }
32144}
32145impl From<CreatePolicy> for Stmt {
32146    #[inline]
32147    fn from(node: CreatePolicy) -> Stmt {
32148        Stmt::CreatePolicy(node)
32149    }
32150}
32151impl From<CreateProcedure> for Stmt {
32152    #[inline]
32153    fn from(node: CreateProcedure) -> Stmt {
32154        Stmt::CreateProcedure(node)
32155    }
32156}
32157impl From<CreatePublication> for Stmt {
32158    #[inline]
32159    fn from(node: CreatePublication) -> Stmt {
32160        Stmt::CreatePublication(node)
32161    }
32162}
32163impl From<CreateRole> for Stmt {
32164    #[inline]
32165    fn from(node: CreateRole) -> Stmt {
32166        Stmt::CreateRole(node)
32167    }
32168}
32169impl From<CreateRule> for Stmt {
32170    #[inline]
32171    fn from(node: CreateRule) -> Stmt {
32172        Stmt::CreateRule(node)
32173    }
32174}
32175impl From<CreateSchema> for Stmt {
32176    #[inline]
32177    fn from(node: CreateSchema) -> Stmt {
32178        Stmt::CreateSchema(node)
32179    }
32180}
32181impl From<CreateSequence> for Stmt {
32182    #[inline]
32183    fn from(node: CreateSequence) -> Stmt {
32184        Stmt::CreateSequence(node)
32185    }
32186}
32187impl From<CreateServer> for Stmt {
32188    #[inline]
32189    fn from(node: CreateServer) -> Stmt {
32190        Stmt::CreateServer(node)
32191    }
32192}
32193impl From<CreateStatistics> for Stmt {
32194    #[inline]
32195    fn from(node: CreateStatistics) -> Stmt {
32196        Stmt::CreateStatistics(node)
32197    }
32198}
32199impl From<CreateSubscription> for Stmt {
32200    #[inline]
32201    fn from(node: CreateSubscription) -> Stmt {
32202        Stmt::CreateSubscription(node)
32203    }
32204}
32205impl From<CreateTable> for Stmt {
32206    #[inline]
32207    fn from(node: CreateTable) -> Stmt {
32208        Stmt::CreateTable(node)
32209    }
32210}
32211impl From<CreateTableAs> for Stmt {
32212    #[inline]
32213    fn from(node: CreateTableAs) -> Stmt {
32214        Stmt::CreateTableAs(node)
32215    }
32216}
32217impl From<CreateTablespace> for Stmt {
32218    #[inline]
32219    fn from(node: CreateTablespace) -> Stmt {
32220        Stmt::CreateTablespace(node)
32221    }
32222}
32223impl From<CreateTextSearchConfiguration> for Stmt {
32224    #[inline]
32225    fn from(node: CreateTextSearchConfiguration) -> Stmt {
32226        Stmt::CreateTextSearchConfiguration(node)
32227    }
32228}
32229impl From<CreateTextSearchDictionary> for Stmt {
32230    #[inline]
32231    fn from(node: CreateTextSearchDictionary) -> Stmt {
32232        Stmt::CreateTextSearchDictionary(node)
32233    }
32234}
32235impl From<CreateTextSearchParser> for Stmt {
32236    #[inline]
32237    fn from(node: CreateTextSearchParser) -> Stmt {
32238        Stmt::CreateTextSearchParser(node)
32239    }
32240}
32241impl From<CreateTextSearchTemplate> for Stmt {
32242    #[inline]
32243    fn from(node: CreateTextSearchTemplate) -> Stmt {
32244        Stmt::CreateTextSearchTemplate(node)
32245    }
32246}
32247impl From<CreateTransform> for Stmt {
32248    #[inline]
32249    fn from(node: CreateTransform) -> Stmt {
32250        Stmt::CreateTransform(node)
32251    }
32252}
32253impl From<CreateTrigger> for Stmt {
32254    #[inline]
32255    fn from(node: CreateTrigger) -> Stmt {
32256        Stmt::CreateTrigger(node)
32257    }
32258}
32259impl From<CreateType> for Stmt {
32260    #[inline]
32261    fn from(node: CreateType) -> Stmt {
32262        Stmt::CreateType(node)
32263    }
32264}
32265impl From<CreateUser> for Stmt {
32266    #[inline]
32267    fn from(node: CreateUser) -> Stmt {
32268        Stmt::CreateUser(node)
32269    }
32270}
32271impl From<CreateUserMapping> for Stmt {
32272    #[inline]
32273    fn from(node: CreateUserMapping) -> Stmt {
32274        Stmt::CreateUserMapping(node)
32275    }
32276}
32277impl From<CreateView> for Stmt {
32278    #[inline]
32279    fn from(node: CreateView) -> Stmt {
32280        Stmt::CreateView(node)
32281    }
32282}
32283impl From<Deallocate> for Stmt {
32284    #[inline]
32285    fn from(node: Deallocate) -> Stmt {
32286        Stmt::Deallocate(node)
32287    }
32288}
32289impl From<Declare> for Stmt {
32290    #[inline]
32291    fn from(node: Declare) -> Stmt {
32292        Stmt::Declare(node)
32293    }
32294}
32295impl From<Delete> for Stmt {
32296    #[inline]
32297    fn from(node: Delete) -> Stmt {
32298        Stmt::Delete(node)
32299    }
32300}
32301impl From<Discard> for Stmt {
32302    #[inline]
32303    fn from(node: Discard) -> Stmt {
32304        Stmt::Discard(node)
32305    }
32306}
32307impl From<Do> for Stmt {
32308    #[inline]
32309    fn from(node: Do) -> Stmt {
32310        Stmt::Do(node)
32311    }
32312}
32313impl From<DropAccessMethod> for Stmt {
32314    #[inline]
32315    fn from(node: DropAccessMethod) -> Stmt {
32316        Stmt::DropAccessMethod(node)
32317    }
32318}
32319impl From<DropAggregate> for Stmt {
32320    #[inline]
32321    fn from(node: DropAggregate) -> Stmt {
32322        Stmt::DropAggregate(node)
32323    }
32324}
32325impl From<DropCast> for Stmt {
32326    #[inline]
32327    fn from(node: DropCast) -> Stmt {
32328        Stmt::DropCast(node)
32329    }
32330}
32331impl From<DropCollation> for Stmt {
32332    #[inline]
32333    fn from(node: DropCollation) -> Stmt {
32334        Stmt::DropCollation(node)
32335    }
32336}
32337impl From<DropConversion> for Stmt {
32338    #[inline]
32339    fn from(node: DropConversion) -> Stmt {
32340        Stmt::DropConversion(node)
32341    }
32342}
32343impl From<DropDatabase> for Stmt {
32344    #[inline]
32345    fn from(node: DropDatabase) -> Stmt {
32346        Stmt::DropDatabase(node)
32347    }
32348}
32349impl From<DropDomain> for Stmt {
32350    #[inline]
32351    fn from(node: DropDomain) -> Stmt {
32352        Stmt::DropDomain(node)
32353    }
32354}
32355impl From<DropEventTrigger> for Stmt {
32356    #[inline]
32357    fn from(node: DropEventTrigger) -> Stmt {
32358        Stmt::DropEventTrigger(node)
32359    }
32360}
32361impl From<DropExtension> for Stmt {
32362    #[inline]
32363    fn from(node: DropExtension) -> Stmt {
32364        Stmt::DropExtension(node)
32365    }
32366}
32367impl From<DropForeignDataWrapper> for Stmt {
32368    #[inline]
32369    fn from(node: DropForeignDataWrapper) -> Stmt {
32370        Stmt::DropForeignDataWrapper(node)
32371    }
32372}
32373impl From<DropForeignTable> for Stmt {
32374    #[inline]
32375    fn from(node: DropForeignTable) -> Stmt {
32376        Stmt::DropForeignTable(node)
32377    }
32378}
32379impl From<DropFunction> for Stmt {
32380    #[inline]
32381    fn from(node: DropFunction) -> Stmt {
32382        Stmt::DropFunction(node)
32383    }
32384}
32385impl From<DropGroup> for Stmt {
32386    #[inline]
32387    fn from(node: DropGroup) -> Stmt {
32388        Stmt::DropGroup(node)
32389    }
32390}
32391impl From<DropIndex> for Stmt {
32392    #[inline]
32393    fn from(node: DropIndex) -> Stmt {
32394        Stmt::DropIndex(node)
32395    }
32396}
32397impl From<DropLanguage> for Stmt {
32398    #[inline]
32399    fn from(node: DropLanguage) -> Stmt {
32400        Stmt::DropLanguage(node)
32401    }
32402}
32403impl From<DropMaterializedView> for Stmt {
32404    #[inline]
32405    fn from(node: DropMaterializedView) -> Stmt {
32406        Stmt::DropMaterializedView(node)
32407    }
32408}
32409impl From<DropOperator> for Stmt {
32410    #[inline]
32411    fn from(node: DropOperator) -> Stmt {
32412        Stmt::DropOperator(node)
32413    }
32414}
32415impl From<DropOperatorClass> for Stmt {
32416    #[inline]
32417    fn from(node: DropOperatorClass) -> Stmt {
32418        Stmt::DropOperatorClass(node)
32419    }
32420}
32421impl From<DropOperatorFamily> for Stmt {
32422    #[inline]
32423    fn from(node: DropOperatorFamily) -> Stmt {
32424        Stmt::DropOperatorFamily(node)
32425    }
32426}
32427impl From<DropOwned> for Stmt {
32428    #[inline]
32429    fn from(node: DropOwned) -> Stmt {
32430        Stmt::DropOwned(node)
32431    }
32432}
32433impl From<DropPolicy> for Stmt {
32434    #[inline]
32435    fn from(node: DropPolicy) -> Stmt {
32436        Stmt::DropPolicy(node)
32437    }
32438}
32439impl From<DropProcedure> for Stmt {
32440    #[inline]
32441    fn from(node: DropProcedure) -> Stmt {
32442        Stmt::DropProcedure(node)
32443    }
32444}
32445impl From<DropPublication> for Stmt {
32446    #[inline]
32447    fn from(node: DropPublication) -> Stmt {
32448        Stmt::DropPublication(node)
32449    }
32450}
32451impl From<DropRole> for Stmt {
32452    #[inline]
32453    fn from(node: DropRole) -> Stmt {
32454        Stmt::DropRole(node)
32455    }
32456}
32457impl From<DropRoutine> for Stmt {
32458    #[inline]
32459    fn from(node: DropRoutine) -> Stmt {
32460        Stmt::DropRoutine(node)
32461    }
32462}
32463impl From<DropRule> for Stmt {
32464    #[inline]
32465    fn from(node: DropRule) -> Stmt {
32466        Stmt::DropRule(node)
32467    }
32468}
32469impl From<DropSchema> for Stmt {
32470    #[inline]
32471    fn from(node: DropSchema) -> Stmt {
32472        Stmt::DropSchema(node)
32473    }
32474}
32475impl From<DropSequence> for Stmt {
32476    #[inline]
32477    fn from(node: DropSequence) -> Stmt {
32478        Stmt::DropSequence(node)
32479    }
32480}
32481impl From<DropServer> for Stmt {
32482    #[inline]
32483    fn from(node: DropServer) -> Stmt {
32484        Stmt::DropServer(node)
32485    }
32486}
32487impl From<DropStatistics> for Stmt {
32488    #[inline]
32489    fn from(node: DropStatistics) -> Stmt {
32490        Stmt::DropStatistics(node)
32491    }
32492}
32493impl From<DropSubscription> for Stmt {
32494    #[inline]
32495    fn from(node: DropSubscription) -> Stmt {
32496        Stmt::DropSubscription(node)
32497    }
32498}
32499impl From<DropTable> for Stmt {
32500    #[inline]
32501    fn from(node: DropTable) -> Stmt {
32502        Stmt::DropTable(node)
32503    }
32504}
32505impl From<DropTablespace> for Stmt {
32506    #[inline]
32507    fn from(node: DropTablespace) -> Stmt {
32508        Stmt::DropTablespace(node)
32509    }
32510}
32511impl From<DropTextSearchConfig> for Stmt {
32512    #[inline]
32513    fn from(node: DropTextSearchConfig) -> Stmt {
32514        Stmt::DropTextSearchConfig(node)
32515    }
32516}
32517impl From<DropTextSearchDict> for Stmt {
32518    #[inline]
32519    fn from(node: DropTextSearchDict) -> Stmt {
32520        Stmt::DropTextSearchDict(node)
32521    }
32522}
32523impl From<DropTextSearchParser> for Stmt {
32524    #[inline]
32525    fn from(node: DropTextSearchParser) -> Stmt {
32526        Stmt::DropTextSearchParser(node)
32527    }
32528}
32529impl From<DropTextSearchTemplate> for Stmt {
32530    #[inline]
32531    fn from(node: DropTextSearchTemplate) -> Stmt {
32532        Stmt::DropTextSearchTemplate(node)
32533    }
32534}
32535impl From<DropTransform> for Stmt {
32536    #[inline]
32537    fn from(node: DropTransform) -> Stmt {
32538        Stmt::DropTransform(node)
32539    }
32540}
32541impl From<DropTrigger> for Stmt {
32542    #[inline]
32543    fn from(node: DropTrigger) -> Stmt {
32544        Stmt::DropTrigger(node)
32545    }
32546}
32547impl From<DropType> for Stmt {
32548    #[inline]
32549    fn from(node: DropType) -> Stmt {
32550        Stmt::DropType(node)
32551    }
32552}
32553impl From<DropUser> for Stmt {
32554    #[inline]
32555    fn from(node: DropUser) -> Stmt {
32556        Stmt::DropUser(node)
32557    }
32558}
32559impl From<DropUserMapping> for Stmt {
32560    #[inline]
32561    fn from(node: DropUserMapping) -> Stmt {
32562        Stmt::DropUserMapping(node)
32563    }
32564}
32565impl From<DropView> for Stmt {
32566    #[inline]
32567    fn from(node: DropView) -> Stmt {
32568        Stmt::DropView(node)
32569    }
32570}
32571impl From<Execute> for Stmt {
32572    #[inline]
32573    fn from(node: Execute) -> Stmt {
32574        Stmt::Execute(node)
32575    }
32576}
32577impl From<Explain> for Stmt {
32578    #[inline]
32579    fn from(node: Explain) -> Stmt {
32580        Stmt::Explain(node)
32581    }
32582}
32583impl From<Fetch> for Stmt {
32584    #[inline]
32585    fn from(node: Fetch) -> Stmt {
32586        Stmt::Fetch(node)
32587    }
32588}
32589impl From<Grant> for Stmt {
32590    #[inline]
32591    fn from(node: Grant) -> Stmt {
32592        Stmt::Grant(node)
32593    }
32594}
32595impl From<ImportForeignSchema> for Stmt {
32596    #[inline]
32597    fn from(node: ImportForeignSchema) -> Stmt {
32598        Stmt::ImportForeignSchema(node)
32599    }
32600}
32601impl From<Insert> for Stmt {
32602    #[inline]
32603    fn from(node: Insert) -> Stmt {
32604        Stmt::Insert(node)
32605    }
32606}
32607impl From<Listen> for Stmt {
32608    #[inline]
32609    fn from(node: Listen) -> Stmt {
32610        Stmt::Listen(node)
32611    }
32612}
32613impl From<Load> for Stmt {
32614    #[inline]
32615    fn from(node: Load) -> Stmt {
32616        Stmt::Load(node)
32617    }
32618}
32619impl From<Lock> for Stmt {
32620    #[inline]
32621    fn from(node: Lock) -> Stmt {
32622        Stmt::Lock(node)
32623    }
32624}
32625impl From<Merge> for Stmt {
32626    #[inline]
32627    fn from(node: Merge) -> Stmt {
32628        Stmt::Merge(node)
32629    }
32630}
32631impl From<Move> for Stmt {
32632    #[inline]
32633    fn from(node: Move) -> Stmt {
32634        Stmt::Move(node)
32635    }
32636}
32637impl From<Notify> for Stmt {
32638    #[inline]
32639    fn from(node: Notify) -> Stmt {
32640        Stmt::Notify(node)
32641    }
32642}
32643impl From<ParenSelect> for Stmt {
32644    #[inline]
32645    fn from(node: ParenSelect) -> Stmt {
32646        Stmt::ParenSelect(node)
32647    }
32648}
32649impl From<Prepare> for Stmt {
32650    #[inline]
32651    fn from(node: Prepare) -> Stmt {
32652        Stmt::Prepare(node)
32653    }
32654}
32655impl From<PrepareTransaction> for Stmt {
32656    #[inline]
32657    fn from(node: PrepareTransaction) -> Stmt {
32658        Stmt::PrepareTransaction(node)
32659    }
32660}
32661impl From<Reassign> for Stmt {
32662    #[inline]
32663    fn from(node: Reassign) -> Stmt {
32664        Stmt::Reassign(node)
32665    }
32666}
32667impl From<Refresh> for Stmt {
32668    #[inline]
32669    fn from(node: Refresh) -> Stmt {
32670        Stmt::Refresh(node)
32671    }
32672}
32673impl From<Reindex> for Stmt {
32674    #[inline]
32675    fn from(node: Reindex) -> Stmt {
32676        Stmt::Reindex(node)
32677    }
32678}
32679impl From<ReleaseSavepoint> for Stmt {
32680    #[inline]
32681    fn from(node: ReleaseSavepoint) -> Stmt {
32682        Stmt::ReleaseSavepoint(node)
32683    }
32684}
32685impl From<Reset> for Stmt {
32686    #[inline]
32687    fn from(node: Reset) -> Stmt {
32688        Stmt::Reset(node)
32689    }
32690}
32691impl From<ResetSessionAuth> for Stmt {
32692    #[inline]
32693    fn from(node: ResetSessionAuth) -> Stmt {
32694        Stmt::ResetSessionAuth(node)
32695    }
32696}
32697impl From<Revoke> for Stmt {
32698    #[inline]
32699    fn from(node: Revoke) -> Stmt {
32700        Stmt::Revoke(node)
32701    }
32702}
32703impl From<Rollback> for Stmt {
32704    #[inline]
32705    fn from(node: Rollback) -> Stmt {
32706        Stmt::Rollback(node)
32707    }
32708}
32709impl From<Savepoint> for Stmt {
32710    #[inline]
32711    fn from(node: Savepoint) -> Stmt {
32712        Stmt::Savepoint(node)
32713    }
32714}
32715impl From<SecurityLabel> for Stmt {
32716    #[inline]
32717    fn from(node: SecurityLabel) -> Stmt {
32718        Stmt::SecurityLabel(node)
32719    }
32720}
32721impl From<Select> for Stmt {
32722    #[inline]
32723    fn from(node: Select) -> Stmt {
32724        Stmt::Select(node)
32725    }
32726}
32727impl From<SelectInto> for Stmt {
32728    #[inline]
32729    fn from(node: SelectInto) -> Stmt {
32730        Stmt::SelectInto(node)
32731    }
32732}
32733impl From<Set> for Stmt {
32734    #[inline]
32735    fn from(node: Set) -> Stmt {
32736        Stmt::Set(node)
32737    }
32738}
32739impl From<SetConstraints> for Stmt {
32740    #[inline]
32741    fn from(node: SetConstraints) -> Stmt {
32742        Stmt::SetConstraints(node)
32743    }
32744}
32745impl From<SetRole> for Stmt {
32746    #[inline]
32747    fn from(node: SetRole) -> Stmt {
32748        Stmt::SetRole(node)
32749    }
32750}
32751impl From<SetSessionAuth> for Stmt {
32752    #[inline]
32753    fn from(node: SetSessionAuth) -> Stmt {
32754        Stmt::SetSessionAuth(node)
32755    }
32756}
32757impl From<SetTransaction> for Stmt {
32758    #[inline]
32759    fn from(node: SetTransaction) -> Stmt {
32760        Stmt::SetTransaction(node)
32761    }
32762}
32763impl From<Show> for Stmt {
32764    #[inline]
32765    fn from(node: Show) -> Stmt {
32766        Stmt::Show(node)
32767    }
32768}
32769impl From<Table> for Stmt {
32770    #[inline]
32771    fn from(node: Table) -> Stmt {
32772        Stmt::Table(node)
32773    }
32774}
32775impl From<Truncate> for Stmt {
32776    #[inline]
32777    fn from(node: Truncate) -> Stmt {
32778        Stmt::Truncate(node)
32779    }
32780}
32781impl From<Unlisten> for Stmt {
32782    #[inline]
32783    fn from(node: Unlisten) -> Stmt {
32784        Stmt::Unlisten(node)
32785    }
32786}
32787impl From<Update> for Stmt {
32788    #[inline]
32789    fn from(node: Update) -> Stmt {
32790        Stmt::Update(node)
32791    }
32792}
32793impl From<Vacuum> for Stmt {
32794    #[inline]
32795    fn from(node: Vacuum) -> Stmt {
32796        Stmt::Vacuum(node)
32797    }
32798}
32799impl From<Values> for Stmt {
32800    #[inline]
32801    fn from(node: Values) -> Stmt {
32802        Stmt::Values(node)
32803    }
32804}
32805impl AstNode for TableArg {
32806    #[inline]
32807    fn can_cast(kind: SyntaxKind) -> bool {
32808        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
32809    }
32810    #[inline]
32811    fn cast(syntax: SyntaxNode) -> Option<Self> {
32812        let res = match syntax.kind() {
32813            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
32814            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
32815            _ => {
32816                if let Some(result) = TableConstraint::cast(syntax) {
32817                    return Some(TableArg::TableConstraint(result));
32818                }
32819                return None;
32820            }
32821        };
32822        Some(res)
32823    }
32824    #[inline]
32825    fn syntax(&self) -> &SyntaxNode {
32826        match self {
32827            TableArg::Column(it) => &it.syntax,
32828            TableArg::LikeClause(it) => &it.syntax,
32829            TableArg::TableConstraint(it) => it.syntax(),
32830        }
32831    }
32832}
32833impl From<Column> for TableArg {
32834    #[inline]
32835    fn from(node: Column) -> TableArg {
32836        TableArg::Column(node)
32837    }
32838}
32839impl From<LikeClause> for TableArg {
32840    #[inline]
32841    fn from(node: LikeClause) -> TableArg {
32842        TableArg::LikeClause(node)
32843    }
32844}
32845impl AstNode for TableConstraint {
32846    #[inline]
32847    fn can_cast(kind: SyntaxKind) -> bool {
32848        matches!(
32849            kind,
32850            SyntaxKind::CHECK_CONSTRAINT
32851                | SyntaxKind::EXCLUDE_CONSTRAINT
32852                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
32853                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32854                | SyntaxKind::UNIQUE_CONSTRAINT
32855        )
32856    }
32857    #[inline]
32858    fn cast(syntax: SyntaxNode) -> Option<Self> {
32859        let res = match syntax.kind() {
32860            SyntaxKind::CHECK_CONSTRAINT => {
32861                TableConstraint::CheckConstraint(CheckConstraint { syntax })
32862            }
32863            SyntaxKind::EXCLUDE_CONSTRAINT => {
32864                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
32865            }
32866            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
32867                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
32868            }
32869            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32870                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32871            }
32872            SyntaxKind::UNIQUE_CONSTRAINT => {
32873                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
32874            }
32875            _ => {
32876                return None;
32877            }
32878        };
32879        Some(res)
32880    }
32881    #[inline]
32882    fn syntax(&self) -> &SyntaxNode {
32883        match self {
32884            TableConstraint::CheckConstraint(it) => &it.syntax,
32885            TableConstraint::ExcludeConstraint(it) => &it.syntax,
32886            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
32887            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
32888            TableConstraint::UniqueConstraint(it) => &it.syntax,
32889        }
32890    }
32891}
32892impl From<CheckConstraint> for TableConstraint {
32893    #[inline]
32894    fn from(node: CheckConstraint) -> TableConstraint {
32895        TableConstraint::CheckConstraint(node)
32896    }
32897}
32898impl From<ExcludeConstraint> for TableConstraint {
32899    #[inline]
32900    fn from(node: ExcludeConstraint) -> TableConstraint {
32901        TableConstraint::ExcludeConstraint(node)
32902    }
32903}
32904impl From<ForeignKeyConstraint> for TableConstraint {
32905    #[inline]
32906    fn from(node: ForeignKeyConstraint) -> TableConstraint {
32907        TableConstraint::ForeignKeyConstraint(node)
32908    }
32909}
32910impl From<PrimaryKeyConstraint> for TableConstraint {
32911    #[inline]
32912    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
32913        TableConstraint::PrimaryKeyConstraint(node)
32914    }
32915}
32916impl From<UniqueConstraint> for TableConstraint {
32917    #[inline]
32918    fn from(node: UniqueConstraint) -> TableConstraint {
32919        TableConstraint::UniqueConstraint(node)
32920    }
32921}
32922impl AstNode for Timezone {
32923    #[inline]
32924    fn can_cast(kind: SyntaxKind) -> bool {
32925        matches!(
32926            kind,
32927            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
32928        )
32929    }
32930    #[inline]
32931    fn cast(syntax: SyntaxNode) -> Option<Self> {
32932        let res = match syntax.kind() {
32933            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
32934            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
32935            _ => {
32936                return None;
32937            }
32938        };
32939        Some(res)
32940    }
32941    #[inline]
32942    fn syntax(&self) -> &SyntaxNode {
32943        match self {
32944            Timezone::WithTimezone(it) => &it.syntax,
32945            Timezone::WithoutTimezone(it) => &it.syntax,
32946        }
32947    }
32948}
32949impl From<WithTimezone> for Timezone {
32950    #[inline]
32951    fn from(node: WithTimezone) -> Timezone {
32952        Timezone::WithTimezone(node)
32953    }
32954}
32955impl From<WithoutTimezone> for Timezone {
32956    #[inline]
32957    fn from(node: WithoutTimezone) -> Timezone {
32958        Timezone::WithoutTimezone(node)
32959    }
32960}
32961impl AstNode for TransactionMode {
32962    #[inline]
32963    fn can_cast(kind: SyntaxKind) -> bool {
32964        matches!(
32965            kind,
32966            SyntaxKind::DEFERRABLE
32967                | SyntaxKind::NOT_DEFERRABLE
32968                | SyntaxKind::READ_COMMITTED
32969                | SyntaxKind::READ_ONLY
32970                | SyntaxKind::READ_UNCOMMITTED
32971                | SyntaxKind::READ_WRITE
32972                | SyntaxKind::REPEATABLE_READ
32973                | SyntaxKind::SERIALIZABLE
32974        )
32975    }
32976    #[inline]
32977    fn cast(syntax: SyntaxNode) -> Option<Self> {
32978        let res = match syntax.kind() {
32979            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
32980            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
32981            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
32982            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
32983            SyntaxKind::READ_UNCOMMITTED => {
32984                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
32985            }
32986            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
32987            SyntaxKind::REPEATABLE_READ => {
32988                TransactionMode::RepeatableRead(RepeatableRead { syntax })
32989            }
32990            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
32991            _ => {
32992                return None;
32993            }
32994        };
32995        Some(res)
32996    }
32997    #[inline]
32998    fn syntax(&self) -> &SyntaxNode {
32999        match self {
33000            TransactionMode::Deferrable(it) => &it.syntax,
33001            TransactionMode::NotDeferrable(it) => &it.syntax,
33002            TransactionMode::ReadCommitted(it) => &it.syntax,
33003            TransactionMode::ReadOnly(it) => &it.syntax,
33004            TransactionMode::ReadUncommitted(it) => &it.syntax,
33005            TransactionMode::ReadWrite(it) => &it.syntax,
33006            TransactionMode::RepeatableRead(it) => &it.syntax,
33007            TransactionMode::Serializable(it) => &it.syntax,
33008        }
33009    }
33010}
33011impl From<Deferrable> for TransactionMode {
33012    #[inline]
33013    fn from(node: Deferrable) -> TransactionMode {
33014        TransactionMode::Deferrable(node)
33015    }
33016}
33017impl From<NotDeferrable> for TransactionMode {
33018    #[inline]
33019    fn from(node: NotDeferrable) -> TransactionMode {
33020        TransactionMode::NotDeferrable(node)
33021    }
33022}
33023impl From<ReadCommitted> for TransactionMode {
33024    #[inline]
33025    fn from(node: ReadCommitted) -> TransactionMode {
33026        TransactionMode::ReadCommitted(node)
33027    }
33028}
33029impl From<ReadOnly> for TransactionMode {
33030    #[inline]
33031    fn from(node: ReadOnly) -> TransactionMode {
33032        TransactionMode::ReadOnly(node)
33033    }
33034}
33035impl From<ReadUncommitted> for TransactionMode {
33036    #[inline]
33037    fn from(node: ReadUncommitted) -> TransactionMode {
33038        TransactionMode::ReadUncommitted(node)
33039    }
33040}
33041impl From<ReadWrite> for TransactionMode {
33042    #[inline]
33043    fn from(node: ReadWrite) -> TransactionMode {
33044        TransactionMode::ReadWrite(node)
33045    }
33046}
33047impl From<RepeatableRead> for TransactionMode {
33048    #[inline]
33049    fn from(node: RepeatableRead) -> TransactionMode {
33050        TransactionMode::RepeatableRead(node)
33051    }
33052}
33053impl From<Serializable> for TransactionMode {
33054    #[inline]
33055    fn from(node: Serializable) -> TransactionMode {
33056        TransactionMode::Serializable(node)
33057    }
33058}
33059impl AstNode for Type {
33060    #[inline]
33061    fn can_cast(kind: SyntaxKind) -> bool {
33062        matches!(
33063            kind,
33064            SyntaxKind::ARRAY_TYPE
33065                | SyntaxKind::BIT_TYPE
33066                | SyntaxKind::CHAR_TYPE
33067                | SyntaxKind::DOUBLE_TYPE
33068                | SyntaxKind::EXPR_TYPE
33069                | SyntaxKind::INTERVAL_TYPE
33070                | SyntaxKind::PATH_TYPE
33071                | SyntaxKind::PERCENT_TYPE
33072                | SyntaxKind::TIME_TYPE
33073        )
33074    }
33075    #[inline]
33076    fn cast(syntax: SyntaxNode) -> Option<Self> {
33077        let res = match syntax.kind() {
33078            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
33079            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
33080            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
33081            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
33082            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
33083            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
33084            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
33085            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
33086            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
33087            _ => {
33088                return None;
33089            }
33090        };
33091        Some(res)
33092    }
33093    #[inline]
33094    fn syntax(&self) -> &SyntaxNode {
33095        match self {
33096            Type::ArrayType(it) => &it.syntax,
33097            Type::BitType(it) => &it.syntax,
33098            Type::CharType(it) => &it.syntax,
33099            Type::DoubleType(it) => &it.syntax,
33100            Type::ExprType(it) => &it.syntax,
33101            Type::IntervalType(it) => &it.syntax,
33102            Type::PathType(it) => &it.syntax,
33103            Type::PercentType(it) => &it.syntax,
33104            Type::TimeType(it) => &it.syntax,
33105        }
33106    }
33107}
33108impl From<ArrayType> for Type {
33109    #[inline]
33110    fn from(node: ArrayType) -> Type {
33111        Type::ArrayType(node)
33112    }
33113}
33114impl From<BitType> for Type {
33115    #[inline]
33116    fn from(node: BitType) -> Type {
33117        Type::BitType(node)
33118    }
33119}
33120impl From<CharType> for Type {
33121    #[inline]
33122    fn from(node: CharType) -> Type {
33123        Type::CharType(node)
33124    }
33125}
33126impl From<DoubleType> for Type {
33127    #[inline]
33128    fn from(node: DoubleType) -> Type {
33129        Type::DoubleType(node)
33130    }
33131}
33132impl From<ExprType> for Type {
33133    #[inline]
33134    fn from(node: ExprType) -> Type {
33135        Type::ExprType(node)
33136    }
33137}
33138impl From<IntervalType> for Type {
33139    #[inline]
33140    fn from(node: IntervalType) -> Type {
33141        Type::IntervalType(node)
33142    }
33143}
33144impl From<PathType> for Type {
33145    #[inline]
33146    fn from(node: PathType) -> Type {
33147        Type::PathType(node)
33148    }
33149}
33150impl From<PercentType> for Type {
33151    #[inline]
33152    fn from(node: PercentType) -> Type {
33153        Type::PercentType(node)
33154    }
33155}
33156impl From<TimeType> for Type {
33157    #[inline]
33158    fn from(node: TimeType) -> Type {
33159        Type::TimeType(node)
33160    }
33161}
33162impl AstNode for WithQuery {
33163    #[inline]
33164    fn can_cast(kind: SyntaxKind) -> bool {
33165        matches!(
33166            kind,
33167            SyntaxKind::COMPOUND_SELECT
33168                | SyntaxKind::DELETE
33169                | SyntaxKind::INSERT
33170                | SyntaxKind::MERGE
33171                | SyntaxKind::PAREN_SELECT
33172                | SyntaxKind::SELECT
33173                | SyntaxKind::TABLE
33174                | SyntaxKind::UPDATE
33175                | SyntaxKind::VALUES
33176        )
33177    }
33178    #[inline]
33179    fn cast(syntax: SyntaxNode) -> Option<Self> {
33180        let res = match syntax.kind() {
33181            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
33182            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
33183            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
33184            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
33185            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
33186            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
33187            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
33188            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
33189            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
33190            _ => {
33191                return None;
33192            }
33193        };
33194        Some(res)
33195    }
33196    #[inline]
33197    fn syntax(&self) -> &SyntaxNode {
33198        match self {
33199            WithQuery::CompoundSelect(it) => &it.syntax,
33200            WithQuery::Delete(it) => &it.syntax,
33201            WithQuery::Insert(it) => &it.syntax,
33202            WithQuery::Merge(it) => &it.syntax,
33203            WithQuery::ParenSelect(it) => &it.syntax,
33204            WithQuery::Select(it) => &it.syntax,
33205            WithQuery::Table(it) => &it.syntax,
33206            WithQuery::Update(it) => &it.syntax,
33207            WithQuery::Values(it) => &it.syntax,
33208        }
33209    }
33210}
33211impl From<CompoundSelect> for WithQuery {
33212    #[inline]
33213    fn from(node: CompoundSelect) -> WithQuery {
33214        WithQuery::CompoundSelect(node)
33215    }
33216}
33217impl From<Delete> for WithQuery {
33218    #[inline]
33219    fn from(node: Delete) -> WithQuery {
33220        WithQuery::Delete(node)
33221    }
33222}
33223impl From<Insert> for WithQuery {
33224    #[inline]
33225    fn from(node: Insert) -> WithQuery {
33226        WithQuery::Insert(node)
33227    }
33228}
33229impl From<Merge> for WithQuery {
33230    #[inline]
33231    fn from(node: Merge) -> WithQuery {
33232        WithQuery::Merge(node)
33233    }
33234}
33235impl From<ParenSelect> for WithQuery {
33236    #[inline]
33237    fn from(node: ParenSelect) -> WithQuery {
33238        WithQuery::ParenSelect(node)
33239    }
33240}
33241impl From<Select> for WithQuery {
33242    #[inline]
33243    fn from(node: Select) -> WithQuery {
33244        WithQuery::Select(node)
33245    }
33246}
33247impl From<Table> for WithQuery {
33248    #[inline]
33249    fn from(node: Table) -> WithQuery {
33250        WithQuery::Table(node)
33251    }
33252}
33253impl From<Update> for WithQuery {
33254    #[inline]
33255    fn from(node: Update) -> WithQuery {
33256        WithQuery::Update(node)
33257    }
33258}
33259impl From<Values> for WithQuery {
33260    #[inline]
33261    fn from(node: Values) -> WithQuery {
33262        WithQuery::Values(node)
33263    }
33264}