squawk_syntax/ast/generated/
nodes.rs

1use crate::SyntaxKind;
2use crate::ast::AstNode;
3use crate::ast::{AstChildren, support};
4use crate::syntax_node::SyntaxNode;
5use crate::syntax_node::SyntaxToken;
6
7#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8pub struct AddColumn {
9    pub(crate) syntax: SyntaxNode,
10}
11impl AddColumn {
12    #[inline]
13    pub fn collate(&self) -> Option<Collate> {
14        support::child(&self.syntax)
15    }
16    #[inline]
17    pub fn constraints(&self) -> AstChildren<Constraint> {
18        support::children(&self.syntax)
19    }
20    #[inline]
21    pub fn if_not_exists(&self) -> Option<IfNotExists> {
22        support::child(&self.syntax)
23    }
24    #[inline]
25    pub fn name(&self) -> Option<Name> {
26        support::child(&self.syntax)
27    }
28    #[inline]
29    pub fn ty(&self) -> Option<Type> {
30        support::child(&self.syntax)
31    }
32    #[inline]
33    pub fn add_token(&self) -> Option<SyntaxToken> {
34        support::token(&self.syntax, SyntaxKind::ADD_KW)
35    }
36    #[inline]
37    pub fn column_token(&self) -> Option<SyntaxToken> {
38        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
39    }
40}
41
42#[derive(Debug, Clone, PartialEq, Eq, Hash)]
43pub struct AddConstraint {
44    pub(crate) syntax: SyntaxNode,
45}
46impl AddConstraint {
47    #[inline]
48    pub fn constraint(&self) -> Option<Constraint> {
49        support::child(&self.syntax)
50    }
51    #[inline]
52    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
53        support::child(&self.syntax)
54    }
55    #[inline]
56    pub fn enforced(&self) -> Option<Enforced> {
57        support::child(&self.syntax)
58    }
59    #[inline]
60    pub fn initially_deferred_constraint_option(
61        &self,
62    ) -> Option<InitiallyDeferredConstraintOption> {
63        support::child(&self.syntax)
64    }
65    #[inline]
66    pub fn initially_immediate_constraint_option(
67        &self,
68    ) -> Option<InitiallyImmediateConstraintOption> {
69        support::child(&self.syntax)
70    }
71    #[inline]
72    pub fn no_inherit(&self) -> Option<NoInherit> {
73        support::child(&self.syntax)
74    }
75    #[inline]
76    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
77        support::child(&self.syntax)
78    }
79    #[inline]
80    pub fn not_enforced(&self) -> Option<NotEnforced> {
81        support::child(&self.syntax)
82    }
83    #[inline]
84    pub fn not_valid(&self) -> Option<NotValid> {
85        support::child(&self.syntax)
86    }
87    #[inline]
88    pub fn add_token(&self) -> Option<SyntaxToken> {
89        support::token(&self.syntax, SyntaxKind::ADD_KW)
90    }
91}
92
93#[derive(Debug, Clone, PartialEq, Eq, Hash)]
94pub struct AddGenerated {
95    pub(crate) syntax: SyntaxNode,
96}
97impl AddGenerated {
98    #[inline]
99    pub fn add_token(&self) -> Option<SyntaxToken> {
100        support::token(&self.syntax, SyntaxKind::ADD_KW)
101    }
102}
103
104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
105pub struct AddOpClassOptions {
106    pub(crate) syntax: SyntaxNode,
107}
108impl AddOpClassOptions {
109    #[inline]
110    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
111        support::child(&self.syntax)
112    }
113    #[inline]
114    pub fn add_token(&self) -> Option<SyntaxToken> {
115        support::token(&self.syntax, SyntaxKind::ADD_KW)
116    }
117}
118
119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
120pub struct Aggregate {
121    pub(crate) syntax: SyntaxNode,
122}
123impl Aggregate {
124    #[inline]
125    pub fn param_list(&self) -> Option<ParamList> {
126        support::child(&self.syntax)
127    }
128    #[inline]
129    pub fn path(&self) -> Option<Path> {
130        support::child(&self.syntax)
131    }
132}
133
134#[derive(Debug, Clone, PartialEq, Eq, Hash)]
135pub struct Alias {
136    pub(crate) syntax: SyntaxNode,
137}
138impl Alias {
139    #[inline]
140    pub fn column_list(&self) -> Option<ColumnList> {
141        support::child(&self.syntax)
142    }
143    #[inline]
144    pub fn name(&self) -> Option<Name> {
145        support::child(&self.syntax)
146    }
147    #[inline]
148    pub fn as_token(&self) -> Option<SyntaxToken> {
149        support::token(&self.syntax, SyntaxKind::AS_KW)
150    }
151}
152
153#[derive(Debug, Clone, PartialEq, Eq, Hash)]
154pub struct AllFn {
155    pub(crate) syntax: SyntaxNode,
156}
157impl AllFn {
158    #[inline]
159    pub fn expr(&self) -> Option<Expr> {
160        support::child(&self.syntax)
161    }
162    #[inline]
163    pub fn select_variant(&self) -> Option<SelectVariant> {
164        support::child(&self.syntax)
165    }
166    #[inline]
167    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
168        support::token(&self.syntax, SyntaxKind::L_PAREN)
169    }
170    #[inline]
171    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
172        support::token(&self.syntax, SyntaxKind::R_PAREN)
173    }
174    #[inline]
175    pub fn all_token(&self) -> Option<SyntaxToken> {
176        support::token(&self.syntax, SyntaxKind::ALL_KW)
177    }
178}
179
180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
181pub struct AlterAggregate {
182    pub(crate) syntax: SyntaxNode,
183}
184impl AlterAggregate {
185    #[inline]
186    pub fn aggregate(&self) -> Option<Aggregate> {
187        support::child(&self.syntax)
188    }
189    #[inline]
190    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
191        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
192    }
193    #[inline]
194    pub fn alter_token(&self) -> Option<SyntaxToken> {
195        support::token(&self.syntax, SyntaxKind::ALTER_KW)
196    }
197}
198
199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
200pub struct AlterCollation {
201    pub(crate) syntax: SyntaxNode,
202}
203impl AlterCollation {
204    #[inline]
205    pub fn owner_to(&self) -> Option<OwnerTo> {
206        support::child(&self.syntax)
207    }
208    #[inline]
209    pub fn path(&self) -> Option<Path> {
210        support::child(&self.syntax)
211    }
212    #[inline]
213    pub fn refresh_version(&self) -> Option<RefreshVersion> {
214        support::child(&self.syntax)
215    }
216    #[inline]
217    pub fn rename_to(&self) -> Option<RenameTo> {
218        support::child(&self.syntax)
219    }
220    #[inline]
221    pub fn set_schema(&self) -> Option<SetSchema> {
222        support::child(&self.syntax)
223    }
224    #[inline]
225    pub fn alter_token(&self) -> Option<SyntaxToken> {
226        support::token(&self.syntax, SyntaxKind::ALTER_KW)
227    }
228    #[inline]
229    pub fn collation_token(&self) -> Option<SyntaxToken> {
230        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
231    }
232}
233
234#[derive(Debug, Clone, PartialEq, Eq, Hash)]
235pub struct AlterColumn {
236    pub(crate) syntax: SyntaxNode,
237}
238impl AlterColumn {
239    #[inline]
240    pub fn name_ref(&self) -> Option<NameRef> {
241        support::child(&self.syntax)
242    }
243    #[inline]
244    pub fn option(&self) -> Option<AlterColumnOption> {
245        support::child(&self.syntax)
246    }
247    #[inline]
248    pub fn alter_token(&self) -> Option<SyntaxToken> {
249        support::token(&self.syntax, SyntaxKind::ALTER_KW)
250    }
251    #[inline]
252    pub fn column_token(&self) -> Option<SyntaxToken> {
253        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
254    }
255}
256
257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
258pub struct AlterConstraint {
259    pub(crate) syntax: SyntaxNode,
260}
261impl AlterConstraint {
262    #[inline]
263    pub fn option(&self) -> Option<AlterColumnOption> {
264        support::child(&self.syntax)
265    }
266    #[inline]
267    pub fn alter_token(&self) -> Option<SyntaxToken> {
268        support::token(&self.syntax, SyntaxKind::ALTER_KW)
269    }
270    #[inline]
271    pub fn constraint_token(&self) -> Option<SyntaxToken> {
272        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
273    }
274}
275
276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
277pub struct AlterConversion {
278    pub(crate) syntax: SyntaxNode,
279}
280impl AlterConversion {
281    #[inline]
282    pub fn owner_to(&self) -> Option<OwnerTo> {
283        support::child(&self.syntax)
284    }
285    #[inline]
286    pub fn path(&self) -> Option<Path> {
287        support::child(&self.syntax)
288    }
289    #[inline]
290    pub fn rename_to(&self) -> Option<RenameTo> {
291        support::child(&self.syntax)
292    }
293    #[inline]
294    pub fn set_schema(&self) -> Option<SetSchema> {
295        support::child(&self.syntax)
296    }
297    #[inline]
298    pub fn alter_token(&self) -> Option<SyntaxToken> {
299        support::token(&self.syntax, SyntaxKind::ALTER_KW)
300    }
301    #[inline]
302    pub fn conversion_token(&self) -> Option<SyntaxToken> {
303        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
304    }
305}
306
307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
308pub struct AlterDatabase {
309    pub(crate) syntax: SyntaxNode,
310}
311impl AlterDatabase {
312    #[inline]
313    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
314        support::child(&self.syntax)
315    }
316    #[inline]
317    pub fn name_ref(&self) -> Option<NameRef> {
318        support::child(&self.syntax)
319    }
320    #[inline]
321    pub fn owner_to(&self) -> Option<OwnerTo> {
322        support::child(&self.syntax)
323    }
324    #[inline]
325    pub fn refresh_collation_version(&self) -> Option<RefreshCollationVersion> {
326        support::child(&self.syntax)
327    }
328    #[inline]
329    pub fn rename_to(&self) -> Option<RenameTo> {
330        support::child(&self.syntax)
331    }
332    #[inline]
333    pub fn reset_config_param(&self) -> Option<ResetConfigParam> {
334        support::child(&self.syntax)
335    }
336    #[inline]
337    pub fn set_config_param(&self) -> Option<SetConfigParam> {
338        support::child(&self.syntax)
339    }
340    #[inline]
341    pub fn set_tablespace(&self) -> Option<SetTablespace> {
342        support::child(&self.syntax)
343    }
344    #[inline]
345    pub fn alter_token(&self) -> Option<SyntaxToken> {
346        support::token(&self.syntax, SyntaxKind::ALTER_KW)
347    }
348    #[inline]
349    pub fn database_token(&self) -> Option<SyntaxToken> {
350        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
351    }
352}
353
354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
355pub struct AlterDefaultPrivileges {
356    pub(crate) syntax: SyntaxNode,
357}
358impl AlterDefaultPrivileges {
359    #[inline]
360    pub fn grant_default_privileges(&self) -> Option<GrantDefaultPrivileges> {
361        support::child(&self.syntax)
362    }
363    #[inline]
364    pub fn name_refs(&self) -> AstChildren<NameRef> {
365        support::children(&self.syntax)
366    }
367    #[inline]
368    pub fn revoke_default_privileges(&self) -> Option<RevokeDefaultPrivileges> {
369        support::child(&self.syntax)
370    }
371    #[inline]
372    pub fn role_list(&self) -> Option<RoleList> {
373        support::child(&self.syntax)
374    }
375    #[inline]
376    pub fn alter_token(&self) -> Option<SyntaxToken> {
377        support::token(&self.syntax, SyntaxKind::ALTER_KW)
378    }
379    #[inline]
380    pub fn default_token(&self) -> Option<SyntaxToken> {
381        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
382    }
383    #[inline]
384    pub fn for_token(&self) -> Option<SyntaxToken> {
385        support::token(&self.syntax, SyntaxKind::FOR_KW)
386    }
387    #[inline]
388    pub fn in_token(&self) -> Option<SyntaxToken> {
389        support::token(&self.syntax, SyntaxKind::IN_KW)
390    }
391    #[inline]
392    pub fn privileges_token(&self) -> Option<SyntaxToken> {
393        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
394    }
395    #[inline]
396    pub fn role_token(&self) -> Option<SyntaxToken> {
397        support::token(&self.syntax, SyntaxKind::ROLE_KW)
398    }
399    #[inline]
400    pub fn schema_token(&self) -> Option<SyntaxToken> {
401        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
402    }
403    #[inline]
404    pub fn user_token(&self) -> Option<SyntaxToken> {
405        support::token(&self.syntax, SyntaxKind::USER_KW)
406    }
407}
408
409#[derive(Debug, Clone, PartialEq, Eq, Hash)]
410pub struct AlterDomain {
411    pub(crate) syntax: SyntaxNode,
412}
413impl AlterDomain {
414    #[inline]
415    pub fn action(&self) -> Option<AlterDomainAction> {
416        support::child(&self.syntax)
417    }
418    #[inline]
419    pub fn path(&self) -> Option<Path> {
420        support::child(&self.syntax)
421    }
422    #[inline]
423    pub fn alter_token(&self) -> Option<SyntaxToken> {
424        support::token(&self.syntax, SyntaxKind::ALTER_KW)
425    }
426    #[inline]
427    pub fn domain_token(&self) -> Option<SyntaxToken> {
428        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
429    }
430}
431
432#[derive(Debug, Clone, PartialEq, Eq, Hash)]
433pub struct AlterEventTrigger {
434    pub(crate) syntax: SyntaxNode,
435}
436impl AlterEventTrigger {
437    #[inline]
438    pub fn name_ref(&self) -> Option<NameRef> {
439        support::child(&self.syntax)
440    }
441    #[inline]
442    pub fn owner_to(&self) -> Option<OwnerTo> {
443        support::child(&self.syntax)
444    }
445    #[inline]
446    pub fn rename_to(&self) -> Option<RenameTo> {
447        support::child(&self.syntax)
448    }
449    #[inline]
450    pub fn alter_token(&self) -> Option<SyntaxToken> {
451        support::token(&self.syntax, SyntaxKind::ALTER_KW)
452    }
453    #[inline]
454    pub fn always_token(&self) -> Option<SyntaxToken> {
455        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
456    }
457    #[inline]
458    pub fn disable_token(&self) -> Option<SyntaxToken> {
459        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
460    }
461    #[inline]
462    pub fn enable_token(&self) -> Option<SyntaxToken> {
463        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
464    }
465    #[inline]
466    pub fn event_token(&self) -> Option<SyntaxToken> {
467        support::token(&self.syntax, SyntaxKind::EVENT_KW)
468    }
469    #[inline]
470    pub fn replica_token(&self) -> Option<SyntaxToken> {
471        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
472    }
473    #[inline]
474    pub fn trigger_token(&self) -> Option<SyntaxToken> {
475        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
476    }
477}
478
479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
480pub struct AlterExtension {
481    pub(crate) syntax: SyntaxNode,
482}
483impl AlterExtension {
484    #[inline]
485    pub fn name_ref(&self) -> Option<NameRef> {
486        support::child(&self.syntax)
487    }
488    #[inline]
489    pub fn alter_token(&self) -> Option<SyntaxToken> {
490        support::token(&self.syntax, SyntaxKind::ALTER_KW)
491    }
492    #[inline]
493    pub fn extension_token(&self) -> Option<SyntaxToken> {
494        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
495    }
496}
497
498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
499pub struct AlterForeignDataWrapper {
500    pub(crate) syntax: SyntaxNode,
501}
502impl AlterForeignDataWrapper {
503    #[inline]
504    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
505        support::child(&self.syntax)
506    }
507    #[inline]
508    pub fn name_ref(&self) -> Option<NameRef> {
509        support::child(&self.syntax)
510    }
511    #[inline]
512    pub fn owner_to(&self) -> Option<OwnerTo> {
513        support::child(&self.syntax)
514    }
515    #[inline]
516    pub fn rename_to(&self) -> Option<RenameTo> {
517        support::child(&self.syntax)
518    }
519    #[inline]
520    pub fn alter_token(&self) -> Option<SyntaxToken> {
521        support::token(&self.syntax, SyntaxKind::ALTER_KW)
522    }
523    #[inline]
524    pub fn data_token(&self) -> Option<SyntaxToken> {
525        support::token(&self.syntax, SyntaxKind::DATA_KW)
526    }
527    #[inline]
528    pub fn foreign_token(&self) -> Option<SyntaxToken> {
529        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
530    }
531    #[inline]
532    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
533        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
534    }
535}
536
537#[derive(Debug, Clone, PartialEq, Eq, Hash)]
538pub struct AlterForeignTable {
539    pub(crate) syntax: SyntaxNode,
540}
541impl AlterForeignTable {
542    #[inline]
543    pub fn alter_table_actions(&self) -> AstChildren<AlterTableAction> {
544        support::children(&self.syntax)
545    }
546    #[inline]
547    pub fn if_exists(&self) -> Option<IfExists> {
548        support::child(&self.syntax)
549    }
550    #[inline]
551    pub fn relation_name(&self) -> Option<RelationName> {
552        support::child(&self.syntax)
553    }
554    #[inline]
555    pub fn rename_column(&self) -> Option<RenameColumn> {
556        support::child(&self.syntax)
557    }
558    #[inline]
559    pub fn rename_to(&self) -> Option<RenameTo> {
560        support::child(&self.syntax)
561    }
562    #[inline]
563    pub fn set_schema(&self) -> Option<SetSchema> {
564        support::child(&self.syntax)
565    }
566    #[inline]
567    pub fn alter_token(&self) -> Option<SyntaxToken> {
568        support::token(&self.syntax, SyntaxKind::ALTER_KW)
569    }
570    #[inline]
571    pub fn foreign_token(&self) -> Option<SyntaxToken> {
572        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
573    }
574    #[inline]
575    pub fn table_token(&self) -> Option<SyntaxToken> {
576        support::token(&self.syntax, SyntaxKind::TABLE_KW)
577    }
578}
579
580#[derive(Debug, Clone, PartialEq, Eq, Hash)]
581pub struct AlterFunction {
582    pub(crate) syntax: SyntaxNode,
583}
584impl AlterFunction {
585    #[inline]
586    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
587        support::child(&self.syntax)
588    }
589    #[inline]
590    pub fn func_option_list(&self) -> Option<FuncOptionList> {
591        support::child(&self.syntax)
592    }
593    #[inline]
594    pub fn function_sig(&self) -> Option<FunctionSig> {
595        support::child(&self.syntax)
596    }
597    #[inline]
598    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
599        support::child(&self.syntax)
600    }
601    #[inline]
602    pub fn owner_to(&self) -> Option<OwnerTo> {
603        support::child(&self.syntax)
604    }
605    #[inline]
606    pub fn rename_to(&self) -> Option<RenameTo> {
607        support::child(&self.syntax)
608    }
609    #[inline]
610    pub fn set_schema(&self) -> Option<SetSchema> {
611        support::child(&self.syntax)
612    }
613    #[inline]
614    pub fn alter_token(&self) -> Option<SyntaxToken> {
615        support::token(&self.syntax, SyntaxKind::ALTER_KW)
616    }
617    #[inline]
618    pub fn function_token(&self) -> Option<SyntaxToken> {
619        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
620    }
621    #[inline]
622    pub fn restrict_token(&self) -> Option<SyntaxToken> {
623        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
624    }
625}
626
627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
628pub struct AlterGroup {
629    pub(crate) syntax: SyntaxNode,
630}
631impl AlterGroup {
632    #[inline]
633    pub fn name_refs(&self) -> AstChildren<NameRef> {
634        support::children(&self.syntax)
635    }
636    #[inline]
637    pub fn rename_to(&self) -> Option<RenameTo> {
638        support::child(&self.syntax)
639    }
640    #[inline]
641    pub fn role(&self) -> Option<Role> {
642        support::child(&self.syntax)
643    }
644    #[inline]
645    pub fn add_token(&self) -> Option<SyntaxToken> {
646        support::token(&self.syntax, SyntaxKind::ADD_KW)
647    }
648    #[inline]
649    pub fn alter_token(&self) -> Option<SyntaxToken> {
650        support::token(&self.syntax, SyntaxKind::ALTER_KW)
651    }
652    #[inline]
653    pub fn drop_token(&self) -> Option<SyntaxToken> {
654        support::token(&self.syntax, SyntaxKind::DROP_KW)
655    }
656    #[inline]
657    pub fn group_token(&self) -> Option<SyntaxToken> {
658        support::token(&self.syntax, SyntaxKind::GROUP_KW)
659    }
660    #[inline]
661    pub fn user_token(&self) -> Option<SyntaxToken> {
662        support::token(&self.syntax, SyntaxKind::USER_KW)
663    }
664}
665
666#[derive(Debug, Clone, PartialEq, Eq, Hash)]
667pub struct AlterIndex {
668    pub(crate) syntax: SyntaxNode,
669}
670impl AlterIndex {
671    #[inline]
672    pub fn if_exists(&self) -> Option<IfExists> {
673        support::child(&self.syntax)
674    }
675    #[inline]
676    pub fn path(&self) -> Option<Path> {
677        support::child(&self.syntax)
678    }
679    #[inline]
680    pub fn alter_token(&self) -> Option<SyntaxToken> {
681        support::token(&self.syntax, SyntaxKind::ALTER_KW)
682    }
683    #[inline]
684    pub fn index_token(&self) -> Option<SyntaxToken> {
685        support::token(&self.syntax, SyntaxKind::INDEX_KW)
686    }
687}
688
689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
690pub struct AlterLanguage {
691    pub(crate) syntax: SyntaxNode,
692}
693impl AlterLanguage {
694    #[inline]
695    pub fn name_ref(&self) -> Option<NameRef> {
696        support::child(&self.syntax)
697    }
698    #[inline]
699    pub fn owner_to(&self) -> Option<OwnerTo> {
700        support::child(&self.syntax)
701    }
702    #[inline]
703    pub fn rename_to(&self) -> Option<RenameTo> {
704        support::child(&self.syntax)
705    }
706    #[inline]
707    pub fn alter_token(&self) -> Option<SyntaxToken> {
708        support::token(&self.syntax, SyntaxKind::ALTER_KW)
709    }
710    #[inline]
711    pub fn language_token(&self) -> Option<SyntaxToken> {
712        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
713    }
714}
715
716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
717pub struct AlterLargeObject {
718    pub(crate) syntax: SyntaxNode,
719}
720impl AlterLargeObject {
721    #[inline]
722    pub fn alter_token(&self) -> Option<SyntaxToken> {
723        support::token(&self.syntax, SyntaxKind::ALTER_KW)
724    }
725    #[inline]
726    pub fn large_token(&self) -> Option<SyntaxToken> {
727        support::token(&self.syntax, SyntaxKind::LARGE_KW)
728    }
729    #[inline]
730    pub fn object_token(&self) -> Option<SyntaxToken> {
731        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
732    }
733}
734
735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
736pub struct AlterMaterializedView {
737    pub(crate) syntax: SyntaxNode,
738}
739impl AlterMaterializedView {
740    #[inline]
741    pub fn action(&self) -> AstChildren<AlterMaterializedViewAction> {
742        support::children(&self.syntax)
743    }
744    #[inline]
745    pub fn if_exists(&self) -> Option<IfExists> {
746        support::child(&self.syntax)
747    }
748    #[inline]
749    pub fn name(&self) -> Option<Name> {
750        support::child(&self.syntax)
751    }
752    #[inline]
753    pub fn name_ref(&self) -> Option<NameRef> {
754        support::child(&self.syntax)
755    }
756    #[inline]
757    pub fn path(&self) -> Option<Path> {
758        support::child(&self.syntax)
759    }
760    #[inline]
761    pub fn role_list(&self) -> Option<RoleList> {
762        support::child(&self.syntax)
763    }
764    #[inline]
765    pub fn all_token(&self) -> Option<SyntaxToken> {
766        support::token(&self.syntax, SyntaxKind::ALL_KW)
767    }
768    #[inline]
769    pub fn alter_token(&self) -> Option<SyntaxToken> {
770        support::token(&self.syntax, SyntaxKind::ALTER_KW)
771    }
772    #[inline]
773    pub fn by_token(&self) -> Option<SyntaxToken> {
774        support::token(&self.syntax, SyntaxKind::BY_KW)
775    }
776    #[inline]
777    pub fn in_token(&self) -> Option<SyntaxToken> {
778        support::token(&self.syntax, SyntaxKind::IN_KW)
779    }
780    #[inline]
781    pub fn materialized_token(&self) -> Option<SyntaxToken> {
782        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
783    }
784    #[inline]
785    pub fn nowait_token(&self) -> Option<SyntaxToken> {
786        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
787    }
788    #[inline]
789    pub fn owned_token(&self) -> Option<SyntaxToken> {
790        support::token(&self.syntax, SyntaxKind::OWNED_KW)
791    }
792    #[inline]
793    pub fn set_token(&self) -> Option<SyntaxToken> {
794        support::token(&self.syntax, SyntaxKind::SET_KW)
795    }
796    #[inline]
797    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
798        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
799    }
800    #[inline]
801    pub fn view_token(&self) -> Option<SyntaxToken> {
802        support::token(&self.syntax, SyntaxKind::VIEW_KW)
803    }
804}
805
806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
807pub struct AlterOperator {
808    pub(crate) syntax: SyntaxNode,
809}
810impl AlterOperator {
811    #[inline]
812    pub fn op_sig(&self) -> Option<OpSig> {
813        support::child(&self.syntax)
814    }
815    #[inline]
816    pub fn owner_to(&self) -> Option<OwnerTo> {
817        support::child(&self.syntax)
818    }
819    #[inline]
820    pub fn set_options(&self) -> Option<SetOptions> {
821        support::child(&self.syntax)
822    }
823    #[inline]
824    pub fn set_schema(&self) -> Option<SetSchema> {
825        support::child(&self.syntax)
826    }
827    #[inline]
828    pub fn alter_token(&self) -> Option<SyntaxToken> {
829        support::token(&self.syntax, SyntaxKind::ALTER_KW)
830    }
831    #[inline]
832    pub fn operator_token(&self) -> Option<SyntaxToken> {
833        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
834    }
835}
836
837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
838pub struct AlterOperatorClass {
839    pub(crate) syntax: SyntaxNode,
840}
841impl AlterOperatorClass {
842    #[inline]
843    pub fn name_ref(&self) -> Option<NameRef> {
844        support::child(&self.syntax)
845    }
846    #[inline]
847    pub fn owner_to(&self) -> Option<OwnerTo> {
848        support::child(&self.syntax)
849    }
850    #[inline]
851    pub fn path(&self) -> Option<Path> {
852        support::child(&self.syntax)
853    }
854    #[inline]
855    pub fn rename_to(&self) -> Option<RenameTo> {
856        support::child(&self.syntax)
857    }
858    #[inline]
859    pub fn set_schema(&self) -> Option<SetSchema> {
860        support::child(&self.syntax)
861    }
862    #[inline]
863    pub fn alter_token(&self) -> Option<SyntaxToken> {
864        support::token(&self.syntax, SyntaxKind::ALTER_KW)
865    }
866    #[inline]
867    pub fn class_token(&self) -> Option<SyntaxToken> {
868        support::token(&self.syntax, SyntaxKind::CLASS_KW)
869    }
870    #[inline]
871    pub fn operator_token(&self) -> Option<SyntaxToken> {
872        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
873    }
874    #[inline]
875    pub fn using_token(&self) -> Option<SyntaxToken> {
876        support::token(&self.syntax, SyntaxKind::USING_KW)
877    }
878}
879
880#[derive(Debug, Clone, PartialEq, Eq, Hash)]
881pub struct AlterOperatorFamily {
882    pub(crate) syntax: SyntaxNode,
883}
884impl AlterOperatorFamily {
885    #[inline]
886    pub fn add_op_class_options(&self) -> Option<AddOpClassOptions> {
887        support::child(&self.syntax)
888    }
889    #[inline]
890    pub fn drop_op_class_options(&self) -> Option<DropOpClassOptions> {
891        support::child(&self.syntax)
892    }
893    #[inline]
894    pub fn name_ref(&self) -> Option<NameRef> {
895        support::child(&self.syntax)
896    }
897    #[inline]
898    pub fn owner_to(&self) -> Option<OwnerTo> {
899        support::child(&self.syntax)
900    }
901    #[inline]
902    pub fn path(&self) -> Option<Path> {
903        support::child(&self.syntax)
904    }
905    #[inline]
906    pub fn rename_to(&self) -> Option<RenameTo> {
907        support::child(&self.syntax)
908    }
909    #[inline]
910    pub fn set_schema(&self) -> Option<SetSchema> {
911        support::child(&self.syntax)
912    }
913    #[inline]
914    pub fn alter_token(&self) -> Option<SyntaxToken> {
915        support::token(&self.syntax, SyntaxKind::ALTER_KW)
916    }
917    #[inline]
918    pub fn family_token(&self) -> Option<SyntaxToken> {
919        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
920    }
921    #[inline]
922    pub fn operator_token(&self) -> Option<SyntaxToken> {
923        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
924    }
925    #[inline]
926    pub fn using_token(&self) -> Option<SyntaxToken> {
927        support::token(&self.syntax, SyntaxKind::USING_KW)
928    }
929}
930
931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
932pub struct AlterOption {
933    pub(crate) syntax: SyntaxNode,
934}
935impl AlterOption {
936    #[inline]
937    pub fn literal(&self) -> Option<Literal> {
938        support::child(&self.syntax)
939    }
940    #[inline]
941    pub fn name_ref(&self) -> Option<NameRef> {
942        support::child(&self.syntax)
943    }
944    #[inline]
945    pub fn add_token(&self) -> Option<SyntaxToken> {
946        support::token(&self.syntax, SyntaxKind::ADD_KW)
947    }
948    #[inline]
949    pub fn drop_token(&self) -> Option<SyntaxToken> {
950        support::token(&self.syntax, SyntaxKind::DROP_KW)
951    }
952    #[inline]
953    pub fn set_token(&self) -> Option<SyntaxToken> {
954        support::token(&self.syntax, SyntaxKind::SET_KW)
955    }
956}
957
958#[derive(Debug, Clone, PartialEq, Eq, Hash)]
959pub struct AlterOptionList {
960    pub(crate) syntax: SyntaxNode,
961}
962impl AlterOptionList {
963    #[inline]
964    pub fn alter_options(&self) -> AstChildren<AlterOption> {
965        support::children(&self.syntax)
966    }
967}
968
969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
970pub struct AlterPolicy {
971    pub(crate) syntax: SyntaxNode,
972}
973impl AlterPolicy {
974    #[inline]
975    pub fn expr(&self) -> Option<Expr> {
976        support::child(&self.syntax)
977    }
978    #[inline]
979    pub fn name_ref(&self) -> Option<NameRef> {
980        support::child(&self.syntax)
981    }
982    #[inline]
983    pub fn on_table(&self) -> Option<OnTable> {
984        support::child(&self.syntax)
985    }
986    #[inline]
987    pub fn rename_to(&self) -> Option<RenameTo> {
988        support::child(&self.syntax)
989    }
990    #[inline]
991    pub fn role_list(&self) -> Option<RoleList> {
992        support::child(&self.syntax)
993    }
994    #[inline]
995    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
996        support::token(&self.syntax, SyntaxKind::L_PAREN)
997    }
998    #[inline]
999    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1000        support::token(&self.syntax, SyntaxKind::R_PAREN)
1001    }
1002    #[inline]
1003    pub fn alter_token(&self) -> Option<SyntaxToken> {
1004        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1005    }
1006    #[inline]
1007    pub fn check_token(&self) -> Option<SyntaxToken> {
1008        support::token(&self.syntax, SyntaxKind::CHECK_KW)
1009    }
1010    #[inline]
1011    pub fn policy_token(&self) -> Option<SyntaxToken> {
1012        support::token(&self.syntax, SyntaxKind::POLICY_KW)
1013    }
1014    #[inline]
1015    pub fn to_token(&self) -> Option<SyntaxToken> {
1016        support::token(&self.syntax, SyntaxKind::TO_KW)
1017    }
1018    #[inline]
1019    pub fn using_token(&self) -> Option<SyntaxToken> {
1020        support::token(&self.syntax, SyntaxKind::USING_KW)
1021    }
1022    #[inline]
1023    pub fn with_token(&self) -> Option<SyntaxToken> {
1024        support::token(&self.syntax, SyntaxKind::WITH_KW)
1025    }
1026}
1027
1028#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1029pub struct AlterProcedure {
1030    pub(crate) syntax: SyntaxNode,
1031}
1032impl AlterProcedure {
1033    #[inline]
1034    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1035        support::child(&self.syntax)
1036    }
1037    #[inline]
1038    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1039        support::child(&self.syntax)
1040    }
1041    #[inline]
1042    pub fn function_sig(&self) -> Option<FunctionSig> {
1043        support::child(&self.syntax)
1044    }
1045    #[inline]
1046    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1047        support::child(&self.syntax)
1048    }
1049    #[inline]
1050    pub fn owner_to(&self) -> Option<OwnerTo> {
1051        support::child(&self.syntax)
1052    }
1053    #[inline]
1054    pub fn rename_to(&self) -> Option<RenameTo> {
1055        support::child(&self.syntax)
1056    }
1057    #[inline]
1058    pub fn set_schema(&self) -> Option<SetSchema> {
1059        support::child(&self.syntax)
1060    }
1061    #[inline]
1062    pub fn alter_token(&self) -> Option<SyntaxToken> {
1063        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1064    }
1065    #[inline]
1066    pub fn procedure_token(&self) -> Option<SyntaxToken> {
1067        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
1068    }
1069    #[inline]
1070    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1071        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1072    }
1073}
1074
1075#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1076pub struct AlterPublication {
1077    pub(crate) syntax: SyntaxNode,
1078}
1079impl AlterPublication {
1080    #[inline]
1081    pub fn name_ref(&self) -> Option<NameRef> {
1082        support::child(&self.syntax)
1083    }
1084    #[inline]
1085    pub fn alter_token(&self) -> Option<SyntaxToken> {
1086        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1087    }
1088    #[inline]
1089    pub fn publication_token(&self) -> Option<SyntaxToken> {
1090        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
1091    }
1092}
1093
1094#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1095pub struct AlterRole {
1096    pub(crate) syntax: SyntaxNode,
1097}
1098impl AlterRole {
1099    #[inline]
1100    pub fn role(&self) -> Option<Role> {
1101        support::child(&self.syntax)
1102    }
1103    #[inline]
1104    pub fn alter_token(&self) -> Option<SyntaxToken> {
1105        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1106    }
1107    #[inline]
1108    pub fn role_token(&self) -> Option<SyntaxToken> {
1109        support::token(&self.syntax, SyntaxKind::ROLE_KW)
1110    }
1111}
1112
1113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1114pub struct AlterRoutine {
1115    pub(crate) syntax: SyntaxNode,
1116}
1117impl AlterRoutine {
1118    #[inline]
1119    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1120        support::child(&self.syntax)
1121    }
1122    #[inline]
1123    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1124        support::child(&self.syntax)
1125    }
1126    #[inline]
1127    pub fn function_sig(&self) -> Option<FunctionSig> {
1128        support::child(&self.syntax)
1129    }
1130    #[inline]
1131    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1132        support::child(&self.syntax)
1133    }
1134    #[inline]
1135    pub fn owner_to(&self) -> Option<OwnerTo> {
1136        support::child(&self.syntax)
1137    }
1138    #[inline]
1139    pub fn rename_to(&self) -> Option<RenameTo> {
1140        support::child(&self.syntax)
1141    }
1142    #[inline]
1143    pub fn set_schema(&self) -> Option<SetSchema> {
1144        support::child(&self.syntax)
1145    }
1146    #[inline]
1147    pub fn alter_token(&self) -> Option<SyntaxToken> {
1148        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1149    }
1150    #[inline]
1151    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1152        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1153    }
1154    #[inline]
1155    pub fn routine_token(&self) -> Option<SyntaxToken> {
1156        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
1157    }
1158}
1159
1160#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1161pub struct AlterRule {
1162    pub(crate) syntax: SyntaxNode,
1163}
1164impl AlterRule {
1165    #[inline]
1166    pub fn name_ref(&self) -> Option<NameRef> {
1167        support::child(&self.syntax)
1168    }
1169    #[inline]
1170    pub fn on_table(&self) -> Option<OnTable> {
1171        support::child(&self.syntax)
1172    }
1173    #[inline]
1174    pub fn rename_to(&self) -> Option<RenameTo> {
1175        support::child(&self.syntax)
1176    }
1177    #[inline]
1178    pub fn alter_token(&self) -> Option<SyntaxToken> {
1179        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1180    }
1181    #[inline]
1182    pub fn on_token(&self) -> Option<SyntaxToken> {
1183        support::token(&self.syntax, SyntaxKind::ON_KW)
1184    }
1185    #[inline]
1186    pub fn rule_token(&self) -> Option<SyntaxToken> {
1187        support::token(&self.syntax, SyntaxKind::RULE_KW)
1188    }
1189}
1190
1191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1192pub struct AlterSchema {
1193    pub(crate) syntax: SyntaxNode,
1194}
1195impl AlterSchema {
1196    #[inline]
1197    pub fn name_ref(&self) -> Option<NameRef> {
1198        support::child(&self.syntax)
1199    }
1200    #[inline]
1201    pub fn owner_to(&self) -> Option<OwnerTo> {
1202        support::child(&self.syntax)
1203    }
1204    #[inline]
1205    pub fn rename_to(&self) -> Option<RenameTo> {
1206        support::child(&self.syntax)
1207    }
1208    #[inline]
1209    pub fn alter_token(&self) -> Option<SyntaxToken> {
1210        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1211    }
1212    #[inline]
1213    pub fn schema_token(&self) -> Option<SyntaxToken> {
1214        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
1215    }
1216}
1217
1218#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1219pub struct AlterSequence {
1220    pub(crate) syntax: SyntaxNode,
1221}
1222impl AlterSequence {
1223    #[inline]
1224    pub fn if_exists(&self) -> Option<IfExists> {
1225        support::child(&self.syntax)
1226    }
1227    #[inline]
1228    pub fn path(&self) -> Option<Path> {
1229        support::child(&self.syntax)
1230    }
1231    #[inline]
1232    pub fn alter_token(&self) -> Option<SyntaxToken> {
1233        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1234    }
1235    #[inline]
1236    pub fn sequence_token(&self) -> Option<SyntaxToken> {
1237        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
1238    }
1239}
1240
1241#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1242pub struct AlterServer {
1243    pub(crate) syntax: SyntaxNode,
1244}
1245impl AlterServer {
1246    #[inline]
1247    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1248        support::child(&self.syntax)
1249    }
1250    #[inline]
1251    pub fn name_ref(&self) -> Option<NameRef> {
1252        support::child(&self.syntax)
1253    }
1254    #[inline]
1255    pub fn alter_token(&self) -> Option<SyntaxToken> {
1256        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1257    }
1258    #[inline]
1259    pub fn server_token(&self) -> Option<SyntaxToken> {
1260        support::token(&self.syntax, SyntaxKind::SERVER_KW)
1261    }
1262}
1263
1264#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1265pub struct AlterSetStatistics {
1266    pub(crate) syntax: SyntaxNode,
1267}
1268impl AlterSetStatistics {
1269    #[inline]
1270    pub fn literal(&self) -> Option<Literal> {
1271        support::child(&self.syntax)
1272    }
1273    #[inline]
1274    pub fn name_ref(&self) -> Option<NameRef> {
1275        support::child(&self.syntax)
1276    }
1277    #[inline]
1278    pub fn column_token(&self) -> Option<SyntaxToken> {
1279        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
1280    }
1281    #[inline]
1282    pub fn set_token(&self) -> Option<SyntaxToken> {
1283        support::token(&self.syntax, SyntaxKind::SET_KW)
1284    }
1285    #[inline]
1286    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1287        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1288    }
1289}
1290
1291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1292pub struct AlterStatistics {
1293    pub(crate) syntax: SyntaxNode,
1294}
1295impl AlterStatistics {
1296    #[inline]
1297    pub fn path(&self) -> Option<Path> {
1298        support::child(&self.syntax)
1299    }
1300    #[inline]
1301    pub fn alter_token(&self) -> Option<SyntaxToken> {
1302        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1303    }
1304    #[inline]
1305    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1306        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1307    }
1308}
1309
1310#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1311pub struct AlterSubscription {
1312    pub(crate) syntax: SyntaxNode,
1313}
1314impl AlterSubscription {
1315    #[inline]
1316    pub fn name_ref(&self) -> Option<NameRef> {
1317        support::child(&self.syntax)
1318    }
1319    #[inline]
1320    pub fn alter_token(&self) -> Option<SyntaxToken> {
1321        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1322    }
1323    #[inline]
1324    pub fn subscription_token(&self) -> Option<SyntaxToken> {
1325        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
1326    }
1327}
1328
1329#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1330pub struct AlterSystem {
1331    pub(crate) syntax: SyntaxNode,
1332}
1333impl AlterSystem {
1334    #[inline]
1335    pub fn alter_token(&self) -> Option<SyntaxToken> {
1336        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1337    }
1338    #[inline]
1339    pub fn set_token(&self) -> Option<SyntaxToken> {
1340        support::token(&self.syntax, SyntaxKind::SET_KW)
1341    }
1342    #[inline]
1343    pub fn system_token(&self) -> Option<SyntaxToken> {
1344        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
1345    }
1346}
1347
1348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1349pub struct AlterTable {
1350    pub(crate) syntax: SyntaxNode,
1351}
1352impl AlterTable {
1353    #[inline]
1354    pub fn actions(&self) -> AstChildren<AlterTableAction> {
1355        support::children(&self.syntax)
1356    }
1357    #[inline]
1358    pub fn relation_name(&self) -> Option<RelationName> {
1359        support::child(&self.syntax)
1360    }
1361    #[inline]
1362    pub fn alter_token(&self) -> Option<SyntaxToken> {
1363        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1364    }
1365    #[inline]
1366    pub fn table_token(&self) -> Option<SyntaxToken> {
1367        support::token(&self.syntax, SyntaxKind::TABLE_KW)
1368    }
1369}
1370
1371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1372pub struct AlterTablespace {
1373    pub(crate) syntax: SyntaxNode,
1374}
1375impl AlterTablespace {
1376    #[inline]
1377    pub fn owner_to(&self) -> Option<OwnerTo> {
1378        support::child(&self.syntax)
1379    }
1380    #[inline]
1381    pub fn path(&self) -> Option<Path> {
1382        support::child(&self.syntax)
1383    }
1384    #[inline]
1385    pub fn rename_to(&self) -> Option<RenameTo> {
1386        support::child(&self.syntax)
1387    }
1388    #[inline]
1389    pub fn reset_options(&self) -> Option<ResetOptions> {
1390        support::child(&self.syntax)
1391    }
1392    #[inline]
1393    pub fn set_options(&self) -> Option<SetOptions> {
1394        support::child(&self.syntax)
1395    }
1396    #[inline]
1397    pub fn alter_token(&self) -> Option<SyntaxToken> {
1398        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1399    }
1400    #[inline]
1401    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1402        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1403    }
1404}
1405
1406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1407pub struct AlterTextSearchConfiguration {
1408    pub(crate) syntax: SyntaxNode,
1409}
1410impl AlterTextSearchConfiguration {
1411    #[inline]
1412    pub fn owner_to(&self) -> Option<OwnerTo> {
1413        support::child(&self.syntax)
1414    }
1415    #[inline]
1416    pub fn path(&self) -> Option<Path> {
1417        support::child(&self.syntax)
1418    }
1419    #[inline]
1420    pub fn rename_to(&self) -> Option<RenameTo> {
1421        support::child(&self.syntax)
1422    }
1423    #[inline]
1424    pub fn set_schema(&self) -> Option<SetSchema> {
1425        support::child(&self.syntax)
1426    }
1427    #[inline]
1428    pub fn alter_token(&self) -> Option<SyntaxToken> {
1429        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1430    }
1431    #[inline]
1432    pub fn configuration_token(&self) -> Option<SyntaxToken> {
1433        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
1434    }
1435    #[inline]
1436    pub fn search_token(&self) -> Option<SyntaxToken> {
1437        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1438    }
1439    #[inline]
1440    pub fn text_token(&self) -> Option<SyntaxToken> {
1441        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1442    }
1443}
1444
1445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1446pub struct AlterTextSearchDictionary {
1447    pub(crate) syntax: SyntaxNode,
1448}
1449impl AlterTextSearchDictionary {
1450    #[inline]
1451    pub fn attribute_list(&self) -> Option<AttributeList> {
1452        support::child(&self.syntax)
1453    }
1454    #[inline]
1455    pub fn owner_to(&self) -> Option<OwnerTo> {
1456        support::child(&self.syntax)
1457    }
1458    #[inline]
1459    pub fn path(&self) -> Option<Path> {
1460        support::child(&self.syntax)
1461    }
1462    #[inline]
1463    pub fn rename_to(&self) -> Option<RenameTo> {
1464        support::child(&self.syntax)
1465    }
1466    #[inline]
1467    pub fn set_schema(&self) -> Option<SetSchema> {
1468        support::child(&self.syntax)
1469    }
1470    #[inline]
1471    pub fn alter_token(&self) -> Option<SyntaxToken> {
1472        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1473    }
1474    #[inline]
1475    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
1476        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
1477    }
1478    #[inline]
1479    pub fn search_token(&self) -> Option<SyntaxToken> {
1480        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1481    }
1482    #[inline]
1483    pub fn text_token(&self) -> Option<SyntaxToken> {
1484        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1485    }
1486}
1487
1488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1489pub struct AlterTextSearchParser {
1490    pub(crate) syntax: SyntaxNode,
1491}
1492impl AlterTextSearchParser {
1493    #[inline]
1494    pub fn path(&self) -> Option<Path> {
1495        support::child(&self.syntax)
1496    }
1497    #[inline]
1498    pub fn rename_to(&self) -> Option<RenameTo> {
1499        support::child(&self.syntax)
1500    }
1501    #[inline]
1502    pub fn set_schema(&self) -> Option<SetSchema> {
1503        support::child(&self.syntax)
1504    }
1505    #[inline]
1506    pub fn alter_token(&self) -> Option<SyntaxToken> {
1507        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1508    }
1509    #[inline]
1510    pub fn parser_token(&self) -> Option<SyntaxToken> {
1511        support::token(&self.syntax, SyntaxKind::PARSER_KW)
1512    }
1513    #[inline]
1514    pub fn search_token(&self) -> Option<SyntaxToken> {
1515        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1516    }
1517    #[inline]
1518    pub fn text_token(&self) -> Option<SyntaxToken> {
1519        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1520    }
1521}
1522
1523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1524pub struct AlterTextSearchTemplate {
1525    pub(crate) syntax: SyntaxNode,
1526}
1527impl AlterTextSearchTemplate {
1528    #[inline]
1529    pub fn path(&self) -> Option<Path> {
1530        support::child(&self.syntax)
1531    }
1532    #[inline]
1533    pub fn rename_to(&self) -> Option<RenameTo> {
1534        support::child(&self.syntax)
1535    }
1536    #[inline]
1537    pub fn set_schema(&self) -> Option<SetSchema> {
1538        support::child(&self.syntax)
1539    }
1540    #[inline]
1541    pub fn alter_token(&self) -> Option<SyntaxToken> {
1542        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1543    }
1544    #[inline]
1545    pub fn search_token(&self) -> Option<SyntaxToken> {
1546        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1547    }
1548    #[inline]
1549    pub fn template_token(&self) -> Option<SyntaxToken> {
1550        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
1551    }
1552    #[inline]
1553    pub fn text_token(&self) -> Option<SyntaxToken> {
1554        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1555    }
1556}
1557
1558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1559pub struct AlterTrigger {
1560    pub(crate) syntax: SyntaxNode,
1561}
1562impl AlterTrigger {
1563    #[inline]
1564    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1565        support::child(&self.syntax)
1566    }
1567    #[inline]
1568    pub fn name_ref(&self) -> Option<NameRef> {
1569        support::child(&self.syntax)
1570    }
1571    #[inline]
1572    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1573        support::child(&self.syntax)
1574    }
1575    #[inline]
1576    pub fn on_table(&self) -> Option<OnTable> {
1577        support::child(&self.syntax)
1578    }
1579    #[inline]
1580    pub fn rename_to(&self) -> Option<RenameTo> {
1581        support::child(&self.syntax)
1582    }
1583    #[inline]
1584    pub fn alter_token(&self) -> Option<SyntaxToken> {
1585        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1586    }
1587    #[inline]
1588    pub fn trigger_token(&self) -> Option<SyntaxToken> {
1589        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
1590    }
1591}
1592
1593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1594pub struct AlterType {
1595    pub(crate) syntax: SyntaxNode,
1596}
1597impl AlterType {
1598    #[inline]
1599    pub fn path(&self) -> Option<Path> {
1600        support::child(&self.syntax)
1601    }
1602    #[inline]
1603    pub fn alter_token(&self) -> Option<SyntaxToken> {
1604        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1605    }
1606    #[inline]
1607    pub fn type_token(&self) -> Option<SyntaxToken> {
1608        support::token(&self.syntax, SyntaxKind::TYPE_KW)
1609    }
1610}
1611
1612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1613pub struct AlterUser {
1614    pub(crate) syntax: SyntaxNode,
1615}
1616impl AlterUser {
1617    #[inline]
1618    pub fn role(&self) -> Option<Role> {
1619        support::child(&self.syntax)
1620    }
1621    #[inline]
1622    pub fn alter_token(&self) -> Option<SyntaxToken> {
1623        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1624    }
1625    #[inline]
1626    pub fn user_token(&self) -> Option<SyntaxToken> {
1627        support::token(&self.syntax, SyntaxKind::USER_KW)
1628    }
1629}
1630
1631#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1632pub struct AlterUserMapping {
1633    pub(crate) syntax: SyntaxNode,
1634}
1635impl AlterUserMapping {
1636    #[inline]
1637    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1638        support::child(&self.syntax)
1639    }
1640    #[inline]
1641    pub fn name_ref(&self) -> Option<NameRef> {
1642        support::child(&self.syntax)
1643    }
1644    #[inline]
1645    pub fn role(&self) -> Option<Role> {
1646        support::child(&self.syntax)
1647    }
1648    #[inline]
1649    pub fn alter_token(&self) -> Option<SyntaxToken> {
1650        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1651    }
1652    #[inline]
1653    pub fn for_token(&self) -> Option<SyntaxToken> {
1654        support::token(&self.syntax, SyntaxKind::FOR_KW)
1655    }
1656    #[inline]
1657    pub fn mapping_token(&self) -> Option<SyntaxToken> {
1658        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
1659    }
1660    #[inline]
1661    pub fn server_token(&self) -> Option<SyntaxToken> {
1662        support::token(&self.syntax, SyntaxKind::SERVER_KW)
1663    }
1664    #[inline]
1665    pub fn user_token(&self) -> Option<SyntaxToken> {
1666        support::token(&self.syntax, SyntaxKind::USER_KW)
1667    }
1668}
1669
1670#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1671pub struct AlterView {
1672    pub(crate) syntax: SyntaxNode,
1673}
1674impl AlterView {
1675    #[inline]
1676    pub fn path(&self) -> Option<Path> {
1677        support::child(&self.syntax)
1678    }
1679    #[inline]
1680    pub fn alter_token(&self) -> Option<SyntaxToken> {
1681        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1682    }
1683    #[inline]
1684    pub fn view_token(&self) -> Option<SyntaxToken> {
1685        support::token(&self.syntax, SyntaxKind::VIEW_KW)
1686    }
1687}
1688
1689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1690pub struct Analyze {
1691    pub(crate) syntax: SyntaxNode,
1692}
1693impl Analyze {
1694    #[inline]
1695    pub fn option_item_list(&self) -> Option<OptionItemList> {
1696        support::child(&self.syntax)
1697    }
1698    #[inline]
1699    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
1700        support::child(&self.syntax)
1701    }
1702    #[inline]
1703    pub fn analyse_token(&self) -> Option<SyntaxToken> {
1704        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
1705    }
1706    #[inline]
1707    pub fn analyze_token(&self) -> Option<SyntaxToken> {
1708        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
1709    }
1710    #[inline]
1711    pub fn verbose_token(&self) -> Option<SyntaxToken> {
1712        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
1713    }
1714}
1715
1716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1717pub struct AnyFn {
1718    pub(crate) syntax: SyntaxNode,
1719}
1720impl AnyFn {
1721    #[inline]
1722    pub fn expr(&self) -> Option<Expr> {
1723        support::child(&self.syntax)
1724    }
1725    #[inline]
1726    pub fn select_variant(&self) -> Option<SelectVariant> {
1727        support::child(&self.syntax)
1728    }
1729    #[inline]
1730    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1731        support::token(&self.syntax, SyntaxKind::L_PAREN)
1732    }
1733    #[inline]
1734    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1735        support::token(&self.syntax, SyntaxKind::R_PAREN)
1736    }
1737    #[inline]
1738    pub fn any_token(&self) -> Option<SyntaxToken> {
1739        support::token(&self.syntax, SyntaxKind::ANY_KW)
1740    }
1741}
1742
1743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1744pub struct Arg {
1745    pub(crate) syntax: SyntaxNode,
1746}
1747impl Arg {
1748    #[inline]
1749    pub fn expr(&self) -> Option<Expr> {
1750        support::child(&self.syntax)
1751    }
1752}
1753
1754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1755pub struct ArgList {
1756    pub(crate) syntax: SyntaxNode,
1757}
1758impl ArgList {
1759    #[inline]
1760    pub fn args(&self) -> AstChildren<Expr> {
1761        support::children(&self.syntax)
1762    }
1763    #[inline]
1764    pub fn expr(&self) -> Option<Expr> {
1765        support::child(&self.syntax)
1766    }
1767    #[inline]
1768    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1769        support::token(&self.syntax, SyntaxKind::L_PAREN)
1770    }
1771    #[inline]
1772    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1773        support::token(&self.syntax, SyntaxKind::R_PAREN)
1774    }
1775    #[inline]
1776    pub fn star_token(&self) -> Option<SyntaxToken> {
1777        support::token(&self.syntax, SyntaxKind::STAR)
1778    }
1779    #[inline]
1780    pub fn all_token(&self) -> Option<SyntaxToken> {
1781        support::token(&self.syntax, SyntaxKind::ALL_KW)
1782    }
1783    #[inline]
1784    pub fn distinct_token(&self) -> Option<SyntaxToken> {
1785        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
1786    }
1787    #[inline]
1788    pub fn variadic_token(&self) -> Option<SyntaxToken> {
1789        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
1790    }
1791}
1792
1793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1794pub struct ArrayExpr {
1795    pub(crate) syntax: SyntaxNode,
1796}
1797impl ArrayExpr {
1798    #[inline]
1799    pub fn exprs(&self) -> AstChildren<Expr> {
1800        support::children(&self.syntax)
1801    }
1802    #[inline]
1803    pub fn select(&self) -> Option<Select> {
1804        support::child(&self.syntax)
1805    }
1806    #[inline]
1807    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1808        support::token(&self.syntax, SyntaxKind::L_PAREN)
1809    }
1810    #[inline]
1811    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1812        support::token(&self.syntax, SyntaxKind::R_PAREN)
1813    }
1814    #[inline]
1815    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1816        support::token(&self.syntax, SyntaxKind::L_BRACK)
1817    }
1818    #[inline]
1819    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1820        support::token(&self.syntax, SyntaxKind::R_BRACK)
1821    }
1822    #[inline]
1823    pub fn array_token(&self) -> Option<SyntaxToken> {
1824        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1825    }
1826}
1827
1828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1829pub struct ArrayType {
1830    pub(crate) syntax: SyntaxNode,
1831}
1832impl ArrayType {
1833    #[inline]
1834    pub fn expr(&self) -> Option<Expr> {
1835        support::child(&self.syntax)
1836    }
1837    #[inline]
1838    pub fn name_ref(&self) -> Option<NameRef> {
1839        support::child(&self.syntax)
1840    }
1841    #[inline]
1842    pub fn ty(&self) -> Option<Type> {
1843        support::child(&self.syntax)
1844    }
1845    #[inline]
1846    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1847        support::token(&self.syntax, SyntaxKind::L_BRACK)
1848    }
1849    #[inline]
1850    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1851        support::token(&self.syntax, SyntaxKind::R_BRACK)
1852    }
1853    #[inline]
1854    pub fn array_token(&self) -> Option<SyntaxToken> {
1855        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1856    }
1857}
1858
1859#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1860pub struct AsFuncOption {
1861    pub(crate) syntax: SyntaxNode,
1862}
1863impl AsFuncOption {
1864    #[inline]
1865    pub fn definition(&self) -> Option<Literal> {
1866        support::child(&self.syntax)
1867    }
1868    #[inline]
1869    pub fn link_symbol(&self) -> Option<Literal> {
1870        support::child(&self.syntax)
1871    }
1872    #[inline]
1873    pub fn obj_file(&self) -> Option<Literal> {
1874        support::child(&self.syntax)
1875    }
1876    #[inline]
1877    pub fn comma_token(&self) -> Option<SyntaxToken> {
1878        support::token(&self.syntax, SyntaxKind::COMMA)
1879    }
1880    #[inline]
1881    pub fn as_token(&self) -> Option<SyntaxToken> {
1882        support::token(&self.syntax, SyntaxKind::AS_KW)
1883    }
1884}
1885
1886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1887pub struct AsName {
1888    pub(crate) syntax: SyntaxNode,
1889}
1890impl AsName {
1891    #[inline]
1892    pub fn name(&self) -> Option<Name> {
1893        support::child(&self.syntax)
1894    }
1895    #[inline]
1896    pub fn as_token(&self) -> Option<SyntaxToken> {
1897        support::token(&self.syntax, SyntaxKind::AS_KW)
1898    }
1899}
1900
1901#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1902pub struct AtTimeZone {
1903    pub(crate) syntax: SyntaxNode,
1904}
1905impl AtTimeZone {
1906    #[inline]
1907    pub fn at_token(&self) -> Option<SyntaxToken> {
1908        support::token(&self.syntax, SyntaxKind::AT_KW)
1909    }
1910    #[inline]
1911    pub fn time_token(&self) -> Option<SyntaxToken> {
1912        support::token(&self.syntax, SyntaxKind::TIME_KW)
1913    }
1914    #[inline]
1915    pub fn zone_token(&self) -> Option<SyntaxToken> {
1916        support::token(&self.syntax, SyntaxKind::ZONE_KW)
1917    }
1918}
1919
1920#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1921pub struct AttachPartition {
1922    pub(crate) syntax: SyntaxNode,
1923}
1924impl AttachPartition {
1925    #[inline]
1926    pub fn partition_type(&self) -> Option<PartitionType> {
1927        support::child(&self.syntax)
1928    }
1929    #[inline]
1930    pub fn path(&self) -> Option<Path> {
1931        support::child(&self.syntax)
1932    }
1933    #[inline]
1934    pub fn attach_token(&self) -> Option<SyntaxToken> {
1935        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
1936    }
1937    #[inline]
1938    pub fn partition_token(&self) -> Option<SyntaxToken> {
1939        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
1940    }
1941}
1942
1943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1944pub struct AttributeList {
1945    pub(crate) syntax: SyntaxNode,
1946}
1947impl AttributeList {
1948    #[inline]
1949    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
1950        support::children(&self.syntax)
1951    }
1952    #[inline]
1953    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1954        support::token(&self.syntax, SyntaxKind::L_PAREN)
1955    }
1956    #[inline]
1957    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1958        support::token(&self.syntax, SyntaxKind::R_PAREN)
1959    }
1960}
1961
1962#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1963pub struct AttributeOption {
1964    pub(crate) syntax: SyntaxNode,
1965}
1966impl AttributeOption {
1967    #[inline]
1968    pub fn attribute_value(&self) -> Option<AttributeValue> {
1969        support::child(&self.syntax)
1970    }
1971    #[inline]
1972    pub fn name(&self) -> Option<Name> {
1973        support::child(&self.syntax)
1974    }
1975    #[inline]
1976    pub fn dot_token(&self) -> Option<SyntaxToken> {
1977        support::token(&self.syntax, SyntaxKind::DOT)
1978    }
1979    #[inline]
1980    pub fn eq_token(&self) -> Option<SyntaxToken> {
1981        support::token(&self.syntax, SyntaxKind::EQ)
1982    }
1983}
1984
1985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1986pub struct AttributeValue {
1987    pub(crate) syntax: SyntaxNode,
1988}
1989impl AttributeValue {
1990    #[inline]
1991    pub fn literal(&self) -> Option<Literal> {
1992        support::child(&self.syntax)
1993    }
1994    #[inline]
1995    pub fn op(&self) -> Option<Op> {
1996        support::child(&self.syntax)
1997    }
1998    #[inline]
1999    pub fn ty(&self) -> Option<Type> {
2000        support::child(&self.syntax)
2001    }
2002    #[inline]
2003    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2004        support::token(&self.syntax, SyntaxKind::L_PAREN)
2005    }
2006    #[inline]
2007    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2008        support::token(&self.syntax, SyntaxKind::R_PAREN)
2009    }
2010    #[inline]
2011    pub fn none_token(&self) -> Option<SyntaxToken> {
2012        support::token(&self.syntax, SyntaxKind::NONE_KW)
2013    }
2014    #[inline]
2015    pub fn operator_token(&self) -> Option<SyntaxToken> {
2016        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2017    }
2018}
2019
2020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2021pub struct Begin {
2022    pub(crate) syntax: SyntaxNode,
2023}
2024impl Begin {
2025    #[inline]
2026    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
2027        support::child(&self.syntax)
2028    }
2029    #[inline]
2030    pub fn begin_token(&self) -> Option<SyntaxToken> {
2031        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2032    }
2033    #[inline]
2034    pub fn start_token(&self) -> Option<SyntaxToken> {
2035        support::token(&self.syntax, SyntaxKind::START_KW)
2036    }
2037    #[inline]
2038    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2039        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2040    }
2041    #[inline]
2042    pub fn work_token(&self) -> Option<SyntaxToken> {
2043        support::token(&self.syntax, SyntaxKind::WORK_KW)
2044    }
2045}
2046
2047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2048pub struct BeginFuncOption {
2049    pub(crate) syntax: SyntaxNode,
2050}
2051impl BeginFuncOption {
2052    #[inline]
2053    pub fn return_func_option(&self) -> Option<ReturnFuncOption> {
2054        support::child(&self.syntax)
2055    }
2056    #[inline]
2057    pub fn stmt(&self) -> Option<Stmt> {
2058        support::child(&self.syntax)
2059    }
2060    #[inline]
2061    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2062        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2063    }
2064}
2065
2066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2067pub struct BeginFuncOptionList {
2068    pub(crate) syntax: SyntaxNode,
2069}
2070impl BeginFuncOptionList {
2071    #[inline]
2072    pub fn begin_func_options(&self) -> AstChildren<BeginFuncOption> {
2073        support::children(&self.syntax)
2074    }
2075    #[inline]
2076    pub fn atomic_token(&self) -> Option<SyntaxToken> {
2077        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
2078    }
2079    #[inline]
2080    pub fn begin_token(&self) -> Option<SyntaxToken> {
2081        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2082    }
2083    #[inline]
2084    pub fn end_token(&self) -> Option<SyntaxToken> {
2085        support::token(&self.syntax, SyntaxKind::END_KW)
2086    }
2087}
2088
2089#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2090pub struct BetweenExpr {
2091    pub(crate) syntax: SyntaxNode,
2092}
2093impl BetweenExpr {
2094    #[inline]
2095    pub fn and_token(&self) -> Option<SyntaxToken> {
2096        support::token(&self.syntax, SyntaxKind::AND_KW)
2097    }
2098    #[inline]
2099    pub fn between_token(&self) -> Option<SyntaxToken> {
2100        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
2101    }
2102}
2103
2104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2105pub struct BinExpr {
2106    pub(crate) syntax: SyntaxNode,
2107}
2108impl BinExpr {
2109    #[inline]
2110    pub fn op(&self) -> Option<Op> {
2111        support::child(&self.syntax)
2112    }
2113}
2114
2115#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2116pub struct BitType {
2117    pub(crate) syntax: SyntaxNode,
2118}
2119impl BitType {
2120    #[inline]
2121    pub fn arg_list(&self) -> Option<ArgList> {
2122        support::child(&self.syntax)
2123    }
2124    #[inline]
2125    pub fn bit_token(&self) -> Option<SyntaxToken> {
2126        support::token(&self.syntax, SyntaxKind::BIT_KW)
2127    }
2128    #[inline]
2129    pub fn varying_token(&self) -> Option<SyntaxToken> {
2130        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2131    }
2132}
2133
2134#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2135pub struct Call {
2136    pub(crate) syntax: SyntaxNode,
2137}
2138impl Call {
2139    #[inline]
2140    pub fn arg_list(&self) -> Option<ArgList> {
2141        support::child(&self.syntax)
2142    }
2143    #[inline]
2144    pub fn path(&self) -> Option<Path> {
2145        support::child(&self.syntax)
2146    }
2147    #[inline]
2148    pub fn call_token(&self) -> Option<SyntaxToken> {
2149        support::token(&self.syntax, SyntaxKind::CALL_KW)
2150    }
2151}
2152
2153#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2154pub struct CallExpr {
2155    pub(crate) syntax: SyntaxNode,
2156}
2157impl CallExpr {
2158    #[inline]
2159    pub fn all_fn(&self) -> Option<AllFn> {
2160        support::child(&self.syntax)
2161    }
2162    #[inline]
2163    pub fn any_fn(&self) -> Option<AnyFn> {
2164        support::child(&self.syntax)
2165    }
2166    #[inline]
2167    pub fn arg_list(&self) -> Option<ArgList> {
2168        support::child(&self.syntax)
2169    }
2170    #[inline]
2171    pub fn exists_fn(&self) -> Option<ExistsFn> {
2172        support::child(&self.syntax)
2173    }
2174    #[inline]
2175    pub fn expr(&self) -> Option<Expr> {
2176        support::child(&self.syntax)
2177    }
2178    #[inline]
2179    pub fn extract_fn(&self) -> Option<ExtractFn> {
2180        support::child(&self.syntax)
2181    }
2182    #[inline]
2183    pub fn filter_clause(&self) -> Option<FilterClause> {
2184        support::child(&self.syntax)
2185    }
2186    #[inline]
2187    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
2188        support::child(&self.syntax)
2189    }
2190    #[inline]
2191    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
2192        support::child(&self.syntax)
2193    }
2194    #[inline]
2195    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
2196        support::child(&self.syntax)
2197    }
2198    #[inline]
2199    pub fn json_fn(&self) -> Option<JsonFn> {
2200        support::child(&self.syntax)
2201    }
2202    #[inline]
2203    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
2204        support::child(&self.syntax)
2205    }
2206    #[inline]
2207    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
2208        support::child(&self.syntax)
2209    }
2210    #[inline]
2211    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
2212        support::child(&self.syntax)
2213    }
2214    #[inline]
2215    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
2216        support::child(&self.syntax)
2217    }
2218    #[inline]
2219    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
2220        support::child(&self.syntax)
2221    }
2222    #[inline]
2223    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
2224        support::child(&self.syntax)
2225    }
2226    #[inline]
2227    pub fn over_clause(&self) -> Option<OverClause> {
2228        support::child(&self.syntax)
2229    }
2230    #[inline]
2231    pub fn overlay_fn(&self) -> Option<OverlayFn> {
2232        support::child(&self.syntax)
2233    }
2234    #[inline]
2235    pub fn position_fn(&self) -> Option<PositionFn> {
2236        support::child(&self.syntax)
2237    }
2238    #[inline]
2239    pub fn some_fn(&self) -> Option<SomeFn> {
2240        support::child(&self.syntax)
2241    }
2242    #[inline]
2243    pub fn substring_fn(&self) -> Option<SubstringFn> {
2244        support::child(&self.syntax)
2245    }
2246    #[inline]
2247    pub fn trim_fn(&self) -> Option<TrimFn> {
2248        support::child(&self.syntax)
2249    }
2250    #[inline]
2251    pub fn within_clause(&self) -> Option<WithinClause> {
2252        support::child(&self.syntax)
2253    }
2254    #[inline]
2255    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
2256        support::child(&self.syntax)
2257    }
2258    #[inline]
2259    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
2260        support::child(&self.syntax)
2261    }
2262    #[inline]
2263    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
2264        support::child(&self.syntax)
2265    }
2266    #[inline]
2267    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
2268        support::child(&self.syntax)
2269    }
2270    #[inline]
2271    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
2272        support::child(&self.syntax)
2273    }
2274    #[inline]
2275    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
2276        support::child(&self.syntax)
2277    }
2278    #[inline]
2279    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
2280        support::child(&self.syntax)
2281    }
2282}
2283
2284#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2285pub struct Cascade {
2286    pub(crate) syntax: SyntaxNode,
2287}
2288impl Cascade {
2289    #[inline]
2290    pub fn cascade_token(&self) -> Option<SyntaxToken> {
2291        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
2292    }
2293}
2294
2295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2296pub struct CaseExpr {
2297    pub(crate) syntax: SyntaxNode,
2298}
2299impl CaseExpr {
2300    #[inline]
2301    pub fn else_clause(&self) -> Option<ElseClause> {
2302        support::child(&self.syntax)
2303    }
2304    #[inline]
2305    pub fn expr(&self) -> Option<Expr> {
2306        support::child(&self.syntax)
2307    }
2308    #[inline]
2309    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
2310        support::child(&self.syntax)
2311    }
2312    #[inline]
2313    pub fn case_token(&self) -> Option<SyntaxToken> {
2314        support::token(&self.syntax, SyntaxKind::CASE_KW)
2315    }
2316}
2317
2318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2319pub struct CastExpr {
2320    pub(crate) syntax: SyntaxNode,
2321}
2322impl CastExpr {
2323    #[inline]
2324    pub fn colon_colon(&self) -> Option<ColonColon> {
2325        support::child(&self.syntax)
2326    }
2327    #[inline]
2328    pub fn expr(&self) -> Option<Expr> {
2329        support::child(&self.syntax)
2330    }
2331    #[inline]
2332    pub fn literal(&self) -> Option<Literal> {
2333        support::child(&self.syntax)
2334    }
2335    #[inline]
2336    pub fn ty(&self) -> Option<Type> {
2337        support::child(&self.syntax)
2338    }
2339    #[inline]
2340    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2341        support::token(&self.syntax, SyntaxKind::L_PAREN)
2342    }
2343    #[inline]
2344    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2345        support::token(&self.syntax, SyntaxKind::R_PAREN)
2346    }
2347    #[inline]
2348    pub fn as_token(&self) -> Option<SyntaxToken> {
2349        support::token(&self.syntax, SyntaxKind::AS_KW)
2350    }
2351    #[inline]
2352    pub fn cast_token(&self) -> Option<SyntaxToken> {
2353        support::token(&self.syntax, SyntaxKind::CAST_KW)
2354    }
2355    #[inline]
2356    pub fn treat_token(&self) -> Option<SyntaxToken> {
2357        support::token(&self.syntax, SyntaxKind::TREAT_KW)
2358    }
2359}
2360
2361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2362pub struct CastSig {
2363    pub(crate) syntax: SyntaxNode,
2364}
2365impl CastSig {
2366    #[inline]
2367    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2368        support::token(&self.syntax, SyntaxKind::L_PAREN)
2369    }
2370    #[inline]
2371    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2372        support::token(&self.syntax, SyntaxKind::R_PAREN)
2373    }
2374    #[inline]
2375    pub fn as_token(&self) -> Option<SyntaxToken> {
2376        support::token(&self.syntax, SyntaxKind::AS_KW)
2377    }
2378}
2379
2380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2381pub struct CharType {
2382    pub(crate) syntax: SyntaxNode,
2383}
2384impl CharType {
2385    #[inline]
2386    pub fn arg_list(&self) -> Option<ArgList> {
2387        support::child(&self.syntax)
2388    }
2389    #[inline]
2390    pub fn char_token(&self) -> Option<SyntaxToken> {
2391        support::token(&self.syntax, SyntaxKind::CHAR_KW)
2392    }
2393    #[inline]
2394    pub fn character_token(&self) -> Option<SyntaxToken> {
2395        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
2396    }
2397    #[inline]
2398    pub fn nchar_token(&self) -> Option<SyntaxToken> {
2399        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2400    }
2401    #[inline]
2402    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2403        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2404    }
2405    #[inline]
2406    pub fn varying_token(&self) -> Option<SyntaxToken> {
2407        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2408    }
2409}
2410
2411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2412pub struct CheckConstraint {
2413    pub(crate) syntax: SyntaxNode,
2414}
2415impl CheckConstraint {
2416    #[inline]
2417    pub fn expr(&self) -> Option<Expr> {
2418        support::child(&self.syntax)
2419    }
2420    #[inline]
2421    pub fn name(&self) -> Option<Name> {
2422        support::child(&self.syntax)
2423    }
2424    #[inline]
2425    pub fn no_inherit(&self) -> Option<NoInherit> {
2426        support::child(&self.syntax)
2427    }
2428    #[inline]
2429    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2430        support::token(&self.syntax, SyntaxKind::L_PAREN)
2431    }
2432    #[inline]
2433    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2434        support::token(&self.syntax, SyntaxKind::R_PAREN)
2435    }
2436    #[inline]
2437    pub fn check_token(&self) -> Option<SyntaxToken> {
2438        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2439    }
2440    #[inline]
2441    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2442        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2443    }
2444}
2445
2446#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2447pub struct Checkpoint {
2448    pub(crate) syntax: SyntaxNode,
2449}
2450impl Checkpoint {
2451    #[inline]
2452    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
2453        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
2454    }
2455}
2456
2457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2458pub struct Close {
2459    pub(crate) syntax: SyntaxNode,
2460}
2461impl Close {
2462    #[inline]
2463    pub fn name_ref(&self) -> Option<NameRef> {
2464        support::child(&self.syntax)
2465    }
2466    #[inline]
2467    pub fn close_token(&self) -> Option<SyntaxToken> {
2468        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
2469    }
2470}
2471
2472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2473pub struct Cluster {
2474    pub(crate) syntax: SyntaxNode,
2475}
2476impl Cluster {
2477    #[inline]
2478    pub fn option_item_list(&self) -> Option<OptionItemList> {
2479        support::child(&self.syntax)
2480    }
2481    #[inline]
2482    pub fn path(&self) -> Option<Path> {
2483        support::child(&self.syntax)
2484    }
2485    #[inline]
2486    pub fn using_method(&self) -> Option<UsingMethod> {
2487        support::child(&self.syntax)
2488    }
2489    #[inline]
2490    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2491        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2492    }
2493    #[inline]
2494    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2495        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2496    }
2497}
2498
2499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2500pub struct ClusterOn {
2501    pub(crate) syntax: SyntaxNode,
2502}
2503impl ClusterOn {
2504    #[inline]
2505    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2506        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2507    }
2508    #[inline]
2509    pub fn on_token(&self) -> Option<SyntaxToken> {
2510        support::token(&self.syntax, SyntaxKind::ON_KW)
2511    }
2512}
2513
2514#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2515pub struct Collate {
2516    pub(crate) syntax: SyntaxNode,
2517}
2518impl Collate {
2519    #[inline]
2520    pub fn path(&self) -> Option<Path> {
2521        support::child(&self.syntax)
2522    }
2523    #[inline]
2524    pub fn collate_token(&self) -> Option<SyntaxToken> {
2525        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
2526    }
2527}
2528
2529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2530pub struct ColonColon {
2531    pub(crate) syntax: SyntaxNode,
2532}
2533impl ColonColon {
2534    #[inline]
2535    pub fn colon_token(&self) -> Option<SyntaxToken> {
2536        support::token(&self.syntax, SyntaxKind::COLON)
2537    }
2538}
2539
2540#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2541pub struct ColonEq {
2542    pub(crate) syntax: SyntaxNode,
2543}
2544impl ColonEq {
2545    #[inline]
2546    pub fn colon_token(&self) -> Option<SyntaxToken> {
2547        support::token(&self.syntax, SyntaxKind::COLON)
2548    }
2549    #[inline]
2550    pub fn eq_token(&self) -> Option<SyntaxToken> {
2551        support::token(&self.syntax, SyntaxKind::EQ)
2552    }
2553}
2554
2555#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2556pub struct Column {
2557    pub(crate) syntax: SyntaxNode,
2558}
2559impl Column {
2560    #[inline]
2561    pub fn collate(&self) -> Option<Collate> {
2562        support::child(&self.syntax)
2563    }
2564    #[inline]
2565    pub fn compression_method(&self) -> Option<CompressionMethod> {
2566        support::child(&self.syntax)
2567    }
2568    #[inline]
2569    pub fn constraint(&self) -> Option<ColumnConstraint> {
2570        support::child(&self.syntax)
2571    }
2572    #[inline]
2573    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
2574        support::child(&self.syntax)
2575    }
2576    #[inline]
2577    pub fn enforced(&self) -> Option<Enforced> {
2578        support::child(&self.syntax)
2579    }
2580    #[inline]
2581    pub fn index_expr(&self) -> Option<IndexExpr> {
2582        support::child(&self.syntax)
2583    }
2584    #[inline]
2585    pub fn initially_deferred_constraint_option(
2586        &self,
2587    ) -> Option<InitiallyDeferredConstraintOption> {
2588        support::child(&self.syntax)
2589    }
2590    #[inline]
2591    pub fn initially_immediate_constraint_option(
2592        &self,
2593    ) -> Option<InitiallyImmediateConstraintOption> {
2594        support::child(&self.syntax)
2595    }
2596    #[inline]
2597    pub fn name(&self) -> Option<Name> {
2598        support::child(&self.syntax)
2599    }
2600    #[inline]
2601    pub fn name_ref(&self) -> Option<NameRef> {
2602        support::child(&self.syntax)
2603    }
2604    #[inline]
2605    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
2606        support::child(&self.syntax)
2607    }
2608    #[inline]
2609    pub fn not_enforced(&self) -> Option<NotEnforced> {
2610        support::child(&self.syntax)
2611    }
2612    #[inline]
2613    pub fn storage(&self) -> Option<Storage> {
2614        support::child(&self.syntax)
2615    }
2616    #[inline]
2617    pub fn ty(&self) -> Option<Type> {
2618        support::child(&self.syntax)
2619    }
2620    #[inline]
2621    pub fn with_options(&self) -> Option<WithOptions> {
2622        support::child(&self.syntax)
2623    }
2624    #[inline]
2625    pub fn period_token(&self) -> Option<SyntaxToken> {
2626        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
2627    }
2628}
2629
2630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2631pub struct ColumnList {
2632    pub(crate) syntax: SyntaxNode,
2633}
2634impl ColumnList {
2635    #[inline]
2636    pub fn columns(&self) -> AstChildren<Column> {
2637        support::children(&self.syntax)
2638    }
2639    #[inline]
2640    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2641        support::token(&self.syntax, SyntaxKind::L_PAREN)
2642    }
2643    #[inline]
2644    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2645        support::token(&self.syntax, SyntaxKind::R_PAREN)
2646    }
2647}
2648
2649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2650pub struct CommentOn {
2651    pub(crate) syntax: SyntaxNode,
2652}
2653impl CommentOn {
2654    #[inline]
2655    pub fn literal(&self) -> Option<Literal> {
2656        support::child(&self.syntax)
2657    }
2658    #[inline]
2659    pub fn name_ref(&self) -> Option<NameRef> {
2660        support::child(&self.syntax)
2661    }
2662    #[inline]
2663    pub fn path(&self) -> Option<Path> {
2664        support::child(&self.syntax)
2665    }
2666    #[inline]
2667    pub fn comment_token(&self) -> Option<SyntaxToken> {
2668        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
2669    }
2670    #[inline]
2671    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2672        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2673    }
2674    #[inline]
2675    pub fn domain_token(&self) -> Option<SyntaxToken> {
2676        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
2677    }
2678    #[inline]
2679    pub fn is_token(&self) -> Option<SyntaxToken> {
2680        support::token(&self.syntax, SyntaxKind::IS_KW)
2681    }
2682    #[inline]
2683    pub fn null_token(&self) -> Option<SyntaxToken> {
2684        support::token(&self.syntax, SyntaxKind::NULL_KW)
2685    }
2686    #[inline]
2687    pub fn on_token(&self) -> Option<SyntaxToken> {
2688        support::token(&self.syntax, SyntaxKind::ON_KW)
2689    }
2690    #[inline]
2691    pub fn table_token(&self) -> Option<SyntaxToken> {
2692        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2693    }
2694}
2695
2696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2697pub struct Commit {
2698    pub(crate) syntax: SyntaxNode,
2699}
2700impl Commit {
2701    #[inline]
2702    pub fn literal(&self) -> Option<Literal> {
2703        support::child(&self.syntax)
2704    }
2705    #[inline]
2706    pub fn and_token(&self) -> Option<SyntaxToken> {
2707        support::token(&self.syntax, SyntaxKind::AND_KW)
2708    }
2709    #[inline]
2710    pub fn chain_token(&self) -> Option<SyntaxToken> {
2711        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
2712    }
2713    #[inline]
2714    pub fn commit_token(&self) -> Option<SyntaxToken> {
2715        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
2716    }
2717    #[inline]
2718    pub fn no_token(&self) -> Option<SyntaxToken> {
2719        support::token(&self.syntax, SyntaxKind::NO_KW)
2720    }
2721    #[inline]
2722    pub fn prepared_token(&self) -> Option<SyntaxToken> {
2723        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
2724    }
2725    #[inline]
2726    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2727        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2728    }
2729    #[inline]
2730    pub fn work_token(&self) -> Option<SyntaxToken> {
2731        support::token(&self.syntax, SyntaxKind::WORK_KW)
2732    }
2733}
2734
2735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2736pub struct CompoundSelect {
2737    pub(crate) syntax: SyntaxNode,
2738}
2739impl CompoundSelect {
2740    #[inline]
2741    pub fn except_token(&self) -> Option<SyntaxToken> {
2742        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
2743    }
2744    #[inline]
2745    pub fn intersect_token(&self) -> Option<SyntaxToken> {
2746        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
2747    }
2748    #[inline]
2749    pub fn union_token(&self) -> Option<SyntaxToken> {
2750        support::token(&self.syntax, SyntaxKind::UNION_KW)
2751    }
2752}
2753
2754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2755pub struct CompressionMethod {
2756    pub(crate) syntax: SyntaxNode,
2757}
2758impl CompressionMethod {
2759    #[inline]
2760    pub fn compression_token(&self) -> Option<SyntaxToken> {
2761        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
2762    }
2763    #[inline]
2764    pub fn default_token(&self) -> Option<SyntaxToken> {
2765        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
2766    }
2767    #[inline]
2768    pub fn ident_token(&self) -> Option<SyntaxToken> {
2769        support::token(&self.syntax, SyntaxKind::IDENT)
2770    }
2771}
2772
2773#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2774pub struct ConflictDoNothing {
2775    pub(crate) syntax: SyntaxNode,
2776}
2777impl ConflictDoNothing {
2778    #[inline]
2779    pub fn do_token(&self) -> Option<SyntaxToken> {
2780        support::token(&self.syntax, SyntaxKind::DO_KW)
2781    }
2782    #[inline]
2783    pub fn nothing_token(&self) -> Option<SyntaxToken> {
2784        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
2785    }
2786}
2787
2788#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2789pub struct ConflictDoUpdateSet {
2790    pub(crate) syntax: SyntaxNode,
2791}
2792impl ConflictDoUpdateSet {
2793    #[inline]
2794    pub fn set_clause(&self) -> Option<SetClause> {
2795        support::child(&self.syntax)
2796    }
2797    #[inline]
2798    pub fn where_clause(&self) -> Option<WhereClause> {
2799        support::child(&self.syntax)
2800    }
2801    #[inline]
2802    pub fn do_token(&self) -> Option<SyntaxToken> {
2803        support::token(&self.syntax, SyntaxKind::DO_KW)
2804    }
2805    #[inline]
2806    pub fn update_token(&self) -> Option<SyntaxToken> {
2807        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
2808    }
2809}
2810
2811#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2812pub struct ConflictIndexItem {
2813    pub(crate) syntax: SyntaxNode,
2814}
2815impl ConflictIndexItem {
2816    #[inline]
2817    pub fn collate(&self) -> Option<Collate> {
2818        support::child(&self.syntax)
2819    }
2820    #[inline]
2821    pub fn expr(&self) -> Option<Expr> {
2822        support::child(&self.syntax)
2823    }
2824    #[inline]
2825    pub fn ident_token(&self) -> Option<SyntaxToken> {
2826        support::token(&self.syntax, SyntaxKind::IDENT)
2827    }
2828}
2829
2830#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2831pub struct ConflictIndexItemList {
2832    pub(crate) syntax: SyntaxNode,
2833}
2834impl ConflictIndexItemList {
2835    #[inline]
2836    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
2837        support::children(&self.syntax)
2838    }
2839    #[inline]
2840    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2841        support::token(&self.syntax, SyntaxKind::L_PAREN)
2842    }
2843    #[inline]
2844    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2845        support::token(&self.syntax, SyntaxKind::R_PAREN)
2846    }
2847}
2848
2849#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2850pub struct ConflictOnConstraint {
2851    pub(crate) syntax: SyntaxNode,
2852}
2853impl ConflictOnConstraint {
2854    #[inline]
2855    pub fn name_ref(&self) -> Option<NameRef> {
2856        support::child(&self.syntax)
2857    }
2858    #[inline]
2859    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2860        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2861    }
2862    #[inline]
2863    pub fn on_token(&self) -> Option<SyntaxToken> {
2864        support::token(&self.syntax, SyntaxKind::ON_KW)
2865    }
2866}
2867
2868#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2869pub struct ConflictOnIndex {
2870    pub(crate) syntax: SyntaxNode,
2871}
2872impl ConflictOnIndex {
2873    #[inline]
2874    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
2875        support::child(&self.syntax)
2876    }
2877    #[inline]
2878    pub fn where_clause(&self) -> Option<WhereClause> {
2879        support::child(&self.syntax)
2880    }
2881}
2882
2883#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2884pub struct ConstraintExclusion {
2885    pub(crate) syntax: SyntaxNode,
2886}
2887impl ConstraintExclusion {
2888    #[inline]
2889    pub fn expr(&self) -> Option<Expr> {
2890        support::child(&self.syntax)
2891    }
2892    #[inline]
2893    pub fn op(&self) -> Option<Op> {
2894        support::child(&self.syntax)
2895    }
2896    #[inline]
2897    pub fn with_token(&self) -> Option<SyntaxToken> {
2898        support::token(&self.syntax, SyntaxKind::WITH_KW)
2899    }
2900}
2901
2902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2903pub struct ConstraintExclusionList {
2904    pub(crate) syntax: SyntaxNode,
2905}
2906impl ConstraintExclusionList {
2907    #[inline]
2908    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
2909        support::children(&self.syntax)
2910    }
2911    #[inline]
2912    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2913        support::token(&self.syntax, SyntaxKind::L_PAREN)
2914    }
2915    #[inline]
2916    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2917        support::token(&self.syntax, SyntaxKind::R_PAREN)
2918    }
2919}
2920
2921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2922pub struct ConstraintIncludeClause {
2923    pub(crate) syntax: SyntaxNode,
2924}
2925impl ConstraintIncludeClause {
2926    #[inline]
2927    pub fn include_token(&self) -> Option<SyntaxToken> {
2928        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
2929    }
2930}
2931
2932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2933pub struct ConstraintIndexMethod {
2934    pub(crate) syntax: SyntaxNode,
2935}
2936impl ConstraintIndexMethod {
2937    #[inline]
2938    pub fn using_token(&self) -> Option<SyntaxToken> {
2939        support::token(&self.syntax, SyntaxKind::USING_KW)
2940    }
2941}
2942
2943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2944pub struct ConstraintIndexTablespace {
2945    pub(crate) syntax: SyntaxNode,
2946}
2947impl ConstraintIndexTablespace {
2948    #[inline]
2949    pub fn name_ref(&self) -> Option<NameRef> {
2950        support::child(&self.syntax)
2951    }
2952    #[inline]
2953    pub fn index_token(&self) -> Option<SyntaxToken> {
2954        support::token(&self.syntax, SyntaxKind::INDEX_KW)
2955    }
2956    #[inline]
2957    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
2958        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
2959    }
2960    #[inline]
2961    pub fn using_token(&self) -> Option<SyntaxToken> {
2962        support::token(&self.syntax, SyntaxKind::USING_KW)
2963    }
2964}
2965
2966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2967pub struct Copy {
2968    pub(crate) syntax: SyntaxNode,
2969}
2970impl Copy {
2971    #[inline]
2972    pub fn column_list(&self) -> Option<ColumnList> {
2973        support::child(&self.syntax)
2974    }
2975    #[inline]
2976    pub fn literal(&self) -> Option<Literal> {
2977        support::child(&self.syntax)
2978    }
2979    #[inline]
2980    pub fn path(&self) -> Option<Path> {
2981        support::child(&self.syntax)
2982    }
2983    #[inline]
2984    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
2985        support::child(&self.syntax)
2986    }
2987    #[inline]
2988    pub fn where_clause(&self) -> Option<WhereClause> {
2989        support::child(&self.syntax)
2990    }
2991    #[inline]
2992    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2993        support::token(&self.syntax, SyntaxKind::L_PAREN)
2994    }
2995    #[inline]
2996    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2997        support::token(&self.syntax, SyntaxKind::R_PAREN)
2998    }
2999    #[inline]
3000    pub fn binary_token(&self) -> Option<SyntaxToken> {
3001        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3002    }
3003    #[inline]
3004    pub fn copy_token(&self) -> Option<SyntaxToken> {
3005        support::token(&self.syntax, SyntaxKind::COPY_KW)
3006    }
3007    #[inline]
3008    pub fn from_token(&self) -> Option<SyntaxToken> {
3009        support::token(&self.syntax, SyntaxKind::FROM_KW)
3010    }
3011    #[inline]
3012    pub fn program_token(&self) -> Option<SyntaxToken> {
3013        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3014    }
3015    #[inline]
3016    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3017        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3018    }
3019    #[inline]
3020    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3021        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3022    }
3023    #[inline]
3024    pub fn to_token(&self) -> Option<SyntaxToken> {
3025        support::token(&self.syntax, SyntaxKind::TO_KW)
3026    }
3027    #[inline]
3028    pub fn with_token(&self) -> Option<SyntaxToken> {
3029        support::token(&self.syntax, SyntaxKind::WITH_KW)
3030    }
3031}
3032
3033#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3034pub struct CostFuncOption {
3035    pub(crate) syntax: SyntaxNode,
3036}
3037impl CostFuncOption {
3038    #[inline]
3039    pub fn cost_token(&self) -> Option<SyntaxToken> {
3040        support::token(&self.syntax, SyntaxKind::COST_KW)
3041    }
3042}
3043
3044#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3045pub struct CreateAccessMethod {
3046    pub(crate) syntax: SyntaxNode,
3047}
3048impl CreateAccessMethod {
3049    #[inline]
3050    pub fn handler_clause(&self) -> Option<HandlerClause> {
3051        support::child(&self.syntax)
3052    }
3053    #[inline]
3054    pub fn name(&self) -> Option<Path> {
3055        support::child(&self.syntax)
3056    }
3057    #[inline]
3058    pub fn access_token(&self) -> Option<SyntaxToken> {
3059        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3060    }
3061    #[inline]
3062    pub fn create_token(&self) -> Option<SyntaxToken> {
3063        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3064    }
3065    #[inline]
3066    pub fn index_token(&self) -> Option<SyntaxToken> {
3067        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3068    }
3069    #[inline]
3070    pub fn method_token(&self) -> Option<SyntaxToken> {
3071        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3072    }
3073    #[inline]
3074    pub fn table_token(&self) -> Option<SyntaxToken> {
3075        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3076    }
3077    #[inline]
3078    pub fn type_token(&self) -> Option<SyntaxToken> {
3079        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3080    }
3081}
3082
3083#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3084pub struct CreateAggregate {
3085    pub(crate) syntax: SyntaxNode,
3086}
3087impl CreateAggregate {
3088    #[inline]
3089    pub fn or_replace(&self) -> Option<OrReplace> {
3090        support::child(&self.syntax)
3091    }
3092    #[inline]
3093    pub fn param_list(&self) -> Option<ParamList> {
3094        support::child(&self.syntax)
3095    }
3096    #[inline]
3097    pub fn path(&self) -> Option<Path> {
3098        support::child(&self.syntax)
3099    }
3100    #[inline]
3101    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3102        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3103    }
3104    #[inline]
3105    pub fn create_token(&self) -> Option<SyntaxToken> {
3106        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3107    }
3108}
3109
3110#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3111pub struct CreateCast {
3112    pub(crate) syntax: SyntaxNode,
3113}
3114impl CreateCast {
3115    #[inline]
3116    pub fn cast_sig(&self) -> Option<CastSig> {
3117        support::child(&self.syntax)
3118    }
3119    #[inline]
3120    pub fn function_sig(&self) -> Option<FunctionSig> {
3121        support::child(&self.syntax)
3122    }
3123    #[inline]
3124    pub fn as_token(&self) -> Option<SyntaxToken> {
3125        support::token(&self.syntax, SyntaxKind::AS_KW)
3126    }
3127    #[inline]
3128    pub fn assignment_token(&self) -> Option<SyntaxToken> {
3129        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
3130    }
3131    #[inline]
3132    pub fn cast_token(&self) -> Option<SyntaxToken> {
3133        support::token(&self.syntax, SyntaxKind::CAST_KW)
3134    }
3135    #[inline]
3136    pub fn create_token(&self) -> Option<SyntaxToken> {
3137        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3138    }
3139    #[inline]
3140    pub fn function_token(&self) -> Option<SyntaxToken> {
3141        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3142    }
3143    #[inline]
3144    pub fn implicit_token(&self) -> Option<SyntaxToken> {
3145        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
3146    }
3147    #[inline]
3148    pub fn inout_token(&self) -> Option<SyntaxToken> {
3149        support::token(&self.syntax, SyntaxKind::INOUT_KW)
3150    }
3151    #[inline]
3152    pub fn with_token(&self) -> Option<SyntaxToken> {
3153        support::token(&self.syntax, SyntaxKind::WITH_KW)
3154    }
3155    #[inline]
3156    pub fn without_token(&self) -> Option<SyntaxToken> {
3157        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
3158    }
3159}
3160
3161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3162pub struct CreateCollation {
3163    pub(crate) syntax: SyntaxNode,
3164}
3165impl CreateCollation {
3166    #[inline]
3167    pub fn path(&self) -> Option<Path> {
3168        support::child(&self.syntax)
3169    }
3170    #[inline]
3171    pub fn collation_token(&self) -> Option<SyntaxToken> {
3172        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3173    }
3174    #[inline]
3175    pub fn create_token(&self) -> Option<SyntaxToken> {
3176        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3177    }
3178}
3179
3180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3181pub struct CreateConversion {
3182    pub(crate) syntax: SyntaxNode,
3183}
3184impl CreateConversion {
3185    #[inline]
3186    pub fn literal(&self) -> Option<Literal> {
3187        support::child(&self.syntax)
3188    }
3189    #[inline]
3190    pub fn path(&self) -> Option<Path> {
3191        support::child(&self.syntax)
3192    }
3193    #[inline]
3194    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3195        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3196    }
3197    #[inline]
3198    pub fn create_token(&self) -> Option<SyntaxToken> {
3199        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3200    }
3201    #[inline]
3202    pub fn default_token(&self) -> Option<SyntaxToken> {
3203        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3204    }
3205    #[inline]
3206    pub fn for_token(&self) -> Option<SyntaxToken> {
3207        support::token(&self.syntax, SyntaxKind::FOR_KW)
3208    }
3209    #[inline]
3210    pub fn from_token(&self) -> Option<SyntaxToken> {
3211        support::token(&self.syntax, SyntaxKind::FROM_KW)
3212    }
3213    #[inline]
3214    pub fn to_token(&self) -> Option<SyntaxToken> {
3215        support::token(&self.syntax, SyntaxKind::TO_KW)
3216    }
3217}
3218
3219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3220pub struct CreateDatabase {
3221    pub(crate) syntax: SyntaxNode,
3222}
3223impl CreateDatabase {
3224    #[inline]
3225    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
3226        support::child(&self.syntax)
3227    }
3228    #[inline]
3229    pub fn name(&self) -> Option<Name> {
3230        support::child(&self.syntax)
3231    }
3232    #[inline]
3233    pub fn create_token(&self) -> Option<SyntaxToken> {
3234        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3235    }
3236    #[inline]
3237    pub fn database_token(&self) -> Option<SyntaxToken> {
3238        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3239    }
3240}
3241
3242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3243pub struct CreateDatabaseOption {
3244    pub(crate) syntax: SyntaxNode,
3245}
3246impl CreateDatabaseOption {
3247    #[inline]
3248    pub fn literal(&self) -> Option<Literal> {
3249        support::child(&self.syntax)
3250    }
3251    #[inline]
3252    pub fn eq_token(&self) -> Option<SyntaxToken> {
3253        support::token(&self.syntax, SyntaxKind::EQ)
3254    }
3255    #[inline]
3256    pub fn connection_token(&self) -> Option<SyntaxToken> {
3257        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
3258    }
3259    #[inline]
3260    pub fn default_token(&self) -> Option<SyntaxToken> {
3261        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3262    }
3263    #[inline]
3264    pub fn encoding_token(&self) -> Option<SyntaxToken> {
3265        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
3266    }
3267    #[inline]
3268    pub fn ident_token(&self) -> Option<SyntaxToken> {
3269        support::token(&self.syntax, SyntaxKind::IDENT)
3270    }
3271    #[inline]
3272    pub fn limit_token(&self) -> Option<SyntaxToken> {
3273        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
3274    }
3275    #[inline]
3276    pub fn owner_token(&self) -> Option<SyntaxToken> {
3277        support::token(&self.syntax, SyntaxKind::OWNER_KW)
3278    }
3279    #[inline]
3280    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3281        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3282    }
3283    #[inline]
3284    pub fn template_token(&self) -> Option<SyntaxToken> {
3285        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3286    }
3287}
3288
3289#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3290pub struct CreateDatabaseOptionList {
3291    pub(crate) syntax: SyntaxNode,
3292}
3293impl CreateDatabaseOptionList {
3294    #[inline]
3295    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
3296        support::children(&self.syntax)
3297    }
3298    #[inline]
3299    pub fn with_token(&self) -> Option<SyntaxToken> {
3300        support::token(&self.syntax, SyntaxKind::WITH_KW)
3301    }
3302}
3303
3304#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3305pub struct CreateDomain {
3306    pub(crate) syntax: SyntaxNode,
3307}
3308impl CreateDomain {
3309    #[inline]
3310    pub fn collate(&self) -> Option<Collate> {
3311        support::child(&self.syntax)
3312    }
3313    #[inline]
3314    pub fn constraints(&self) -> AstChildren<Constraint> {
3315        support::children(&self.syntax)
3316    }
3317    #[inline]
3318    pub fn path(&self) -> Option<Path> {
3319        support::child(&self.syntax)
3320    }
3321    #[inline]
3322    pub fn ty(&self) -> Option<Type> {
3323        support::child(&self.syntax)
3324    }
3325    #[inline]
3326    pub fn as_token(&self) -> Option<SyntaxToken> {
3327        support::token(&self.syntax, SyntaxKind::AS_KW)
3328    }
3329    #[inline]
3330    pub fn create_token(&self) -> Option<SyntaxToken> {
3331        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3332    }
3333    #[inline]
3334    pub fn domain_token(&self) -> Option<SyntaxToken> {
3335        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3336    }
3337}
3338
3339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3340pub struct CreateEventTrigger {
3341    pub(crate) syntax: SyntaxNode,
3342}
3343impl CreateEventTrigger {
3344    #[inline]
3345    pub fn call_expr(&self) -> Option<CallExpr> {
3346        support::child(&self.syntax)
3347    }
3348    #[inline]
3349    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
3350        support::child(&self.syntax)
3351    }
3352    #[inline]
3353    pub fn name(&self) -> Option<Name> {
3354        support::child(&self.syntax)
3355    }
3356    #[inline]
3357    pub fn name_ref(&self) -> Option<NameRef> {
3358        support::child(&self.syntax)
3359    }
3360    #[inline]
3361    pub fn create_token(&self) -> Option<SyntaxToken> {
3362        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3363    }
3364    #[inline]
3365    pub fn event_token(&self) -> Option<SyntaxToken> {
3366        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3367    }
3368    #[inline]
3369    pub fn execute_token(&self) -> Option<SyntaxToken> {
3370        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
3371    }
3372    #[inline]
3373    pub fn function_token(&self) -> Option<SyntaxToken> {
3374        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3375    }
3376    #[inline]
3377    pub fn on_token(&self) -> Option<SyntaxToken> {
3378        support::token(&self.syntax, SyntaxKind::ON_KW)
3379    }
3380    #[inline]
3381    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3382        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3383    }
3384    #[inline]
3385    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3386        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3387    }
3388}
3389
3390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3391pub struct CreateExtension {
3392    pub(crate) syntax: SyntaxNode,
3393}
3394impl CreateExtension {
3395    #[inline]
3396    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3397        support::child(&self.syntax)
3398    }
3399    #[inline]
3400    pub fn name(&self) -> Option<Name> {
3401        support::child(&self.syntax)
3402    }
3403    #[inline]
3404    pub fn create_token(&self) -> Option<SyntaxToken> {
3405        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3406    }
3407    #[inline]
3408    pub fn extension_token(&self) -> Option<SyntaxToken> {
3409        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3410    }
3411}
3412
3413#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3414pub struct CreateForeignDataWrapper {
3415    pub(crate) syntax: SyntaxNode,
3416}
3417impl CreateForeignDataWrapper {
3418    #[inline]
3419    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3420        support::child(&self.syntax)
3421    }
3422    #[inline]
3423    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
3424        support::child(&self.syntax)
3425    }
3426    #[inline]
3427    pub fn name(&self) -> Option<Name> {
3428        support::child(&self.syntax)
3429    }
3430    #[inline]
3431    pub fn create_token(&self) -> Option<SyntaxToken> {
3432        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3433    }
3434    #[inline]
3435    pub fn data_token(&self) -> Option<SyntaxToken> {
3436        support::token(&self.syntax, SyntaxKind::DATA_KW)
3437    }
3438    #[inline]
3439    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3440        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3441    }
3442    #[inline]
3443    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3444        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3445    }
3446}
3447
3448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3449pub struct CreateForeignTable {
3450    pub(crate) syntax: SyntaxNode,
3451}
3452impl CreateForeignTable {
3453    #[inline]
3454    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3455        support::child(&self.syntax)
3456    }
3457    #[inline]
3458    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3459        support::child(&self.syntax)
3460    }
3461    #[inline]
3462    pub fn inherits(&self) -> Option<Inherits> {
3463        support::child(&self.syntax)
3464    }
3465    #[inline]
3466    pub fn name_ref(&self) -> Option<NameRef> {
3467        support::child(&self.syntax)
3468    }
3469    #[inline]
3470    pub fn partition_of(&self) -> Option<PartitionOf> {
3471        support::child(&self.syntax)
3472    }
3473    #[inline]
3474    pub fn partition_type(&self) -> Option<PartitionType> {
3475        support::child(&self.syntax)
3476    }
3477    #[inline]
3478    pub fn path(&self) -> Option<Path> {
3479        support::child(&self.syntax)
3480    }
3481    #[inline]
3482    pub fn table_arg_list(&self) -> Option<TableArgList> {
3483        support::child(&self.syntax)
3484    }
3485    #[inline]
3486    pub fn create_token(&self) -> Option<SyntaxToken> {
3487        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3488    }
3489    #[inline]
3490    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3491        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3492    }
3493    #[inline]
3494    pub fn server_token(&self) -> Option<SyntaxToken> {
3495        support::token(&self.syntax, SyntaxKind::SERVER_KW)
3496    }
3497    #[inline]
3498    pub fn table_token(&self) -> Option<SyntaxToken> {
3499        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3500    }
3501}
3502
3503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3504pub struct CreateFunction {
3505    pub(crate) syntax: SyntaxNode,
3506}
3507impl CreateFunction {
3508    #[inline]
3509    pub fn option_list(&self) -> Option<FuncOptionList> {
3510        support::child(&self.syntax)
3511    }
3512    #[inline]
3513    pub fn or_replace(&self) -> Option<OrReplace> {
3514        support::child(&self.syntax)
3515    }
3516    #[inline]
3517    pub fn param_list(&self) -> Option<ParamList> {
3518        support::child(&self.syntax)
3519    }
3520    #[inline]
3521    pub fn path(&self) -> Option<Path> {
3522        support::child(&self.syntax)
3523    }
3524    #[inline]
3525    pub fn ret_type(&self) -> Option<RetType> {
3526        support::child(&self.syntax)
3527    }
3528    #[inline]
3529    pub fn create_token(&self) -> Option<SyntaxToken> {
3530        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3531    }
3532    #[inline]
3533    pub fn function_token(&self) -> Option<SyntaxToken> {
3534        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3535    }
3536}
3537
3538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3539pub struct CreateGroup {
3540    pub(crate) syntax: SyntaxNode,
3541}
3542impl CreateGroup {
3543    #[inline]
3544    pub fn name(&self) -> Option<Name> {
3545        support::child(&self.syntax)
3546    }
3547    #[inline]
3548    pub fn role_option_list(&self) -> Option<RoleOptionList> {
3549        support::child(&self.syntax)
3550    }
3551    #[inline]
3552    pub fn create_token(&self) -> Option<SyntaxToken> {
3553        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3554    }
3555    #[inline]
3556    pub fn group_token(&self) -> Option<SyntaxToken> {
3557        support::token(&self.syntax, SyntaxKind::GROUP_KW)
3558    }
3559}
3560
3561#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3562pub struct CreateIndex {
3563    pub(crate) syntax: SyntaxNode,
3564}
3565impl CreateIndex {
3566    #[inline]
3567    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
3568        support::child(&self.syntax)
3569    }
3570    #[inline]
3571    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3572        support::child(&self.syntax)
3573    }
3574    #[inline]
3575    pub fn name(&self) -> Option<Name> {
3576        support::child(&self.syntax)
3577    }
3578    #[inline]
3579    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
3580        support::child(&self.syntax)
3581    }
3582    #[inline]
3583    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
3584        support::child(&self.syntax)
3585    }
3586    #[inline]
3587    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
3588        support::child(&self.syntax)
3589    }
3590    #[inline]
3591    pub fn relation_name(&self) -> Option<RelationName> {
3592        support::child(&self.syntax)
3593    }
3594    #[inline]
3595    pub fn tablespace(&self) -> Option<Tablespace> {
3596        support::child(&self.syntax)
3597    }
3598    #[inline]
3599    pub fn using_method(&self) -> Option<UsingMethod> {
3600        support::child(&self.syntax)
3601    }
3602    #[inline]
3603    pub fn where_clause(&self) -> Option<WhereClause> {
3604        support::child(&self.syntax)
3605    }
3606    #[inline]
3607    pub fn with_params(&self) -> Option<WithParams> {
3608        support::child(&self.syntax)
3609    }
3610    #[inline]
3611    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
3612        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
3613    }
3614    #[inline]
3615    pub fn create_token(&self) -> Option<SyntaxToken> {
3616        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3617    }
3618    #[inline]
3619    pub fn index_token(&self) -> Option<SyntaxToken> {
3620        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3621    }
3622    #[inline]
3623    pub fn on_token(&self) -> Option<SyntaxToken> {
3624        support::token(&self.syntax, SyntaxKind::ON_KW)
3625    }
3626    #[inline]
3627    pub fn unique_token(&self) -> Option<SyntaxToken> {
3628        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
3629    }
3630}
3631
3632#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3633pub struct CreateLanguage {
3634    pub(crate) syntax: SyntaxNode,
3635}
3636impl CreateLanguage {
3637    #[inline]
3638    pub fn name(&self) -> Option<Name> {
3639        support::child(&self.syntax)
3640    }
3641    #[inline]
3642    pub fn or_replace(&self) -> Option<OrReplace> {
3643        support::child(&self.syntax)
3644    }
3645    #[inline]
3646    pub fn path(&self) -> Option<Path> {
3647        support::child(&self.syntax)
3648    }
3649    #[inline]
3650    pub fn create_token(&self) -> Option<SyntaxToken> {
3651        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3652    }
3653    #[inline]
3654    pub fn handler_token(&self) -> Option<SyntaxToken> {
3655        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
3656    }
3657    #[inline]
3658    pub fn inline_token(&self) -> Option<SyntaxToken> {
3659        support::token(&self.syntax, SyntaxKind::INLINE_KW)
3660    }
3661    #[inline]
3662    pub fn language_token(&self) -> Option<SyntaxToken> {
3663        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3664    }
3665    #[inline]
3666    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3667        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3668    }
3669    #[inline]
3670    pub fn trusted_token(&self) -> Option<SyntaxToken> {
3671        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
3672    }
3673    #[inline]
3674    pub fn validator_token(&self) -> Option<SyntaxToken> {
3675        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
3676    }
3677}
3678
3679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3680pub struct CreateMaterializedView {
3681    pub(crate) syntax: SyntaxNode,
3682}
3683impl CreateMaterializedView {
3684    #[inline]
3685    pub fn column_list(&self) -> Option<ColumnList> {
3686        support::child(&self.syntax)
3687    }
3688    #[inline]
3689    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3690        support::child(&self.syntax)
3691    }
3692    #[inline]
3693    pub fn path(&self) -> Option<Path> {
3694        support::child(&self.syntax)
3695    }
3696    #[inline]
3697    pub fn query(&self) -> Option<SelectVariant> {
3698        support::child(&self.syntax)
3699    }
3700    #[inline]
3701    pub fn tablespace(&self) -> Option<Tablespace> {
3702        support::child(&self.syntax)
3703    }
3704    #[inline]
3705    pub fn using_method(&self) -> Option<UsingMethod> {
3706        support::child(&self.syntax)
3707    }
3708    #[inline]
3709    pub fn with_data(&self) -> Option<WithData> {
3710        support::child(&self.syntax)
3711    }
3712    #[inline]
3713    pub fn with_no_data(&self) -> Option<WithNoData> {
3714        support::child(&self.syntax)
3715    }
3716    #[inline]
3717    pub fn with_params(&self) -> Option<WithParams> {
3718        support::child(&self.syntax)
3719    }
3720    #[inline]
3721    pub fn as_token(&self) -> Option<SyntaxToken> {
3722        support::token(&self.syntax, SyntaxKind::AS_KW)
3723    }
3724    #[inline]
3725    pub fn create_token(&self) -> Option<SyntaxToken> {
3726        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3727    }
3728    #[inline]
3729    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3730        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3731    }
3732    #[inline]
3733    pub fn view_token(&self) -> Option<SyntaxToken> {
3734        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3735    }
3736}
3737
3738#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3739pub struct CreateOperator {
3740    pub(crate) syntax: SyntaxNode,
3741}
3742impl CreateOperator {
3743    #[inline]
3744    pub fn attribute_list(&self) -> Option<AttributeList> {
3745        support::child(&self.syntax)
3746    }
3747    #[inline]
3748    pub fn op(&self) -> Option<Op> {
3749        support::child(&self.syntax)
3750    }
3751    #[inline]
3752    pub fn path(&self) -> Option<Path> {
3753        support::child(&self.syntax)
3754    }
3755    #[inline]
3756    pub fn create_token(&self) -> Option<SyntaxToken> {
3757        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3758    }
3759    #[inline]
3760    pub fn operator_token(&self) -> Option<SyntaxToken> {
3761        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3762    }
3763}
3764
3765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3766pub struct CreateOperatorClass {
3767    pub(crate) syntax: SyntaxNode,
3768}
3769impl CreateOperatorClass {
3770    #[inline]
3771    pub fn name_ref(&self) -> Option<NameRef> {
3772        support::child(&self.syntax)
3773    }
3774    #[inline]
3775    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
3776        support::child(&self.syntax)
3777    }
3778    #[inline]
3779    pub fn path(&self) -> Option<Path> {
3780        support::child(&self.syntax)
3781    }
3782    #[inline]
3783    pub fn ty(&self) -> Option<Type> {
3784        support::child(&self.syntax)
3785    }
3786    #[inline]
3787    pub fn as_token(&self) -> Option<SyntaxToken> {
3788        support::token(&self.syntax, SyntaxKind::AS_KW)
3789    }
3790    #[inline]
3791    pub fn class_token(&self) -> Option<SyntaxToken> {
3792        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3793    }
3794    #[inline]
3795    pub fn create_token(&self) -> Option<SyntaxToken> {
3796        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3797    }
3798    #[inline]
3799    pub fn default_token(&self) -> Option<SyntaxToken> {
3800        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3801    }
3802    #[inline]
3803    pub fn family_token(&self) -> Option<SyntaxToken> {
3804        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3805    }
3806    #[inline]
3807    pub fn for_token(&self) -> Option<SyntaxToken> {
3808        support::token(&self.syntax, SyntaxKind::FOR_KW)
3809    }
3810    #[inline]
3811    pub fn operator_token(&self) -> Option<SyntaxToken> {
3812        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3813    }
3814    #[inline]
3815    pub fn type_token(&self) -> Option<SyntaxToken> {
3816        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3817    }
3818    #[inline]
3819    pub fn using_token(&self) -> Option<SyntaxToken> {
3820        support::token(&self.syntax, SyntaxKind::USING_KW)
3821    }
3822}
3823
3824#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3825pub struct CreateOperatorFamily {
3826    pub(crate) syntax: SyntaxNode,
3827}
3828impl CreateOperatorFamily {
3829    #[inline]
3830    pub fn name_ref(&self) -> Option<NameRef> {
3831        support::child(&self.syntax)
3832    }
3833    #[inline]
3834    pub fn path(&self) -> Option<Path> {
3835        support::child(&self.syntax)
3836    }
3837    #[inline]
3838    pub fn create_token(&self) -> Option<SyntaxToken> {
3839        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3840    }
3841    #[inline]
3842    pub fn family_token(&self) -> Option<SyntaxToken> {
3843        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3844    }
3845    #[inline]
3846    pub fn operator_token(&self) -> Option<SyntaxToken> {
3847        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3848    }
3849    #[inline]
3850    pub fn using_token(&self) -> Option<SyntaxToken> {
3851        support::token(&self.syntax, SyntaxKind::USING_KW)
3852    }
3853}
3854
3855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3856pub struct CreatePolicy {
3857    pub(crate) syntax: SyntaxNode,
3858}
3859impl CreatePolicy {
3860    #[inline]
3861    pub fn expr(&self) -> Option<Expr> {
3862        support::child(&self.syntax)
3863    }
3864    #[inline]
3865    pub fn name(&self) -> Option<Name> {
3866        support::child(&self.syntax)
3867    }
3868    #[inline]
3869    pub fn on_table(&self) -> Option<OnTable> {
3870        support::child(&self.syntax)
3871    }
3872    #[inline]
3873    pub fn role_list(&self) -> Option<RoleList> {
3874        support::child(&self.syntax)
3875    }
3876    #[inline]
3877    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3878        support::token(&self.syntax, SyntaxKind::L_PAREN)
3879    }
3880    #[inline]
3881    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3882        support::token(&self.syntax, SyntaxKind::R_PAREN)
3883    }
3884    #[inline]
3885    pub fn all_token(&self) -> Option<SyntaxToken> {
3886        support::token(&self.syntax, SyntaxKind::ALL_KW)
3887    }
3888    #[inline]
3889    pub fn as_token(&self) -> Option<SyntaxToken> {
3890        support::token(&self.syntax, SyntaxKind::AS_KW)
3891    }
3892    #[inline]
3893    pub fn check_token(&self) -> Option<SyntaxToken> {
3894        support::token(&self.syntax, SyntaxKind::CHECK_KW)
3895    }
3896    #[inline]
3897    pub fn create_token(&self) -> Option<SyntaxToken> {
3898        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3899    }
3900    #[inline]
3901    pub fn delete_token(&self) -> Option<SyntaxToken> {
3902        support::token(&self.syntax, SyntaxKind::DELETE_KW)
3903    }
3904    #[inline]
3905    pub fn for_token(&self) -> Option<SyntaxToken> {
3906        support::token(&self.syntax, SyntaxKind::FOR_KW)
3907    }
3908    #[inline]
3909    pub fn ident_token(&self) -> Option<SyntaxToken> {
3910        support::token(&self.syntax, SyntaxKind::IDENT)
3911    }
3912    #[inline]
3913    pub fn insert_token(&self) -> Option<SyntaxToken> {
3914        support::token(&self.syntax, SyntaxKind::INSERT_KW)
3915    }
3916    #[inline]
3917    pub fn policy_token(&self) -> Option<SyntaxToken> {
3918        support::token(&self.syntax, SyntaxKind::POLICY_KW)
3919    }
3920    #[inline]
3921    pub fn select_token(&self) -> Option<SyntaxToken> {
3922        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3923    }
3924    #[inline]
3925    pub fn to_token(&self) -> Option<SyntaxToken> {
3926        support::token(&self.syntax, SyntaxKind::TO_KW)
3927    }
3928    #[inline]
3929    pub fn update_token(&self) -> Option<SyntaxToken> {
3930        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3931    }
3932    #[inline]
3933    pub fn using_token(&self) -> Option<SyntaxToken> {
3934        support::token(&self.syntax, SyntaxKind::USING_KW)
3935    }
3936    #[inline]
3937    pub fn with_token(&self) -> Option<SyntaxToken> {
3938        support::token(&self.syntax, SyntaxKind::WITH_KW)
3939    }
3940}
3941
3942#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3943pub struct CreateProcedure {
3944    pub(crate) syntax: SyntaxNode,
3945}
3946impl CreateProcedure {
3947    #[inline]
3948    pub fn option_list(&self) -> Option<FuncOptionList> {
3949        support::child(&self.syntax)
3950    }
3951    #[inline]
3952    pub fn or_replace(&self) -> Option<OrReplace> {
3953        support::child(&self.syntax)
3954    }
3955    #[inline]
3956    pub fn param_list(&self) -> Option<ParamList> {
3957        support::child(&self.syntax)
3958    }
3959    #[inline]
3960    pub fn path(&self) -> Option<Path> {
3961        support::child(&self.syntax)
3962    }
3963    #[inline]
3964    pub fn create_token(&self) -> Option<SyntaxToken> {
3965        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3966    }
3967    #[inline]
3968    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3969        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3970    }
3971}
3972
3973#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3974pub struct CreatePublication {
3975    pub(crate) syntax: SyntaxNode,
3976}
3977impl CreatePublication {
3978    #[inline]
3979    pub fn name(&self) -> Option<Name> {
3980        support::child(&self.syntax)
3981    }
3982    #[inline]
3983    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
3984        support::children(&self.syntax)
3985    }
3986    #[inline]
3987    pub fn with_params(&self) -> Option<WithParams> {
3988        support::child(&self.syntax)
3989    }
3990    #[inline]
3991    pub fn all_token(&self) -> Option<SyntaxToken> {
3992        support::token(&self.syntax, SyntaxKind::ALL_KW)
3993    }
3994    #[inline]
3995    pub fn create_token(&self) -> Option<SyntaxToken> {
3996        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3997    }
3998    #[inline]
3999    pub fn for_token(&self) -> Option<SyntaxToken> {
4000        support::token(&self.syntax, SyntaxKind::FOR_KW)
4001    }
4002    #[inline]
4003    pub fn publication_token(&self) -> Option<SyntaxToken> {
4004        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4005    }
4006    #[inline]
4007    pub fn tables_token(&self) -> Option<SyntaxToken> {
4008        support::token(&self.syntax, SyntaxKind::TABLES_KW)
4009    }
4010}
4011
4012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4013pub struct CreateRole {
4014    pub(crate) syntax: SyntaxNode,
4015}
4016impl CreateRole {
4017    #[inline]
4018    pub fn name(&self) -> Option<Name> {
4019        support::child(&self.syntax)
4020    }
4021    #[inline]
4022    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4023        support::child(&self.syntax)
4024    }
4025    #[inline]
4026    pub fn create_token(&self) -> Option<SyntaxToken> {
4027        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4028    }
4029    #[inline]
4030    pub fn role_token(&self) -> Option<SyntaxToken> {
4031        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4032    }
4033}
4034
4035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4036pub struct CreateRule {
4037    pub(crate) syntax: SyntaxNode,
4038}
4039impl CreateRule {
4040    #[inline]
4041    pub fn name(&self) -> Option<Name> {
4042        support::child(&self.syntax)
4043    }
4044    #[inline]
4045    pub fn or_replace(&self) -> Option<OrReplace> {
4046        support::child(&self.syntax)
4047    }
4048    #[inline]
4049    pub fn path(&self) -> Option<Path> {
4050        support::child(&self.syntax)
4051    }
4052    #[inline]
4053    pub fn stmt(&self) -> Option<Stmt> {
4054        support::child(&self.syntax)
4055    }
4056    #[inline]
4057    pub fn stmts(&self) -> AstChildren<Stmt> {
4058        support::children(&self.syntax)
4059    }
4060    #[inline]
4061    pub fn where_clause(&self) -> Option<WhereClause> {
4062        support::child(&self.syntax)
4063    }
4064    #[inline]
4065    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4066        support::token(&self.syntax, SyntaxKind::L_PAREN)
4067    }
4068    #[inline]
4069    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4070        support::token(&self.syntax, SyntaxKind::R_PAREN)
4071    }
4072    #[inline]
4073    pub fn also_token(&self) -> Option<SyntaxToken> {
4074        support::token(&self.syntax, SyntaxKind::ALSO_KW)
4075    }
4076    #[inline]
4077    pub fn as_token(&self) -> Option<SyntaxToken> {
4078        support::token(&self.syntax, SyntaxKind::AS_KW)
4079    }
4080    #[inline]
4081    pub fn create_token(&self) -> Option<SyntaxToken> {
4082        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4083    }
4084    #[inline]
4085    pub fn delete_token(&self) -> Option<SyntaxToken> {
4086        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4087    }
4088    #[inline]
4089    pub fn do_token(&self) -> Option<SyntaxToken> {
4090        support::token(&self.syntax, SyntaxKind::DO_KW)
4091    }
4092    #[inline]
4093    pub fn ident_token(&self) -> Option<SyntaxToken> {
4094        support::token(&self.syntax, SyntaxKind::IDENT)
4095    }
4096    #[inline]
4097    pub fn insert_token(&self) -> Option<SyntaxToken> {
4098        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4099    }
4100    #[inline]
4101    pub fn instead_token(&self) -> Option<SyntaxToken> {
4102        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
4103    }
4104    #[inline]
4105    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4106        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4107    }
4108    #[inline]
4109    pub fn on_token(&self) -> Option<SyntaxToken> {
4110        support::token(&self.syntax, SyntaxKind::ON_KW)
4111    }
4112    #[inline]
4113    pub fn rule_token(&self) -> Option<SyntaxToken> {
4114        support::token(&self.syntax, SyntaxKind::RULE_KW)
4115    }
4116    #[inline]
4117    pub fn select_token(&self) -> Option<SyntaxToken> {
4118        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4119    }
4120    #[inline]
4121    pub fn to_token(&self) -> Option<SyntaxToken> {
4122        support::token(&self.syntax, SyntaxKind::TO_KW)
4123    }
4124    #[inline]
4125    pub fn update_token(&self) -> Option<SyntaxToken> {
4126        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4127    }
4128}
4129
4130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4131pub struct CreateSchema {
4132    pub(crate) syntax: SyntaxNode,
4133}
4134impl CreateSchema {
4135    #[inline]
4136    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4137        support::child(&self.syntax)
4138    }
4139    #[inline]
4140    pub fn name(&self) -> Option<Name> {
4141        support::child(&self.syntax)
4142    }
4143    #[inline]
4144    pub fn schema_authorization(&self) -> Option<SchemaAuthorization> {
4145        support::child(&self.syntax)
4146    }
4147    #[inline]
4148    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
4149        support::children(&self.syntax)
4150    }
4151    #[inline]
4152    pub fn create_token(&self) -> Option<SyntaxToken> {
4153        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4154    }
4155    #[inline]
4156    pub fn schema_token(&self) -> Option<SyntaxToken> {
4157        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4158    }
4159}
4160
4161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4162pub struct CreateSequence {
4163    pub(crate) syntax: SyntaxNode,
4164}
4165impl CreateSequence {
4166    #[inline]
4167    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4168        support::child(&self.syntax)
4169    }
4170    #[inline]
4171    pub fn path(&self) -> Option<Path> {
4172        support::child(&self.syntax)
4173    }
4174    #[inline]
4175    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
4176        support::children(&self.syntax)
4177    }
4178    #[inline]
4179    pub fn create_token(&self) -> Option<SyntaxToken> {
4180        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4181    }
4182    #[inline]
4183    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4184        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4185    }
4186    #[inline]
4187    pub fn temp_token(&self) -> Option<SyntaxToken> {
4188        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4189    }
4190    #[inline]
4191    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4192        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4193    }
4194    #[inline]
4195    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4196        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4197    }
4198}
4199
4200#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4201pub struct CreateServer {
4202    pub(crate) syntax: SyntaxNode,
4203}
4204impl CreateServer {
4205    #[inline]
4206    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4207        support::child(&self.syntax)
4208    }
4209    #[inline]
4210    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4211        support::child(&self.syntax)
4212    }
4213    #[inline]
4214    pub fn literal(&self) -> Option<Literal> {
4215        support::child(&self.syntax)
4216    }
4217    #[inline]
4218    pub fn name(&self) -> Option<Name> {
4219        support::child(&self.syntax)
4220    }
4221    #[inline]
4222    pub fn name_ref(&self) -> Option<NameRef> {
4223        support::child(&self.syntax)
4224    }
4225    #[inline]
4226    pub fn create_token(&self) -> Option<SyntaxToken> {
4227        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4228    }
4229    #[inline]
4230    pub fn data_token(&self) -> Option<SyntaxToken> {
4231        support::token(&self.syntax, SyntaxKind::DATA_KW)
4232    }
4233    #[inline]
4234    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4235        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4236    }
4237    #[inline]
4238    pub fn server_token(&self) -> Option<SyntaxToken> {
4239        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4240    }
4241    #[inline]
4242    pub fn type_token(&self) -> Option<SyntaxToken> {
4243        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4244    }
4245    #[inline]
4246    pub fn version_token(&self) -> Option<SyntaxToken> {
4247        support::token(&self.syntax, SyntaxKind::VERSION_KW)
4248    }
4249    #[inline]
4250    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4251        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4252    }
4253}
4254
4255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4256pub struct CreateStatistics {
4257    pub(crate) syntax: SyntaxNode,
4258}
4259impl CreateStatistics {
4260    #[inline]
4261    pub fn from_table(&self) -> Option<FromTable> {
4262        support::child(&self.syntax)
4263    }
4264    #[inline]
4265    pub fn name_refs(&self) -> AstChildren<NameRef> {
4266        support::children(&self.syntax)
4267    }
4268    #[inline]
4269    pub fn path(&self) -> Option<Path> {
4270        support::child(&self.syntax)
4271    }
4272    #[inline]
4273    pub fn create_token(&self) -> Option<SyntaxToken> {
4274        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4275    }
4276    #[inline]
4277    pub fn on_token(&self) -> Option<SyntaxToken> {
4278        support::token(&self.syntax, SyntaxKind::ON_KW)
4279    }
4280    #[inline]
4281    pub fn statistics_token(&self) -> Option<SyntaxToken> {
4282        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
4283    }
4284}
4285
4286#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4287pub struct CreateSubscription {
4288    pub(crate) syntax: SyntaxNode,
4289}
4290impl CreateSubscription {
4291    #[inline]
4292    pub fn literal(&self) -> Option<Literal> {
4293        support::child(&self.syntax)
4294    }
4295    #[inline]
4296    pub fn name(&self) -> Option<Name> {
4297        support::child(&self.syntax)
4298    }
4299    #[inline]
4300    pub fn name_refs(&self) -> AstChildren<NameRef> {
4301        support::children(&self.syntax)
4302    }
4303    #[inline]
4304    pub fn with_params(&self) -> Option<WithParams> {
4305        support::child(&self.syntax)
4306    }
4307    #[inline]
4308    pub fn connection_token(&self) -> Option<SyntaxToken> {
4309        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
4310    }
4311    #[inline]
4312    pub fn create_token(&self) -> Option<SyntaxToken> {
4313        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4314    }
4315    #[inline]
4316    pub fn publication_token(&self) -> Option<SyntaxToken> {
4317        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4318    }
4319    #[inline]
4320    pub fn subscription_token(&self) -> Option<SyntaxToken> {
4321        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
4322    }
4323}
4324
4325#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4326pub struct CreateTable {
4327    pub(crate) syntax: SyntaxNode,
4328}
4329impl CreateTable {
4330    #[inline]
4331    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4332        support::child(&self.syntax)
4333    }
4334    #[inline]
4335    pub fn inherits(&self) -> Option<Inherits> {
4336        support::child(&self.syntax)
4337    }
4338    #[inline]
4339    pub fn of_type(&self) -> Option<OfType> {
4340        support::child(&self.syntax)
4341    }
4342    #[inline]
4343    pub fn on_commit(&self) -> Option<OnCommit> {
4344        support::child(&self.syntax)
4345    }
4346    #[inline]
4347    pub fn partition_by(&self) -> Option<PartitionBy> {
4348        support::child(&self.syntax)
4349    }
4350    #[inline]
4351    pub fn partition_of(&self) -> Option<PartitionOf> {
4352        support::child(&self.syntax)
4353    }
4354    #[inline]
4355    pub fn path(&self) -> Option<Path> {
4356        support::child(&self.syntax)
4357    }
4358    #[inline]
4359    pub fn table_arg_list(&self) -> Option<TableArgList> {
4360        support::child(&self.syntax)
4361    }
4362    #[inline]
4363    pub fn tablespace(&self) -> Option<Tablespace> {
4364        support::child(&self.syntax)
4365    }
4366    #[inline]
4367    pub fn using_method(&self) -> Option<UsingMethod> {
4368        support::child(&self.syntax)
4369    }
4370    #[inline]
4371    pub fn with_params(&self) -> Option<WithParams> {
4372        support::child(&self.syntax)
4373    }
4374    #[inline]
4375    pub fn without_oids(&self) -> Option<WithoutOids> {
4376        support::child(&self.syntax)
4377    }
4378    #[inline]
4379    pub fn create_token(&self) -> Option<SyntaxToken> {
4380        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4381    }
4382    #[inline]
4383    pub fn global_token(&self) -> Option<SyntaxToken> {
4384        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4385    }
4386    #[inline]
4387    pub fn local_token(&self) -> Option<SyntaxToken> {
4388        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4389    }
4390    #[inline]
4391    pub fn table_token(&self) -> Option<SyntaxToken> {
4392        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4393    }
4394    #[inline]
4395    pub fn temp_token(&self) -> Option<SyntaxToken> {
4396        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4397    }
4398    #[inline]
4399    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4400        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4401    }
4402    #[inline]
4403    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4404        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4405    }
4406}
4407
4408#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4409pub struct CreateTableAs {
4410    pub(crate) syntax: SyntaxNode,
4411}
4412impl CreateTableAs {
4413    #[inline]
4414    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4415        support::child(&self.syntax)
4416    }
4417    #[inline]
4418    pub fn on_commit(&self) -> Option<OnCommit> {
4419        support::child(&self.syntax)
4420    }
4421    #[inline]
4422    pub fn path(&self) -> Option<Path> {
4423        support::child(&self.syntax)
4424    }
4425    #[inline]
4426    pub fn query(&self) -> Option<SelectVariant> {
4427        support::child(&self.syntax)
4428    }
4429    #[inline]
4430    pub fn tablespace(&self) -> Option<Tablespace> {
4431        support::child(&self.syntax)
4432    }
4433    #[inline]
4434    pub fn using_method(&self) -> Option<UsingMethod> {
4435        support::child(&self.syntax)
4436    }
4437    #[inline]
4438    pub fn with_data(&self) -> Option<WithData> {
4439        support::child(&self.syntax)
4440    }
4441    #[inline]
4442    pub fn with_no_data(&self) -> Option<WithNoData> {
4443        support::child(&self.syntax)
4444    }
4445    #[inline]
4446    pub fn with_params(&self) -> Option<WithParams> {
4447        support::child(&self.syntax)
4448    }
4449    #[inline]
4450    pub fn without_oids(&self) -> Option<WithoutOids> {
4451        support::child(&self.syntax)
4452    }
4453    #[inline]
4454    pub fn as_token(&self) -> Option<SyntaxToken> {
4455        support::token(&self.syntax, SyntaxKind::AS_KW)
4456    }
4457    #[inline]
4458    pub fn create_token(&self) -> Option<SyntaxToken> {
4459        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4460    }
4461    #[inline]
4462    pub fn global_token(&self) -> Option<SyntaxToken> {
4463        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4464    }
4465    #[inline]
4466    pub fn local_token(&self) -> Option<SyntaxToken> {
4467        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4468    }
4469    #[inline]
4470    pub fn table_token(&self) -> Option<SyntaxToken> {
4471        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4472    }
4473    #[inline]
4474    pub fn temp_token(&self) -> Option<SyntaxToken> {
4475        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4476    }
4477    #[inline]
4478    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4479        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4480    }
4481    #[inline]
4482    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4483        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4484    }
4485}
4486
4487#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4488pub struct CreateTablespace {
4489    pub(crate) syntax: SyntaxNode,
4490}
4491impl CreateTablespace {
4492    #[inline]
4493    pub fn literal(&self) -> Option<Literal> {
4494        support::child(&self.syntax)
4495    }
4496    #[inline]
4497    pub fn name(&self) -> Option<Name> {
4498        support::child(&self.syntax)
4499    }
4500    #[inline]
4501    pub fn role(&self) -> Option<Role> {
4502        support::child(&self.syntax)
4503    }
4504    #[inline]
4505    pub fn with_params(&self) -> Option<WithParams> {
4506        support::child(&self.syntax)
4507    }
4508    #[inline]
4509    pub fn create_token(&self) -> Option<SyntaxToken> {
4510        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4511    }
4512    #[inline]
4513    pub fn location_token(&self) -> Option<SyntaxToken> {
4514        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
4515    }
4516    #[inline]
4517    pub fn owner_token(&self) -> Option<SyntaxToken> {
4518        support::token(&self.syntax, SyntaxKind::OWNER_KW)
4519    }
4520    #[inline]
4521    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4522        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4523    }
4524}
4525
4526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4527pub struct CreateTextSearchConfiguration {
4528    pub(crate) syntax: SyntaxNode,
4529}
4530impl CreateTextSearchConfiguration {
4531    #[inline]
4532    pub fn attribute_list(&self) -> Option<AttributeList> {
4533        support::child(&self.syntax)
4534    }
4535    #[inline]
4536    pub fn path(&self) -> Option<Path> {
4537        support::child(&self.syntax)
4538    }
4539    #[inline]
4540    pub fn configuration_token(&self) -> Option<SyntaxToken> {
4541        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
4542    }
4543    #[inline]
4544    pub fn create_token(&self) -> Option<SyntaxToken> {
4545        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4546    }
4547    #[inline]
4548    pub fn search_token(&self) -> Option<SyntaxToken> {
4549        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4550    }
4551    #[inline]
4552    pub fn text_token(&self) -> Option<SyntaxToken> {
4553        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4554    }
4555}
4556
4557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4558pub struct CreateTextSearchDictionary {
4559    pub(crate) syntax: SyntaxNode,
4560}
4561impl CreateTextSearchDictionary {
4562    #[inline]
4563    pub fn attribute_list(&self) -> Option<AttributeList> {
4564        support::child(&self.syntax)
4565    }
4566    #[inline]
4567    pub fn path(&self) -> Option<Path> {
4568        support::child(&self.syntax)
4569    }
4570    #[inline]
4571    pub fn create_token(&self) -> Option<SyntaxToken> {
4572        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4573    }
4574    #[inline]
4575    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
4576        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
4577    }
4578    #[inline]
4579    pub fn search_token(&self) -> Option<SyntaxToken> {
4580        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4581    }
4582    #[inline]
4583    pub fn text_token(&self) -> Option<SyntaxToken> {
4584        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4585    }
4586}
4587
4588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4589pub struct CreateTextSearchParser {
4590    pub(crate) syntax: SyntaxNode,
4591}
4592impl CreateTextSearchParser {
4593    #[inline]
4594    pub fn attribute_list(&self) -> Option<AttributeList> {
4595        support::child(&self.syntax)
4596    }
4597    #[inline]
4598    pub fn path(&self) -> Option<Path> {
4599        support::child(&self.syntax)
4600    }
4601    #[inline]
4602    pub fn create_token(&self) -> Option<SyntaxToken> {
4603        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4604    }
4605    #[inline]
4606    pub fn parser_token(&self) -> Option<SyntaxToken> {
4607        support::token(&self.syntax, SyntaxKind::PARSER_KW)
4608    }
4609    #[inline]
4610    pub fn search_token(&self) -> Option<SyntaxToken> {
4611        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4612    }
4613    #[inline]
4614    pub fn text_token(&self) -> Option<SyntaxToken> {
4615        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4616    }
4617}
4618
4619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4620pub struct CreateTextSearchTemplate {
4621    pub(crate) syntax: SyntaxNode,
4622}
4623impl CreateTextSearchTemplate {
4624    #[inline]
4625    pub fn attribute_list(&self) -> Option<AttributeList> {
4626        support::child(&self.syntax)
4627    }
4628    #[inline]
4629    pub fn path(&self) -> Option<Path> {
4630        support::child(&self.syntax)
4631    }
4632    #[inline]
4633    pub fn create_token(&self) -> Option<SyntaxToken> {
4634        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4635    }
4636    #[inline]
4637    pub fn search_token(&self) -> Option<SyntaxToken> {
4638        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4639    }
4640    #[inline]
4641    pub fn template_token(&self) -> Option<SyntaxToken> {
4642        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4643    }
4644    #[inline]
4645    pub fn text_token(&self) -> Option<SyntaxToken> {
4646        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4647    }
4648}
4649
4650#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4651pub struct CreateTransform {
4652    pub(crate) syntax: SyntaxNode,
4653}
4654impl CreateTransform {
4655    #[inline]
4656    pub fn from_func(&self) -> Option<TransformFromFunc> {
4657        support::child(&self.syntax)
4658    }
4659    #[inline]
4660    pub fn language(&self) -> Option<NameRef> {
4661        support::child(&self.syntax)
4662    }
4663    #[inline]
4664    pub fn or_replace(&self) -> Option<OrReplace> {
4665        support::child(&self.syntax)
4666    }
4667    #[inline]
4668    pub fn to_func(&self) -> Option<TransformToFunc> {
4669        support::child(&self.syntax)
4670    }
4671    #[inline]
4672    pub fn ty(&self) -> Option<Type> {
4673        support::child(&self.syntax)
4674    }
4675    #[inline]
4676    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4677        support::token(&self.syntax, SyntaxKind::L_PAREN)
4678    }
4679    #[inline]
4680    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4681        support::token(&self.syntax, SyntaxKind::R_PAREN)
4682    }
4683    #[inline]
4684    pub fn comma_token(&self) -> Option<SyntaxToken> {
4685        support::token(&self.syntax, SyntaxKind::COMMA)
4686    }
4687    #[inline]
4688    pub fn create_token(&self) -> Option<SyntaxToken> {
4689        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4690    }
4691    #[inline]
4692    pub fn for_token(&self) -> Option<SyntaxToken> {
4693        support::token(&self.syntax, SyntaxKind::FOR_KW)
4694    }
4695    #[inline]
4696    pub fn language_token(&self) -> Option<SyntaxToken> {
4697        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4698    }
4699    #[inline]
4700    pub fn transform_token(&self) -> Option<SyntaxToken> {
4701        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
4702    }
4703}
4704
4705#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4706pub struct CreateTrigger {
4707    pub(crate) syntax: SyntaxNode,
4708}
4709impl CreateTrigger {
4710    #[inline]
4711    pub fn call_expr(&self) -> Option<CallExpr> {
4712        support::child(&self.syntax)
4713    }
4714    #[inline]
4715    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
4716        support::child(&self.syntax)
4717    }
4718    #[inline]
4719    pub fn from_table(&self) -> Option<FromTable> {
4720        support::child(&self.syntax)
4721    }
4722    #[inline]
4723    pub fn initially_deferred_constraint_option(
4724        &self,
4725    ) -> Option<InitiallyDeferredConstraintOption> {
4726        support::child(&self.syntax)
4727    }
4728    #[inline]
4729    pub fn initially_immediate_constraint_option(
4730        &self,
4731    ) -> Option<InitiallyImmediateConstraintOption> {
4732        support::child(&self.syntax)
4733    }
4734    #[inline]
4735    pub fn name(&self) -> Option<Name> {
4736        support::child(&self.syntax)
4737    }
4738    #[inline]
4739    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
4740        support::child(&self.syntax)
4741    }
4742    #[inline]
4743    pub fn on_table(&self) -> Option<OnTable> {
4744        support::child(&self.syntax)
4745    }
4746    #[inline]
4747    pub fn or_replace(&self) -> Option<OrReplace> {
4748        support::child(&self.syntax)
4749    }
4750    #[inline]
4751    pub fn referencing(&self) -> Option<Referencing> {
4752        support::child(&self.syntax)
4753    }
4754    #[inline]
4755    pub fn timing(&self) -> Option<Timing> {
4756        support::child(&self.syntax)
4757    }
4758    #[inline]
4759    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
4760        support::child(&self.syntax)
4761    }
4762    #[inline]
4763    pub fn when_condition(&self) -> Option<WhenCondition> {
4764        support::child(&self.syntax)
4765    }
4766    #[inline]
4767    pub fn constraint_token(&self) -> Option<SyntaxToken> {
4768        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
4769    }
4770    #[inline]
4771    pub fn create_token(&self) -> Option<SyntaxToken> {
4772        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4773    }
4774    #[inline]
4775    pub fn each_token(&self) -> Option<SyntaxToken> {
4776        support::token(&self.syntax, SyntaxKind::EACH_KW)
4777    }
4778    #[inline]
4779    pub fn execute_token(&self) -> Option<SyntaxToken> {
4780        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4781    }
4782    #[inline]
4783    pub fn for_token(&self) -> Option<SyntaxToken> {
4784        support::token(&self.syntax, SyntaxKind::FOR_KW)
4785    }
4786    #[inline]
4787    pub fn function_token(&self) -> Option<SyntaxToken> {
4788        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4789    }
4790    #[inline]
4791    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4792        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4793    }
4794    #[inline]
4795    pub fn row_token(&self) -> Option<SyntaxToken> {
4796        support::token(&self.syntax, SyntaxKind::ROW_KW)
4797    }
4798    #[inline]
4799    pub fn statement_token(&self) -> Option<SyntaxToken> {
4800        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
4801    }
4802    #[inline]
4803    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4804        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4805    }
4806}
4807
4808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4809pub struct CreateType {
4810    pub(crate) syntax: SyntaxNode,
4811}
4812impl CreateType {
4813    #[inline]
4814    pub fn attribute_list(&self) -> Option<AttributeList> {
4815        support::child(&self.syntax)
4816    }
4817    #[inline]
4818    pub fn column_list(&self) -> Option<ColumnList> {
4819        support::child(&self.syntax)
4820    }
4821    #[inline]
4822    pub fn path(&self) -> Option<Path> {
4823        support::child(&self.syntax)
4824    }
4825    #[inline]
4826    pub fn variant_list(&self) -> Option<VariantList> {
4827        support::child(&self.syntax)
4828    }
4829    #[inline]
4830    pub fn as_token(&self) -> Option<SyntaxToken> {
4831        support::token(&self.syntax, SyntaxKind::AS_KW)
4832    }
4833    #[inline]
4834    pub fn create_token(&self) -> Option<SyntaxToken> {
4835        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4836    }
4837    #[inline]
4838    pub fn enum_token(&self) -> Option<SyntaxToken> {
4839        support::token(&self.syntax, SyntaxKind::ENUM_KW)
4840    }
4841    #[inline]
4842    pub fn range_token(&self) -> Option<SyntaxToken> {
4843        support::token(&self.syntax, SyntaxKind::RANGE_KW)
4844    }
4845    #[inline]
4846    pub fn type_token(&self) -> Option<SyntaxToken> {
4847        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4848    }
4849}
4850
4851#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4852pub struct CreateUser {
4853    pub(crate) syntax: SyntaxNode,
4854}
4855impl CreateUser {
4856    #[inline]
4857    pub fn name(&self) -> Option<Name> {
4858        support::child(&self.syntax)
4859    }
4860    #[inline]
4861    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4862        support::child(&self.syntax)
4863    }
4864    #[inline]
4865    pub fn create_token(&self) -> Option<SyntaxToken> {
4866        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4867    }
4868    #[inline]
4869    pub fn user_token(&self) -> Option<SyntaxToken> {
4870        support::token(&self.syntax, SyntaxKind::USER_KW)
4871    }
4872}
4873
4874#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4875pub struct CreateUserMapping {
4876    pub(crate) syntax: SyntaxNode,
4877}
4878impl CreateUserMapping {
4879    #[inline]
4880    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4881        support::child(&self.syntax)
4882    }
4883    #[inline]
4884    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4885        support::child(&self.syntax)
4886    }
4887    #[inline]
4888    pub fn name_ref(&self) -> Option<NameRef> {
4889        support::child(&self.syntax)
4890    }
4891    #[inline]
4892    pub fn role(&self) -> Option<Role> {
4893        support::child(&self.syntax)
4894    }
4895    #[inline]
4896    pub fn create_token(&self) -> Option<SyntaxToken> {
4897        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4898    }
4899    #[inline]
4900    pub fn for_token(&self) -> Option<SyntaxToken> {
4901        support::token(&self.syntax, SyntaxKind::FOR_KW)
4902    }
4903    #[inline]
4904    pub fn mapping_token(&self) -> Option<SyntaxToken> {
4905        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
4906    }
4907    #[inline]
4908    pub fn server_token(&self) -> Option<SyntaxToken> {
4909        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4910    }
4911    #[inline]
4912    pub fn user_token(&self) -> Option<SyntaxToken> {
4913        support::token(&self.syntax, SyntaxKind::USER_KW)
4914    }
4915}
4916
4917#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4918pub struct CreateView {
4919    pub(crate) syntax: SyntaxNode,
4920}
4921impl CreateView {
4922    #[inline]
4923    pub fn column_list(&self) -> Option<ColumnList> {
4924        support::child(&self.syntax)
4925    }
4926    #[inline]
4927    pub fn or_replace(&self) -> Option<OrReplace> {
4928        support::child(&self.syntax)
4929    }
4930    #[inline]
4931    pub fn path(&self) -> Option<Path> {
4932        support::child(&self.syntax)
4933    }
4934    #[inline]
4935    pub fn query(&self) -> Option<SelectVariant> {
4936        support::child(&self.syntax)
4937    }
4938    #[inline]
4939    pub fn with_params(&self) -> Option<WithParams> {
4940        support::child(&self.syntax)
4941    }
4942    #[inline]
4943    pub fn as_token(&self) -> Option<SyntaxToken> {
4944        support::token(&self.syntax, SyntaxKind::AS_KW)
4945    }
4946    #[inline]
4947    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
4948        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
4949    }
4950    #[inline]
4951    pub fn check_token(&self) -> Option<SyntaxToken> {
4952        support::token(&self.syntax, SyntaxKind::CHECK_KW)
4953    }
4954    #[inline]
4955    pub fn create_token(&self) -> Option<SyntaxToken> {
4956        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4957    }
4958    #[inline]
4959    pub fn local_token(&self) -> Option<SyntaxToken> {
4960        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4961    }
4962    #[inline]
4963    pub fn option_token(&self) -> Option<SyntaxToken> {
4964        support::token(&self.syntax, SyntaxKind::OPTION_KW)
4965    }
4966    #[inline]
4967    pub fn recursive_token(&self) -> Option<SyntaxToken> {
4968        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
4969    }
4970    #[inline]
4971    pub fn temp_token(&self) -> Option<SyntaxToken> {
4972        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4973    }
4974    #[inline]
4975    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4976        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4977    }
4978    #[inline]
4979    pub fn view_token(&self) -> Option<SyntaxToken> {
4980        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4981    }
4982    #[inline]
4983    pub fn with_token(&self) -> Option<SyntaxToken> {
4984        support::token(&self.syntax, SyntaxKind::WITH_KW)
4985    }
4986}
4987
4988#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4989pub struct CustomOp {
4990    pub(crate) syntax: SyntaxNode,
4991}
4992impl CustomOp {
4993    #[inline]
4994    pub fn bang_token(&self) -> Option<SyntaxToken> {
4995        support::token(&self.syntax, SyntaxKind::BANG)
4996    }
4997    #[inline]
4998    pub fn pound_token(&self) -> Option<SyntaxToken> {
4999        support::token(&self.syntax, SyntaxKind::POUND)
5000    }
5001    #[inline]
5002    pub fn percent_token(&self) -> Option<SyntaxToken> {
5003        support::token(&self.syntax, SyntaxKind::PERCENT)
5004    }
5005    #[inline]
5006    pub fn amp_token(&self) -> Option<SyntaxToken> {
5007        support::token(&self.syntax, SyntaxKind::AMP)
5008    }
5009    #[inline]
5010    pub fn star_token(&self) -> Option<SyntaxToken> {
5011        support::token(&self.syntax, SyntaxKind::STAR)
5012    }
5013    #[inline]
5014    pub fn plus_token(&self) -> Option<SyntaxToken> {
5015        support::token(&self.syntax, SyntaxKind::PLUS)
5016    }
5017    #[inline]
5018    pub fn minus_token(&self) -> Option<SyntaxToken> {
5019        support::token(&self.syntax, SyntaxKind::MINUS)
5020    }
5021    #[inline]
5022    pub fn slash_token(&self) -> Option<SyntaxToken> {
5023        support::token(&self.syntax, SyntaxKind::SLASH)
5024    }
5025    #[inline]
5026    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
5027        support::token(&self.syntax, SyntaxKind::L_ANGLE)
5028    }
5029    #[inline]
5030    pub fn eq_token(&self) -> Option<SyntaxToken> {
5031        support::token(&self.syntax, SyntaxKind::EQ)
5032    }
5033    #[inline]
5034    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5035        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5036    }
5037    #[inline]
5038    pub fn question_token(&self) -> Option<SyntaxToken> {
5039        support::token(&self.syntax, SyntaxKind::QUESTION)
5040    }
5041    #[inline]
5042    pub fn at_token(&self) -> Option<SyntaxToken> {
5043        support::token(&self.syntax, SyntaxKind::AT)
5044    }
5045    #[inline]
5046    pub fn caret_token(&self) -> Option<SyntaxToken> {
5047        support::token(&self.syntax, SyntaxKind::CARET)
5048    }
5049    #[inline]
5050    pub fn backtick_token(&self) -> Option<SyntaxToken> {
5051        support::token(&self.syntax, SyntaxKind::BACKTICK)
5052    }
5053    #[inline]
5054    pub fn pipe_token(&self) -> Option<SyntaxToken> {
5055        support::token(&self.syntax, SyntaxKind::PIPE)
5056    }
5057    #[inline]
5058    pub fn tilde_token(&self) -> Option<SyntaxToken> {
5059        support::token(&self.syntax, SyntaxKind::TILDE)
5060    }
5061}
5062
5063#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5064pub struct Deallocate {
5065    pub(crate) syntax: SyntaxNode,
5066}
5067impl Deallocate {
5068    #[inline]
5069    pub fn name_ref(&self) -> Option<NameRef> {
5070        support::child(&self.syntax)
5071    }
5072    #[inline]
5073    pub fn all_token(&self) -> Option<SyntaxToken> {
5074        support::token(&self.syntax, SyntaxKind::ALL_KW)
5075    }
5076    #[inline]
5077    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
5078        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
5079    }
5080    #[inline]
5081    pub fn prepare_token(&self) -> Option<SyntaxToken> {
5082        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
5083    }
5084}
5085
5086#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5087pub struct Declare {
5088    pub(crate) syntax: SyntaxNode,
5089}
5090impl Declare {
5091    #[inline]
5092    pub fn name(&self) -> Option<Name> {
5093        support::child(&self.syntax)
5094    }
5095    #[inline]
5096    pub fn query(&self) -> Option<SelectVariant> {
5097        support::child(&self.syntax)
5098    }
5099    #[inline]
5100    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
5101        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
5102    }
5103    #[inline]
5104    pub fn binary_token(&self) -> Option<SyntaxToken> {
5105        support::token(&self.syntax, SyntaxKind::BINARY_KW)
5106    }
5107    #[inline]
5108    pub fn cursor_token(&self) -> Option<SyntaxToken> {
5109        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
5110    }
5111    #[inline]
5112    pub fn declare_token(&self) -> Option<SyntaxToken> {
5113        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
5114    }
5115    #[inline]
5116    pub fn for_token(&self) -> Option<SyntaxToken> {
5117        support::token(&self.syntax, SyntaxKind::FOR_KW)
5118    }
5119    #[inline]
5120    pub fn hold_token(&self) -> Option<SyntaxToken> {
5121        support::token(&self.syntax, SyntaxKind::HOLD_KW)
5122    }
5123    #[inline]
5124    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
5125        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
5126    }
5127    #[inline]
5128    pub fn no_token(&self) -> Option<SyntaxToken> {
5129        support::token(&self.syntax, SyntaxKind::NO_KW)
5130    }
5131    #[inline]
5132    pub fn scroll_token(&self) -> Option<SyntaxToken> {
5133        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
5134    }
5135    #[inline]
5136    pub fn with_token(&self) -> Option<SyntaxToken> {
5137        support::token(&self.syntax, SyntaxKind::WITH_KW)
5138    }
5139    #[inline]
5140    pub fn without_token(&self) -> Option<SyntaxToken> {
5141        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5142    }
5143}
5144
5145#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5146pub struct DefaultConstraint {
5147    pub(crate) syntax: SyntaxNode,
5148}
5149impl DefaultConstraint {
5150    #[inline]
5151    pub fn expr(&self) -> Option<Expr> {
5152        support::child(&self.syntax)
5153    }
5154    #[inline]
5155    pub fn name_ref(&self) -> Option<NameRef> {
5156        support::child(&self.syntax)
5157    }
5158    #[inline]
5159    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5160        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5161    }
5162    #[inline]
5163    pub fn default_token(&self) -> Option<SyntaxToken> {
5164        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5165    }
5166}
5167
5168#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5169pub struct Deferrable {
5170    pub(crate) syntax: SyntaxNode,
5171}
5172impl Deferrable {
5173    #[inline]
5174    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5175        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5176    }
5177}
5178
5179#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5180pub struct DeferrableConstraintOption {
5181    pub(crate) syntax: SyntaxNode,
5182}
5183impl DeferrableConstraintOption {
5184    #[inline]
5185    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5186        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5187    }
5188}
5189
5190#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5191pub struct Delete {
5192    pub(crate) syntax: SyntaxNode,
5193}
5194impl Delete {
5195    #[inline]
5196    pub fn alias(&self) -> Option<Alias> {
5197        support::child(&self.syntax)
5198    }
5199    #[inline]
5200    pub fn relation_name(&self) -> Option<RelationName> {
5201        support::child(&self.syntax)
5202    }
5203    #[inline]
5204    pub fn returning_clause(&self) -> Option<ReturningClause> {
5205        support::child(&self.syntax)
5206    }
5207    #[inline]
5208    pub fn using_clause(&self) -> Option<UsingClause> {
5209        support::child(&self.syntax)
5210    }
5211    #[inline]
5212    pub fn where_clause(&self) -> Option<WhereClause> {
5213        support::child(&self.syntax)
5214    }
5215    #[inline]
5216    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
5217        support::child(&self.syntax)
5218    }
5219    #[inline]
5220    pub fn delete_token(&self) -> Option<SyntaxToken> {
5221        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5222    }
5223    #[inline]
5224    pub fn from_token(&self) -> Option<SyntaxToken> {
5225        support::token(&self.syntax, SyntaxKind::FROM_KW)
5226    }
5227}
5228
5229#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5230pub struct DeleteRows {
5231    pub(crate) syntax: SyntaxNode,
5232}
5233impl DeleteRows {
5234    #[inline]
5235    pub fn delete_token(&self) -> Option<SyntaxToken> {
5236        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5237    }
5238    #[inline]
5239    pub fn rows_token(&self) -> Option<SyntaxToken> {
5240        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5241    }
5242}
5243
5244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5245pub struct DependsOnExtension {
5246    pub(crate) syntax: SyntaxNode,
5247}
5248impl DependsOnExtension {
5249    #[inline]
5250    pub fn name_ref(&self) -> Option<NameRef> {
5251        support::child(&self.syntax)
5252    }
5253    #[inline]
5254    pub fn depends_token(&self) -> Option<SyntaxToken> {
5255        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
5256    }
5257    #[inline]
5258    pub fn extension_token(&self) -> Option<SyntaxToken> {
5259        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5260    }
5261    #[inline]
5262    pub fn on_token(&self) -> Option<SyntaxToken> {
5263        support::token(&self.syntax, SyntaxKind::ON_KW)
5264    }
5265}
5266
5267#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5268pub struct DetachPartition {
5269    pub(crate) syntax: SyntaxNode,
5270}
5271impl DetachPartition {
5272    #[inline]
5273    pub fn detach_token(&self) -> Option<SyntaxToken> {
5274        support::token(&self.syntax, SyntaxKind::DETACH_KW)
5275    }
5276    #[inline]
5277    pub fn partition_token(&self) -> Option<SyntaxToken> {
5278        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
5279    }
5280}
5281
5282#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5283pub struct DisableRls {
5284    pub(crate) syntax: SyntaxNode,
5285}
5286impl DisableRls {
5287    #[inline]
5288    pub fn disable_token(&self) -> Option<SyntaxToken> {
5289        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5290    }
5291    #[inline]
5292    pub fn level_token(&self) -> Option<SyntaxToken> {
5293        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
5294    }
5295    #[inline]
5296    pub fn row_token(&self) -> Option<SyntaxToken> {
5297        support::token(&self.syntax, SyntaxKind::ROW_KW)
5298    }
5299    #[inline]
5300    pub fn security_token(&self) -> Option<SyntaxToken> {
5301        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
5302    }
5303}
5304
5305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5306pub struct DisableRule {
5307    pub(crate) syntax: SyntaxNode,
5308}
5309impl DisableRule {
5310    #[inline]
5311    pub fn disable_token(&self) -> Option<SyntaxToken> {
5312        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5313    }
5314    #[inline]
5315    pub fn rule_token(&self) -> Option<SyntaxToken> {
5316        support::token(&self.syntax, SyntaxKind::RULE_KW)
5317    }
5318}
5319
5320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5321pub struct DisableTrigger {
5322    pub(crate) syntax: SyntaxNode,
5323}
5324impl DisableTrigger {
5325    #[inline]
5326    pub fn disable_token(&self) -> Option<SyntaxToken> {
5327        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5328    }
5329    #[inline]
5330    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5331        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5332    }
5333}
5334
5335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5336pub struct Discard {
5337    pub(crate) syntax: SyntaxNode,
5338}
5339impl Discard {
5340    #[inline]
5341    pub fn all_token(&self) -> Option<SyntaxToken> {
5342        support::token(&self.syntax, SyntaxKind::ALL_KW)
5343    }
5344    #[inline]
5345    pub fn discard_token(&self) -> Option<SyntaxToken> {
5346        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
5347    }
5348    #[inline]
5349    pub fn plans_token(&self) -> Option<SyntaxToken> {
5350        support::token(&self.syntax, SyntaxKind::PLANS_KW)
5351    }
5352    #[inline]
5353    pub fn sequences_token(&self) -> Option<SyntaxToken> {
5354        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
5355    }
5356    #[inline]
5357    pub fn temp_token(&self) -> Option<SyntaxToken> {
5358        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5359    }
5360    #[inline]
5361    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5362        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5363    }
5364}
5365
5366#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5367pub struct DistinctClause {
5368    pub(crate) syntax: SyntaxNode,
5369}
5370impl DistinctClause {
5371    #[inline]
5372    pub fn exprs(&self) -> AstChildren<Expr> {
5373        support::children(&self.syntax)
5374    }
5375    #[inline]
5376    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5377        support::token(&self.syntax, SyntaxKind::L_PAREN)
5378    }
5379    #[inline]
5380    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5381        support::token(&self.syntax, SyntaxKind::R_PAREN)
5382    }
5383    #[inline]
5384    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5385        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5386    }
5387    #[inline]
5388    pub fn on_token(&self) -> Option<SyntaxToken> {
5389        support::token(&self.syntax, SyntaxKind::ON_KW)
5390    }
5391}
5392
5393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5394pub struct Do {
5395    pub(crate) syntax: SyntaxNode,
5396}
5397impl Do {
5398    #[inline]
5399    pub fn do_token(&self) -> Option<SyntaxToken> {
5400        support::token(&self.syntax, SyntaxKind::DO_KW)
5401    }
5402}
5403
5404#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5405pub struct DoubleType {
5406    pub(crate) syntax: SyntaxNode,
5407}
5408impl DoubleType {
5409    #[inline]
5410    pub fn double_token(&self) -> Option<SyntaxToken> {
5411        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
5412    }
5413    #[inline]
5414    pub fn precision_token(&self) -> Option<SyntaxToken> {
5415        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
5416    }
5417}
5418
5419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5420pub struct Drop {
5421    pub(crate) syntax: SyntaxNode,
5422}
5423impl Drop {
5424    #[inline]
5425    pub fn drop_token(&self) -> Option<SyntaxToken> {
5426        support::token(&self.syntax, SyntaxKind::DROP_KW)
5427    }
5428}
5429
5430#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5431pub struct DropAccessMethod {
5432    pub(crate) syntax: SyntaxNode,
5433}
5434impl DropAccessMethod {
5435    #[inline]
5436    pub fn if_exists(&self) -> Option<IfExists> {
5437        support::child(&self.syntax)
5438    }
5439    #[inline]
5440    pub fn name_ref(&self) -> Option<NameRef> {
5441        support::child(&self.syntax)
5442    }
5443    #[inline]
5444    pub fn access_token(&self) -> Option<SyntaxToken> {
5445        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
5446    }
5447    #[inline]
5448    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5449        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5450    }
5451    #[inline]
5452    pub fn drop_token(&self) -> Option<SyntaxToken> {
5453        support::token(&self.syntax, SyntaxKind::DROP_KW)
5454    }
5455    #[inline]
5456    pub fn method_token(&self) -> Option<SyntaxToken> {
5457        support::token(&self.syntax, SyntaxKind::METHOD_KW)
5458    }
5459    #[inline]
5460    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5461        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5462    }
5463}
5464
5465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5466pub struct DropAggregate {
5467    pub(crate) syntax: SyntaxNode,
5468}
5469impl DropAggregate {
5470    #[inline]
5471    pub fn aggregates(&self) -> AstChildren<Aggregate> {
5472        support::children(&self.syntax)
5473    }
5474    #[inline]
5475    pub fn if_exists(&self) -> Option<IfExists> {
5476        support::child(&self.syntax)
5477    }
5478    #[inline]
5479    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
5480        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
5481    }
5482    #[inline]
5483    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5484        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5485    }
5486    #[inline]
5487    pub fn drop_token(&self) -> Option<SyntaxToken> {
5488        support::token(&self.syntax, SyntaxKind::DROP_KW)
5489    }
5490    #[inline]
5491    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5492        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5493    }
5494}
5495
5496#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5497pub struct DropCast {
5498    pub(crate) syntax: SyntaxNode,
5499}
5500impl DropCast {
5501    #[inline]
5502    pub fn cast_sig(&self) -> Option<CastSig> {
5503        support::child(&self.syntax)
5504    }
5505    #[inline]
5506    pub fn if_exists(&self) -> Option<IfExists> {
5507        support::child(&self.syntax)
5508    }
5509    #[inline]
5510    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5511        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5512    }
5513    #[inline]
5514    pub fn cast_token(&self) -> Option<SyntaxToken> {
5515        support::token(&self.syntax, SyntaxKind::CAST_KW)
5516    }
5517    #[inline]
5518    pub fn drop_token(&self) -> Option<SyntaxToken> {
5519        support::token(&self.syntax, SyntaxKind::DROP_KW)
5520    }
5521    #[inline]
5522    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5523        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5524    }
5525}
5526
5527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5528pub struct DropCollation {
5529    pub(crate) syntax: SyntaxNode,
5530}
5531impl DropCollation {
5532    #[inline]
5533    pub fn if_exists(&self) -> Option<IfExists> {
5534        support::child(&self.syntax)
5535    }
5536    #[inline]
5537    pub fn paths(&self) -> AstChildren<Path> {
5538        support::children(&self.syntax)
5539    }
5540    #[inline]
5541    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5542        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5543    }
5544    #[inline]
5545    pub fn collation_token(&self) -> Option<SyntaxToken> {
5546        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
5547    }
5548    #[inline]
5549    pub fn drop_token(&self) -> Option<SyntaxToken> {
5550        support::token(&self.syntax, SyntaxKind::DROP_KW)
5551    }
5552    #[inline]
5553    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5554        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5555    }
5556}
5557
5558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5559pub struct DropColumn {
5560    pub(crate) syntax: SyntaxNode,
5561}
5562impl DropColumn {
5563    #[inline]
5564    pub fn if_exists(&self) -> Option<IfExists> {
5565        support::child(&self.syntax)
5566    }
5567    #[inline]
5568    pub fn name_ref(&self) -> Option<NameRef> {
5569        support::child(&self.syntax)
5570    }
5571    #[inline]
5572    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5573        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5574    }
5575    #[inline]
5576    pub fn column_token(&self) -> Option<SyntaxToken> {
5577        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
5578    }
5579    #[inline]
5580    pub fn drop_token(&self) -> Option<SyntaxToken> {
5581        support::token(&self.syntax, SyntaxKind::DROP_KW)
5582    }
5583    #[inline]
5584    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5585        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5586    }
5587}
5588
5589#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5590pub struct DropConstraint {
5591    pub(crate) syntax: SyntaxNode,
5592}
5593impl DropConstraint {
5594    #[inline]
5595    pub fn if_exists(&self) -> Option<IfExists> {
5596        support::child(&self.syntax)
5597    }
5598    #[inline]
5599    pub fn name_ref(&self) -> Option<NameRef> {
5600        support::child(&self.syntax)
5601    }
5602    #[inline]
5603    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5604        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5605    }
5606    #[inline]
5607    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5608        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5609    }
5610    #[inline]
5611    pub fn drop_token(&self) -> Option<SyntaxToken> {
5612        support::token(&self.syntax, SyntaxKind::DROP_KW)
5613    }
5614    #[inline]
5615    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5616        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5617    }
5618}
5619
5620#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5621pub struct DropConversion {
5622    pub(crate) syntax: SyntaxNode,
5623}
5624impl DropConversion {
5625    #[inline]
5626    pub fn if_exists(&self) -> Option<IfExists> {
5627        support::child(&self.syntax)
5628    }
5629    #[inline]
5630    pub fn path(&self) -> Option<Path> {
5631        support::child(&self.syntax)
5632    }
5633    #[inline]
5634    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5635        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5636    }
5637    #[inline]
5638    pub fn conversion_token(&self) -> Option<SyntaxToken> {
5639        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
5640    }
5641    #[inline]
5642    pub fn drop_token(&self) -> Option<SyntaxToken> {
5643        support::token(&self.syntax, SyntaxKind::DROP_KW)
5644    }
5645    #[inline]
5646    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5647        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5648    }
5649}
5650
5651#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5652pub struct DropDatabase {
5653    pub(crate) syntax: SyntaxNode,
5654}
5655impl DropDatabase {
5656    #[inline]
5657    pub fn if_exists(&self) -> Option<IfExists> {
5658        support::child(&self.syntax)
5659    }
5660    #[inline]
5661    pub fn name_ref(&self) -> Option<NameRef> {
5662        support::child(&self.syntax)
5663    }
5664    #[inline]
5665    pub fn database_token(&self) -> Option<SyntaxToken> {
5666        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
5667    }
5668    #[inline]
5669    pub fn drop_token(&self) -> Option<SyntaxToken> {
5670        support::token(&self.syntax, SyntaxKind::DROP_KW)
5671    }
5672}
5673
5674#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5675pub struct DropDefault {
5676    pub(crate) syntax: SyntaxNode,
5677}
5678impl DropDefault {
5679    #[inline]
5680    pub fn default_token(&self) -> Option<SyntaxToken> {
5681        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5682    }
5683    #[inline]
5684    pub fn drop_token(&self) -> Option<SyntaxToken> {
5685        support::token(&self.syntax, SyntaxKind::DROP_KW)
5686    }
5687}
5688
5689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5690pub struct DropDomain {
5691    pub(crate) syntax: SyntaxNode,
5692}
5693impl DropDomain {
5694    #[inline]
5695    pub fn if_exists(&self) -> Option<IfExists> {
5696        support::child(&self.syntax)
5697    }
5698    #[inline]
5699    pub fn paths(&self) -> AstChildren<Path> {
5700        support::children(&self.syntax)
5701    }
5702    #[inline]
5703    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5704        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5705    }
5706    #[inline]
5707    pub fn domain_token(&self) -> Option<SyntaxToken> {
5708        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
5709    }
5710    #[inline]
5711    pub fn drop_token(&self) -> Option<SyntaxToken> {
5712        support::token(&self.syntax, SyntaxKind::DROP_KW)
5713    }
5714    #[inline]
5715    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5716        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5717    }
5718}
5719
5720#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5721pub struct DropEventTrigger {
5722    pub(crate) syntax: SyntaxNode,
5723}
5724impl DropEventTrigger {
5725    #[inline]
5726    pub fn if_exists(&self) -> Option<IfExists> {
5727        support::child(&self.syntax)
5728    }
5729    #[inline]
5730    pub fn name_ref(&self) -> Option<NameRef> {
5731        support::child(&self.syntax)
5732    }
5733    #[inline]
5734    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5735        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5736    }
5737    #[inline]
5738    pub fn drop_token(&self) -> Option<SyntaxToken> {
5739        support::token(&self.syntax, SyntaxKind::DROP_KW)
5740    }
5741    #[inline]
5742    pub fn event_token(&self) -> Option<SyntaxToken> {
5743        support::token(&self.syntax, SyntaxKind::EVENT_KW)
5744    }
5745    #[inline]
5746    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5747        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5748    }
5749    #[inline]
5750    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5751        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5752    }
5753}
5754
5755#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5756pub struct DropExpression {
5757    pub(crate) syntax: SyntaxNode,
5758}
5759impl DropExpression {
5760    #[inline]
5761    pub fn if_exists(&self) -> Option<IfExists> {
5762        support::child(&self.syntax)
5763    }
5764    #[inline]
5765    pub fn drop_token(&self) -> Option<SyntaxToken> {
5766        support::token(&self.syntax, SyntaxKind::DROP_KW)
5767    }
5768    #[inline]
5769    pub fn expression_token(&self) -> Option<SyntaxToken> {
5770        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
5771    }
5772}
5773
5774#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5775pub struct DropExtension {
5776    pub(crate) syntax: SyntaxNode,
5777}
5778impl DropExtension {
5779    #[inline]
5780    pub fn if_exists(&self) -> Option<IfExists> {
5781        support::child(&self.syntax)
5782    }
5783    #[inline]
5784    pub fn name_refs(&self) -> AstChildren<NameRef> {
5785        support::children(&self.syntax)
5786    }
5787    #[inline]
5788    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5789        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5790    }
5791    #[inline]
5792    pub fn drop_token(&self) -> Option<SyntaxToken> {
5793        support::token(&self.syntax, SyntaxKind::DROP_KW)
5794    }
5795    #[inline]
5796    pub fn extension_token(&self) -> Option<SyntaxToken> {
5797        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5798    }
5799    #[inline]
5800    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5801        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5802    }
5803}
5804
5805#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5806pub struct DropForeignDataWrapper {
5807    pub(crate) syntax: SyntaxNode,
5808}
5809impl DropForeignDataWrapper {
5810    #[inline]
5811    pub fn if_exists(&self) -> Option<IfExists> {
5812        support::child(&self.syntax)
5813    }
5814    #[inline]
5815    pub fn name_refs(&self) -> AstChildren<NameRef> {
5816        support::children(&self.syntax)
5817    }
5818    #[inline]
5819    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5820        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5821    }
5822    #[inline]
5823    pub fn data_token(&self) -> Option<SyntaxToken> {
5824        support::token(&self.syntax, SyntaxKind::DATA_KW)
5825    }
5826    #[inline]
5827    pub fn drop_token(&self) -> Option<SyntaxToken> {
5828        support::token(&self.syntax, SyntaxKind::DROP_KW)
5829    }
5830    #[inline]
5831    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5832        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5833    }
5834    #[inline]
5835    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5836        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5837    }
5838    #[inline]
5839    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
5840        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
5841    }
5842}
5843
5844#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5845pub struct DropForeignTable {
5846    pub(crate) syntax: SyntaxNode,
5847}
5848impl DropForeignTable {
5849    #[inline]
5850    pub fn if_exists(&self) -> Option<IfExists> {
5851        support::child(&self.syntax)
5852    }
5853    #[inline]
5854    pub fn path(&self) -> Option<Path> {
5855        support::child(&self.syntax)
5856    }
5857    #[inline]
5858    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5859        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5860    }
5861    #[inline]
5862    pub fn drop_token(&self) -> Option<SyntaxToken> {
5863        support::token(&self.syntax, SyntaxKind::DROP_KW)
5864    }
5865    #[inline]
5866    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5867        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5868    }
5869    #[inline]
5870    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5871        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5872    }
5873    #[inline]
5874    pub fn table_token(&self) -> Option<SyntaxToken> {
5875        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5876    }
5877}
5878
5879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5880pub struct DropFunction {
5881    pub(crate) syntax: SyntaxNode,
5882}
5883impl DropFunction {
5884    #[inline]
5885    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
5886        support::child(&self.syntax)
5887    }
5888    #[inline]
5889    pub fn if_exists(&self) -> Option<IfExists> {
5890        support::child(&self.syntax)
5891    }
5892    #[inline]
5893    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5894        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5895    }
5896    #[inline]
5897    pub fn drop_token(&self) -> Option<SyntaxToken> {
5898        support::token(&self.syntax, SyntaxKind::DROP_KW)
5899    }
5900    #[inline]
5901    pub fn function_token(&self) -> Option<SyntaxToken> {
5902        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5903    }
5904    #[inline]
5905    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5906        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5907    }
5908}
5909
5910#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5911pub struct DropGroup {
5912    pub(crate) syntax: SyntaxNode,
5913}
5914impl DropGroup {
5915    #[inline]
5916    pub fn if_exists(&self) -> Option<IfExists> {
5917        support::child(&self.syntax)
5918    }
5919    #[inline]
5920    pub fn name_refs(&self) -> AstChildren<NameRef> {
5921        support::children(&self.syntax)
5922    }
5923    #[inline]
5924    pub fn drop_token(&self) -> Option<SyntaxToken> {
5925        support::token(&self.syntax, SyntaxKind::DROP_KW)
5926    }
5927    #[inline]
5928    pub fn group_token(&self) -> Option<SyntaxToken> {
5929        support::token(&self.syntax, SyntaxKind::GROUP_KW)
5930    }
5931}
5932
5933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5934pub struct DropIdentity {
5935    pub(crate) syntax: SyntaxNode,
5936}
5937impl DropIdentity {
5938    #[inline]
5939    pub fn if_exists(&self) -> Option<IfExists> {
5940        support::child(&self.syntax)
5941    }
5942    #[inline]
5943    pub fn drop_token(&self) -> Option<SyntaxToken> {
5944        support::token(&self.syntax, SyntaxKind::DROP_KW)
5945    }
5946    #[inline]
5947    pub fn identity_token(&self) -> Option<SyntaxToken> {
5948        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
5949    }
5950}
5951
5952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5953pub struct DropIndex {
5954    pub(crate) syntax: SyntaxNode,
5955}
5956impl DropIndex {
5957    #[inline]
5958    pub fn if_exists(&self) -> Option<IfExists> {
5959        support::child(&self.syntax)
5960    }
5961    #[inline]
5962    pub fn paths(&self) -> AstChildren<Path> {
5963        support::children(&self.syntax)
5964    }
5965    #[inline]
5966    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5967        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5968    }
5969    #[inline]
5970    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
5971        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
5972    }
5973    #[inline]
5974    pub fn drop_token(&self) -> Option<SyntaxToken> {
5975        support::token(&self.syntax, SyntaxKind::DROP_KW)
5976    }
5977    #[inline]
5978    pub fn index_token(&self) -> Option<SyntaxToken> {
5979        support::token(&self.syntax, SyntaxKind::INDEX_KW)
5980    }
5981    #[inline]
5982    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5983        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5984    }
5985}
5986
5987#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5988pub struct DropLanguage {
5989    pub(crate) syntax: SyntaxNode,
5990}
5991impl DropLanguage {
5992    #[inline]
5993    pub fn if_exists(&self) -> Option<IfExists> {
5994        support::child(&self.syntax)
5995    }
5996    #[inline]
5997    pub fn name_ref(&self) -> Option<NameRef> {
5998        support::child(&self.syntax)
5999    }
6000    #[inline]
6001    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6002        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6003    }
6004    #[inline]
6005    pub fn drop_token(&self) -> Option<SyntaxToken> {
6006        support::token(&self.syntax, SyntaxKind::DROP_KW)
6007    }
6008    #[inline]
6009    pub fn language_token(&self) -> Option<SyntaxToken> {
6010        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6011    }
6012    #[inline]
6013    pub fn procedural_token(&self) -> Option<SyntaxToken> {
6014        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
6015    }
6016    #[inline]
6017    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6018        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6019    }
6020}
6021
6022#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6023pub struct DropMaterializedView {
6024    pub(crate) syntax: SyntaxNode,
6025}
6026impl DropMaterializedView {
6027    #[inline]
6028    pub fn if_exists(&self) -> Option<IfExists> {
6029        support::child(&self.syntax)
6030    }
6031    #[inline]
6032    pub fn paths(&self) -> AstChildren<Path> {
6033        support::children(&self.syntax)
6034    }
6035    #[inline]
6036    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6037        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6038    }
6039    #[inline]
6040    pub fn drop_token(&self) -> Option<SyntaxToken> {
6041        support::token(&self.syntax, SyntaxKind::DROP_KW)
6042    }
6043    #[inline]
6044    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6045        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6046    }
6047    #[inline]
6048    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6049        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6050    }
6051    #[inline]
6052    pub fn view_token(&self) -> Option<SyntaxToken> {
6053        support::token(&self.syntax, SyntaxKind::VIEW_KW)
6054    }
6055}
6056
6057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6058pub struct DropNotNull {
6059    pub(crate) syntax: SyntaxNode,
6060}
6061impl DropNotNull {
6062    #[inline]
6063    pub fn drop_token(&self) -> Option<SyntaxToken> {
6064        support::token(&self.syntax, SyntaxKind::DROP_KW)
6065    }
6066    #[inline]
6067    pub fn not_token(&self) -> Option<SyntaxToken> {
6068        support::token(&self.syntax, SyntaxKind::NOT_KW)
6069    }
6070    #[inline]
6071    pub fn null_token(&self) -> Option<SyntaxToken> {
6072        support::token(&self.syntax, SyntaxKind::NULL_KW)
6073    }
6074}
6075
6076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6077pub struct DropOpClassOption {
6078    pub(crate) syntax: SyntaxNode,
6079}
6080impl DropOpClassOption {
6081    #[inline]
6082    pub fn literal(&self) -> Option<Literal> {
6083        support::child(&self.syntax)
6084    }
6085    #[inline]
6086    pub fn param_list(&self) -> Option<ParamList> {
6087        support::child(&self.syntax)
6088    }
6089    #[inline]
6090    pub fn function_token(&self) -> Option<SyntaxToken> {
6091        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6092    }
6093    #[inline]
6094    pub fn operator_token(&self) -> Option<SyntaxToken> {
6095        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6096    }
6097}
6098
6099#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6100pub struct DropOpClassOptionList {
6101    pub(crate) syntax: SyntaxNode,
6102}
6103impl DropOpClassOptionList {
6104    #[inline]
6105    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
6106        support::children(&self.syntax)
6107    }
6108}
6109
6110#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6111pub struct DropOpClassOptions {
6112    pub(crate) syntax: SyntaxNode,
6113}
6114impl DropOpClassOptions {
6115    #[inline]
6116    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
6117        support::child(&self.syntax)
6118    }
6119    #[inline]
6120    pub fn drop_token(&self) -> Option<SyntaxToken> {
6121        support::token(&self.syntax, SyntaxKind::DROP_KW)
6122    }
6123}
6124
6125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6126pub struct DropOperator {
6127    pub(crate) syntax: SyntaxNode,
6128}
6129impl DropOperator {
6130    #[inline]
6131    pub fn if_exists(&self) -> Option<IfExists> {
6132        support::child(&self.syntax)
6133    }
6134    #[inline]
6135    pub fn op_sig_list(&self) -> Option<OpSigList> {
6136        support::child(&self.syntax)
6137    }
6138    #[inline]
6139    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6140        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6141    }
6142    #[inline]
6143    pub fn drop_token(&self) -> Option<SyntaxToken> {
6144        support::token(&self.syntax, SyntaxKind::DROP_KW)
6145    }
6146    #[inline]
6147    pub fn operator_token(&self) -> Option<SyntaxToken> {
6148        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6149    }
6150    #[inline]
6151    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6152        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6153    }
6154}
6155
6156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6157pub struct DropOperatorClass {
6158    pub(crate) syntax: SyntaxNode,
6159}
6160impl DropOperatorClass {
6161    #[inline]
6162    pub fn if_exists(&self) -> Option<IfExists> {
6163        support::child(&self.syntax)
6164    }
6165    #[inline]
6166    pub fn name_ref(&self) -> Option<NameRef> {
6167        support::child(&self.syntax)
6168    }
6169    #[inline]
6170    pub fn path(&self) -> Option<Path> {
6171        support::child(&self.syntax)
6172    }
6173    #[inline]
6174    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6175        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6176    }
6177    #[inline]
6178    pub fn class_token(&self) -> Option<SyntaxToken> {
6179        support::token(&self.syntax, SyntaxKind::CLASS_KW)
6180    }
6181    #[inline]
6182    pub fn drop_token(&self) -> Option<SyntaxToken> {
6183        support::token(&self.syntax, SyntaxKind::DROP_KW)
6184    }
6185    #[inline]
6186    pub fn operator_token(&self) -> Option<SyntaxToken> {
6187        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6188    }
6189    #[inline]
6190    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6191        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6192    }
6193    #[inline]
6194    pub fn using_token(&self) -> Option<SyntaxToken> {
6195        support::token(&self.syntax, SyntaxKind::USING_KW)
6196    }
6197}
6198
6199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6200pub struct DropOperatorFamily {
6201    pub(crate) syntax: SyntaxNode,
6202}
6203impl DropOperatorFamily {
6204    #[inline]
6205    pub fn if_exists(&self) -> Option<IfExists> {
6206        support::child(&self.syntax)
6207    }
6208    #[inline]
6209    pub fn name_ref(&self) -> Option<NameRef> {
6210        support::child(&self.syntax)
6211    }
6212    #[inline]
6213    pub fn path(&self) -> Option<Path> {
6214        support::child(&self.syntax)
6215    }
6216    #[inline]
6217    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6218        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6219    }
6220    #[inline]
6221    pub fn drop_token(&self) -> Option<SyntaxToken> {
6222        support::token(&self.syntax, SyntaxKind::DROP_KW)
6223    }
6224    #[inline]
6225    pub fn family_token(&self) -> Option<SyntaxToken> {
6226        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
6227    }
6228    #[inline]
6229    pub fn operator_token(&self) -> Option<SyntaxToken> {
6230        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6231    }
6232    #[inline]
6233    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6234        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6235    }
6236    #[inline]
6237    pub fn using_token(&self) -> Option<SyntaxToken> {
6238        support::token(&self.syntax, SyntaxKind::USING_KW)
6239    }
6240}
6241
6242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6243pub struct DropOwned {
6244    pub(crate) syntax: SyntaxNode,
6245}
6246impl DropOwned {
6247    #[inline]
6248    pub fn role_list(&self) -> Option<RoleList> {
6249        support::child(&self.syntax)
6250    }
6251    #[inline]
6252    pub fn by_token(&self) -> Option<SyntaxToken> {
6253        support::token(&self.syntax, SyntaxKind::BY_KW)
6254    }
6255    #[inline]
6256    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6257        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6258    }
6259    #[inline]
6260    pub fn drop_token(&self) -> Option<SyntaxToken> {
6261        support::token(&self.syntax, SyntaxKind::DROP_KW)
6262    }
6263    #[inline]
6264    pub fn owned_token(&self) -> Option<SyntaxToken> {
6265        support::token(&self.syntax, SyntaxKind::OWNED_KW)
6266    }
6267    #[inline]
6268    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6269        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6270    }
6271}
6272
6273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6274pub struct DropPolicy {
6275    pub(crate) syntax: SyntaxNode,
6276}
6277impl DropPolicy {
6278    #[inline]
6279    pub fn if_exists(&self) -> Option<IfExists> {
6280        support::child(&self.syntax)
6281    }
6282    #[inline]
6283    pub fn name_ref(&self) -> Option<NameRef> {
6284        support::child(&self.syntax)
6285    }
6286    #[inline]
6287    pub fn on_table(&self) -> Option<OnTable> {
6288        support::child(&self.syntax)
6289    }
6290    #[inline]
6291    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6292        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6293    }
6294    #[inline]
6295    pub fn drop_token(&self) -> Option<SyntaxToken> {
6296        support::token(&self.syntax, SyntaxKind::DROP_KW)
6297    }
6298    #[inline]
6299    pub fn policy_token(&self) -> Option<SyntaxToken> {
6300        support::token(&self.syntax, SyntaxKind::POLICY_KW)
6301    }
6302    #[inline]
6303    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6304        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6305    }
6306}
6307
6308#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6309pub struct DropProcedure {
6310    pub(crate) syntax: SyntaxNode,
6311}
6312impl DropProcedure {
6313    #[inline]
6314    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6315        support::child(&self.syntax)
6316    }
6317    #[inline]
6318    pub fn if_exists(&self) -> Option<IfExists> {
6319        support::child(&self.syntax)
6320    }
6321    #[inline]
6322    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6323        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6324    }
6325    #[inline]
6326    pub fn drop_token(&self) -> Option<SyntaxToken> {
6327        support::token(&self.syntax, SyntaxKind::DROP_KW)
6328    }
6329    #[inline]
6330    pub fn procedure_token(&self) -> Option<SyntaxToken> {
6331        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
6332    }
6333    #[inline]
6334    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6335        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6336    }
6337}
6338
6339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6340pub struct DropPublication {
6341    pub(crate) syntax: SyntaxNode,
6342}
6343impl DropPublication {
6344    #[inline]
6345    pub fn if_exists(&self) -> Option<IfExists> {
6346        support::child(&self.syntax)
6347    }
6348    #[inline]
6349    pub fn name_refs(&self) -> AstChildren<NameRef> {
6350        support::children(&self.syntax)
6351    }
6352    #[inline]
6353    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6354        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6355    }
6356    #[inline]
6357    pub fn drop_token(&self) -> Option<SyntaxToken> {
6358        support::token(&self.syntax, SyntaxKind::DROP_KW)
6359    }
6360    #[inline]
6361    pub fn publication_token(&self) -> Option<SyntaxToken> {
6362        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
6363    }
6364    #[inline]
6365    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6366        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6367    }
6368}
6369
6370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6371pub struct DropRole {
6372    pub(crate) syntax: SyntaxNode,
6373}
6374impl DropRole {
6375    #[inline]
6376    pub fn if_exists(&self) -> Option<IfExists> {
6377        support::child(&self.syntax)
6378    }
6379    #[inline]
6380    pub fn name_refs(&self) -> AstChildren<NameRef> {
6381        support::children(&self.syntax)
6382    }
6383    #[inline]
6384    pub fn drop_token(&self) -> Option<SyntaxToken> {
6385        support::token(&self.syntax, SyntaxKind::DROP_KW)
6386    }
6387    #[inline]
6388    pub fn role_token(&self) -> Option<SyntaxToken> {
6389        support::token(&self.syntax, SyntaxKind::ROLE_KW)
6390    }
6391}
6392
6393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6394pub struct DropRoutine {
6395    pub(crate) syntax: SyntaxNode,
6396}
6397impl DropRoutine {
6398    #[inline]
6399    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6400        support::child(&self.syntax)
6401    }
6402    #[inline]
6403    pub fn if_exists(&self) -> Option<IfExists> {
6404        support::child(&self.syntax)
6405    }
6406    #[inline]
6407    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6408        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6409    }
6410    #[inline]
6411    pub fn drop_token(&self) -> Option<SyntaxToken> {
6412        support::token(&self.syntax, SyntaxKind::DROP_KW)
6413    }
6414    #[inline]
6415    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6416        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6417    }
6418    #[inline]
6419    pub fn routine_token(&self) -> Option<SyntaxToken> {
6420        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
6421    }
6422}
6423
6424#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6425pub struct DropRule {
6426    pub(crate) syntax: SyntaxNode,
6427}
6428impl DropRule {
6429    #[inline]
6430    pub fn if_exists(&self) -> Option<IfExists> {
6431        support::child(&self.syntax)
6432    }
6433    #[inline]
6434    pub fn name_ref(&self) -> Option<NameRef> {
6435        support::child(&self.syntax)
6436    }
6437    #[inline]
6438    pub fn on_table(&self) -> Option<OnTable> {
6439        support::child(&self.syntax)
6440    }
6441    #[inline]
6442    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6443        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6444    }
6445    #[inline]
6446    pub fn drop_token(&self) -> Option<SyntaxToken> {
6447        support::token(&self.syntax, SyntaxKind::DROP_KW)
6448    }
6449    #[inline]
6450    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6451        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6452    }
6453    #[inline]
6454    pub fn rule_token(&self) -> Option<SyntaxToken> {
6455        support::token(&self.syntax, SyntaxKind::RULE_KW)
6456    }
6457}
6458
6459#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6460pub struct DropSchema {
6461    pub(crate) syntax: SyntaxNode,
6462}
6463impl DropSchema {
6464    #[inline]
6465    pub fn if_exists(&self) -> Option<IfExists> {
6466        support::child(&self.syntax)
6467    }
6468    #[inline]
6469    pub fn name_refs(&self) -> AstChildren<NameRef> {
6470        support::children(&self.syntax)
6471    }
6472    #[inline]
6473    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6474        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6475    }
6476    #[inline]
6477    pub fn drop_token(&self) -> Option<SyntaxToken> {
6478        support::token(&self.syntax, SyntaxKind::DROP_KW)
6479    }
6480    #[inline]
6481    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6482        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6483    }
6484    #[inline]
6485    pub fn schema_token(&self) -> Option<SyntaxToken> {
6486        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
6487    }
6488}
6489
6490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6491pub struct DropSequence {
6492    pub(crate) syntax: SyntaxNode,
6493}
6494impl DropSequence {
6495    #[inline]
6496    pub fn if_exists(&self) -> Option<IfExists> {
6497        support::child(&self.syntax)
6498    }
6499    #[inline]
6500    pub fn paths(&self) -> AstChildren<Path> {
6501        support::children(&self.syntax)
6502    }
6503    #[inline]
6504    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6505        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6506    }
6507    #[inline]
6508    pub fn drop_token(&self) -> Option<SyntaxToken> {
6509        support::token(&self.syntax, SyntaxKind::DROP_KW)
6510    }
6511    #[inline]
6512    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6513        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6514    }
6515    #[inline]
6516    pub fn sequence_token(&self) -> Option<SyntaxToken> {
6517        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
6518    }
6519}
6520
6521#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6522pub struct DropServer {
6523    pub(crate) syntax: SyntaxNode,
6524}
6525impl DropServer {
6526    #[inline]
6527    pub fn if_exists(&self) -> Option<IfExists> {
6528        support::child(&self.syntax)
6529    }
6530    #[inline]
6531    pub fn name_ref(&self) -> Option<NameRef> {
6532        support::child(&self.syntax)
6533    }
6534    #[inline]
6535    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6536        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6537    }
6538    #[inline]
6539    pub fn drop_token(&self) -> Option<SyntaxToken> {
6540        support::token(&self.syntax, SyntaxKind::DROP_KW)
6541    }
6542    #[inline]
6543    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6544        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6545    }
6546    #[inline]
6547    pub fn server_token(&self) -> Option<SyntaxToken> {
6548        support::token(&self.syntax, SyntaxKind::SERVER_KW)
6549    }
6550}
6551
6552#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6553pub struct DropStatistics {
6554    pub(crate) syntax: SyntaxNode,
6555}
6556impl DropStatistics {
6557    #[inline]
6558    pub fn if_exists(&self) -> Option<IfExists> {
6559        support::child(&self.syntax)
6560    }
6561    #[inline]
6562    pub fn paths(&self) -> AstChildren<Path> {
6563        support::children(&self.syntax)
6564    }
6565    #[inline]
6566    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6567        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6568    }
6569    #[inline]
6570    pub fn drop_token(&self) -> Option<SyntaxToken> {
6571        support::token(&self.syntax, SyntaxKind::DROP_KW)
6572    }
6573    #[inline]
6574    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6575        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6576    }
6577    #[inline]
6578    pub fn statistics_token(&self) -> Option<SyntaxToken> {
6579        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
6580    }
6581}
6582
6583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6584pub struct DropSubscription {
6585    pub(crate) syntax: SyntaxNode,
6586}
6587impl DropSubscription {
6588    #[inline]
6589    pub fn if_exists(&self) -> Option<IfExists> {
6590        support::child(&self.syntax)
6591    }
6592    #[inline]
6593    pub fn name_ref(&self) -> Option<NameRef> {
6594        support::child(&self.syntax)
6595    }
6596    #[inline]
6597    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6598        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6599    }
6600    #[inline]
6601    pub fn drop_token(&self) -> Option<SyntaxToken> {
6602        support::token(&self.syntax, SyntaxKind::DROP_KW)
6603    }
6604    #[inline]
6605    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6606        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6607    }
6608    #[inline]
6609    pub fn subscription_token(&self) -> Option<SyntaxToken> {
6610        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
6611    }
6612}
6613
6614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6615pub struct DropTable {
6616    pub(crate) syntax: SyntaxNode,
6617}
6618impl DropTable {
6619    #[inline]
6620    pub fn if_exists(&self) -> Option<IfExists> {
6621        support::child(&self.syntax)
6622    }
6623    #[inline]
6624    pub fn path(&self) -> Option<Path> {
6625        support::child(&self.syntax)
6626    }
6627    #[inline]
6628    pub fn comma_token(&self) -> Option<SyntaxToken> {
6629        support::token(&self.syntax, SyntaxKind::COMMA)
6630    }
6631    #[inline]
6632    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6633        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6634    }
6635    #[inline]
6636    pub fn drop_token(&self) -> Option<SyntaxToken> {
6637        support::token(&self.syntax, SyntaxKind::DROP_KW)
6638    }
6639    #[inline]
6640    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6641        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6642    }
6643    #[inline]
6644    pub fn table_token(&self) -> Option<SyntaxToken> {
6645        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6646    }
6647}
6648
6649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6650pub struct DropTablespace {
6651    pub(crate) syntax: SyntaxNode,
6652}
6653impl DropTablespace {
6654    #[inline]
6655    pub fn if_exists(&self) -> Option<IfExists> {
6656        support::child(&self.syntax)
6657    }
6658    #[inline]
6659    pub fn name_ref(&self) -> Option<NameRef> {
6660        support::child(&self.syntax)
6661    }
6662    #[inline]
6663    pub fn drop_token(&self) -> Option<SyntaxToken> {
6664        support::token(&self.syntax, SyntaxKind::DROP_KW)
6665    }
6666    #[inline]
6667    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
6668        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
6669    }
6670}
6671
6672#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6673pub struct DropTextSearchConfig {
6674    pub(crate) syntax: SyntaxNode,
6675}
6676impl DropTextSearchConfig {
6677    #[inline]
6678    pub fn if_exists(&self) -> Option<IfExists> {
6679        support::child(&self.syntax)
6680    }
6681    #[inline]
6682    pub fn path(&self) -> Option<Path> {
6683        support::child(&self.syntax)
6684    }
6685    #[inline]
6686    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6687        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6688    }
6689    #[inline]
6690    pub fn configuration_token(&self) -> Option<SyntaxToken> {
6691        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
6692    }
6693    #[inline]
6694    pub fn drop_token(&self) -> Option<SyntaxToken> {
6695        support::token(&self.syntax, SyntaxKind::DROP_KW)
6696    }
6697    #[inline]
6698    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6699        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6700    }
6701    #[inline]
6702    pub fn search_token(&self) -> Option<SyntaxToken> {
6703        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6704    }
6705    #[inline]
6706    pub fn text_token(&self) -> Option<SyntaxToken> {
6707        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6708    }
6709}
6710
6711#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6712pub struct DropTextSearchDict {
6713    pub(crate) syntax: SyntaxNode,
6714}
6715impl DropTextSearchDict {
6716    #[inline]
6717    pub fn if_exists(&self) -> Option<IfExists> {
6718        support::child(&self.syntax)
6719    }
6720    #[inline]
6721    pub fn path(&self) -> Option<Path> {
6722        support::child(&self.syntax)
6723    }
6724    #[inline]
6725    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6726        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6727    }
6728    #[inline]
6729    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
6730        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
6731    }
6732    #[inline]
6733    pub fn drop_token(&self) -> Option<SyntaxToken> {
6734        support::token(&self.syntax, SyntaxKind::DROP_KW)
6735    }
6736    #[inline]
6737    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6738        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6739    }
6740    #[inline]
6741    pub fn search_token(&self) -> Option<SyntaxToken> {
6742        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6743    }
6744    #[inline]
6745    pub fn text_token(&self) -> Option<SyntaxToken> {
6746        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6747    }
6748}
6749
6750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6751pub struct DropTextSearchParser {
6752    pub(crate) syntax: SyntaxNode,
6753}
6754impl DropTextSearchParser {
6755    #[inline]
6756    pub fn if_exists(&self) -> Option<IfExists> {
6757        support::child(&self.syntax)
6758    }
6759    #[inline]
6760    pub fn path(&self) -> Option<Path> {
6761        support::child(&self.syntax)
6762    }
6763    #[inline]
6764    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6765        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6766    }
6767    #[inline]
6768    pub fn drop_token(&self) -> Option<SyntaxToken> {
6769        support::token(&self.syntax, SyntaxKind::DROP_KW)
6770    }
6771    #[inline]
6772    pub fn parser_token(&self) -> Option<SyntaxToken> {
6773        support::token(&self.syntax, SyntaxKind::PARSER_KW)
6774    }
6775    #[inline]
6776    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6777        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6778    }
6779    #[inline]
6780    pub fn search_token(&self) -> Option<SyntaxToken> {
6781        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6782    }
6783    #[inline]
6784    pub fn text_token(&self) -> Option<SyntaxToken> {
6785        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6786    }
6787}
6788
6789#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6790pub struct DropTextSearchTemplate {
6791    pub(crate) syntax: SyntaxNode,
6792}
6793impl DropTextSearchTemplate {
6794    #[inline]
6795    pub fn if_exists(&self) -> Option<IfExists> {
6796        support::child(&self.syntax)
6797    }
6798    #[inline]
6799    pub fn path(&self) -> Option<Path> {
6800        support::child(&self.syntax)
6801    }
6802    #[inline]
6803    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6804        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6805    }
6806    #[inline]
6807    pub fn drop_token(&self) -> Option<SyntaxToken> {
6808        support::token(&self.syntax, SyntaxKind::DROP_KW)
6809    }
6810    #[inline]
6811    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6812        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6813    }
6814    #[inline]
6815    pub fn search_token(&self) -> Option<SyntaxToken> {
6816        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6817    }
6818    #[inline]
6819    pub fn template_token(&self) -> Option<SyntaxToken> {
6820        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
6821    }
6822    #[inline]
6823    pub fn text_token(&self) -> Option<SyntaxToken> {
6824        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6825    }
6826}
6827
6828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6829pub struct DropTransform {
6830    pub(crate) syntax: SyntaxNode,
6831}
6832impl DropTransform {
6833    #[inline]
6834    pub fn if_exists(&self) -> Option<IfExists> {
6835        support::child(&self.syntax)
6836    }
6837    #[inline]
6838    pub fn language(&self) -> Option<NameRef> {
6839        support::child(&self.syntax)
6840    }
6841    #[inline]
6842    pub fn ty(&self) -> Option<Type> {
6843        support::child(&self.syntax)
6844    }
6845    #[inline]
6846    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6847        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6848    }
6849    #[inline]
6850    pub fn drop_token(&self) -> Option<SyntaxToken> {
6851        support::token(&self.syntax, SyntaxKind::DROP_KW)
6852    }
6853    #[inline]
6854    pub fn for_token(&self) -> Option<SyntaxToken> {
6855        support::token(&self.syntax, SyntaxKind::FOR_KW)
6856    }
6857    #[inline]
6858    pub fn language_token(&self) -> Option<SyntaxToken> {
6859        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6860    }
6861    #[inline]
6862    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6863        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6864    }
6865    #[inline]
6866    pub fn transform_token(&self) -> Option<SyntaxToken> {
6867        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
6868    }
6869}
6870
6871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6872pub struct DropTrigger {
6873    pub(crate) syntax: SyntaxNode,
6874}
6875impl DropTrigger {
6876    #[inline]
6877    pub fn if_exists(&self) -> Option<IfExists> {
6878        support::child(&self.syntax)
6879    }
6880    #[inline]
6881    pub fn on_table(&self) -> Option<OnTable> {
6882        support::child(&self.syntax)
6883    }
6884    #[inline]
6885    pub fn path(&self) -> Option<Path> {
6886        support::child(&self.syntax)
6887    }
6888    #[inline]
6889    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6890        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6891    }
6892    #[inline]
6893    pub fn drop_token(&self) -> Option<SyntaxToken> {
6894        support::token(&self.syntax, SyntaxKind::DROP_KW)
6895    }
6896    #[inline]
6897    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6898        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6899    }
6900    #[inline]
6901    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6902        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6903    }
6904}
6905
6906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6907pub struct DropType {
6908    pub(crate) syntax: SyntaxNode,
6909}
6910impl DropType {
6911    #[inline]
6912    pub fn if_exists(&self) -> Option<IfExists> {
6913        support::child(&self.syntax)
6914    }
6915    #[inline]
6916    pub fn paths(&self) -> AstChildren<Path> {
6917        support::children(&self.syntax)
6918    }
6919    #[inline]
6920    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6921        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6922    }
6923    #[inline]
6924    pub fn drop_token(&self) -> Option<SyntaxToken> {
6925        support::token(&self.syntax, SyntaxKind::DROP_KW)
6926    }
6927    #[inline]
6928    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6929        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6930    }
6931    #[inline]
6932    pub fn type_token(&self) -> Option<SyntaxToken> {
6933        support::token(&self.syntax, SyntaxKind::TYPE_KW)
6934    }
6935}
6936
6937#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6938pub struct DropUser {
6939    pub(crate) syntax: SyntaxNode,
6940}
6941impl DropUser {
6942    #[inline]
6943    pub fn if_exists(&self) -> Option<IfExists> {
6944        support::child(&self.syntax)
6945    }
6946    #[inline]
6947    pub fn name_refs(&self) -> AstChildren<NameRef> {
6948        support::children(&self.syntax)
6949    }
6950    #[inline]
6951    pub fn drop_token(&self) -> Option<SyntaxToken> {
6952        support::token(&self.syntax, SyntaxKind::DROP_KW)
6953    }
6954    #[inline]
6955    pub fn user_token(&self) -> Option<SyntaxToken> {
6956        support::token(&self.syntax, SyntaxKind::USER_KW)
6957    }
6958}
6959
6960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6961pub struct DropUserMapping {
6962    pub(crate) syntax: SyntaxNode,
6963}
6964impl DropUserMapping {
6965    #[inline]
6966    pub fn if_exists(&self) -> Option<IfExists> {
6967        support::child(&self.syntax)
6968    }
6969    #[inline]
6970    pub fn name_ref(&self) -> Option<NameRef> {
6971        support::child(&self.syntax)
6972    }
6973    #[inline]
6974    pub fn role(&self) -> Option<Role> {
6975        support::child(&self.syntax)
6976    }
6977    #[inline]
6978    pub fn drop_token(&self) -> Option<SyntaxToken> {
6979        support::token(&self.syntax, SyntaxKind::DROP_KW)
6980    }
6981    #[inline]
6982    pub fn for_token(&self) -> Option<SyntaxToken> {
6983        support::token(&self.syntax, SyntaxKind::FOR_KW)
6984    }
6985    #[inline]
6986    pub fn mapping_token(&self) -> Option<SyntaxToken> {
6987        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
6988    }
6989    #[inline]
6990    pub fn server_token(&self) -> Option<SyntaxToken> {
6991        support::token(&self.syntax, SyntaxKind::SERVER_KW)
6992    }
6993    #[inline]
6994    pub fn user_token(&self) -> Option<SyntaxToken> {
6995        support::token(&self.syntax, SyntaxKind::USER_KW)
6996    }
6997}
6998
6999#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7000pub struct DropView {
7001    pub(crate) syntax: SyntaxNode,
7002}
7003impl DropView {
7004    #[inline]
7005    pub fn if_exists(&self) -> Option<IfExists> {
7006        support::child(&self.syntax)
7007    }
7008    #[inline]
7009    pub fn path(&self) -> Option<Path> {
7010        support::child(&self.syntax)
7011    }
7012    #[inline]
7013    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7014        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7015    }
7016    #[inline]
7017    pub fn drop_token(&self) -> Option<SyntaxToken> {
7018        support::token(&self.syntax, SyntaxKind::DROP_KW)
7019    }
7020    #[inline]
7021    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7022        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7023    }
7024    #[inline]
7025    pub fn view_token(&self) -> Option<SyntaxToken> {
7026        support::token(&self.syntax, SyntaxKind::VIEW_KW)
7027    }
7028}
7029
7030#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7031pub struct ElseClause {
7032    pub(crate) syntax: SyntaxNode,
7033}
7034impl ElseClause {
7035    #[inline]
7036    pub fn expr(&self) -> Option<Expr> {
7037        support::child(&self.syntax)
7038    }
7039    #[inline]
7040    pub fn else_token(&self) -> Option<SyntaxToken> {
7041        support::token(&self.syntax, SyntaxKind::ELSE_KW)
7042    }
7043}
7044
7045#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7046pub struct EnableAlwaysRule {
7047    pub(crate) syntax: SyntaxNode,
7048}
7049impl EnableAlwaysRule {
7050    #[inline]
7051    pub fn always_token(&self) -> Option<SyntaxToken> {
7052        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7053    }
7054    #[inline]
7055    pub fn enable_token(&self) -> Option<SyntaxToken> {
7056        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7057    }
7058    #[inline]
7059    pub fn rule_token(&self) -> Option<SyntaxToken> {
7060        support::token(&self.syntax, SyntaxKind::RULE_KW)
7061    }
7062}
7063
7064#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7065pub struct EnableAlwaysTrigger {
7066    pub(crate) syntax: SyntaxNode,
7067}
7068impl EnableAlwaysTrigger {
7069    #[inline]
7070    pub fn always_token(&self) -> Option<SyntaxToken> {
7071        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7072    }
7073    #[inline]
7074    pub fn enable_token(&self) -> Option<SyntaxToken> {
7075        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7076    }
7077    #[inline]
7078    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7079        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7080    }
7081}
7082
7083#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7084pub struct EnableReplicaRule {
7085    pub(crate) syntax: SyntaxNode,
7086}
7087impl EnableReplicaRule {
7088    #[inline]
7089    pub fn enable_token(&self) -> Option<SyntaxToken> {
7090        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7091    }
7092    #[inline]
7093    pub fn replica_token(&self) -> Option<SyntaxToken> {
7094        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7095    }
7096    #[inline]
7097    pub fn rule_token(&self) -> Option<SyntaxToken> {
7098        support::token(&self.syntax, SyntaxKind::RULE_KW)
7099    }
7100}
7101
7102#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7103pub struct EnableReplicaTrigger {
7104    pub(crate) syntax: SyntaxNode,
7105}
7106impl EnableReplicaTrigger {
7107    #[inline]
7108    pub fn enable_token(&self) -> Option<SyntaxToken> {
7109        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7110    }
7111    #[inline]
7112    pub fn replica_token(&self) -> Option<SyntaxToken> {
7113        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7114    }
7115    #[inline]
7116    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7117        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7118    }
7119}
7120
7121#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7122pub struct EnableRls {
7123    pub(crate) syntax: SyntaxNode,
7124}
7125impl EnableRls {
7126    #[inline]
7127    pub fn enable_token(&self) -> Option<SyntaxToken> {
7128        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7129    }
7130    #[inline]
7131    pub fn level_token(&self) -> Option<SyntaxToken> {
7132        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7133    }
7134    #[inline]
7135    pub fn row_token(&self) -> Option<SyntaxToken> {
7136        support::token(&self.syntax, SyntaxKind::ROW_KW)
7137    }
7138    #[inline]
7139    pub fn security_token(&self) -> Option<SyntaxToken> {
7140        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7141    }
7142}
7143
7144#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7145pub struct EnableRule {
7146    pub(crate) syntax: SyntaxNode,
7147}
7148impl EnableRule {
7149    #[inline]
7150    pub fn enable_token(&self) -> Option<SyntaxToken> {
7151        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7152    }
7153    #[inline]
7154    pub fn rule_token(&self) -> Option<SyntaxToken> {
7155        support::token(&self.syntax, SyntaxKind::RULE_KW)
7156    }
7157}
7158
7159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7160pub struct EnableTrigger {
7161    pub(crate) syntax: SyntaxNode,
7162}
7163impl EnableTrigger {
7164    #[inline]
7165    pub fn enable_token(&self) -> Option<SyntaxToken> {
7166        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7167    }
7168    #[inline]
7169    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7170        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7171    }
7172}
7173
7174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7175pub struct Enforced {
7176    pub(crate) syntax: SyntaxNode,
7177}
7178impl Enforced {
7179    #[inline]
7180    pub fn enforced_token(&self) -> Option<SyntaxToken> {
7181        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
7182    }
7183}
7184
7185#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7186pub struct EventTriggerWhen {
7187    pub(crate) syntax: SyntaxNode,
7188}
7189impl EventTriggerWhen {
7190    #[inline]
7191    pub fn literals(&self) -> AstChildren<Literal> {
7192        support::children(&self.syntax)
7193    }
7194    #[inline]
7195    pub fn name_ref(&self) -> Option<NameRef> {
7196        support::child(&self.syntax)
7197    }
7198    #[inline]
7199    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7200        support::token(&self.syntax, SyntaxKind::L_PAREN)
7201    }
7202    #[inline]
7203    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7204        support::token(&self.syntax, SyntaxKind::R_PAREN)
7205    }
7206    #[inline]
7207    pub fn in_token(&self) -> Option<SyntaxToken> {
7208        support::token(&self.syntax, SyntaxKind::IN_KW)
7209    }
7210}
7211
7212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7213pub struct EventTriggerWhenClause {
7214    pub(crate) syntax: SyntaxNode,
7215}
7216impl EventTriggerWhenClause {
7217    #[inline]
7218    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
7219        support::children(&self.syntax)
7220    }
7221    #[inline]
7222    pub fn when_token(&self) -> Option<SyntaxToken> {
7223        support::token(&self.syntax, SyntaxKind::WHEN_KW)
7224    }
7225}
7226
7227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7228pub struct ExceptTables {
7229    pub(crate) syntax: SyntaxNode,
7230}
7231impl ExceptTables {
7232    #[inline]
7233    pub fn name_refs(&self) -> AstChildren<NameRef> {
7234        support::children(&self.syntax)
7235    }
7236    #[inline]
7237    pub fn except_token(&self) -> Option<SyntaxToken> {
7238        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
7239    }
7240}
7241
7242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7243pub struct ExcludeConstraint {
7244    pub(crate) syntax: SyntaxNode,
7245}
7246impl ExcludeConstraint {
7247    #[inline]
7248    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
7249        support::child(&self.syntax)
7250    }
7251    #[inline]
7252    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
7253        support::child(&self.syntax)
7254    }
7255    #[inline]
7256    pub fn name(&self) -> Option<Name> {
7257        support::child(&self.syntax)
7258    }
7259    #[inline]
7260    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
7261        support::child(&self.syntax)
7262    }
7263    #[inline]
7264    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7265        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7266    }
7267    #[inline]
7268    pub fn exclude_token(&self) -> Option<SyntaxToken> {
7269        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
7270    }
7271}
7272
7273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7274pub struct Execute {
7275    pub(crate) syntax: SyntaxNode,
7276}
7277impl Execute {
7278    #[inline]
7279    pub fn arg_list(&self) -> Option<ArgList> {
7280        support::child(&self.syntax)
7281    }
7282    #[inline]
7283    pub fn name_ref(&self) -> Option<NameRef> {
7284        support::child(&self.syntax)
7285    }
7286    #[inline]
7287    pub fn execute_token(&self) -> Option<SyntaxToken> {
7288        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
7289    }
7290}
7291
7292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7293pub struct ExistsFn {
7294    pub(crate) syntax: SyntaxNode,
7295}
7296impl ExistsFn {
7297    #[inline]
7298    pub fn select_variant(&self) -> Option<SelectVariant> {
7299        support::child(&self.syntax)
7300    }
7301    #[inline]
7302    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7303        support::token(&self.syntax, SyntaxKind::L_PAREN)
7304    }
7305    #[inline]
7306    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7307        support::token(&self.syntax, SyntaxKind::R_PAREN)
7308    }
7309    #[inline]
7310    pub fn exists_token(&self) -> Option<SyntaxToken> {
7311        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
7312    }
7313}
7314
7315#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7316pub struct Explain {
7317    pub(crate) syntax: SyntaxNode,
7318}
7319impl Explain {
7320    #[inline]
7321    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
7322        support::child(&self.syntax)
7323    }
7324    #[inline]
7325    pub fn analyse_token(&self) -> Option<SyntaxToken> {
7326        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
7327    }
7328    #[inline]
7329    pub fn analyze_token(&self) -> Option<SyntaxToken> {
7330        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
7331    }
7332    #[inline]
7333    pub fn explain_token(&self) -> Option<SyntaxToken> {
7334        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
7335    }
7336    #[inline]
7337    pub fn verbose_token(&self) -> Option<SyntaxToken> {
7338        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
7339    }
7340}
7341
7342#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7343pub struct ExprAsName {
7344    pub(crate) syntax: SyntaxNode,
7345}
7346impl ExprAsName {
7347    #[inline]
7348    pub fn as_name(&self) -> Option<AsName> {
7349        support::child(&self.syntax)
7350    }
7351    #[inline]
7352    pub fn expr(&self) -> Option<Expr> {
7353        support::child(&self.syntax)
7354    }
7355}
7356
7357#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7358pub struct ExprType {
7359    pub(crate) syntax: SyntaxNode,
7360}
7361impl ExprType {
7362    #[inline]
7363    pub fn expr(&self) -> Option<Expr> {
7364        support::child(&self.syntax)
7365    }
7366}
7367
7368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7369pub struct ExtractFn {
7370    pub(crate) syntax: SyntaxNode,
7371}
7372impl ExtractFn {
7373    #[inline]
7374    pub fn expr(&self) -> Option<Expr> {
7375        support::child(&self.syntax)
7376    }
7377    #[inline]
7378    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7379        support::token(&self.syntax, SyntaxKind::L_PAREN)
7380    }
7381    #[inline]
7382    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7383        support::token(&self.syntax, SyntaxKind::R_PAREN)
7384    }
7385    #[inline]
7386    pub fn day_token(&self) -> Option<SyntaxToken> {
7387        support::token(&self.syntax, SyntaxKind::DAY_KW)
7388    }
7389    #[inline]
7390    pub fn extract_token(&self) -> Option<SyntaxToken> {
7391        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
7392    }
7393    #[inline]
7394    pub fn from_token(&self) -> Option<SyntaxToken> {
7395        support::token(&self.syntax, SyntaxKind::FROM_KW)
7396    }
7397    #[inline]
7398    pub fn hour_token(&self) -> Option<SyntaxToken> {
7399        support::token(&self.syntax, SyntaxKind::HOUR_KW)
7400    }
7401    #[inline]
7402    pub fn ident_token(&self) -> Option<SyntaxToken> {
7403        support::token(&self.syntax, SyntaxKind::IDENT)
7404    }
7405    #[inline]
7406    pub fn minute_token(&self) -> Option<SyntaxToken> {
7407        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
7408    }
7409    #[inline]
7410    pub fn month_token(&self) -> Option<SyntaxToken> {
7411        support::token(&self.syntax, SyntaxKind::MONTH_KW)
7412    }
7413    #[inline]
7414    pub fn second_token(&self) -> Option<SyntaxToken> {
7415        support::token(&self.syntax, SyntaxKind::SECOND_KW)
7416    }
7417    #[inline]
7418    pub fn string_token(&self) -> Option<SyntaxToken> {
7419        support::token(&self.syntax, SyntaxKind::STRING_KW)
7420    }
7421    #[inline]
7422    pub fn year_token(&self) -> Option<SyntaxToken> {
7423        support::token(&self.syntax, SyntaxKind::YEAR_KW)
7424    }
7425}
7426
7427#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7428pub struct FatArrow {
7429    pub(crate) syntax: SyntaxNode,
7430}
7431impl FatArrow {
7432    #[inline]
7433    pub fn eq_token(&self) -> Option<SyntaxToken> {
7434        support::token(&self.syntax, SyntaxKind::EQ)
7435    }
7436    #[inline]
7437    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7438        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7439    }
7440}
7441
7442#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7443pub struct FdwOption {
7444    pub(crate) syntax: SyntaxNode,
7445}
7446impl FdwOption {
7447    #[inline]
7448    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
7449        support::child(&self.syntax)
7450    }
7451    #[inline]
7452    pub fn path(&self) -> Option<Path> {
7453        support::child(&self.syntax)
7454    }
7455    #[inline]
7456    pub fn handler_token(&self) -> Option<SyntaxToken> {
7457        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
7458    }
7459    #[inline]
7460    pub fn no_token(&self) -> Option<SyntaxToken> {
7461        support::token(&self.syntax, SyntaxKind::NO_KW)
7462    }
7463    #[inline]
7464    pub fn options_token(&self) -> Option<SyntaxToken> {
7465        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
7466    }
7467    #[inline]
7468    pub fn validator_token(&self) -> Option<SyntaxToken> {
7469        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
7470    }
7471}
7472
7473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7474pub struct FdwOptionList {
7475    pub(crate) syntax: SyntaxNode,
7476}
7477impl FdwOptionList {
7478    #[inline]
7479    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
7480        support::children(&self.syntax)
7481    }
7482}
7483
7484#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7485pub struct Fetch {
7486    pub(crate) syntax: SyntaxNode,
7487}
7488impl Fetch {
7489    #[inline]
7490    pub fn name_ref(&self) -> Option<NameRef> {
7491        support::child(&self.syntax)
7492    }
7493    #[inline]
7494    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7495        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7496    }
7497    #[inline]
7498    pub fn from_token(&self) -> Option<SyntaxToken> {
7499        support::token(&self.syntax, SyntaxKind::FROM_KW)
7500    }
7501    #[inline]
7502    pub fn in_token(&self) -> Option<SyntaxToken> {
7503        support::token(&self.syntax, SyntaxKind::IN_KW)
7504    }
7505}
7506
7507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7508pub struct FetchClause {
7509    pub(crate) syntax: SyntaxNode,
7510}
7511impl FetchClause {
7512    #[inline]
7513    pub fn expr(&self) -> Option<Expr> {
7514        support::child(&self.syntax)
7515    }
7516    #[inline]
7517    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7518        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7519    }
7520    #[inline]
7521    pub fn first_token(&self) -> Option<SyntaxToken> {
7522        support::token(&self.syntax, SyntaxKind::FIRST_KW)
7523    }
7524    #[inline]
7525    pub fn next_token(&self) -> Option<SyntaxToken> {
7526        support::token(&self.syntax, SyntaxKind::NEXT_KW)
7527    }
7528    #[inline]
7529    pub fn only_token(&self) -> Option<SyntaxToken> {
7530        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7531    }
7532    #[inline]
7533    pub fn row_token(&self) -> Option<SyntaxToken> {
7534        support::token(&self.syntax, SyntaxKind::ROW_KW)
7535    }
7536    #[inline]
7537    pub fn rows_token(&self) -> Option<SyntaxToken> {
7538        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7539    }
7540    #[inline]
7541    pub fn ties_token(&self) -> Option<SyntaxToken> {
7542        support::token(&self.syntax, SyntaxKind::TIES_KW)
7543    }
7544    #[inline]
7545    pub fn with_token(&self) -> Option<SyntaxToken> {
7546        support::token(&self.syntax, SyntaxKind::WITH_KW)
7547    }
7548}
7549
7550#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7551pub struct FieldExpr {
7552    pub(crate) syntax: SyntaxNode,
7553}
7554impl FieldExpr {
7555    #[inline]
7556    pub fn star_token(&self) -> Option<SyntaxToken> {
7557        support::token(&self.syntax, SyntaxKind::STAR)
7558    }
7559    #[inline]
7560    pub fn dot_token(&self) -> Option<SyntaxToken> {
7561        support::token(&self.syntax, SyntaxKind::DOT)
7562    }
7563}
7564
7565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7566pub struct FilterClause {
7567    pub(crate) syntax: SyntaxNode,
7568}
7569impl FilterClause {
7570    #[inline]
7571    pub fn expr(&self) -> Option<Expr> {
7572        support::child(&self.syntax)
7573    }
7574    #[inline]
7575    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7576        support::token(&self.syntax, SyntaxKind::L_PAREN)
7577    }
7578    #[inline]
7579    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7580        support::token(&self.syntax, SyntaxKind::R_PAREN)
7581    }
7582    #[inline]
7583    pub fn filter_token(&self) -> Option<SyntaxToken> {
7584        support::token(&self.syntax, SyntaxKind::FILTER_KW)
7585    }
7586    #[inline]
7587    pub fn where_token(&self) -> Option<SyntaxToken> {
7588        support::token(&self.syntax, SyntaxKind::WHERE_KW)
7589    }
7590}
7591
7592#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7593pub struct ForProvider {
7594    pub(crate) syntax: SyntaxNode,
7595}
7596impl ForProvider {
7597    #[inline]
7598    pub fn literal(&self) -> Option<Literal> {
7599        support::child(&self.syntax)
7600    }
7601    #[inline]
7602    pub fn name_ref(&self) -> Option<NameRef> {
7603        support::child(&self.syntax)
7604    }
7605    #[inline]
7606    pub fn for_token(&self) -> Option<SyntaxToken> {
7607        support::token(&self.syntax, SyntaxKind::FOR_KW)
7608    }
7609}
7610
7611#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7612pub struct ForceRls {
7613    pub(crate) syntax: SyntaxNode,
7614}
7615impl ForceRls {
7616    #[inline]
7617    pub fn force_token(&self) -> Option<SyntaxToken> {
7618        support::token(&self.syntax, SyntaxKind::FORCE_KW)
7619    }
7620    #[inline]
7621    pub fn level_token(&self) -> Option<SyntaxToken> {
7622        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7623    }
7624    #[inline]
7625    pub fn row_token(&self) -> Option<SyntaxToken> {
7626        support::token(&self.syntax, SyntaxKind::ROW_KW)
7627    }
7628    #[inline]
7629    pub fn security_token(&self) -> Option<SyntaxToken> {
7630        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7631    }
7632}
7633
7634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7635pub struct ForeignKeyConstraint {
7636    pub(crate) syntax: SyntaxNode,
7637}
7638impl ForeignKeyConstraint {
7639    #[inline]
7640    pub fn match_type(&self) -> Option<MatchType> {
7641        support::child(&self.syntax)
7642    }
7643    #[inline]
7644    pub fn name(&self) -> Option<Name> {
7645        support::child(&self.syntax)
7646    }
7647    #[inline]
7648    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
7649        support::child(&self.syntax)
7650    }
7651    #[inline]
7652    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
7653        support::child(&self.syntax)
7654    }
7655    #[inline]
7656    pub fn path(&self) -> Option<Path> {
7657        support::child(&self.syntax)
7658    }
7659    #[inline]
7660    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7661        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7662    }
7663    #[inline]
7664    pub fn foreign_token(&self) -> Option<SyntaxToken> {
7665        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
7666    }
7667    #[inline]
7668    pub fn key_token(&self) -> Option<SyntaxToken> {
7669        support::token(&self.syntax, SyntaxKind::KEY_KW)
7670    }
7671    #[inline]
7672    pub fn references_token(&self) -> Option<SyntaxToken> {
7673        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
7674    }
7675}
7676
7677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7678pub struct FrameClause {
7679    pub(crate) syntax: SyntaxNode,
7680}
7681impl FrameClause {
7682    #[inline]
7683    pub fn groups_token(&self) -> Option<SyntaxToken> {
7684        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
7685    }
7686    #[inline]
7687    pub fn range_token(&self) -> Option<SyntaxToken> {
7688        support::token(&self.syntax, SyntaxKind::RANGE_KW)
7689    }
7690    #[inline]
7691    pub fn rows_token(&self) -> Option<SyntaxToken> {
7692        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7693    }
7694}
7695
7696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7697pub struct FromClause {
7698    pub(crate) syntax: SyntaxNode,
7699}
7700impl FromClause {
7701    #[inline]
7702    pub fn from_items(&self) -> AstChildren<FromItem> {
7703        support::children(&self.syntax)
7704    }
7705    #[inline]
7706    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
7707        support::children(&self.syntax)
7708    }
7709    #[inline]
7710    pub fn from_token(&self) -> Option<SyntaxToken> {
7711        support::token(&self.syntax, SyntaxKind::FROM_KW)
7712    }
7713}
7714
7715#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7716pub struct FromItem {
7717    pub(crate) syntax: SyntaxNode,
7718}
7719impl FromItem {
7720    #[inline]
7721    pub fn alias(&self) -> Option<Alias> {
7722        support::child(&self.syntax)
7723    }
7724    #[inline]
7725    pub fn call_expr(&self) -> Option<CallExpr> {
7726        support::child(&self.syntax)
7727    }
7728    #[inline]
7729    pub fn cast_expr(&self) -> Option<CastExpr> {
7730        support::child(&self.syntax)
7731    }
7732    #[inline]
7733    pub fn field_expr(&self) -> Option<FieldExpr> {
7734        support::child(&self.syntax)
7735    }
7736    #[inline]
7737    pub fn json_table(&self) -> Option<JsonTable> {
7738        support::child(&self.syntax)
7739    }
7740    #[inline]
7741    pub fn name_ref(&self) -> Option<NameRef> {
7742        support::child(&self.syntax)
7743    }
7744    #[inline]
7745    pub fn paren_select(&self) -> Option<ParenSelect> {
7746        support::child(&self.syntax)
7747    }
7748    #[inline]
7749    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
7750        support::child(&self.syntax)
7751    }
7752    #[inline]
7753    pub fn xml_table(&self) -> Option<XmlTable> {
7754        support::child(&self.syntax)
7755    }
7756    #[inline]
7757    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7758        support::token(&self.syntax, SyntaxKind::L_PAREN)
7759    }
7760    #[inline]
7761    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7762        support::token(&self.syntax, SyntaxKind::R_PAREN)
7763    }
7764    #[inline]
7765    pub fn star_token(&self) -> Option<SyntaxToken> {
7766        support::token(&self.syntax, SyntaxKind::STAR)
7767    }
7768    #[inline]
7769    pub fn from_token(&self) -> Option<SyntaxToken> {
7770        support::token(&self.syntax, SyntaxKind::FROM_KW)
7771    }
7772    #[inline]
7773    pub fn lateral_token(&self) -> Option<SyntaxToken> {
7774        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
7775    }
7776    #[inline]
7777    pub fn only_token(&self) -> Option<SyntaxToken> {
7778        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7779    }
7780    #[inline]
7781    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
7782        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
7783    }
7784    #[inline]
7785    pub fn rows_token(&self) -> Option<SyntaxToken> {
7786        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7787    }
7788    #[inline]
7789    pub fn with_token(&self) -> Option<SyntaxToken> {
7790        support::token(&self.syntax, SyntaxKind::WITH_KW)
7791    }
7792}
7793
7794#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7795pub struct FromServer {
7796    pub(crate) syntax: SyntaxNode,
7797}
7798impl FromServer {
7799    #[inline]
7800    pub fn name_ref(&self) -> Option<NameRef> {
7801        support::child(&self.syntax)
7802    }
7803    #[inline]
7804    pub fn from_token(&self) -> Option<SyntaxToken> {
7805        support::token(&self.syntax, SyntaxKind::FROM_KW)
7806    }
7807    #[inline]
7808    pub fn server_token(&self) -> Option<SyntaxToken> {
7809        support::token(&self.syntax, SyntaxKind::SERVER_KW)
7810    }
7811}
7812
7813#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7814pub struct FromTable {
7815    pub(crate) syntax: SyntaxNode,
7816}
7817impl FromTable {
7818    #[inline]
7819    pub fn path(&self) -> Option<Path> {
7820        support::child(&self.syntax)
7821    }
7822    #[inline]
7823    pub fn from_token(&self) -> Option<SyntaxToken> {
7824        support::token(&self.syntax, SyntaxKind::FROM_KW)
7825    }
7826}
7827
7828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7829pub struct FuncOptionList {
7830    pub(crate) syntax: SyntaxNode,
7831}
7832impl FuncOptionList {
7833    #[inline]
7834    pub fn options(&self) -> AstChildren<FuncOption> {
7835        support::children(&self.syntax)
7836    }
7837}
7838
7839#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7840pub struct FunctionSig {
7841    pub(crate) syntax: SyntaxNode,
7842}
7843impl FunctionSig {
7844    #[inline]
7845    pub fn param_list(&self) -> Option<ParamList> {
7846        support::child(&self.syntax)
7847    }
7848    #[inline]
7849    pub fn path(&self) -> Option<Path> {
7850        support::child(&self.syntax)
7851    }
7852}
7853
7854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7855pub struct FunctionSigList {
7856    pub(crate) syntax: SyntaxNode,
7857}
7858impl FunctionSigList {
7859    #[inline]
7860    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
7861        support::children(&self.syntax)
7862    }
7863}
7864
7865#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7866pub struct GeneratedConstraint {
7867    pub(crate) syntax: SyntaxNode,
7868}
7869impl GeneratedConstraint {
7870    #[inline]
7871    pub fn expr(&self) -> Option<Expr> {
7872        support::child(&self.syntax)
7873    }
7874    #[inline]
7875    pub fn name_ref(&self) -> Option<NameRef> {
7876        support::child(&self.syntax)
7877    }
7878    #[inline]
7879    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
7880        support::child(&self.syntax)
7881    }
7882    #[inline]
7883    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7884        support::token(&self.syntax, SyntaxKind::L_PAREN)
7885    }
7886    #[inline]
7887    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7888        support::token(&self.syntax, SyntaxKind::R_PAREN)
7889    }
7890    #[inline]
7891    pub fn always_token(&self) -> Option<SyntaxToken> {
7892        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7893    }
7894    #[inline]
7895    pub fn as_token(&self) -> Option<SyntaxToken> {
7896        support::token(&self.syntax, SyntaxKind::AS_KW)
7897    }
7898    #[inline]
7899    pub fn by_token(&self) -> Option<SyntaxToken> {
7900        support::token(&self.syntax, SyntaxKind::BY_KW)
7901    }
7902    #[inline]
7903    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7904        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7905    }
7906    #[inline]
7907    pub fn default_token(&self) -> Option<SyntaxToken> {
7908        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7909    }
7910    #[inline]
7911    pub fn generated_token(&self) -> Option<SyntaxToken> {
7912        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
7913    }
7914    #[inline]
7915    pub fn identity_token(&self) -> Option<SyntaxToken> {
7916        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
7917    }
7918    #[inline]
7919    pub fn stored_token(&self) -> Option<SyntaxToken> {
7920        support::token(&self.syntax, SyntaxKind::STORED_KW)
7921    }
7922}
7923
7924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7925pub struct Grant {
7926    pub(crate) syntax: SyntaxNode,
7927}
7928impl Grant {
7929    #[inline]
7930    pub fn name_refs(&self) -> AstChildren<NameRef> {
7931        support::children(&self.syntax)
7932    }
7933    #[inline]
7934    pub fn paths(&self) -> AstChildren<Path> {
7935        support::children(&self.syntax)
7936    }
7937    #[inline]
7938    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
7939        support::child(&self.syntax)
7940    }
7941    #[inline]
7942    pub fn role(&self) -> Option<Role> {
7943        support::child(&self.syntax)
7944    }
7945    #[inline]
7946    pub fn role_list(&self) -> Option<RoleList> {
7947        support::child(&self.syntax)
7948    }
7949    #[inline]
7950    pub fn all_token(&self) -> Option<SyntaxToken> {
7951        support::token(&self.syntax, SyntaxKind::ALL_KW)
7952    }
7953    #[inline]
7954    pub fn by_token(&self) -> Option<SyntaxToken> {
7955        support::token(&self.syntax, SyntaxKind::BY_KW)
7956    }
7957    #[inline]
7958    pub fn grant_token(&self) -> Option<SyntaxToken> {
7959        support::token(&self.syntax, SyntaxKind::GRANT_KW)
7960    }
7961    #[inline]
7962    pub fn granted_token(&self) -> Option<SyntaxToken> {
7963        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
7964    }
7965    #[inline]
7966    pub fn in_token(&self) -> Option<SyntaxToken> {
7967        support::token(&self.syntax, SyntaxKind::IN_KW)
7968    }
7969    #[inline]
7970    pub fn on_token(&self) -> Option<SyntaxToken> {
7971        support::token(&self.syntax, SyntaxKind::ON_KW)
7972    }
7973    #[inline]
7974    pub fn option_token(&self) -> Option<SyntaxToken> {
7975        support::token(&self.syntax, SyntaxKind::OPTION_KW)
7976    }
7977    #[inline]
7978    pub fn privileges_token(&self) -> Option<SyntaxToken> {
7979        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
7980    }
7981    #[inline]
7982    pub fn schema_token(&self) -> Option<SyntaxToken> {
7983        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
7984    }
7985    #[inline]
7986    pub fn table_token(&self) -> Option<SyntaxToken> {
7987        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7988    }
7989    #[inline]
7990    pub fn tables_token(&self) -> Option<SyntaxToken> {
7991        support::token(&self.syntax, SyntaxKind::TABLES_KW)
7992    }
7993    #[inline]
7994    pub fn to_token(&self) -> Option<SyntaxToken> {
7995        support::token(&self.syntax, SyntaxKind::TO_KW)
7996    }
7997    #[inline]
7998    pub fn with_token(&self) -> Option<SyntaxToken> {
7999        support::token(&self.syntax, SyntaxKind::WITH_KW)
8000    }
8001}
8002
8003#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8004pub struct GrantDefaultPrivileges {
8005    pub(crate) syntax: SyntaxNode,
8006}
8007impl GrantDefaultPrivileges {
8008    #[inline]
8009    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
8010        support::child(&self.syntax)
8011    }
8012    #[inline]
8013    pub fn privileges(&self) -> Option<Privileges> {
8014        support::child(&self.syntax)
8015    }
8016    #[inline]
8017    pub fn role_list(&self) -> Option<RoleList> {
8018        support::child(&self.syntax)
8019    }
8020    #[inline]
8021    pub fn grant_token(&self) -> Option<SyntaxToken> {
8022        support::token(&self.syntax, SyntaxKind::GRANT_KW)
8023    }
8024    #[inline]
8025    pub fn on_token(&self) -> Option<SyntaxToken> {
8026        support::token(&self.syntax, SyntaxKind::ON_KW)
8027    }
8028    #[inline]
8029    pub fn option_token(&self) -> Option<SyntaxToken> {
8030        support::token(&self.syntax, SyntaxKind::OPTION_KW)
8031    }
8032    #[inline]
8033    pub fn to_token(&self) -> Option<SyntaxToken> {
8034        support::token(&self.syntax, SyntaxKind::TO_KW)
8035    }
8036    #[inline]
8037    pub fn with_token(&self) -> Option<SyntaxToken> {
8038        support::token(&self.syntax, SyntaxKind::WITH_KW)
8039    }
8040}
8041
8042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8043pub struct GroupByClause {
8044    pub(crate) syntax: SyntaxNode,
8045}
8046impl GroupByClause {
8047    #[inline]
8048    pub fn group_by_list(&self) -> Option<GroupByList> {
8049        support::child(&self.syntax)
8050    }
8051    #[inline]
8052    pub fn all_token(&self) -> Option<SyntaxToken> {
8053        support::token(&self.syntax, SyntaxKind::ALL_KW)
8054    }
8055    #[inline]
8056    pub fn by_token(&self) -> Option<SyntaxToken> {
8057        support::token(&self.syntax, SyntaxKind::BY_KW)
8058    }
8059    #[inline]
8060    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8061        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8062    }
8063    #[inline]
8064    pub fn group_token(&self) -> Option<SyntaxToken> {
8065        support::token(&self.syntax, SyntaxKind::GROUP_KW)
8066    }
8067}
8068
8069#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8070pub struct GroupByList {
8071    pub(crate) syntax: SyntaxNode,
8072}
8073impl GroupByList {
8074    #[inline]
8075    pub fn group_bys(&self) -> AstChildren<GroupBy> {
8076        support::children(&self.syntax)
8077    }
8078}
8079
8080#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8081pub struct GroupingCube {
8082    pub(crate) syntax: SyntaxNode,
8083}
8084impl GroupingCube {
8085    #[inline]
8086    pub fn expr(&self) -> Option<Expr> {
8087        support::child(&self.syntax)
8088    }
8089    #[inline]
8090    pub fn cube_token(&self) -> Option<SyntaxToken> {
8091        support::token(&self.syntax, SyntaxKind::CUBE_KW)
8092    }
8093}
8094
8095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8096pub struct GroupingExpr {
8097    pub(crate) syntax: SyntaxNode,
8098}
8099impl GroupingExpr {
8100    #[inline]
8101    pub fn expr(&self) -> Option<Expr> {
8102        support::child(&self.syntax)
8103    }
8104}
8105
8106#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8107pub struct GroupingRollup {
8108    pub(crate) syntax: SyntaxNode,
8109}
8110impl GroupingRollup {
8111    #[inline]
8112    pub fn expr(&self) -> Option<Expr> {
8113        support::child(&self.syntax)
8114    }
8115    #[inline]
8116    pub fn rollup_token(&self) -> Option<SyntaxToken> {
8117        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
8118    }
8119}
8120
8121#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8122pub struct GroupingSets {
8123    pub(crate) syntax: SyntaxNode,
8124}
8125impl GroupingSets {
8126    #[inline]
8127    pub fn expr(&self) -> Option<Expr> {
8128        support::child(&self.syntax)
8129    }
8130    #[inline]
8131    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8132        support::token(&self.syntax, SyntaxKind::L_PAREN)
8133    }
8134    #[inline]
8135    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8136        support::token(&self.syntax, SyntaxKind::R_PAREN)
8137    }
8138    #[inline]
8139    pub fn grouping_token(&self) -> Option<SyntaxToken> {
8140        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
8141    }
8142    #[inline]
8143    pub fn sets_token(&self) -> Option<SyntaxToken> {
8144        support::token(&self.syntax, SyntaxKind::SETS_KW)
8145    }
8146}
8147
8148#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8149pub struct Gteq {
8150    pub(crate) syntax: SyntaxNode,
8151}
8152impl Gteq {
8153    #[inline]
8154    pub fn eq_token(&self) -> Option<SyntaxToken> {
8155        support::token(&self.syntax, SyntaxKind::EQ)
8156    }
8157    #[inline]
8158    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8159        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8160    }
8161}
8162
8163#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8164pub struct HandlerClause {
8165    pub(crate) syntax: SyntaxNode,
8166}
8167impl HandlerClause {
8168    #[inline]
8169    pub fn path(&self) -> Option<Path> {
8170        support::child(&self.syntax)
8171    }
8172    #[inline]
8173    pub fn handler_token(&self) -> Option<SyntaxToken> {
8174        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
8175    }
8176}
8177
8178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8179pub struct HavingClause {
8180    pub(crate) syntax: SyntaxNode,
8181}
8182impl HavingClause {
8183    #[inline]
8184    pub fn expr(&self) -> Option<Expr> {
8185        support::child(&self.syntax)
8186    }
8187    #[inline]
8188    pub fn having_token(&self) -> Option<SyntaxToken> {
8189        support::token(&self.syntax, SyntaxKind::HAVING_KW)
8190    }
8191}
8192
8193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8194pub struct IfExists {
8195    pub(crate) syntax: SyntaxNode,
8196}
8197impl IfExists {
8198    #[inline]
8199    pub fn exists_token(&self) -> Option<SyntaxToken> {
8200        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8201    }
8202    #[inline]
8203    pub fn if_token(&self) -> Option<SyntaxToken> {
8204        support::token(&self.syntax, SyntaxKind::IF_KW)
8205    }
8206}
8207
8208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8209pub struct IfNotExists {
8210    pub(crate) syntax: SyntaxNode,
8211}
8212impl IfNotExists {
8213    #[inline]
8214    pub fn exists_token(&self) -> Option<SyntaxToken> {
8215        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8216    }
8217    #[inline]
8218    pub fn if_token(&self) -> Option<SyntaxToken> {
8219        support::token(&self.syntax, SyntaxKind::IF_KW)
8220    }
8221    #[inline]
8222    pub fn not_token(&self) -> Option<SyntaxToken> {
8223        support::token(&self.syntax, SyntaxKind::NOT_KW)
8224    }
8225}
8226
8227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8228pub struct ImportForeignSchema {
8229    pub(crate) syntax: SyntaxNode,
8230}
8231impl ImportForeignSchema {
8232    #[inline]
8233    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
8234        support::child(&self.syntax)
8235    }
8236    #[inline]
8237    pub fn except_tables(&self) -> Option<ExceptTables> {
8238        support::child(&self.syntax)
8239    }
8240    #[inline]
8241    pub fn from_server(&self) -> Option<FromServer> {
8242        support::child(&self.syntax)
8243    }
8244    #[inline]
8245    pub fn into_schema(&self) -> Option<IntoSchema> {
8246        support::child(&self.syntax)
8247    }
8248    #[inline]
8249    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
8250        support::child(&self.syntax)
8251    }
8252    #[inline]
8253    pub fn name_ref(&self) -> Option<NameRef> {
8254        support::child(&self.syntax)
8255    }
8256    #[inline]
8257    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8258        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8259    }
8260    #[inline]
8261    pub fn import_token(&self) -> Option<SyntaxToken> {
8262        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
8263    }
8264    #[inline]
8265    pub fn schema_token(&self) -> Option<SyntaxToken> {
8266        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8267    }
8268}
8269
8270#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8271pub struct IndexExpr {
8272    pub(crate) syntax: SyntaxNode,
8273}
8274impl IndexExpr {
8275    #[inline]
8276    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8277        support::token(&self.syntax, SyntaxKind::L_BRACK)
8278    }
8279    #[inline]
8280    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8281        support::token(&self.syntax, SyntaxKind::R_BRACK)
8282    }
8283}
8284
8285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8286pub struct Inherit {
8287    pub(crate) syntax: SyntaxNode,
8288}
8289impl Inherit {
8290    #[inline]
8291    pub fn path(&self) -> Option<Path> {
8292        support::child(&self.syntax)
8293    }
8294    #[inline]
8295    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8296        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8297    }
8298}
8299
8300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8301pub struct InheritTable {
8302    pub(crate) syntax: SyntaxNode,
8303}
8304impl InheritTable {
8305    #[inline]
8306    pub fn path(&self) -> Option<Path> {
8307        support::child(&self.syntax)
8308    }
8309    #[inline]
8310    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8311        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8312    }
8313}
8314
8315#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8316pub struct Inherits {
8317    pub(crate) syntax: SyntaxNode,
8318}
8319impl Inherits {
8320    #[inline]
8321    pub fn paths(&self) -> AstChildren<Path> {
8322        support::children(&self.syntax)
8323    }
8324    #[inline]
8325    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8326        support::token(&self.syntax, SyntaxKind::L_PAREN)
8327    }
8328    #[inline]
8329    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8330        support::token(&self.syntax, SyntaxKind::R_PAREN)
8331    }
8332    #[inline]
8333    pub fn inherits_token(&self) -> Option<SyntaxToken> {
8334        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
8335    }
8336}
8337
8338#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8339pub struct InitiallyDeferredConstraintOption {
8340    pub(crate) syntax: SyntaxNode,
8341}
8342impl InitiallyDeferredConstraintOption {
8343    #[inline]
8344    pub fn deferred_token(&self) -> Option<SyntaxToken> {
8345        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
8346    }
8347    #[inline]
8348    pub fn initially_token(&self) -> Option<SyntaxToken> {
8349        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8350    }
8351}
8352
8353#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8354pub struct InitiallyImmediateConstraintOption {
8355    pub(crate) syntax: SyntaxNode,
8356}
8357impl InitiallyImmediateConstraintOption {
8358    #[inline]
8359    pub fn immediate_token(&self) -> Option<SyntaxToken> {
8360        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
8361    }
8362    #[inline]
8363    pub fn initially_token(&self) -> Option<SyntaxToken> {
8364        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8365    }
8366}
8367
8368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8369pub struct Insert {
8370    pub(crate) syntax: SyntaxNode,
8371}
8372impl Insert {
8373    #[inline]
8374    pub fn alias(&self) -> Option<Alias> {
8375        support::child(&self.syntax)
8376    }
8377    #[inline]
8378    pub fn column_list(&self) -> Option<ColumnList> {
8379        support::child(&self.syntax)
8380    }
8381    #[inline]
8382    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
8383        support::child(&self.syntax)
8384    }
8385    #[inline]
8386    pub fn path(&self) -> Option<Path> {
8387        support::child(&self.syntax)
8388    }
8389    #[inline]
8390    pub fn returning_clause(&self) -> Option<ReturningClause> {
8391        support::child(&self.syntax)
8392    }
8393    #[inline]
8394    pub fn stmt(&self) -> Option<Stmt> {
8395        support::child(&self.syntax)
8396    }
8397    #[inline]
8398    pub fn values(&self) -> Option<Values> {
8399        support::child(&self.syntax)
8400    }
8401    #[inline]
8402    pub fn default_token(&self) -> Option<SyntaxToken> {
8403        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8404    }
8405    #[inline]
8406    pub fn insert_token(&self) -> Option<SyntaxToken> {
8407        support::token(&self.syntax, SyntaxKind::INSERT_KW)
8408    }
8409    #[inline]
8410    pub fn into_token(&self) -> Option<SyntaxToken> {
8411        support::token(&self.syntax, SyntaxKind::INTO_KW)
8412    }
8413    #[inline]
8414    pub fn overriding_token(&self) -> Option<SyntaxToken> {
8415        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
8416    }
8417    #[inline]
8418    pub fn system_token(&self) -> Option<SyntaxToken> {
8419        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
8420    }
8421    #[inline]
8422    pub fn user_token(&self) -> Option<SyntaxToken> {
8423        support::token(&self.syntax, SyntaxKind::USER_KW)
8424    }
8425    #[inline]
8426    pub fn value_token(&self) -> Option<SyntaxToken> {
8427        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8428    }
8429    #[inline]
8430    pub fn values_token(&self) -> Option<SyntaxToken> {
8431        support::token(&self.syntax, SyntaxKind::VALUES_KW)
8432    }
8433}
8434
8435#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8436pub struct IntervalType {
8437    pub(crate) syntax: SyntaxNode,
8438}
8439impl IntervalType {
8440    #[inline]
8441    pub fn literal(&self) -> Option<Literal> {
8442        support::child(&self.syntax)
8443    }
8444    #[inline]
8445    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8446        support::token(&self.syntax, SyntaxKind::L_PAREN)
8447    }
8448    #[inline]
8449    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8450        support::token(&self.syntax, SyntaxKind::R_PAREN)
8451    }
8452    #[inline]
8453    pub fn day_token(&self) -> Option<SyntaxToken> {
8454        support::token(&self.syntax, SyntaxKind::DAY_KW)
8455    }
8456    #[inline]
8457    pub fn hour_token(&self) -> Option<SyntaxToken> {
8458        support::token(&self.syntax, SyntaxKind::HOUR_KW)
8459    }
8460    #[inline]
8461    pub fn interval_token(&self) -> Option<SyntaxToken> {
8462        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
8463    }
8464    #[inline]
8465    pub fn minute_token(&self) -> Option<SyntaxToken> {
8466        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
8467    }
8468    #[inline]
8469    pub fn month_token(&self) -> Option<SyntaxToken> {
8470        support::token(&self.syntax, SyntaxKind::MONTH_KW)
8471    }
8472    #[inline]
8473    pub fn second_token(&self) -> Option<SyntaxToken> {
8474        support::token(&self.syntax, SyntaxKind::SECOND_KW)
8475    }
8476    #[inline]
8477    pub fn to_token(&self) -> Option<SyntaxToken> {
8478        support::token(&self.syntax, SyntaxKind::TO_KW)
8479    }
8480    #[inline]
8481    pub fn year_token(&self) -> Option<SyntaxToken> {
8482        support::token(&self.syntax, SyntaxKind::YEAR_KW)
8483    }
8484}
8485
8486#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8487pub struct IntoClause {
8488    pub(crate) syntax: SyntaxNode,
8489}
8490impl IntoClause {
8491    #[inline]
8492    pub fn path(&self) -> Option<Path> {
8493        support::child(&self.syntax)
8494    }
8495    #[inline]
8496    pub fn into_token(&self) -> Option<SyntaxToken> {
8497        support::token(&self.syntax, SyntaxKind::INTO_KW)
8498    }
8499}
8500
8501#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8502pub struct IntoSchema {
8503    pub(crate) syntax: SyntaxNode,
8504}
8505impl IntoSchema {
8506    #[inline]
8507    pub fn name_ref(&self) -> Option<NameRef> {
8508        support::child(&self.syntax)
8509    }
8510    #[inline]
8511    pub fn into_token(&self) -> Option<SyntaxToken> {
8512        support::token(&self.syntax, SyntaxKind::INTO_KW)
8513    }
8514}
8515
8516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8517pub struct IsDistinctFrom {
8518    pub(crate) syntax: SyntaxNode,
8519}
8520impl IsDistinctFrom {
8521    #[inline]
8522    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8523        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8524    }
8525    #[inline]
8526    pub fn from_token(&self) -> Option<SyntaxToken> {
8527        support::token(&self.syntax, SyntaxKind::FROM_KW)
8528    }
8529    #[inline]
8530    pub fn is_token(&self) -> Option<SyntaxToken> {
8531        support::token(&self.syntax, SyntaxKind::IS_KW)
8532    }
8533}
8534
8535#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8536pub struct IsJson {
8537    pub(crate) syntax: SyntaxNode,
8538}
8539impl IsJson {
8540    #[inline]
8541    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8542        support::child(&self.syntax)
8543    }
8544    #[inline]
8545    pub fn is_token(&self) -> Option<SyntaxToken> {
8546        support::token(&self.syntax, SyntaxKind::IS_KW)
8547    }
8548    #[inline]
8549    pub fn json_token(&self) -> Option<SyntaxToken> {
8550        support::token(&self.syntax, SyntaxKind::JSON_KW)
8551    }
8552}
8553
8554#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8555pub struct IsJsonArray {
8556    pub(crate) syntax: SyntaxNode,
8557}
8558impl IsJsonArray {
8559    #[inline]
8560    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8561        support::child(&self.syntax)
8562    }
8563    #[inline]
8564    pub fn array_token(&self) -> Option<SyntaxToken> {
8565        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8566    }
8567    #[inline]
8568    pub fn is_token(&self) -> Option<SyntaxToken> {
8569        support::token(&self.syntax, SyntaxKind::IS_KW)
8570    }
8571    #[inline]
8572    pub fn json_token(&self) -> Option<SyntaxToken> {
8573        support::token(&self.syntax, SyntaxKind::JSON_KW)
8574    }
8575}
8576
8577#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8578pub struct IsJsonObject {
8579    pub(crate) syntax: SyntaxNode,
8580}
8581impl IsJsonObject {
8582    #[inline]
8583    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8584        support::child(&self.syntax)
8585    }
8586    #[inline]
8587    pub fn is_token(&self) -> Option<SyntaxToken> {
8588        support::token(&self.syntax, SyntaxKind::IS_KW)
8589    }
8590    #[inline]
8591    pub fn json_token(&self) -> Option<SyntaxToken> {
8592        support::token(&self.syntax, SyntaxKind::JSON_KW)
8593    }
8594    #[inline]
8595    pub fn object_token(&self) -> Option<SyntaxToken> {
8596        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8597    }
8598}
8599
8600#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8601pub struct IsJsonScalar {
8602    pub(crate) syntax: SyntaxNode,
8603}
8604impl IsJsonScalar {
8605    #[inline]
8606    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8607        support::child(&self.syntax)
8608    }
8609    #[inline]
8610    pub fn is_token(&self) -> Option<SyntaxToken> {
8611        support::token(&self.syntax, SyntaxKind::IS_KW)
8612    }
8613    #[inline]
8614    pub fn json_token(&self) -> Option<SyntaxToken> {
8615        support::token(&self.syntax, SyntaxKind::JSON_KW)
8616    }
8617    #[inline]
8618    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8619        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8620    }
8621}
8622
8623#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8624pub struct IsJsonValue {
8625    pub(crate) syntax: SyntaxNode,
8626}
8627impl IsJsonValue {
8628    #[inline]
8629    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8630        support::child(&self.syntax)
8631    }
8632    #[inline]
8633    pub fn is_token(&self) -> Option<SyntaxToken> {
8634        support::token(&self.syntax, SyntaxKind::IS_KW)
8635    }
8636    #[inline]
8637    pub fn json_token(&self) -> Option<SyntaxToken> {
8638        support::token(&self.syntax, SyntaxKind::JSON_KW)
8639    }
8640    #[inline]
8641    pub fn value_token(&self) -> Option<SyntaxToken> {
8642        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8643    }
8644}
8645
8646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8647pub struct IsNormalized {
8648    pub(crate) syntax: SyntaxNode,
8649}
8650impl IsNormalized {
8651    #[inline]
8652    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8653        support::child(&self.syntax)
8654    }
8655    #[inline]
8656    pub fn is_token(&self) -> Option<SyntaxToken> {
8657        support::token(&self.syntax, SyntaxKind::IS_KW)
8658    }
8659    #[inline]
8660    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8661        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8662    }
8663}
8664
8665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8666pub struct IsNot {
8667    pub(crate) syntax: SyntaxNode,
8668}
8669impl IsNot {
8670    #[inline]
8671    pub fn is_token(&self) -> Option<SyntaxToken> {
8672        support::token(&self.syntax, SyntaxKind::IS_KW)
8673    }
8674    #[inline]
8675    pub fn not_token(&self) -> Option<SyntaxToken> {
8676        support::token(&self.syntax, SyntaxKind::NOT_KW)
8677    }
8678}
8679
8680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8681pub struct IsNotDistinctFrom {
8682    pub(crate) syntax: SyntaxNode,
8683}
8684impl IsNotDistinctFrom {
8685    #[inline]
8686    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8687        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8688    }
8689    #[inline]
8690    pub fn from_token(&self) -> Option<SyntaxToken> {
8691        support::token(&self.syntax, SyntaxKind::FROM_KW)
8692    }
8693    #[inline]
8694    pub fn is_token(&self) -> Option<SyntaxToken> {
8695        support::token(&self.syntax, SyntaxKind::IS_KW)
8696    }
8697    #[inline]
8698    pub fn not_token(&self) -> Option<SyntaxToken> {
8699        support::token(&self.syntax, SyntaxKind::NOT_KW)
8700    }
8701}
8702
8703#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8704pub struct IsNotJson {
8705    pub(crate) syntax: SyntaxNode,
8706}
8707impl IsNotJson {
8708    #[inline]
8709    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8710        support::child(&self.syntax)
8711    }
8712    #[inline]
8713    pub fn is_token(&self) -> Option<SyntaxToken> {
8714        support::token(&self.syntax, SyntaxKind::IS_KW)
8715    }
8716    #[inline]
8717    pub fn json_token(&self) -> Option<SyntaxToken> {
8718        support::token(&self.syntax, SyntaxKind::JSON_KW)
8719    }
8720    #[inline]
8721    pub fn not_token(&self) -> Option<SyntaxToken> {
8722        support::token(&self.syntax, SyntaxKind::NOT_KW)
8723    }
8724}
8725
8726#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8727pub struct IsNotJsonArray {
8728    pub(crate) syntax: SyntaxNode,
8729}
8730impl IsNotJsonArray {
8731    #[inline]
8732    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8733        support::child(&self.syntax)
8734    }
8735    #[inline]
8736    pub fn array_token(&self) -> Option<SyntaxToken> {
8737        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8738    }
8739    #[inline]
8740    pub fn is_token(&self) -> Option<SyntaxToken> {
8741        support::token(&self.syntax, SyntaxKind::IS_KW)
8742    }
8743    #[inline]
8744    pub fn json_token(&self) -> Option<SyntaxToken> {
8745        support::token(&self.syntax, SyntaxKind::JSON_KW)
8746    }
8747    #[inline]
8748    pub fn not_token(&self) -> Option<SyntaxToken> {
8749        support::token(&self.syntax, SyntaxKind::NOT_KW)
8750    }
8751}
8752
8753#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8754pub struct IsNotJsonObject {
8755    pub(crate) syntax: SyntaxNode,
8756}
8757impl IsNotJsonObject {
8758    #[inline]
8759    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8760        support::child(&self.syntax)
8761    }
8762    #[inline]
8763    pub fn is_token(&self) -> Option<SyntaxToken> {
8764        support::token(&self.syntax, SyntaxKind::IS_KW)
8765    }
8766    #[inline]
8767    pub fn json_token(&self) -> Option<SyntaxToken> {
8768        support::token(&self.syntax, SyntaxKind::JSON_KW)
8769    }
8770    #[inline]
8771    pub fn not_token(&self) -> Option<SyntaxToken> {
8772        support::token(&self.syntax, SyntaxKind::NOT_KW)
8773    }
8774    #[inline]
8775    pub fn object_token(&self) -> Option<SyntaxToken> {
8776        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8777    }
8778}
8779
8780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8781pub struct IsNotJsonScalar {
8782    pub(crate) syntax: SyntaxNode,
8783}
8784impl IsNotJsonScalar {
8785    #[inline]
8786    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8787        support::child(&self.syntax)
8788    }
8789    #[inline]
8790    pub fn is_token(&self) -> Option<SyntaxToken> {
8791        support::token(&self.syntax, SyntaxKind::IS_KW)
8792    }
8793    #[inline]
8794    pub fn json_token(&self) -> Option<SyntaxToken> {
8795        support::token(&self.syntax, SyntaxKind::JSON_KW)
8796    }
8797    #[inline]
8798    pub fn not_token(&self) -> Option<SyntaxToken> {
8799        support::token(&self.syntax, SyntaxKind::NOT_KW)
8800    }
8801    #[inline]
8802    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8803        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8804    }
8805}
8806
8807#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8808pub struct IsNotJsonValue {
8809    pub(crate) syntax: SyntaxNode,
8810}
8811impl IsNotJsonValue {
8812    #[inline]
8813    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8814        support::child(&self.syntax)
8815    }
8816    #[inline]
8817    pub fn is_token(&self) -> Option<SyntaxToken> {
8818        support::token(&self.syntax, SyntaxKind::IS_KW)
8819    }
8820    #[inline]
8821    pub fn json_token(&self) -> Option<SyntaxToken> {
8822        support::token(&self.syntax, SyntaxKind::JSON_KW)
8823    }
8824    #[inline]
8825    pub fn not_token(&self) -> Option<SyntaxToken> {
8826        support::token(&self.syntax, SyntaxKind::NOT_KW)
8827    }
8828    #[inline]
8829    pub fn value_token(&self) -> Option<SyntaxToken> {
8830        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8831    }
8832}
8833
8834#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8835pub struct IsNotNormalized {
8836    pub(crate) syntax: SyntaxNode,
8837}
8838impl IsNotNormalized {
8839    #[inline]
8840    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8841        support::child(&self.syntax)
8842    }
8843    #[inline]
8844    pub fn is_token(&self) -> Option<SyntaxToken> {
8845        support::token(&self.syntax, SyntaxKind::IS_KW)
8846    }
8847    #[inline]
8848    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8849        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8850    }
8851    #[inline]
8852    pub fn not_token(&self) -> Option<SyntaxToken> {
8853        support::token(&self.syntax, SyntaxKind::NOT_KW)
8854    }
8855}
8856
8857#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8858pub struct Join {
8859    pub(crate) syntax: SyntaxNode,
8860}
8861impl Join {
8862    #[inline]
8863    pub fn from_item(&self) -> Option<FromItem> {
8864        support::child(&self.syntax)
8865    }
8866    #[inline]
8867    pub fn join_type(&self) -> Option<JoinType> {
8868        support::child(&self.syntax)
8869    }
8870    #[inline]
8871    pub fn on_clause(&self) -> Option<OnClause> {
8872        support::child(&self.syntax)
8873    }
8874    #[inline]
8875    pub fn using_clause(&self) -> Option<JoinUsingClause> {
8876        support::child(&self.syntax)
8877    }
8878    #[inline]
8879    pub fn natural_token(&self) -> Option<SyntaxToken> {
8880        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
8881    }
8882}
8883
8884#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8885pub struct JoinCross {
8886    pub(crate) syntax: SyntaxNode,
8887}
8888impl JoinCross {
8889    #[inline]
8890    pub fn cross_token(&self) -> Option<SyntaxToken> {
8891        support::token(&self.syntax, SyntaxKind::CROSS_KW)
8892    }
8893    #[inline]
8894    pub fn join_token(&self) -> Option<SyntaxToken> {
8895        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8896    }
8897}
8898
8899#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8900pub struct JoinExpr {
8901    pub(crate) syntax: SyntaxNode,
8902}
8903impl JoinExpr {
8904    #[inline]
8905    pub fn from_item(&self) -> Option<FromItem> {
8906        support::child(&self.syntax)
8907    }
8908    #[inline]
8909    pub fn join(&self) -> Option<Join> {
8910        support::child(&self.syntax)
8911    }
8912    #[inline]
8913    pub fn join_expr(&self) -> Option<JoinExpr> {
8914        support::child(&self.syntax)
8915    }
8916}
8917
8918#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8919pub struct JoinFull {
8920    pub(crate) syntax: SyntaxNode,
8921}
8922impl JoinFull {
8923    #[inline]
8924    pub fn full_token(&self) -> Option<SyntaxToken> {
8925        support::token(&self.syntax, SyntaxKind::FULL_KW)
8926    }
8927    #[inline]
8928    pub fn join_token(&self) -> Option<SyntaxToken> {
8929        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8930    }
8931    #[inline]
8932    pub fn outer_token(&self) -> Option<SyntaxToken> {
8933        support::token(&self.syntax, SyntaxKind::OUTER_KW)
8934    }
8935}
8936
8937#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8938pub struct JoinInner {
8939    pub(crate) syntax: SyntaxNode,
8940}
8941impl JoinInner {
8942    #[inline]
8943    pub fn inner_token(&self) -> Option<SyntaxToken> {
8944        support::token(&self.syntax, SyntaxKind::INNER_KW)
8945    }
8946    #[inline]
8947    pub fn join_token(&self) -> Option<SyntaxToken> {
8948        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8949    }
8950}
8951
8952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8953pub struct JoinLeft {
8954    pub(crate) syntax: SyntaxNode,
8955}
8956impl JoinLeft {
8957    #[inline]
8958    pub fn join_token(&self) -> Option<SyntaxToken> {
8959        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8960    }
8961    #[inline]
8962    pub fn left_token(&self) -> Option<SyntaxToken> {
8963        support::token(&self.syntax, SyntaxKind::LEFT_KW)
8964    }
8965    #[inline]
8966    pub fn outer_token(&self) -> Option<SyntaxToken> {
8967        support::token(&self.syntax, SyntaxKind::OUTER_KW)
8968    }
8969}
8970
8971#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8972pub struct JoinRight {
8973    pub(crate) syntax: SyntaxNode,
8974}
8975impl JoinRight {
8976    #[inline]
8977    pub fn join_token(&self) -> Option<SyntaxToken> {
8978        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8979    }
8980    #[inline]
8981    pub fn outer_token(&self) -> Option<SyntaxToken> {
8982        support::token(&self.syntax, SyntaxKind::OUTER_KW)
8983    }
8984    #[inline]
8985    pub fn right_token(&self) -> Option<SyntaxToken> {
8986        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
8987    }
8988}
8989
8990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8991pub struct JoinUsingClause {
8992    pub(crate) syntax: SyntaxNode,
8993}
8994impl JoinUsingClause {
8995    #[inline]
8996    pub fn alias(&self) -> Option<Alias> {
8997        support::child(&self.syntax)
8998    }
8999    #[inline]
9000    pub fn column_list(&self) -> Option<ColumnList> {
9001        support::child(&self.syntax)
9002    }
9003    #[inline]
9004    pub fn using_token(&self) -> Option<SyntaxToken> {
9005        support::token(&self.syntax, SyntaxKind::USING_KW)
9006    }
9007}
9008
9009#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9010pub struct JsonArrayAggFn {
9011    pub(crate) syntax: SyntaxNode,
9012}
9013impl JsonArrayAggFn {
9014    #[inline]
9015    pub fn expr(&self) -> Option<Expr> {
9016        support::child(&self.syntax)
9017    }
9018    #[inline]
9019    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9020        support::child(&self.syntax)
9021    }
9022    #[inline]
9023    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9024        support::child(&self.syntax)
9025    }
9026    #[inline]
9027    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9028        support::children(&self.syntax)
9029    }
9030    #[inline]
9031    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9032        support::token(&self.syntax, SyntaxKind::L_PAREN)
9033    }
9034    #[inline]
9035    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9036        support::token(&self.syntax, SyntaxKind::R_PAREN)
9037    }
9038    #[inline]
9039    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
9040        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
9041    }
9042}
9043
9044#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9045pub struct JsonArrayFn {
9046    pub(crate) syntax: SyntaxNode,
9047}
9048impl JsonArrayFn {
9049    #[inline]
9050    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
9051        support::children(&self.syntax)
9052    }
9053    #[inline]
9054    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9055        support::child(&self.syntax)
9056    }
9057    #[inline]
9058    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9059        support::child(&self.syntax)
9060    }
9061    #[inline]
9062    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9063        support::children(&self.syntax)
9064    }
9065    #[inline]
9066    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9067        support::token(&self.syntax, SyntaxKind::L_PAREN)
9068    }
9069    #[inline]
9070    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9071        support::token(&self.syntax, SyntaxKind::R_PAREN)
9072    }
9073    #[inline]
9074    pub fn json_array_token(&self) -> Option<SyntaxToken> {
9075        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
9076    }
9077}
9078
9079#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9080pub struct JsonBehaviorClause {
9081    pub(crate) syntax: SyntaxNode,
9082}
9083impl JsonBehaviorClause {
9084    #[inline]
9085    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9086        support::child(&self.syntax)
9087    }
9088}
9089
9090#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9091pub struct JsonBehaviorDefault {
9092    pub(crate) syntax: SyntaxNode,
9093}
9094impl JsonBehaviorDefault {
9095    #[inline]
9096    pub fn expr(&self) -> Option<Expr> {
9097        support::child(&self.syntax)
9098    }
9099    #[inline]
9100    pub fn default_token(&self) -> Option<SyntaxToken> {
9101        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9102    }
9103}
9104
9105#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9106pub struct JsonBehaviorEmptyArray {
9107    pub(crate) syntax: SyntaxNode,
9108}
9109impl JsonBehaviorEmptyArray {
9110    #[inline]
9111    pub fn array_token(&self) -> Option<SyntaxToken> {
9112        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9113    }
9114    #[inline]
9115    pub fn empty_token(&self) -> Option<SyntaxToken> {
9116        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9117    }
9118}
9119
9120#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9121pub struct JsonBehaviorEmptyObject {
9122    pub(crate) syntax: SyntaxNode,
9123}
9124impl JsonBehaviorEmptyObject {
9125    #[inline]
9126    pub fn empty_token(&self) -> Option<SyntaxToken> {
9127        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9128    }
9129    #[inline]
9130    pub fn object_token(&self) -> Option<SyntaxToken> {
9131        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9132    }
9133}
9134
9135#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9136pub struct JsonBehaviorError {
9137    pub(crate) syntax: SyntaxNode,
9138}
9139impl JsonBehaviorError {
9140    #[inline]
9141    pub fn error_token(&self) -> Option<SyntaxToken> {
9142        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9143    }
9144}
9145
9146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9147pub struct JsonBehaviorFalse {
9148    pub(crate) syntax: SyntaxNode,
9149}
9150impl JsonBehaviorFalse {
9151    #[inline]
9152    pub fn false_token(&self) -> Option<SyntaxToken> {
9153        support::token(&self.syntax, SyntaxKind::FALSE_KW)
9154    }
9155}
9156
9157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9158pub struct JsonBehaviorNull {
9159    pub(crate) syntax: SyntaxNode,
9160}
9161impl JsonBehaviorNull {
9162    #[inline]
9163    pub fn null_token(&self) -> Option<SyntaxToken> {
9164        support::token(&self.syntax, SyntaxKind::NULL_KW)
9165    }
9166}
9167
9168#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9169pub struct JsonBehaviorTrue {
9170    pub(crate) syntax: SyntaxNode,
9171}
9172impl JsonBehaviorTrue {
9173    #[inline]
9174    pub fn true_token(&self) -> Option<SyntaxToken> {
9175        support::token(&self.syntax, SyntaxKind::TRUE_KW)
9176    }
9177}
9178
9179#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9180pub struct JsonBehaviorUnknown {
9181    pub(crate) syntax: SyntaxNode,
9182}
9183impl JsonBehaviorUnknown {
9184    #[inline]
9185    pub fn unknown_token(&self) -> Option<SyntaxToken> {
9186        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
9187    }
9188}
9189
9190#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9191pub struct JsonEncodingClause {
9192    pub(crate) syntax: SyntaxNode,
9193}
9194impl JsonEncodingClause {
9195    #[inline]
9196    pub fn name_ref(&self) -> Option<NameRef> {
9197        support::child(&self.syntax)
9198    }
9199    #[inline]
9200    pub fn encoding_token(&self) -> Option<SyntaxToken> {
9201        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
9202    }
9203}
9204
9205#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9206pub struct JsonExistsFn {
9207    pub(crate) syntax: SyntaxNode,
9208}
9209impl JsonExistsFn {
9210    #[inline]
9211    pub fn expr(&self) -> Option<Expr> {
9212        support::child(&self.syntax)
9213    }
9214    #[inline]
9215    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9216        support::child(&self.syntax)
9217    }
9218    #[inline]
9219    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9220        support::child(&self.syntax)
9221    }
9222    #[inline]
9223    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9224        support::child(&self.syntax)
9225    }
9226    #[inline]
9227    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9228        support::token(&self.syntax, SyntaxKind::L_PAREN)
9229    }
9230    #[inline]
9231    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9232        support::token(&self.syntax, SyntaxKind::R_PAREN)
9233    }
9234    #[inline]
9235    pub fn comma_token(&self) -> Option<SyntaxToken> {
9236        support::token(&self.syntax, SyntaxKind::COMMA)
9237    }
9238    #[inline]
9239    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
9240        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
9241    }
9242}
9243
9244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9245pub struct JsonExprFormat {
9246    pub(crate) syntax: SyntaxNode,
9247}
9248impl JsonExprFormat {
9249    #[inline]
9250    pub fn expr(&self) -> Option<Expr> {
9251        support::child(&self.syntax)
9252    }
9253    #[inline]
9254    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9255        support::child(&self.syntax)
9256    }
9257}
9258
9259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9260pub struct JsonFn {
9261    pub(crate) syntax: SyntaxNode,
9262}
9263impl JsonFn {
9264    #[inline]
9265    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
9266        support::child(&self.syntax)
9267    }
9268    #[inline]
9269    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9270        support::child(&self.syntax)
9271    }
9272    #[inline]
9273    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9274        support::token(&self.syntax, SyntaxKind::L_PAREN)
9275    }
9276    #[inline]
9277    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9278        support::token(&self.syntax, SyntaxKind::R_PAREN)
9279    }
9280    #[inline]
9281    pub fn json_token(&self) -> Option<SyntaxToken> {
9282        support::token(&self.syntax, SyntaxKind::JSON_KW)
9283    }
9284}
9285
9286#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9287pub struct JsonFormatClause {
9288    pub(crate) syntax: SyntaxNode,
9289}
9290impl JsonFormatClause {
9291    #[inline]
9292    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
9293        support::child(&self.syntax)
9294    }
9295    #[inline]
9296    pub fn format_token(&self) -> Option<SyntaxToken> {
9297        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
9298    }
9299    #[inline]
9300    pub fn json_token(&self) -> Option<SyntaxToken> {
9301        support::token(&self.syntax, SyntaxKind::JSON_KW)
9302    }
9303}
9304
9305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9306pub struct JsonKeyValue {
9307    pub(crate) syntax: SyntaxNode,
9308}
9309impl JsonKeyValue {
9310    #[inline]
9311    pub fn expr(&self) -> Option<Expr> {
9312        support::child(&self.syntax)
9313    }
9314    #[inline]
9315    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
9316        support::child(&self.syntax)
9317    }
9318    #[inline]
9319    pub fn colon_token(&self) -> Option<SyntaxToken> {
9320        support::token(&self.syntax, SyntaxKind::COLON)
9321    }
9322}
9323
9324#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9325pub struct JsonKeysUniqueClause {
9326    pub(crate) syntax: SyntaxNode,
9327}
9328impl JsonKeysUniqueClause {
9329    #[inline]
9330    pub fn keys_token(&self) -> Option<SyntaxToken> {
9331        support::token(&self.syntax, SyntaxKind::KEYS_KW)
9332    }
9333    #[inline]
9334    pub fn unique_token(&self) -> Option<SyntaxToken> {
9335        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
9336    }
9337    #[inline]
9338    pub fn with_token(&self) -> Option<SyntaxToken> {
9339        support::token(&self.syntax, SyntaxKind::WITH_KW)
9340    }
9341    #[inline]
9342    pub fn without_token(&self) -> Option<SyntaxToken> {
9343        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9344    }
9345}
9346
9347#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9348pub struct JsonNullClause {
9349    pub(crate) syntax: SyntaxNode,
9350}
9351impl JsonNullClause {
9352    #[inline]
9353    pub fn absent_token(&self) -> Option<SyntaxToken> {
9354        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
9355    }
9356    #[inline]
9357    pub fn null_token(&self) -> Option<SyntaxToken> {
9358        support::token(&self.syntax, SyntaxKind::NULL_KW)
9359    }
9360    #[inline]
9361    pub fn on_token(&self) -> Option<SyntaxToken> {
9362        support::token(&self.syntax, SyntaxKind::ON_KW)
9363    }
9364}
9365
9366#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9367pub struct JsonObjectAggFn {
9368    pub(crate) syntax: SyntaxNode,
9369}
9370impl JsonObjectAggFn {
9371    #[inline]
9372    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
9373        support::child(&self.syntax)
9374    }
9375    #[inline]
9376    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9377        support::child(&self.syntax)
9378    }
9379    #[inline]
9380    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9381        support::child(&self.syntax)
9382    }
9383    #[inline]
9384    pub fn returning_clause(&self) -> Option<ReturningClause> {
9385        support::child(&self.syntax)
9386    }
9387    #[inline]
9388    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9389        support::token(&self.syntax, SyntaxKind::L_PAREN)
9390    }
9391    #[inline]
9392    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9393        support::token(&self.syntax, SyntaxKind::R_PAREN)
9394    }
9395    #[inline]
9396    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
9397        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
9398    }
9399}
9400
9401#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9402pub struct JsonObjectFn {
9403    pub(crate) syntax: SyntaxNode,
9404}
9405impl JsonObjectFn {
9406    #[inline]
9407    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
9408        support::children(&self.syntax)
9409    }
9410    #[inline]
9411    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9412        support::child(&self.syntax)
9413    }
9414    #[inline]
9415    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9416        support::child(&self.syntax)
9417    }
9418    #[inline]
9419    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9420        support::child(&self.syntax)
9421    }
9422    #[inline]
9423    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9424        support::token(&self.syntax, SyntaxKind::L_PAREN)
9425    }
9426    #[inline]
9427    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9428        support::token(&self.syntax, SyntaxKind::R_PAREN)
9429    }
9430    #[inline]
9431    pub fn json_object_token(&self) -> Option<SyntaxToken> {
9432        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
9433    }
9434}
9435
9436#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9437pub struct JsonOnEmptyClause {
9438    pub(crate) syntax: SyntaxNode,
9439}
9440impl JsonOnEmptyClause {
9441    #[inline]
9442    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9443        support::child(&self.syntax)
9444    }
9445    #[inline]
9446    pub fn empty_token(&self) -> Option<SyntaxToken> {
9447        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9448    }
9449    #[inline]
9450    pub fn on_token(&self) -> Option<SyntaxToken> {
9451        support::token(&self.syntax, SyntaxKind::ON_KW)
9452    }
9453}
9454
9455#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9456pub struct JsonOnErrorClause {
9457    pub(crate) syntax: SyntaxNode,
9458}
9459impl JsonOnErrorClause {
9460    #[inline]
9461    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9462        support::child(&self.syntax)
9463    }
9464    #[inline]
9465    pub fn error_token(&self) -> Option<SyntaxToken> {
9466        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9467    }
9468    #[inline]
9469    pub fn on_token(&self) -> Option<SyntaxToken> {
9470        support::token(&self.syntax, SyntaxKind::ON_KW)
9471    }
9472}
9473
9474#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9475pub struct JsonPassingArg {
9476    pub(crate) syntax: SyntaxNode,
9477}
9478impl JsonPassingArg {
9479    #[inline]
9480    pub fn expr(&self) -> Option<Expr> {
9481        support::child(&self.syntax)
9482    }
9483}
9484
9485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9486pub struct JsonPassingClause {
9487    pub(crate) syntax: SyntaxNode,
9488}
9489impl JsonPassingClause {
9490    #[inline]
9491    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
9492        support::children(&self.syntax)
9493    }
9494    #[inline]
9495    pub fn passing_token(&self) -> Option<SyntaxToken> {
9496        support::token(&self.syntax, SyntaxKind::PASSING_KW)
9497    }
9498}
9499
9500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9501pub struct JsonPathClause {
9502    pub(crate) syntax: SyntaxNode,
9503}
9504impl JsonPathClause {
9505    #[inline]
9506    pub fn expr(&self) -> Option<Expr> {
9507        support::child(&self.syntax)
9508    }
9509    #[inline]
9510    pub fn path_token(&self) -> Option<SyntaxToken> {
9511        support::token(&self.syntax, SyntaxKind::PATH_KW)
9512    }
9513}
9514
9515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9516pub struct JsonQueryFn {
9517    pub(crate) syntax: SyntaxNode,
9518}
9519impl JsonQueryFn {
9520    #[inline]
9521    pub fn expr(&self) -> Option<Expr> {
9522        support::child(&self.syntax)
9523    }
9524    #[inline]
9525    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9526        support::child(&self.syntax)
9527    }
9528    #[inline]
9529    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9530        support::child(&self.syntax)
9531    }
9532    #[inline]
9533    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9534        support::child(&self.syntax)
9535    }
9536    #[inline]
9537    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9538        support::child(&self.syntax)
9539    }
9540    #[inline]
9541    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9542        support::child(&self.syntax)
9543    }
9544    #[inline]
9545    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
9546        support::child(&self.syntax)
9547    }
9548    #[inline]
9549    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9550        support::token(&self.syntax, SyntaxKind::L_PAREN)
9551    }
9552    #[inline]
9553    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9554        support::token(&self.syntax, SyntaxKind::R_PAREN)
9555    }
9556    #[inline]
9557    pub fn comma_token(&self) -> Option<SyntaxToken> {
9558        support::token(&self.syntax, SyntaxKind::COMMA)
9559    }
9560    #[inline]
9561    pub fn json_query_token(&self) -> Option<SyntaxToken> {
9562        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
9563    }
9564}
9565
9566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9567pub struct JsonQuotesClause {
9568    pub(crate) syntax: SyntaxNode,
9569}
9570impl JsonQuotesClause {
9571    #[inline]
9572    pub fn keep_token(&self) -> Option<SyntaxToken> {
9573        support::token(&self.syntax, SyntaxKind::KEEP_KW)
9574    }
9575    #[inline]
9576    pub fn omit_token(&self) -> Option<SyntaxToken> {
9577        support::token(&self.syntax, SyntaxKind::OMIT_KW)
9578    }
9579    #[inline]
9580    pub fn quotes_token(&self) -> Option<SyntaxToken> {
9581        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
9582    }
9583}
9584
9585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9586pub struct JsonReturningClause {
9587    pub(crate) syntax: SyntaxNode,
9588}
9589impl JsonReturningClause {
9590    #[inline]
9591    pub fn ty(&self) -> Option<Type> {
9592        support::child(&self.syntax)
9593    }
9594    #[inline]
9595    pub fn returning_token(&self) -> Option<SyntaxToken> {
9596        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
9597    }
9598}
9599
9600#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9601pub struct JsonScalarFn {
9602    pub(crate) syntax: SyntaxNode,
9603}
9604impl JsonScalarFn {
9605    #[inline]
9606    pub fn expr(&self) -> Option<Expr> {
9607        support::child(&self.syntax)
9608    }
9609    #[inline]
9610    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9611        support::token(&self.syntax, SyntaxKind::L_PAREN)
9612    }
9613    #[inline]
9614    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9615        support::token(&self.syntax, SyntaxKind::R_PAREN)
9616    }
9617    #[inline]
9618    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
9619        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
9620    }
9621}
9622
9623#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9624pub struct JsonSelectFormat {
9625    pub(crate) syntax: SyntaxNode,
9626}
9627impl JsonSelectFormat {
9628    #[inline]
9629    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9630        support::child(&self.syntax)
9631    }
9632    #[inline]
9633    pub fn select_variant(&self) -> Option<SelectVariant> {
9634        support::child(&self.syntax)
9635    }
9636}
9637
9638#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9639pub struct JsonSerializeFn {
9640    pub(crate) syntax: SyntaxNode,
9641}
9642impl JsonSerializeFn {
9643    #[inline]
9644    pub fn expr(&self) -> Option<Expr> {
9645        support::child(&self.syntax)
9646    }
9647    #[inline]
9648    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9649        support::child(&self.syntax)
9650    }
9651    #[inline]
9652    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9653        support::child(&self.syntax)
9654    }
9655    #[inline]
9656    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9657        support::token(&self.syntax, SyntaxKind::L_PAREN)
9658    }
9659    #[inline]
9660    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9661        support::token(&self.syntax, SyntaxKind::R_PAREN)
9662    }
9663    #[inline]
9664    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
9665        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
9666    }
9667}
9668
9669#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9670pub struct JsonTable {
9671    pub(crate) syntax: SyntaxNode,
9672}
9673impl JsonTable {
9674    #[inline]
9675    pub fn expr(&self) -> Option<Expr> {
9676        support::child(&self.syntax)
9677    }
9678    #[inline]
9679    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9680        support::child(&self.syntax)
9681    }
9682    #[inline]
9683    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9684        support::child(&self.syntax)
9685    }
9686    #[inline]
9687    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9688        support::child(&self.syntax)
9689    }
9690    #[inline]
9691    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
9692        support::child(&self.syntax)
9693    }
9694    #[inline]
9695    pub fn name(&self) -> Option<Name> {
9696        support::child(&self.syntax)
9697    }
9698    #[inline]
9699    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9700        support::token(&self.syntax, SyntaxKind::L_PAREN)
9701    }
9702    #[inline]
9703    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9704        support::token(&self.syntax, SyntaxKind::R_PAREN)
9705    }
9706    #[inline]
9707    pub fn comma_token(&self) -> Option<SyntaxToken> {
9708        support::token(&self.syntax, SyntaxKind::COMMA)
9709    }
9710    #[inline]
9711    pub fn as_token(&self) -> Option<SyntaxToken> {
9712        support::token(&self.syntax, SyntaxKind::AS_KW)
9713    }
9714    #[inline]
9715    pub fn json_table_token(&self) -> Option<SyntaxToken> {
9716        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
9717    }
9718}
9719
9720#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9721pub struct JsonTableColumn {
9722    pub(crate) syntax: SyntaxNode,
9723}
9724impl JsonTableColumn {
9725    #[inline]
9726    pub fn expr(&self) -> Option<Expr> {
9727        support::child(&self.syntax)
9728    }
9729    #[inline]
9730    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9731        support::child(&self.syntax)
9732    }
9733    #[inline]
9734    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
9735        support::child(&self.syntax)
9736    }
9737    #[inline]
9738    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9739        support::child(&self.syntax)
9740    }
9741    #[inline]
9742    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
9743        support::child(&self.syntax)
9744    }
9745    #[inline]
9746    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9747        support::child(&self.syntax)
9748    }
9749    #[inline]
9750    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
9751        support::child(&self.syntax)
9752    }
9753    #[inline]
9754    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
9755        support::child(&self.syntax)
9756    }
9757    #[inline]
9758    pub fn name(&self) -> Option<Name> {
9759        support::child(&self.syntax)
9760    }
9761    #[inline]
9762    pub fn ty(&self) -> Option<Type> {
9763        support::child(&self.syntax)
9764    }
9765    #[inline]
9766    pub fn as_token(&self) -> Option<SyntaxToken> {
9767        support::token(&self.syntax, SyntaxKind::AS_KW)
9768    }
9769    #[inline]
9770    pub fn exists_token(&self) -> Option<SyntaxToken> {
9771        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9772    }
9773    #[inline]
9774    pub fn for_token(&self) -> Option<SyntaxToken> {
9775        support::token(&self.syntax, SyntaxKind::FOR_KW)
9776    }
9777    #[inline]
9778    pub fn nested_token(&self) -> Option<SyntaxToken> {
9779        support::token(&self.syntax, SyntaxKind::NESTED_KW)
9780    }
9781    #[inline]
9782    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
9783        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
9784    }
9785    #[inline]
9786    pub fn path_token(&self) -> Option<SyntaxToken> {
9787        support::token(&self.syntax, SyntaxKind::PATH_KW)
9788    }
9789}
9790
9791#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9792pub struct JsonTableColumnList {
9793    pub(crate) syntax: SyntaxNode,
9794}
9795impl JsonTableColumnList {
9796    #[inline]
9797    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
9798        support::children(&self.syntax)
9799    }
9800    #[inline]
9801    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9802        support::token(&self.syntax, SyntaxKind::L_PAREN)
9803    }
9804    #[inline]
9805    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9806        support::token(&self.syntax, SyntaxKind::R_PAREN)
9807    }
9808    #[inline]
9809    pub fn columns_token(&self) -> Option<SyntaxToken> {
9810        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
9811    }
9812}
9813
9814#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9815pub struct JsonValueExpr {
9816    pub(crate) syntax: SyntaxNode,
9817}
9818impl JsonValueExpr {
9819    #[inline]
9820    pub fn expr(&self) -> Option<Expr> {
9821        support::child(&self.syntax)
9822    }
9823    #[inline]
9824    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9825        support::child(&self.syntax)
9826    }
9827}
9828
9829#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9830pub struct JsonValueFn {
9831    pub(crate) syntax: SyntaxNode,
9832}
9833impl JsonValueFn {
9834    #[inline]
9835    pub fn expr(&self) -> Option<Expr> {
9836        support::child(&self.syntax)
9837    }
9838    #[inline]
9839    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9840        support::child(&self.syntax)
9841    }
9842    #[inline]
9843    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9844        support::child(&self.syntax)
9845    }
9846    #[inline]
9847    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9848        support::child(&self.syntax)
9849    }
9850    #[inline]
9851    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9852        support::child(&self.syntax)
9853    }
9854    #[inline]
9855    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9856        support::token(&self.syntax, SyntaxKind::L_PAREN)
9857    }
9858    #[inline]
9859    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9860        support::token(&self.syntax, SyntaxKind::R_PAREN)
9861    }
9862    #[inline]
9863    pub fn comma_token(&self) -> Option<SyntaxToken> {
9864        support::token(&self.syntax, SyntaxKind::COMMA)
9865    }
9866    #[inline]
9867    pub fn json_value_token(&self) -> Option<SyntaxToken> {
9868        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
9869    }
9870}
9871
9872#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9873pub struct JsonWrapperBehaviorClause {
9874    pub(crate) syntax: SyntaxNode,
9875}
9876impl JsonWrapperBehaviorClause {
9877    #[inline]
9878    pub fn array_token(&self) -> Option<SyntaxToken> {
9879        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9880    }
9881    #[inline]
9882    pub fn conditional_token(&self) -> Option<SyntaxToken> {
9883        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
9884    }
9885    #[inline]
9886    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
9887        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
9888    }
9889    #[inline]
9890    pub fn with_token(&self) -> Option<SyntaxToken> {
9891        support::token(&self.syntax, SyntaxKind::WITH_KW)
9892    }
9893    #[inline]
9894    pub fn without_token(&self) -> Option<SyntaxToken> {
9895        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9896    }
9897    #[inline]
9898    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
9899        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
9900    }
9901}
9902
9903#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9904pub struct LanguageFuncOption {
9905    pub(crate) syntax: SyntaxNode,
9906}
9907impl LanguageFuncOption {
9908    #[inline]
9909    pub fn name_ref(&self) -> Option<NameRef> {
9910        support::child(&self.syntax)
9911    }
9912    #[inline]
9913    pub fn language_token(&self) -> Option<SyntaxToken> {
9914        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
9915    }
9916}
9917
9918#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9919pub struct LeakproofFuncOption {
9920    pub(crate) syntax: SyntaxNode,
9921}
9922impl LeakproofFuncOption {
9923    #[inline]
9924    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
9925        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
9926    }
9927    #[inline]
9928    pub fn not_token(&self) -> Option<SyntaxToken> {
9929        support::token(&self.syntax, SyntaxKind::NOT_KW)
9930    }
9931}
9932
9933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9934pub struct LikeClause {
9935    pub(crate) syntax: SyntaxNode,
9936}
9937impl LikeClause {
9938    #[inline]
9939    pub fn like_options(&self) -> AstChildren<LikeOption> {
9940        support::children(&self.syntax)
9941    }
9942    #[inline]
9943    pub fn path(&self) -> Option<Path> {
9944        support::child(&self.syntax)
9945    }
9946    #[inline]
9947    pub fn like_token(&self) -> Option<SyntaxToken> {
9948        support::token(&self.syntax, SyntaxKind::LIKE_KW)
9949    }
9950}
9951
9952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9953pub struct LikeOption {
9954    pub(crate) syntax: SyntaxNode,
9955}
9956impl LikeOption {
9957    #[inline]
9958    pub fn all_token(&self) -> Option<SyntaxToken> {
9959        support::token(&self.syntax, SyntaxKind::ALL_KW)
9960    }
9961    #[inline]
9962    pub fn comments_token(&self) -> Option<SyntaxToken> {
9963        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
9964    }
9965    #[inline]
9966    pub fn compression_token(&self) -> Option<SyntaxToken> {
9967        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
9968    }
9969    #[inline]
9970    pub fn constraints_token(&self) -> Option<SyntaxToken> {
9971        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
9972    }
9973    #[inline]
9974    pub fn defaults_token(&self) -> Option<SyntaxToken> {
9975        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
9976    }
9977    #[inline]
9978    pub fn excluding_token(&self) -> Option<SyntaxToken> {
9979        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
9980    }
9981    #[inline]
9982    pub fn generated_token(&self) -> Option<SyntaxToken> {
9983        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
9984    }
9985    #[inline]
9986    pub fn identity_token(&self) -> Option<SyntaxToken> {
9987        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
9988    }
9989    #[inline]
9990    pub fn including_token(&self) -> Option<SyntaxToken> {
9991        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
9992    }
9993    #[inline]
9994    pub fn indexes_token(&self) -> Option<SyntaxToken> {
9995        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
9996    }
9997    #[inline]
9998    pub fn statistics_token(&self) -> Option<SyntaxToken> {
9999        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
10000    }
10001    #[inline]
10002    pub fn storage_token(&self) -> Option<SyntaxToken> {
10003        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
10004    }
10005}
10006
10007#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10008pub struct LimitClause {
10009    pub(crate) syntax: SyntaxNode,
10010}
10011impl LimitClause {
10012    #[inline]
10013    pub fn expr(&self) -> Option<Expr> {
10014        support::child(&self.syntax)
10015    }
10016    #[inline]
10017    pub fn all_token(&self) -> Option<SyntaxToken> {
10018        support::token(&self.syntax, SyntaxKind::ALL_KW)
10019    }
10020    #[inline]
10021    pub fn limit_token(&self) -> Option<SyntaxToken> {
10022        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10023    }
10024}
10025
10026#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10027pub struct LimitToTables {
10028    pub(crate) syntax: SyntaxNode,
10029}
10030impl LimitToTables {
10031    #[inline]
10032    pub fn name_refs(&self) -> AstChildren<NameRef> {
10033        support::children(&self.syntax)
10034    }
10035    #[inline]
10036    pub fn limit_token(&self) -> Option<SyntaxToken> {
10037        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10038    }
10039    #[inline]
10040    pub fn to_token(&self) -> Option<SyntaxToken> {
10041        support::token(&self.syntax, SyntaxKind::TO_KW)
10042    }
10043}
10044
10045#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10046pub struct Listen {
10047    pub(crate) syntax: SyntaxNode,
10048}
10049impl Listen {
10050    #[inline]
10051    pub fn name(&self) -> Option<Name> {
10052        support::child(&self.syntax)
10053    }
10054    #[inline]
10055    pub fn listen_token(&self) -> Option<SyntaxToken> {
10056        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
10057    }
10058}
10059
10060#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10061pub struct Literal {
10062    pub(crate) syntax: SyntaxNode,
10063}
10064impl Literal {}
10065
10066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10067pub struct Load {
10068    pub(crate) syntax: SyntaxNode,
10069}
10070impl Load {
10071    #[inline]
10072    pub fn literal(&self) -> Option<Literal> {
10073        support::child(&self.syntax)
10074    }
10075    #[inline]
10076    pub fn load_token(&self) -> Option<SyntaxToken> {
10077        support::token(&self.syntax, SyntaxKind::LOAD_KW)
10078    }
10079}
10080
10081#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10082pub struct Lock {
10083    pub(crate) syntax: SyntaxNode,
10084}
10085impl Lock {
10086    #[inline]
10087    pub fn table_list(&self) -> Option<TableList> {
10088        support::child(&self.syntax)
10089    }
10090    #[inline]
10091    pub fn lock_token(&self) -> Option<SyntaxToken> {
10092        support::token(&self.syntax, SyntaxKind::LOCK_KW)
10093    }
10094    #[inline]
10095    pub fn table_token(&self) -> Option<SyntaxToken> {
10096        support::token(&self.syntax, SyntaxKind::TABLE_KW)
10097    }
10098}
10099
10100#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10101pub struct LockingClause {
10102    pub(crate) syntax: SyntaxNode,
10103}
10104impl LockingClause {
10105    #[inline]
10106    pub fn for_token(&self) -> Option<SyntaxToken> {
10107        support::token(&self.syntax, SyntaxKind::FOR_KW)
10108    }
10109}
10110
10111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10112pub struct Lteq {
10113    pub(crate) syntax: SyntaxNode,
10114}
10115impl Lteq {
10116    #[inline]
10117    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10118        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10119    }
10120    #[inline]
10121    pub fn eq_token(&self) -> Option<SyntaxToken> {
10122        support::token(&self.syntax, SyntaxKind::EQ)
10123    }
10124}
10125
10126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10127pub struct MatchFull {
10128    pub(crate) syntax: SyntaxNode,
10129}
10130impl MatchFull {
10131    #[inline]
10132    pub fn full_token(&self) -> Option<SyntaxToken> {
10133        support::token(&self.syntax, SyntaxKind::FULL_KW)
10134    }
10135    #[inline]
10136    pub fn match_token(&self) -> Option<SyntaxToken> {
10137        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10138    }
10139}
10140
10141#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10142pub struct MatchPartial {
10143    pub(crate) syntax: SyntaxNode,
10144}
10145impl MatchPartial {
10146    #[inline]
10147    pub fn match_token(&self) -> Option<SyntaxToken> {
10148        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10149    }
10150    #[inline]
10151    pub fn partial_token(&self) -> Option<SyntaxToken> {
10152        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
10153    }
10154}
10155
10156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10157pub struct MatchSimple {
10158    pub(crate) syntax: SyntaxNode,
10159}
10160impl MatchSimple {
10161    #[inline]
10162    pub fn match_token(&self) -> Option<SyntaxToken> {
10163        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10164    }
10165    #[inline]
10166    pub fn simple_token(&self) -> Option<SyntaxToken> {
10167        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
10168    }
10169}
10170
10171#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10172pub struct Materialized {
10173    pub(crate) syntax: SyntaxNode,
10174}
10175impl Materialized {
10176    #[inline]
10177    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10178        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10179    }
10180}
10181
10182#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10183pub struct Merge {
10184    pub(crate) syntax: SyntaxNode,
10185}
10186impl Merge {
10187    #[inline]
10188    pub fn alias(&self) -> Option<Alias> {
10189        support::child(&self.syntax)
10190    }
10191    #[inline]
10192    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
10193        support::children(&self.syntax)
10194    }
10195    #[inline]
10196    pub fn relation_name(&self) -> Option<RelationName> {
10197        support::child(&self.syntax)
10198    }
10199    #[inline]
10200    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
10201        support::child(&self.syntax)
10202    }
10203    #[inline]
10204    pub fn into_token(&self) -> Option<SyntaxToken> {
10205        support::token(&self.syntax, SyntaxKind::INTO_KW)
10206    }
10207    #[inline]
10208    pub fn merge_token(&self) -> Option<SyntaxToken> {
10209        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10210    }
10211}
10212
10213#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10214pub struct MergeDelete {
10215    pub(crate) syntax: SyntaxNode,
10216}
10217impl MergeDelete {
10218    #[inline]
10219    pub fn delete_token(&self) -> Option<SyntaxToken> {
10220        support::token(&self.syntax, SyntaxKind::DELETE_KW)
10221    }
10222}
10223
10224#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10225pub struct MergeDoNothing {
10226    pub(crate) syntax: SyntaxNode,
10227}
10228impl MergeDoNothing {
10229    #[inline]
10230    pub fn do_token(&self) -> Option<SyntaxToken> {
10231        support::token(&self.syntax, SyntaxKind::DO_KW)
10232    }
10233    #[inline]
10234    pub fn nothing_token(&self) -> Option<SyntaxToken> {
10235        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
10236    }
10237}
10238
10239#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10240pub struct MergeInsert {
10241    pub(crate) syntax: SyntaxNode,
10242}
10243impl MergeInsert {
10244    #[inline]
10245    pub fn column_list(&self) -> Option<ColumnList> {
10246        support::child(&self.syntax)
10247    }
10248    #[inline]
10249    pub fn values(&self) -> Option<Values> {
10250        support::child(&self.syntax)
10251    }
10252    #[inline]
10253    pub fn default_token(&self) -> Option<SyntaxToken> {
10254        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10255    }
10256    #[inline]
10257    pub fn insert_token(&self) -> Option<SyntaxToken> {
10258        support::token(&self.syntax, SyntaxKind::INSERT_KW)
10259    }
10260    #[inline]
10261    pub fn overriding_token(&self) -> Option<SyntaxToken> {
10262        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
10263    }
10264    #[inline]
10265    pub fn system_token(&self) -> Option<SyntaxToken> {
10266        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
10267    }
10268    #[inline]
10269    pub fn user_token(&self) -> Option<SyntaxToken> {
10270        support::token(&self.syntax, SyntaxKind::USER_KW)
10271    }
10272    #[inline]
10273    pub fn values_token(&self) -> Option<SyntaxToken> {
10274        support::token(&self.syntax, SyntaxKind::VALUES_KW)
10275    }
10276}
10277
10278#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10279pub struct MergeUpdate {
10280    pub(crate) syntax: SyntaxNode,
10281}
10282impl MergeUpdate {
10283    #[inline]
10284    pub fn set_clause(&self) -> Option<SetClause> {
10285        support::child(&self.syntax)
10286    }
10287    #[inline]
10288    pub fn set_token(&self) -> Option<SyntaxToken> {
10289        support::token(&self.syntax, SyntaxKind::SET_KW)
10290    }
10291    #[inline]
10292    pub fn update_token(&self) -> Option<SyntaxToken> {
10293        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
10294    }
10295}
10296
10297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10298pub struct MergeWhenMatched {
10299    pub(crate) syntax: SyntaxNode,
10300}
10301impl MergeWhenMatched {
10302    #[inline]
10303    pub fn expr(&self) -> Option<Expr> {
10304        support::child(&self.syntax)
10305    }
10306    #[inline]
10307    pub fn merge_action(&self) -> Option<MergeAction> {
10308        support::child(&self.syntax)
10309    }
10310    #[inline]
10311    pub fn and_token(&self) -> Option<SyntaxToken> {
10312        support::token(&self.syntax, SyntaxKind::AND_KW)
10313    }
10314    #[inline]
10315    pub fn matched_token(&self) -> Option<SyntaxToken> {
10316        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10317    }
10318    #[inline]
10319    pub fn then_token(&self) -> Option<SyntaxToken> {
10320        support::token(&self.syntax, SyntaxKind::THEN_KW)
10321    }
10322    #[inline]
10323    pub fn when_token(&self) -> Option<SyntaxToken> {
10324        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10325    }
10326}
10327
10328#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10329pub struct MergeWhenNotMatchedSource {
10330    pub(crate) syntax: SyntaxNode,
10331}
10332impl MergeWhenNotMatchedSource {
10333    #[inline]
10334    pub fn expr(&self) -> Option<Expr> {
10335        support::child(&self.syntax)
10336    }
10337    #[inline]
10338    pub fn merge_action(&self) -> Option<MergeAction> {
10339        support::child(&self.syntax)
10340    }
10341    #[inline]
10342    pub fn and_token(&self) -> Option<SyntaxToken> {
10343        support::token(&self.syntax, SyntaxKind::AND_KW)
10344    }
10345    #[inline]
10346    pub fn by_token(&self) -> Option<SyntaxToken> {
10347        support::token(&self.syntax, SyntaxKind::BY_KW)
10348    }
10349    #[inline]
10350    pub fn matched_token(&self) -> Option<SyntaxToken> {
10351        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10352    }
10353    #[inline]
10354    pub fn not_token(&self) -> Option<SyntaxToken> {
10355        support::token(&self.syntax, SyntaxKind::NOT_KW)
10356    }
10357    #[inline]
10358    pub fn source_token(&self) -> Option<SyntaxToken> {
10359        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
10360    }
10361    #[inline]
10362    pub fn then_token(&self) -> Option<SyntaxToken> {
10363        support::token(&self.syntax, SyntaxKind::THEN_KW)
10364    }
10365    #[inline]
10366    pub fn when_token(&self) -> Option<SyntaxToken> {
10367        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10368    }
10369}
10370
10371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10372pub struct MergeWhenNotMatchedTarget {
10373    pub(crate) syntax: SyntaxNode,
10374}
10375impl MergeWhenNotMatchedTarget {
10376    #[inline]
10377    pub fn expr(&self) -> Option<Expr> {
10378        support::child(&self.syntax)
10379    }
10380    #[inline]
10381    pub fn merge_action(&self) -> Option<MergeAction> {
10382        support::child(&self.syntax)
10383    }
10384    #[inline]
10385    pub fn and_token(&self) -> Option<SyntaxToken> {
10386        support::token(&self.syntax, SyntaxKind::AND_KW)
10387    }
10388    #[inline]
10389    pub fn by_token(&self) -> Option<SyntaxToken> {
10390        support::token(&self.syntax, SyntaxKind::BY_KW)
10391    }
10392    #[inline]
10393    pub fn matched_token(&self) -> Option<SyntaxToken> {
10394        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10395    }
10396    #[inline]
10397    pub fn not_token(&self) -> Option<SyntaxToken> {
10398        support::token(&self.syntax, SyntaxKind::NOT_KW)
10399    }
10400    #[inline]
10401    pub fn target_token(&self) -> Option<SyntaxToken> {
10402        support::token(&self.syntax, SyntaxKind::TARGET_KW)
10403    }
10404    #[inline]
10405    pub fn then_token(&self) -> Option<SyntaxToken> {
10406        support::token(&self.syntax, SyntaxKind::THEN_KW)
10407    }
10408    #[inline]
10409    pub fn when_token(&self) -> Option<SyntaxToken> {
10410        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10411    }
10412}
10413
10414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10415pub struct Move {
10416    pub(crate) syntax: SyntaxNode,
10417}
10418impl Move {
10419    #[inline]
10420    pub fn name_ref(&self) -> Option<NameRef> {
10421        support::child(&self.syntax)
10422    }
10423    #[inline]
10424    pub fn from_token(&self) -> Option<SyntaxToken> {
10425        support::token(&self.syntax, SyntaxKind::FROM_KW)
10426    }
10427    #[inline]
10428    pub fn in_token(&self) -> Option<SyntaxToken> {
10429        support::token(&self.syntax, SyntaxKind::IN_KW)
10430    }
10431    #[inline]
10432    pub fn move_token(&self) -> Option<SyntaxToken> {
10433        support::token(&self.syntax, SyntaxKind::MOVE_KW)
10434    }
10435}
10436
10437#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10438pub struct Name {
10439    pub(crate) syntax: SyntaxNode,
10440}
10441impl Name {
10442    #[inline]
10443    pub fn ident_token(&self) -> Option<SyntaxToken> {
10444        support::token(&self.syntax, SyntaxKind::IDENT)
10445    }
10446}
10447
10448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10449pub struct NameRef {
10450    pub(crate) syntax: SyntaxNode,
10451}
10452impl NameRef {
10453    #[inline]
10454    pub fn ident_token(&self) -> Option<SyntaxToken> {
10455        support::token(&self.syntax, SyntaxKind::IDENT)
10456    }
10457}
10458
10459#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10460pub struct NamedArg {
10461    pub(crate) syntax: SyntaxNode,
10462}
10463impl NamedArg {
10464    #[inline]
10465    pub fn expr(&self) -> Option<Expr> {
10466        support::child(&self.syntax)
10467    }
10468    #[inline]
10469    pub fn fat_arrow(&self) -> Option<FatArrow> {
10470        support::child(&self.syntax)
10471    }
10472    #[inline]
10473    pub fn name_ref(&self) -> Option<NameRef> {
10474        support::child(&self.syntax)
10475    }
10476}
10477
10478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10479pub struct Neq {
10480    pub(crate) syntax: SyntaxNode,
10481}
10482impl Neq {
10483    #[inline]
10484    pub fn bang_token(&self) -> Option<SyntaxToken> {
10485        support::token(&self.syntax, SyntaxKind::BANG)
10486    }
10487    #[inline]
10488    pub fn eq_token(&self) -> Option<SyntaxToken> {
10489        support::token(&self.syntax, SyntaxKind::EQ)
10490    }
10491}
10492
10493#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10494pub struct Neqb {
10495    pub(crate) syntax: SyntaxNode,
10496}
10497impl Neqb {
10498    #[inline]
10499    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10500        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10501    }
10502    #[inline]
10503    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
10504        support::token(&self.syntax, SyntaxKind::R_ANGLE)
10505    }
10506}
10507
10508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10509pub struct NoAction {
10510    pub(crate) syntax: SyntaxNode,
10511}
10512impl NoAction {
10513    #[inline]
10514    pub fn action_token(&self) -> Option<SyntaxToken> {
10515        support::token(&self.syntax, SyntaxKind::ACTION_KW)
10516    }
10517    #[inline]
10518    pub fn no_token(&self) -> Option<SyntaxToken> {
10519        support::token(&self.syntax, SyntaxKind::NO_KW)
10520    }
10521}
10522
10523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10524pub struct NoDependsOnExtension {
10525    pub(crate) syntax: SyntaxNode,
10526}
10527impl NoDependsOnExtension {
10528    #[inline]
10529    pub fn name_ref(&self) -> Option<NameRef> {
10530        support::child(&self.syntax)
10531    }
10532    #[inline]
10533    pub fn depends_token(&self) -> Option<SyntaxToken> {
10534        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
10535    }
10536    #[inline]
10537    pub fn extension_token(&self) -> Option<SyntaxToken> {
10538        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
10539    }
10540    #[inline]
10541    pub fn no_token(&self) -> Option<SyntaxToken> {
10542        support::token(&self.syntax, SyntaxKind::NO_KW)
10543    }
10544    #[inline]
10545    pub fn on_token(&self) -> Option<SyntaxToken> {
10546        support::token(&self.syntax, SyntaxKind::ON_KW)
10547    }
10548}
10549
10550#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10551pub struct NoForceRls {
10552    pub(crate) syntax: SyntaxNode,
10553}
10554impl NoForceRls {
10555    #[inline]
10556    pub fn force_token(&self) -> Option<SyntaxToken> {
10557        support::token(&self.syntax, SyntaxKind::FORCE_KW)
10558    }
10559    #[inline]
10560    pub fn level_token(&self) -> Option<SyntaxToken> {
10561        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
10562    }
10563    #[inline]
10564    pub fn no_token(&self) -> Option<SyntaxToken> {
10565        support::token(&self.syntax, SyntaxKind::NO_KW)
10566    }
10567    #[inline]
10568    pub fn row_token(&self) -> Option<SyntaxToken> {
10569        support::token(&self.syntax, SyntaxKind::ROW_KW)
10570    }
10571    #[inline]
10572    pub fn security_token(&self) -> Option<SyntaxToken> {
10573        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
10574    }
10575}
10576
10577#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10578pub struct NoInherit {
10579    pub(crate) syntax: SyntaxNode,
10580}
10581impl NoInherit {
10582    #[inline]
10583    pub fn path(&self) -> Option<Path> {
10584        support::child(&self.syntax)
10585    }
10586    #[inline]
10587    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10588        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10589    }
10590    #[inline]
10591    pub fn no_token(&self) -> Option<SyntaxToken> {
10592        support::token(&self.syntax, SyntaxKind::NO_KW)
10593    }
10594}
10595
10596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10597pub struct NoInheritTable {
10598    pub(crate) syntax: SyntaxNode,
10599}
10600impl NoInheritTable {
10601    #[inline]
10602    pub fn path(&self) -> Option<Path> {
10603        support::child(&self.syntax)
10604    }
10605    #[inline]
10606    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10607        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10608    }
10609    #[inline]
10610    pub fn no_token(&self) -> Option<SyntaxToken> {
10611        support::token(&self.syntax, SyntaxKind::NO_KW)
10612    }
10613}
10614
10615#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10616pub struct NonStandardParam {
10617    pub(crate) syntax: SyntaxNode,
10618}
10619impl NonStandardParam {
10620    #[inline]
10621    pub fn name_ref(&self) -> Option<NameRef> {
10622        support::child(&self.syntax)
10623    }
10624    #[inline]
10625    pub fn colon_token(&self) -> Option<SyntaxToken> {
10626        support::token(&self.syntax, SyntaxKind::COLON)
10627    }
10628}
10629
10630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10631pub struct NotDeferrable {
10632    pub(crate) syntax: SyntaxNode,
10633}
10634impl NotDeferrable {
10635    #[inline]
10636    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10637        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10638    }
10639    #[inline]
10640    pub fn not_token(&self) -> Option<SyntaxToken> {
10641        support::token(&self.syntax, SyntaxKind::NOT_KW)
10642    }
10643}
10644
10645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10646pub struct NotDeferrableConstraintOption {
10647    pub(crate) syntax: SyntaxNode,
10648}
10649impl NotDeferrableConstraintOption {
10650    #[inline]
10651    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10652        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10653    }
10654    #[inline]
10655    pub fn not_token(&self) -> Option<SyntaxToken> {
10656        support::token(&self.syntax, SyntaxKind::NOT_KW)
10657    }
10658}
10659
10660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10661pub struct NotEnforced {
10662    pub(crate) syntax: SyntaxNode,
10663}
10664impl NotEnforced {
10665    #[inline]
10666    pub fn enforced_token(&self) -> Option<SyntaxToken> {
10667        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
10668    }
10669    #[inline]
10670    pub fn not_token(&self) -> Option<SyntaxToken> {
10671        support::token(&self.syntax, SyntaxKind::NOT_KW)
10672    }
10673}
10674
10675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10676pub struct NotIlike {
10677    pub(crate) syntax: SyntaxNode,
10678}
10679impl NotIlike {
10680    #[inline]
10681    pub fn ilike_token(&self) -> Option<SyntaxToken> {
10682        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
10683    }
10684    #[inline]
10685    pub fn not_token(&self) -> Option<SyntaxToken> {
10686        support::token(&self.syntax, SyntaxKind::NOT_KW)
10687    }
10688}
10689
10690#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10691pub struct NotIn {
10692    pub(crate) syntax: SyntaxNode,
10693}
10694impl NotIn {
10695    #[inline]
10696    pub fn in_token(&self) -> Option<SyntaxToken> {
10697        support::token(&self.syntax, SyntaxKind::IN_KW)
10698    }
10699    #[inline]
10700    pub fn not_token(&self) -> Option<SyntaxToken> {
10701        support::token(&self.syntax, SyntaxKind::NOT_KW)
10702    }
10703}
10704
10705#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10706pub struct NotLike {
10707    pub(crate) syntax: SyntaxNode,
10708}
10709impl NotLike {
10710    #[inline]
10711    pub fn like_token(&self) -> Option<SyntaxToken> {
10712        support::token(&self.syntax, SyntaxKind::LIKE_KW)
10713    }
10714    #[inline]
10715    pub fn not_token(&self) -> Option<SyntaxToken> {
10716        support::token(&self.syntax, SyntaxKind::NOT_KW)
10717    }
10718}
10719
10720#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10721pub struct NotMaterialized {
10722    pub(crate) syntax: SyntaxNode,
10723}
10724impl NotMaterialized {
10725    #[inline]
10726    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10727        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10728    }
10729    #[inline]
10730    pub fn not_token(&self) -> Option<SyntaxToken> {
10731        support::token(&self.syntax, SyntaxKind::NOT_KW)
10732    }
10733}
10734
10735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10736pub struct NotNullConstraint {
10737    pub(crate) syntax: SyntaxNode,
10738}
10739impl NotNullConstraint {
10740    #[inline]
10741    pub fn name_ref(&self) -> Option<NameRef> {
10742        support::child(&self.syntax)
10743    }
10744    #[inline]
10745    pub fn no_inherit(&self) -> Option<NoInherit> {
10746        support::child(&self.syntax)
10747    }
10748    #[inline]
10749    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10750        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10751    }
10752    #[inline]
10753    pub fn not_token(&self) -> Option<SyntaxToken> {
10754        support::token(&self.syntax, SyntaxKind::NOT_KW)
10755    }
10756    #[inline]
10757    pub fn null_token(&self) -> Option<SyntaxToken> {
10758        support::token(&self.syntax, SyntaxKind::NULL_KW)
10759    }
10760}
10761
10762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10763pub struct NotOf {
10764    pub(crate) syntax: SyntaxNode,
10765}
10766impl NotOf {
10767    #[inline]
10768    pub fn not_token(&self) -> Option<SyntaxToken> {
10769        support::token(&self.syntax, SyntaxKind::NOT_KW)
10770    }
10771    #[inline]
10772    pub fn of_token(&self) -> Option<SyntaxToken> {
10773        support::token(&self.syntax, SyntaxKind::OF_KW)
10774    }
10775}
10776
10777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10778pub struct NotSimilarTo {
10779    pub(crate) syntax: SyntaxNode,
10780}
10781impl NotSimilarTo {
10782    #[inline]
10783    pub fn not_token(&self) -> Option<SyntaxToken> {
10784        support::token(&self.syntax, SyntaxKind::NOT_KW)
10785    }
10786    #[inline]
10787    pub fn similar_token(&self) -> Option<SyntaxToken> {
10788        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
10789    }
10790    #[inline]
10791    pub fn to_token(&self) -> Option<SyntaxToken> {
10792        support::token(&self.syntax, SyntaxKind::TO_KW)
10793    }
10794}
10795
10796#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10797pub struct NotValid {
10798    pub(crate) syntax: SyntaxNode,
10799}
10800impl NotValid {
10801    #[inline]
10802    pub fn not_token(&self) -> Option<SyntaxToken> {
10803        support::token(&self.syntax, SyntaxKind::NOT_KW)
10804    }
10805    #[inline]
10806    pub fn valid_token(&self) -> Option<SyntaxToken> {
10807        support::token(&self.syntax, SyntaxKind::VALID_KW)
10808    }
10809}
10810
10811#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10812pub struct Notify {
10813    pub(crate) syntax: SyntaxNode,
10814}
10815impl Notify {
10816    #[inline]
10817    pub fn literal(&self) -> Option<Literal> {
10818        support::child(&self.syntax)
10819    }
10820    #[inline]
10821    pub fn name_ref(&self) -> Option<NameRef> {
10822        support::child(&self.syntax)
10823    }
10824    #[inline]
10825    pub fn comma_token(&self) -> Option<SyntaxToken> {
10826        support::token(&self.syntax, SyntaxKind::COMMA)
10827    }
10828    #[inline]
10829    pub fn notify_token(&self) -> Option<SyntaxToken> {
10830        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
10831    }
10832}
10833
10834#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10835pub struct NullConstraint {
10836    pub(crate) syntax: SyntaxNode,
10837}
10838impl NullConstraint {
10839    #[inline]
10840    pub fn name_ref(&self) -> Option<NameRef> {
10841        support::child(&self.syntax)
10842    }
10843    #[inline]
10844    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10845        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10846    }
10847    #[inline]
10848    pub fn null_token(&self) -> Option<SyntaxToken> {
10849        support::token(&self.syntax, SyntaxKind::NULL_KW)
10850    }
10851}
10852
10853#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10854pub struct NullsDistinct {
10855    pub(crate) syntax: SyntaxNode,
10856}
10857impl NullsDistinct {
10858    #[inline]
10859    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10860        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10861    }
10862    #[inline]
10863    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10864        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10865    }
10866}
10867
10868#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10869pub struct NullsFirst {
10870    pub(crate) syntax: SyntaxNode,
10871}
10872impl NullsFirst {
10873    #[inline]
10874    pub fn first_token(&self) -> Option<SyntaxToken> {
10875        support::token(&self.syntax, SyntaxKind::FIRST_KW)
10876    }
10877    #[inline]
10878    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10879        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10880    }
10881}
10882
10883#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10884pub struct NullsLast {
10885    pub(crate) syntax: SyntaxNode,
10886}
10887impl NullsLast {
10888    #[inline]
10889    pub fn last_token(&self) -> Option<SyntaxToken> {
10890        support::token(&self.syntax, SyntaxKind::LAST_KW)
10891    }
10892    #[inline]
10893    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10894        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10895    }
10896}
10897
10898#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10899pub struct NullsNotDistinct {
10900    pub(crate) syntax: SyntaxNode,
10901}
10902impl NullsNotDistinct {
10903    #[inline]
10904    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10905        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10906    }
10907    #[inline]
10908    pub fn not_token(&self) -> Option<SyntaxToken> {
10909        support::token(&self.syntax, SyntaxKind::NOT_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 OfType {
10919    pub(crate) syntax: SyntaxNode,
10920}
10921impl OfType {
10922    #[inline]
10923    pub fn ty(&self) -> Option<Type> {
10924        support::child(&self.syntax)
10925    }
10926    #[inline]
10927    pub fn of_token(&self) -> Option<SyntaxToken> {
10928        support::token(&self.syntax, SyntaxKind::OF_KW)
10929    }
10930}
10931
10932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10933pub struct OffsetClause {
10934    pub(crate) syntax: SyntaxNode,
10935}
10936impl OffsetClause {
10937    #[inline]
10938    pub fn expr(&self) -> Option<Expr> {
10939        support::child(&self.syntax)
10940    }
10941    #[inline]
10942    pub fn offset_token(&self) -> Option<SyntaxToken> {
10943        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
10944    }
10945    #[inline]
10946    pub fn row_token(&self) -> Option<SyntaxToken> {
10947        support::token(&self.syntax, SyntaxKind::ROW_KW)
10948    }
10949    #[inline]
10950    pub fn rows_token(&self) -> Option<SyntaxToken> {
10951        support::token(&self.syntax, SyntaxKind::ROWS_KW)
10952    }
10953}
10954
10955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10956pub struct OnClause {
10957    pub(crate) syntax: SyntaxNode,
10958}
10959impl OnClause {
10960    #[inline]
10961    pub fn expr(&self) -> Option<Expr> {
10962        support::child(&self.syntax)
10963    }
10964    #[inline]
10965    pub fn on_token(&self) -> Option<SyntaxToken> {
10966        support::token(&self.syntax, SyntaxKind::ON_KW)
10967    }
10968}
10969
10970#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10971pub struct OnCommit {
10972    pub(crate) syntax: SyntaxNode,
10973}
10974impl OnCommit {
10975    #[inline]
10976    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
10977        support::child(&self.syntax)
10978    }
10979    #[inline]
10980    pub fn commit_token(&self) -> Option<SyntaxToken> {
10981        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
10982    }
10983    #[inline]
10984    pub fn on_token(&self) -> Option<SyntaxToken> {
10985        support::token(&self.syntax, SyntaxKind::ON_KW)
10986    }
10987}
10988
10989#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10990pub struct OnConflictClause {
10991    pub(crate) syntax: SyntaxNode,
10992}
10993impl OnConflictClause {
10994    #[inline]
10995    pub fn conflict_action(&self) -> Option<ConflictAction> {
10996        support::child(&self.syntax)
10997    }
10998    #[inline]
10999    pub fn conflict_target(&self) -> Option<ConflictTarget> {
11000        support::child(&self.syntax)
11001    }
11002    #[inline]
11003    pub fn conflict_token(&self) -> Option<SyntaxToken> {
11004        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
11005    }
11006    #[inline]
11007    pub fn on_token(&self) -> Option<SyntaxToken> {
11008        support::token(&self.syntax, SyntaxKind::ON_KW)
11009    }
11010}
11011
11012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11013pub struct OnDeleteAction {
11014    pub(crate) syntax: SyntaxNode,
11015}
11016impl OnDeleteAction {
11017    #[inline]
11018    pub fn ref_action(&self) -> Option<RefAction> {
11019        support::child(&self.syntax)
11020    }
11021    #[inline]
11022    pub fn delete_token(&self) -> Option<SyntaxToken> {
11023        support::token(&self.syntax, SyntaxKind::DELETE_KW)
11024    }
11025    #[inline]
11026    pub fn on_token(&self) -> Option<SyntaxToken> {
11027        support::token(&self.syntax, SyntaxKind::ON_KW)
11028    }
11029}
11030
11031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11032pub struct OnTable {
11033    pub(crate) syntax: SyntaxNode,
11034}
11035impl OnTable {
11036    #[inline]
11037    pub fn path(&self) -> Option<Path> {
11038        support::child(&self.syntax)
11039    }
11040    #[inline]
11041    pub fn on_token(&self) -> Option<SyntaxToken> {
11042        support::token(&self.syntax, SyntaxKind::ON_KW)
11043    }
11044}
11045
11046#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11047pub struct OnUpdateAction {
11048    pub(crate) syntax: SyntaxNode,
11049}
11050impl OnUpdateAction {
11051    #[inline]
11052    pub fn ref_action(&self) -> Option<RefAction> {
11053        support::child(&self.syntax)
11054    }
11055    #[inline]
11056    pub fn on_token(&self) -> Option<SyntaxToken> {
11057        support::token(&self.syntax, SyntaxKind::ON_KW)
11058    }
11059    #[inline]
11060    pub fn update_token(&self) -> Option<SyntaxToken> {
11061        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
11062    }
11063}
11064
11065#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11066pub struct Op {
11067    pub(crate) syntax: SyntaxNode,
11068}
11069impl Op {
11070    #[inline]
11071    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
11072        support::child(&self.syntax)
11073    }
11074    #[inline]
11075    pub fn colon_colon(&self) -> Option<ColonColon> {
11076        support::child(&self.syntax)
11077    }
11078    #[inline]
11079    pub fn colon_eq(&self) -> Option<ColonEq> {
11080        support::child(&self.syntax)
11081    }
11082    #[inline]
11083    pub fn custom_op(&self) -> Option<CustomOp> {
11084        support::child(&self.syntax)
11085    }
11086    #[inline]
11087    pub fn fat_arrow(&self) -> Option<FatArrow> {
11088        support::child(&self.syntax)
11089    }
11090    #[inline]
11091    pub fn gteq(&self) -> Option<Gteq> {
11092        support::child(&self.syntax)
11093    }
11094    #[inline]
11095    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
11096        support::child(&self.syntax)
11097    }
11098    #[inline]
11099    pub fn is_json(&self) -> Option<IsJson> {
11100        support::child(&self.syntax)
11101    }
11102    #[inline]
11103    pub fn is_json_array(&self) -> Option<IsJsonArray> {
11104        support::child(&self.syntax)
11105    }
11106    #[inline]
11107    pub fn is_json_object(&self) -> Option<IsJsonObject> {
11108        support::child(&self.syntax)
11109    }
11110    #[inline]
11111    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
11112        support::child(&self.syntax)
11113    }
11114    #[inline]
11115    pub fn is_json_value(&self) -> Option<IsJsonValue> {
11116        support::child(&self.syntax)
11117    }
11118    #[inline]
11119    pub fn is_not(&self) -> Option<IsNot> {
11120        support::child(&self.syntax)
11121    }
11122    #[inline]
11123    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
11124        support::child(&self.syntax)
11125    }
11126    #[inline]
11127    pub fn is_not_json(&self) -> Option<IsNotJson> {
11128        support::child(&self.syntax)
11129    }
11130    #[inline]
11131    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
11132        support::child(&self.syntax)
11133    }
11134    #[inline]
11135    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
11136        support::child(&self.syntax)
11137    }
11138    #[inline]
11139    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
11140        support::child(&self.syntax)
11141    }
11142    #[inline]
11143    pub fn lteq(&self) -> Option<Lteq> {
11144        support::child(&self.syntax)
11145    }
11146    #[inline]
11147    pub fn neq(&self) -> Option<Neq> {
11148        support::child(&self.syntax)
11149    }
11150    #[inline]
11151    pub fn neqb(&self) -> Option<Neqb> {
11152        support::child(&self.syntax)
11153    }
11154    #[inline]
11155    pub fn not_ilike(&self) -> Option<NotIlike> {
11156        support::child(&self.syntax)
11157    }
11158    #[inline]
11159    pub fn not_in(&self) -> Option<NotIn> {
11160        support::child(&self.syntax)
11161    }
11162    #[inline]
11163    pub fn not_like(&self) -> Option<NotLike> {
11164        support::child(&self.syntax)
11165    }
11166    #[inline]
11167    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
11168        support::child(&self.syntax)
11169    }
11170    #[inline]
11171    pub fn operator_call(&self) -> Option<OperatorCall> {
11172        support::child(&self.syntax)
11173    }
11174    #[inline]
11175    pub fn similar_to(&self) -> Option<SimilarTo> {
11176        support::child(&self.syntax)
11177    }
11178    #[inline]
11179    pub fn percent_token(&self) -> Option<SyntaxToken> {
11180        support::token(&self.syntax, SyntaxKind::PERCENT)
11181    }
11182    #[inline]
11183    pub fn plus_token(&self) -> Option<SyntaxToken> {
11184        support::token(&self.syntax, SyntaxKind::PLUS)
11185    }
11186    #[inline]
11187    pub fn minus_token(&self) -> Option<SyntaxToken> {
11188        support::token(&self.syntax, SyntaxKind::MINUS)
11189    }
11190    #[inline]
11191    pub fn slash_token(&self) -> Option<SyntaxToken> {
11192        support::token(&self.syntax, SyntaxKind::SLASH)
11193    }
11194    #[inline]
11195    pub fn colon_token(&self) -> Option<SyntaxToken> {
11196        support::token(&self.syntax, SyntaxKind::COLON)
11197    }
11198    #[inline]
11199    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11200        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11201    }
11202    #[inline]
11203    pub fn eq_token(&self) -> Option<SyntaxToken> {
11204        support::token(&self.syntax, SyntaxKind::EQ)
11205    }
11206    #[inline]
11207    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11208        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11209    }
11210    #[inline]
11211    pub fn caret_token(&self) -> Option<SyntaxToken> {
11212        support::token(&self.syntax, SyntaxKind::CARET)
11213    }
11214    #[inline]
11215    pub fn and_token(&self) -> Option<SyntaxToken> {
11216        support::token(&self.syntax, SyntaxKind::AND_KW)
11217    }
11218    #[inline]
11219    pub fn collate_token(&self) -> Option<SyntaxToken> {
11220        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
11221    }
11222    #[inline]
11223    pub fn ilike_token(&self) -> Option<SyntaxToken> {
11224        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
11225    }
11226    #[inline]
11227    pub fn in_token(&self) -> Option<SyntaxToken> {
11228        support::token(&self.syntax, SyntaxKind::IN_KW)
11229    }
11230    #[inline]
11231    pub fn is_token(&self) -> Option<SyntaxToken> {
11232        support::token(&self.syntax, SyntaxKind::IS_KW)
11233    }
11234    #[inline]
11235    pub fn like_token(&self) -> Option<SyntaxToken> {
11236        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11237    }
11238    #[inline]
11239    pub fn or_token(&self) -> Option<SyntaxToken> {
11240        support::token(&self.syntax, SyntaxKind::OR_KW)
11241    }
11242    #[inline]
11243    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
11244        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
11245    }
11246    #[inline]
11247    pub fn value_token(&self) -> Option<SyntaxToken> {
11248        support::token(&self.syntax, SyntaxKind::VALUE_KW)
11249    }
11250}
11251
11252#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11253pub struct OpClassOption {
11254    pub(crate) syntax: SyntaxNode,
11255}
11256impl OpClassOption {
11257    #[inline]
11258    pub fn function_sig(&self) -> Option<FunctionSig> {
11259        support::child(&self.syntax)
11260    }
11261    #[inline]
11262    pub fn literal(&self) -> Option<Literal> {
11263        support::child(&self.syntax)
11264    }
11265    #[inline]
11266    pub fn op(&self) -> Option<Op> {
11267        support::child(&self.syntax)
11268    }
11269    #[inline]
11270    pub fn param_list(&self) -> Option<ParamList> {
11271        support::child(&self.syntax)
11272    }
11273    #[inline]
11274    pub fn path(&self) -> Option<Path> {
11275        support::child(&self.syntax)
11276    }
11277    #[inline]
11278    pub fn ty(&self) -> Option<Type> {
11279        support::child(&self.syntax)
11280    }
11281    #[inline]
11282    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11283        support::token(&self.syntax, SyntaxKind::L_PAREN)
11284    }
11285    #[inline]
11286    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11287        support::token(&self.syntax, SyntaxKind::R_PAREN)
11288    }
11289    #[inline]
11290    pub fn comma_token(&self) -> Option<SyntaxToken> {
11291        support::token(&self.syntax, SyntaxKind::COMMA)
11292    }
11293    #[inline]
11294    pub fn by_token(&self) -> Option<SyntaxToken> {
11295        support::token(&self.syntax, SyntaxKind::BY_KW)
11296    }
11297    #[inline]
11298    pub fn for_token(&self) -> Option<SyntaxToken> {
11299        support::token(&self.syntax, SyntaxKind::FOR_KW)
11300    }
11301    #[inline]
11302    pub fn function_token(&self) -> Option<SyntaxToken> {
11303        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
11304    }
11305    #[inline]
11306    pub fn operator_token(&self) -> Option<SyntaxToken> {
11307        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11308    }
11309    #[inline]
11310    pub fn order_token(&self) -> Option<SyntaxToken> {
11311        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11312    }
11313    #[inline]
11314    pub fn search_token(&self) -> Option<SyntaxToken> {
11315        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
11316    }
11317    #[inline]
11318    pub fn storage_token(&self) -> Option<SyntaxToken> {
11319        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11320    }
11321}
11322
11323#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11324pub struct OpSig {
11325    pub(crate) syntax: SyntaxNode,
11326}
11327impl OpSig {
11328    #[inline]
11329    pub fn op(&self) -> Option<Op> {
11330        support::child(&self.syntax)
11331    }
11332    #[inline]
11333    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11334        support::token(&self.syntax, SyntaxKind::L_PAREN)
11335    }
11336    #[inline]
11337    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11338        support::token(&self.syntax, SyntaxKind::R_PAREN)
11339    }
11340    #[inline]
11341    pub fn comma_token(&self) -> Option<SyntaxToken> {
11342        support::token(&self.syntax, SyntaxKind::COMMA)
11343    }
11344    #[inline]
11345    pub fn none_token(&self) -> Option<SyntaxToken> {
11346        support::token(&self.syntax, SyntaxKind::NONE_KW)
11347    }
11348}
11349
11350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11351pub struct OpSigList {
11352    pub(crate) syntax: SyntaxNode,
11353}
11354impl OpSigList {
11355    #[inline]
11356    pub fn op_sigs(&self) -> AstChildren<OpSig> {
11357        support::children(&self.syntax)
11358    }
11359}
11360
11361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11362pub struct OperatorCall {
11363    pub(crate) syntax: SyntaxNode,
11364}
11365impl OperatorCall {
11366    #[inline]
11367    pub fn op(&self) -> Option<Op> {
11368        support::child(&self.syntax)
11369    }
11370    #[inline]
11371    pub fn path(&self) -> Option<Path> {
11372        support::child(&self.syntax)
11373    }
11374    #[inline]
11375    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11376        support::token(&self.syntax, SyntaxKind::L_PAREN)
11377    }
11378    #[inline]
11379    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11380        support::token(&self.syntax, SyntaxKind::R_PAREN)
11381    }
11382    #[inline]
11383    pub fn dot_token(&self) -> Option<SyntaxToken> {
11384        support::token(&self.syntax, SyntaxKind::DOT)
11385    }
11386    #[inline]
11387    pub fn operator_token(&self) -> Option<SyntaxToken> {
11388        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11389    }
11390}
11391
11392#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11393pub struct OperatorClassOptionList {
11394    pub(crate) syntax: SyntaxNode,
11395}
11396impl OperatorClassOptionList {
11397    #[inline]
11398    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
11399        support::children(&self.syntax)
11400    }
11401}
11402
11403#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11404pub struct OptionItem {
11405    pub(crate) syntax: SyntaxNode,
11406}
11407impl OptionItem {
11408    #[inline]
11409    pub fn expr(&self) -> Option<Expr> {
11410        support::child(&self.syntax)
11411    }
11412    #[inline]
11413    pub fn default_token(&self) -> Option<SyntaxToken> {
11414        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11415    }
11416}
11417
11418#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11419pub struct OptionItemList {
11420    pub(crate) syntax: SyntaxNode,
11421}
11422impl OptionItemList {
11423    #[inline]
11424    pub fn option_items(&self) -> AstChildren<OptionItem> {
11425        support::children(&self.syntax)
11426    }
11427    #[inline]
11428    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11429        support::token(&self.syntax, SyntaxKind::L_PAREN)
11430    }
11431    #[inline]
11432    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11433        support::token(&self.syntax, SyntaxKind::R_PAREN)
11434    }
11435}
11436
11437#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11438pub struct OrReplace {
11439    pub(crate) syntax: SyntaxNode,
11440}
11441impl OrReplace {
11442    #[inline]
11443    pub fn or_token(&self) -> Option<SyntaxToken> {
11444        support::token(&self.syntax, SyntaxKind::OR_KW)
11445    }
11446    #[inline]
11447    pub fn replace_token(&self) -> Option<SyntaxToken> {
11448        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
11449    }
11450}
11451
11452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11453pub struct OrderByClause {
11454    pub(crate) syntax: SyntaxNode,
11455}
11456impl OrderByClause {
11457    #[inline]
11458    pub fn sort_by_list(&self) -> Option<SortByList> {
11459        support::child(&self.syntax)
11460    }
11461    #[inline]
11462    pub fn by_token(&self) -> Option<SyntaxToken> {
11463        support::token(&self.syntax, SyntaxKind::BY_KW)
11464    }
11465    #[inline]
11466    pub fn order_token(&self) -> Option<SyntaxToken> {
11467        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11468    }
11469}
11470
11471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11472pub struct OverClause {
11473    pub(crate) syntax: SyntaxNode,
11474}
11475impl OverClause {
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    #[inline]
11485    pub fn over_token(&self) -> Option<SyntaxToken> {
11486        support::token(&self.syntax, SyntaxKind::OVER_KW)
11487    }
11488}
11489
11490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11491pub struct OverlayFn {
11492    pub(crate) syntax: SyntaxNode,
11493}
11494impl OverlayFn {
11495    #[inline]
11496    pub fn expr(&self) -> Option<Expr> {
11497        support::child(&self.syntax)
11498    }
11499    #[inline]
11500    pub fn exprs(&self) -> AstChildren<Expr> {
11501        support::children(&self.syntax)
11502    }
11503    #[inline]
11504    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11505        support::token(&self.syntax, SyntaxKind::L_PAREN)
11506    }
11507    #[inline]
11508    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11509        support::token(&self.syntax, SyntaxKind::R_PAREN)
11510    }
11511    #[inline]
11512    pub fn for_token(&self) -> Option<SyntaxToken> {
11513        support::token(&self.syntax, SyntaxKind::FOR_KW)
11514    }
11515    #[inline]
11516    pub fn from_token(&self) -> Option<SyntaxToken> {
11517        support::token(&self.syntax, SyntaxKind::FROM_KW)
11518    }
11519    #[inline]
11520    pub fn overlay_token(&self) -> Option<SyntaxToken> {
11521        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
11522    }
11523    #[inline]
11524    pub fn placing_token(&self) -> Option<SyntaxToken> {
11525        support::token(&self.syntax, SyntaxKind::PLACING_KW)
11526    }
11527}
11528
11529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11530pub struct OwnerTo {
11531    pub(crate) syntax: SyntaxNode,
11532}
11533impl OwnerTo {
11534    #[inline]
11535    pub fn role(&self) -> Option<Role> {
11536        support::child(&self.syntax)
11537    }
11538    #[inline]
11539    pub fn owner_token(&self) -> Option<SyntaxToken> {
11540        support::token(&self.syntax, SyntaxKind::OWNER_KW)
11541    }
11542    #[inline]
11543    pub fn to_token(&self) -> Option<SyntaxToken> {
11544        support::token(&self.syntax, SyntaxKind::TO_KW)
11545    }
11546}
11547
11548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11549pub struct ParallelFuncOption {
11550    pub(crate) syntax: SyntaxNode,
11551}
11552impl ParallelFuncOption {
11553    #[inline]
11554    pub fn ident_token(&self) -> Option<SyntaxToken> {
11555        support::token(&self.syntax, SyntaxKind::IDENT)
11556    }
11557    #[inline]
11558    pub fn parallel_token(&self) -> Option<SyntaxToken> {
11559        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
11560    }
11561}
11562
11563#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11564pub struct Param {
11565    pub(crate) syntax: SyntaxNode,
11566}
11567impl Param {
11568    #[inline]
11569    pub fn mode(&self) -> Option<ParamMode> {
11570        support::child(&self.syntax)
11571    }
11572    #[inline]
11573    pub fn name(&self) -> Option<Name> {
11574        support::child(&self.syntax)
11575    }
11576    #[inline]
11577    pub fn param_default(&self) -> Option<ParamDefault> {
11578        support::child(&self.syntax)
11579    }
11580    #[inline]
11581    pub fn ty(&self) -> Option<Type> {
11582        support::child(&self.syntax)
11583    }
11584}
11585
11586#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11587pub struct ParamDefault {
11588    pub(crate) syntax: SyntaxNode,
11589}
11590impl ParamDefault {
11591    #[inline]
11592    pub fn expr(&self) -> Option<Expr> {
11593        support::child(&self.syntax)
11594    }
11595    #[inline]
11596    pub fn eq_token(&self) -> Option<SyntaxToken> {
11597        support::token(&self.syntax, SyntaxKind::EQ)
11598    }
11599    #[inline]
11600    pub fn default_token(&self) -> Option<SyntaxToken> {
11601        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11602    }
11603}
11604
11605#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11606pub struct ParamIn {
11607    pub(crate) syntax: SyntaxNode,
11608}
11609impl ParamIn {
11610    #[inline]
11611    pub fn in_token(&self) -> Option<SyntaxToken> {
11612        support::token(&self.syntax, SyntaxKind::IN_KW)
11613    }
11614}
11615
11616#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11617pub struct ParamInOut {
11618    pub(crate) syntax: SyntaxNode,
11619}
11620impl ParamInOut {
11621    #[inline]
11622    pub fn in_token(&self) -> Option<SyntaxToken> {
11623        support::token(&self.syntax, SyntaxKind::IN_KW)
11624    }
11625    #[inline]
11626    pub fn inout_token(&self) -> Option<SyntaxToken> {
11627        support::token(&self.syntax, SyntaxKind::INOUT_KW)
11628    }
11629    #[inline]
11630    pub fn out_token(&self) -> Option<SyntaxToken> {
11631        support::token(&self.syntax, SyntaxKind::OUT_KW)
11632    }
11633}
11634
11635#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11636pub struct ParamList {
11637    pub(crate) syntax: SyntaxNode,
11638}
11639impl ParamList {
11640    #[inline]
11641    pub fn params(&self) -> AstChildren<Param> {
11642        support::children(&self.syntax)
11643    }
11644}
11645
11646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11647pub struct ParamOut {
11648    pub(crate) syntax: SyntaxNode,
11649}
11650impl ParamOut {
11651    #[inline]
11652    pub fn out_token(&self) -> Option<SyntaxToken> {
11653        support::token(&self.syntax, SyntaxKind::OUT_KW)
11654    }
11655}
11656
11657#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11658pub struct ParamVariadic {
11659    pub(crate) syntax: SyntaxNode,
11660}
11661impl ParamVariadic {
11662    #[inline]
11663    pub fn variadic_token(&self) -> Option<SyntaxToken> {
11664        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
11665    }
11666}
11667
11668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11669pub struct ParenExpr {
11670    pub(crate) syntax: SyntaxNode,
11671}
11672impl ParenExpr {
11673    #[inline]
11674    pub fn expr(&self) -> Option<Expr> {
11675        support::child(&self.syntax)
11676    }
11677    #[inline]
11678    pub fn select(&self) -> Option<Select> {
11679        support::child(&self.syntax)
11680    }
11681    #[inline]
11682    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11683        support::token(&self.syntax, SyntaxKind::L_PAREN)
11684    }
11685    #[inline]
11686    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11687        support::token(&self.syntax, SyntaxKind::R_PAREN)
11688    }
11689}
11690
11691#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11692pub struct ParenSelect {
11693    pub(crate) syntax: SyntaxNode,
11694}
11695impl ParenSelect {
11696    #[inline]
11697    pub fn select(&self) -> Option<SelectVariant> {
11698        support::child(&self.syntax)
11699    }
11700    #[inline]
11701    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11702        support::token(&self.syntax, SyntaxKind::L_PAREN)
11703    }
11704    #[inline]
11705    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11706        support::token(&self.syntax, SyntaxKind::R_PAREN)
11707    }
11708}
11709
11710#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11711pub struct PartitionBy {
11712    pub(crate) syntax: SyntaxNode,
11713}
11714impl PartitionBy {
11715    #[inline]
11716    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
11717        support::child(&self.syntax)
11718    }
11719    #[inline]
11720    pub fn by_token(&self) -> Option<SyntaxToken> {
11721        support::token(&self.syntax, SyntaxKind::BY_KW)
11722    }
11723    #[inline]
11724    pub fn ident_token(&self) -> Option<SyntaxToken> {
11725        support::token(&self.syntax, SyntaxKind::IDENT)
11726    }
11727    #[inline]
11728    pub fn partition_token(&self) -> Option<SyntaxToken> {
11729        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
11730    }
11731    #[inline]
11732    pub fn range_token(&self) -> Option<SyntaxToken> {
11733        support::token(&self.syntax, SyntaxKind::RANGE_KW)
11734    }
11735}
11736
11737#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11738pub struct PartitionDefault {
11739    pub(crate) syntax: SyntaxNode,
11740}
11741impl PartitionDefault {
11742    #[inline]
11743    pub fn default_token(&self) -> Option<SyntaxToken> {
11744        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11745    }
11746}
11747
11748#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11749pub struct PartitionForValuesFrom {
11750    pub(crate) syntax: SyntaxNode,
11751}
11752impl PartitionForValuesFrom {
11753    #[inline]
11754    pub fn exprs(&self) -> AstChildren<Expr> {
11755        support::children(&self.syntax)
11756    }
11757    #[inline]
11758    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11759        support::token(&self.syntax, SyntaxKind::L_PAREN)
11760    }
11761    #[inline]
11762    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11763        support::token(&self.syntax, SyntaxKind::R_PAREN)
11764    }
11765    #[inline]
11766    pub fn for_token(&self) -> Option<SyntaxToken> {
11767        support::token(&self.syntax, SyntaxKind::FOR_KW)
11768    }
11769    #[inline]
11770    pub fn from_token(&self) -> Option<SyntaxToken> {
11771        support::token(&self.syntax, SyntaxKind::FROM_KW)
11772    }
11773    #[inline]
11774    pub fn to_token(&self) -> Option<SyntaxToken> {
11775        support::token(&self.syntax, SyntaxKind::TO_KW)
11776    }
11777    #[inline]
11778    pub fn values_token(&self) -> Option<SyntaxToken> {
11779        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11780    }
11781}
11782
11783#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11784pub struct PartitionForValuesIn {
11785    pub(crate) syntax: SyntaxNode,
11786}
11787impl PartitionForValuesIn {
11788    #[inline]
11789    pub fn exprs(&self) -> AstChildren<Expr> {
11790        support::children(&self.syntax)
11791    }
11792    #[inline]
11793    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11794        support::token(&self.syntax, SyntaxKind::L_PAREN)
11795    }
11796    #[inline]
11797    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11798        support::token(&self.syntax, SyntaxKind::R_PAREN)
11799    }
11800    #[inline]
11801    pub fn for_token(&self) -> Option<SyntaxToken> {
11802        support::token(&self.syntax, SyntaxKind::FOR_KW)
11803    }
11804    #[inline]
11805    pub fn in_token(&self) -> Option<SyntaxToken> {
11806        support::token(&self.syntax, SyntaxKind::IN_KW)
11807    }
11808    #[inline]
11809    pub fn values_token(&self) -> Option<SyntaxToken> {
11810        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11811    }
11812}
11813
11814#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11815pub struct PartitionForValuesWith {
11816    pub(crate) syntax: SyntaxNode,
11817}
11818impl PartitionForValuesWith {
11819    #[inline]
11820    pub fn literal(&self) -> Option<Literal> {
11821        support::child(&self.syntax)
11822    }
11823    #[inline]
11824    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11825        support::token(&self.syntax, SyntaxKind::L_PAREN)
11826    }
11827    #[inline]
11828    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11829        support::token(&self.syntax, SyntaxKind::R_PAREN)
11830    }
11831    #[inline]
11832    pub fn comma_token(&self) -> Option<SyntaxToken> {
11833        support::token(&self.syntax, SyntaxKind::COMMA)
11834    }
11835    #[inline]
11836    pub fn for_token(&self) -> Option<SyntaxToken> {
11837        support::token(&self.syntax, SyntaxKind::FOR_KW)
11838    }
11839    #[inline]
11840    pub fn ident_token(&self) -> Option<SyntaxToken> {
11841        support::token(&self.syntax, SyntaxKind::IDENT)
11842    }
11843    #[inline]
11844    pub fn values_token(&self) -> Option<SyntaxToken> {
11845        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11846    }
11847    #[inline]
11848    pub fn with_token(&self) -> Option<SyntaxToken> {
11849        support::token(&self.syntax, SyntaxKind::WITH_KW)
11850    }
11851}
11852
11853#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11854pub struct PartitionItem {
11855    pub(crate) syntax: SyntaxNode,
11856}
11857impl PartitionItem {
11858    #[inline]
11859    pub fn collate(&self) -> Option<Collate> {
11860        support::child(&self.syntax)
11861    }
11862    #[inline]
11863    pub fn expr(&self) -> Option<Expr> {
11864        support::child(&self.syntax)
11865    }
11866}
11867
11868#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11869pub struct PartitionItemList {
11870    pub(crate) syntax: SyntaxNode,
11871}
11872impl PartitionItemList {
11873    #[inline]
11874    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
11875        support::children(&self.syntax)
11876    }
11877    #[inline]
11878    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11879        support::token(&self.syntax, SyntaxKind::L_PAREN)
11880    }
11881    #[inline]
11882    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11883        support::token(&self.syntax, SyntaxKind::R_PAREN)
11884    }
11885}
11886
11887#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11888pub struct PartitionOf {
11889    pub(crate) syntax: SyntaxNode,
11890}
11891impl PartitionOf {
11892    #[inline]
11893    pub fn ty(&self) -> Option<Type> {
11894        support::child(&self.syntax)
11895    }
11896    #[inline]
11897    pub fn of_token(&self) -> Option<SyntaxToken> {
11898        support::token(&self.syntax, SyntaxKind::OF_KW)
11899    }
11900    #[inline]
11901    pub fn partition_token(&self) -> Option<SyntaxToken> {
11902        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
11903    }
11904}
11905
11906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11907pub struct Path {
11908    pub(crate) syntax: SyntaxNode,
11909}
11910impl Path {
11911    #[inline]
11912    pub fn qualifier(&self) -> Option<Path> {
11913        support::child(&self.syntax)
11914    }
11915    #[inline]
11916    pub fn segment(&self) -> Option<PathSegment> {
11917        support::child(&self.syntax)
11918    }
11919    #[inline]
11920    pub fn dot_token(&self) -> Option<SyntaxToken> {
11921        support::token(&self.syntax, SyntaxKind::DOT)
11922    }
11923}
11924
11925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11926pub struct PathSegment {
11927    pub(crate) syntax: SyntaxNode,
11928}
11929impl PathSegment {
11930    #[inline]
11931    pub fn name(&self) -> Option<Name> {
11932        support::child(&self.syntax)
11933    }
11934    #[inline]
11935    pub fn name_ref(&self) -> Option<NameRef> {
11936        support::child(&self.syntax)
11937    }
11938}
11939
11940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11941pub struct PathType {
11942    pub(crate) syntax: SyntaxNode,
11943}
11944impl PathType {
11945    #[inline]
11946    pub fn arg_list(&self) -> Option<ArgList> {
11947        support::child(&self.syntax)
11948    }
11949    #[inline]
11950    pub fn path(&self) -> Option<Path> {
11951        support::child(&self.syntax)
11952    }
11953}
11954
11955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11956pub struct PercentType {
11957    pub(crate) syntax: SyntaxNode,
11958}
11959impl PercentType {
11960    #[inline]
11961    pub fn percent_token(&self) -> Option<SyntaxToken> {
11962        support::token(&self.syntax, SyntaxKind::PERCENT)
11963    }
11964    #[inline]
11965    pub fn type_token(&self) -> Option<SyntaxToken> {
11966        support::token(&self.syntax, SyntaxKind::TYPE_KW)
11967    }
11968}
11969
11970#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11971pub struct PercentTypeClause {
11972    pub(crate) syntax: SyntaxNode,
11973}
11974impl PercentTypeClause {
11975    #[inline]
11976    pub fn path(&self) -> Option<Path> {
11977        support::child(&self.syntax)
11978    }
11979    #[inline]
11980    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
11981        support::child(&self.syntax)
11982    }
11983}
11984
11985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11986pub struct PositionFn {
11987    pub(crate) syntax: SyntaxNode,
11988}
11989impl PositionFn {
11990    #[inline]
11991    pub fn expr(&self) -> Option<Expr> {
11992        support::child(&self.syntax)
11993    }
11994    #[inline]
11995    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11996        support::token(&self.syntax, SyntaxKind::L_PAREN)
11997    }
11998    #[inline]
11999    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12000        support::token(&self.syntax, SyntaxKind::R_PAREN)
12001    }
12002    #[inline]
12003    pub fn in_token(&self) -> Option<SyntaxToken> {
12004        support::token(&self.syntax, SyntaxKind::IN_KW)
12005    }
12006    #[inline]
12007    pub fn position_token(&self) -> Option<SyntaxToken> {
12008        support::token(&self.syntax, SyntaxKind::POSITION_KW)
12009    }
12010}
12011
12012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12013pub struct PostfixExpr {
12014    pub(crate) syntax: SyntaxNode,
12015}
12016impl PostfixExpr {
12017    #[inline]
12018    pub fn expr(&self) -> Option<Expr> {
12019        support::child(&self.syntax)
12020    }
12021}
12022
12023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12024pub struct PrefixExpr {
12025    pub(crate) syntax: SyntaxNode,
12026}
12027impl PrefixExpr {
12028    #[inline]
12029    pub fn expr(&self) -> Option<Expr> {
12030        support::child(&self.syntax)
12031    }
12032}
12033
12034#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12035pub struct Prepare {
12036    pub(crate) syntax: SyntaxNode,
12037}
12038impl Prepare {
12039    #[inline]
12040    pub fn name(&self) -> Option<Name> {
12041        support::child(&self.syntax)
12042    }
12043    #[inline]
12044    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
12045        support::child(&self.syntax)
12046    }
12047    #[inline]
12048    pub fn as_token(&self) -> Option<SyntaxToken> {
12049        support::token(&self.syntax, SyntaxKind::AS_KW)
12050    }
12051    #[inline]
12052    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12053        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12054    }
12055}
12056
12057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12058pub struct PrepareTransaction {
12059    pub(crate) syntax: SyntaxNode,
12060}
12061impl PrepareTransaction {
12062    #[inline]
12063    pub fn literal(&self) -> Option<Literal> {
12064        support::child(&self.syntax)
12065    }
12066    #[inline]
12067    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12068        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12069    }
12070    #[inline]
12071    pub fn transaction_token(&self) -> Option<SyntaxToken> {
12072        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
12073    }
12074}
12075
12076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12077pub struct PreserveRows {
12078    pub(crate) syntax: SyntaxNode,
12079}
12080impl PreserveRows {
12081    #[inline]
12082    pub fn preserve_token(&self) -> Option<SyntaxToken> {
12083        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
12084    }
12085    #[inline]
12086    pub fn rows_token(&self) -> Option<SyntaxToken> {
12087        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12088    }
12089}
12090
12091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12092pub struct PrimaryKeyConstraint {
12093    pub(crate) syntax: SyntaxNode,
12094}
12095impl PrimaryKeyConstraint {
12096    #[inline]
12097    pub fn column_list(&self) -> Option<ColumnList> {
12098        support::child(&self.syntax)
12099    }
12100    #[inline]
12101    pub fn name(&self) -> Option<Name> {
12102        support::child(&self.syntax)
12103    }
12104    #[inline]
12105    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
12106        support::child(&self.syntax)
12107    }
12108    #[inline]
12109    pub fn using_index(&self) -> Option<UsingIndex> {
12110        support::child(&self.syntax)
12111    }
12112    #[inline]
12113    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12114        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12115    }
12116    #[inline]
12117    pub fn key_token(&self) -> Option<SyntaxToken> {
12118        support::token(&self.syntax, SyntaxKind::KEY_KW)
12119    }
12120    #[inline]
12121    pub fn primary_token(&self) -> Option<SyntaxToken> {
12122        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
12123    }
12124}
12125
12126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12127pub struct PrivilegeTarget {
12128    pub(crate) syntax: SyntaxNode,
12129}
12130impl PrivilegeTarget {
12131    #[inline]
12132    pub fn functions_token(&self) -> Option<SyntaxToken> {
12133        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
12134    }
12135    #[inline]
12136    pub fn large_token(&self) -> Option<SyntaxToken> {
12137        support::token(&self.syntax, SyntaxKind::LARGE_KW)
12138    }
12139    #[inline]
12140    pub fn objects_token(&self) -> Option<SyntaxToken> {
12141        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
12142    }
12143    #[inline]
12144    pub fn routines_token(&self) -> Option<SyntaxToken> {
12145        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
12146    }
12147    #[inline]
12148    pub fn schemas_token(&self) -> Option<SyntaxToken> {
12149        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
12150    }
12151    #[inline]
12152    pub fn sequences_token(&self) -> Option<SyntaxToken> {
12153        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
12154    }
12155    #[inline]
12156    pub fn tables_token(&self) -> Option<SyntaxToken> {
12157        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12158    }
12159    #[inline]
12160    pub fn types_token(&self) -> Option<SyntaxToken> {
12161        support::token(&self.syntax, SyntaxKind::TYPES_KW)
12162    }
12163}
12164
12165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12166pub struct Privileges {
12167    pub(crate) syntax: SyntaxNode,
12168}
12169impl Privileges {
12170    #[inline]
12171    pub fn column_list(&self) -> Option<ColumnList> {
12172        support::child(&self.syntax)
12173    }
12174    #[inline]
12175    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
12176        support::child(&self.syntax)
12177    }
12178    #[inline]
12179    pub fn all_token(&self) -> Option<SyntaxToken> {
12180        support::token(&self.syntax, SyntaxKind::ALL_KW)
12181    }
12182    #[inline]
12183    pub fn privileges_token(&self) -> Option<SyntaxToken> {
12184        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
12185    }
12186}
12187
12188#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12189pub struct PublicationObject {
12190    pub(crate) syntax: SyntaxNode,
12191}
12192impl PublicationObject {
12193    #[inline]
12194    pub fn column_list(&self) -> Option<ColumnList> {
12195        support::child(&self.syntax)
12196    }
12197    #[inline]
12198    pub fn name_ref(&self) -> Option<NameRef> {
12199        support::child(&self.syntax)
12200    }
12201    #[inline]
12202    pub fn path(&self) -> Option<Path> {
12203        support::child(&self.syntax)
12204    }
12205    #[inline]
12206    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
12207        support::child(&self.syntax)
12208    }
12209    #[inline]
12210    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12211        support::token(&self.syntax, SyntaxKind::L_PAREN)
12212    }
12213    #[inline]
12214    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12215        support::token(&self.syntax, SyntaxKind::R_PAREN)
12216    }
12217    #[inline]
12218    pub fn star_token(&self) -> Option<SyntaxToken> {
12219        support::token(&self.syntax, SyntaxKind::STAR)
12220    }
12221    #[inline]
12222    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
12223        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
12224    }
12225    #[inline]
12226    pub fn in_token(&self) -> Option<SyntaxToken> {
12227        support::token(&self.syntax, SyntaxKind::IN_KW)
12228    }
12229    #[inline]
12230    pub fn only_token(&self) -> Option<SyntaxToken> {
12231        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12232    }
12233    #[inline]
12234    pub fn schema_token(&self) -> Option<SyntaxToken> {
12235        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12236    }
12237    #[inline]
12238    pub fn table_token(&self) -> Option<SyntaxToken> {
12239        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12240    }
12241    #[inline]
12242    pub fn tables_token(&self) -> Option<SyntaxToken> {
12243        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12244    }
12245}
12246
12247#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12248pub struct ReadCommitted {
12249    pub(crate) syntax: SyntaxNode,
12250}
12251impl ReadCommitted {
12252    #[inline]
12253    pub fn committed_token(&self) -> Option<SyntaxToken> {
12254        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
12255    }
12256    #[inline]
12257    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12258        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12259    }
12260    #[inline]
12261    pub fn level_token(&self) -> Option<SyntaxToken> {
12262        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12263    }
12264    #[inline]
12265    pub fn read_token(&self) -> Option<SyntaxToken> {
12266        support::token(&self.syntax, SyntaxKind::READ_KW)
12267    }
12268}
12269
12270#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12271pub struct ReadOnly {
12272    pub(crate) syntax: SyntaxNode,
12273}
12274impl ReadOnly {
12275    #[inline]
12276    pub fn only_token(&self) -> Option<SyntaxToken> {
12277        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12278    }
12279    #[inline]
12280    pub fn read_token(&self) -> Option<SyntaxToken> {
12281        support::token(&self.syntax, SyntaxKind::READ_KW)
12282    }
12283}
12284
12285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12286pub struct ReadUncommitted {
12287    pub(crate) syntax: SyntaxNode,
12288}
12289impl ReadUncommitted {
12290    #[inline]
12291    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12292        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12293    }
12294    #[inline]
12295    pub fn level_token(&self) -> Option<SyntaxToken> {
12296        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12297    }
12298    #[inline]
12299    pub fn read_token(&self) -> Option<SyntaxToken> {
12300        support::token(&self.syntax, SyntaxKind::READ_KW)
12301    }
12302    #[inline]
12303    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
12304        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
12305    }
12306}
12307
12308#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12309pub struct ReadWrite {
12310    pub(crate) syntax: SyntaxNode,
12311}
12312impl ReadWrite {
12313    #[inline]
12314    pub fn read_token(&self) -> Option<SyntaxToken> {
12315        support::token(&self.syntax, SyntaxKind::READ_KW)
12316    }
12317    #[inline]
12318    pub fn write_token(&self) -> Option<SyntaxToken> {
12319        support::token(&self.syntax, SyntaxKind::WRITE_KW)
12320    }
12321}
12322
12323#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12324pub struct Reassign {
12325    pub(crate) syntax: SyntaxNode,
12326}
12327impl Reassign {
12328    #[inline]
12329    pub fn new_roles(&self) -> Option<RoleList> {
12330        support::child(&self.syntax)
12331    }
12332    #[inline]
12333    pub fn old_roles(&self) -> Option<RoleList> {
12334        support::child(&self.syntax)
12335    }
12336    #[inline]
12337    pub fn by_token(&self) -> Option<SyntaxToken> {
12338        support::token(&self.syntax, SyntaxKind::BY_KW)
12339    }
12340    #[inline]
12341    pub fn owned_token(&self) -> Option<SyntaxToken> {
12342        support::token(&self.syntax, SyntaxKind::OWNED_KW)
12343    }
12344    #[inline]
12345    pub fn reassign_token(&self) -> Option<SyntaxToken> {
12346        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
12347    }
12348    #[inline]
12349    pub fn to_token(&self) -> Option<SyntaxToken> {
12350        support::token(&self.syntax, SyntaxKind::TO_KW)
12351    }
12352}
12353
12354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12355pub struct ReferencesConstraint {
12356    pub(crate) syntax: SyntaxNode,
12357}
12358impl ReferencesConstraint {
12359    #[inline]
12360    pub fn match_type(&self) -> Option<MatchType> {
12361        support::child(&self.syntax)
12362    }
12363    #[inline]
12364    pub fn name(&self) -> Option<Name> {
12365        support::child(&self.syntax)
12366    }
12367    #[inline]
12368    pub fn name_ref(&self) -> Option<NameRef> {
12369        support::child(&self.syntax)
12370    }
12371    #[inline]
12372    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
12373        support::child(&self.syntax)
12374    }
12375    #[inline]
12376    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
12377        support::child(&self.syntax)
12378    }
12379    #[inline]
12380    pub fn path(&self) -> Option<Path> {
12381        support::child(&self.syntax)
12382    }
12383    #[inline]
12384    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12385        support::token(&self.syntax, SyntaxKind::L_PAREN)
12386    }
12387    #[inline]
12388    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12389        support::token(&self.syntax, SyntaxKind::R_PAREN)
12390    }
12391    #[inline]
12392    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12393        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12394    }
12395    #[inline]
12396    pub fn references_token(&self) -> Option<SyntaxToken> {
12397        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
12398    }
12399}
12400
12401#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12402pub struct Referencing {
12403    pub(crate) syntax: SyntaxNode,
12404}
12405impl Referencing {
12406    #[inline]
12407    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
12408        support::children(&self.syntax)
12409    }
12410    #[inline]
12411    pub fn referencing_token(&self) -> Option<SyntaxToken> {
12412        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
12413    }
12414}
12415
12416#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12417pub struct ReferencingTable {
12418    pub(crate) syntax: SyntaxNode,
12419}
12420impl ReferencingTable {
12421    #[inline]
12422    pub fn name_ref(&self) -> Option<NameRef> {
12423        support::child(&self.syntax)
12424    }
12425    #[inline]
12426    pub fn as_token(&self) -> Option<SyntaxToken> {
12427        support::token(&self.syntax, SyntaxKind::AS_KW)
12428    }
12429    #[inline]
12430    pub fn new_token(&self) -> Option<SyntaxToken> {
12431        support::token(&self.syntax, SyntaxKind::NEW_KW)
12432    }
12433    #[inline]
12434    pub fn old_token(&self) -> Option<SyntaxToken> {
12435        support::token(&self.syntax, SyntaxKind::OLD_KW)
12436    }
12437    #[inline]
12438    pub fn table_token(&self) -> Option<SyntaxToken> {
12439        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12440    }
12441}
12442
12443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12444pub struct Refresh {
12445    pub(crate) syntax: SyntaxNode,
12446}
12447impl Refresh {
12448    #[inline]
12449    pub fn path(&self) -> Option<Path> {
12450        support::child(&self.syntax)
12451    }
12452    #[inline]
12453    pub fn with_data(&self) -> Option<WithData> {
12454        support::child(&self.syntax)
12455    }
12456    #[inline]
12457    pub fn with_no_data(&self) -> Option<WithNoData> {
12458        support::child(&self.syntax)
12459    }
12460    #[inline]
12461    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
12462        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
12463    }
12464    #[inline]
12465    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12466        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12467    }
12468    #[inline]
12469    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12470        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12471    }
12472    #[inline]
12473    pub fn view_token(&self) -> Option<SyntaxToken> {
12474        support::token(&self.syntax, SyntaxKind::VIEW_KW)
12475    }
12476}
12477
12478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12479pub struct RefreshCollationVersion {
12480    pub(crate) syntax: SyntaxNode,
12481}
12482impl RefreshCollationVersion {
12483    #[inline]
12484    pub fn collation_token(&self) -> Option<SyntaxToken> {
12485        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
12486    }
12487    #[inline]
12488    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12489        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12490    }
12491    #[inline]
12492    pub fn version_token(&self) -> Option<SyntaxToken> {
12493        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12494    }
12495}
12496
12497#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12498pub struct RefreshVersion {
12499    pub(crate) syntax: SyntaxNode,
12500}
12501impl RefreshVersion {
12502    #[inline]
12503    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12504        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12505    }
12506    #[inline]
12507    pub fn version_token(&self) -> Option<SyntaxToken> {
12508        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12509    }
12510}
12511
12512#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12513pub struct Reindex {
12514    pub(crate) syntax: SyntaxNode,
12515}
12516impl Reindex {
12517    #[inline]
12518    pub fn path(&self) -> Option<Path> {
12519        support::child(&self.syntax)
12520    }
12521    #[inline]
12522    pub fn database_token(&self) -> Option<SyntaxToken> {
12523        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
12524    }
12525    #[inline]
12526    pub fn index_token(&self) -> Option<SyntaxToken> {
12527        support::token(&self.syntax, SyntaxKind::INDEX_KW)
12528    }
12529    #[inline]
12530    pub fn reindex_token(&self) -> Option<SyntaxToken> {
12531        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
12532    }
12533    #[inline]
12534    pub fn schema_token(&self) -> Option<SyntaxToken> {
12535        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12536    }
12537    #[inline]
12538    pub fn system_token(&self) -> Option<SyntaxToken> {
12539        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
12540    }
12541    #[inline]
12542    pub fn table_token(&self) -> Option<SyntaxToken> {
12543        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12544    }
12545}
12546
12547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12548pub struct RelationName {
12549    pub(crate) syntax: SyntaxNode,
12550}
12551impl RelationName {
12552    #[inline]
12553    pub fn path(&self) -> Option<Path> {
12554        support::child(&self.syntax)
12555    }
12556    #[inline]
12557    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12558        support::token(&self.syntax, SyntaxKind::L_PAREN)
12559    }
12560    #[inline]
12561    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12562        support::token(&self.syntax, SyntaxKind::R_PAREN)
12563    }
12564    #[inline]
12565    pub fn star_token(&self) -> Option<SyntaxToken> {
12566        support::token(&self.syntax, SyntaxKind::STAR)
12567    }
12568    #[inline]
12569    pub fn only_token(&self) -> Option<SyntaxToken> {
12570        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12571    }
12572}
12573
12574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12575pub struct ReleaseSavepoint {
12576    pub(crate) syntax: SyntaxNode,
12577}
12578impl ReleaseSavepoint {
12579    #[inline]
12580    pub fn name_ref(&self) -> Option<NameRef> {
12581        support::child(&self.syntax)
12582    }
12583    #[inline]
12584    pub fn release_token(&self) -> Option<SyntaxToken> {
12585        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
12586    }
12587    #[inline]
12588    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
12589        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
12590    }
12591}
12592
12593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12594pub struct RenameColumn {
12595    pub(crate) syntax: SyntaxNode,
12596}
12597impl RenameColumn {
12598    #[inline]
12599    pub fn column_token(&self) -> Option<SyntaxToken> {
12600        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
12601    }
12602    #[inline]
12603    pub fn rename_token(&self) -> Option<SyntaxToken> {
12604        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12605    }
12606    #[inline]
12607    pub fn to_token(&self) -> Option<SyntaxToken> {
12608        support::token(&self.syntax, SyntaxKind::TO_KW)
12609    }
12610}
12611
12612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12613pub struct RenameConstraint {
12614    pub(crate) syntax: SyntaxNode,
12615}
12616impl RenameConstraint {
12617    #[inline]
12618    pub fn name(&self) -> Option<Name> {
12619        support::child(&self.syntax)
12620    }
12621    #[inline]
12622    pub fn name_ref(&self) -> Option<NameRef> {
12623        support::child(&self.syntax)
12624    }
12625    #[inline]
12626    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12627        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12628    }
12629    #[inline]
12630    pub fn rename_token(&self) -> Option<SyntaxToken> {
12631        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12632    }
12633    #[inline]
12634    pub fn to_token(&self) -> Option<SyntaxToken> {
12635        support::token(&self.syntax, SyntaxKind::TO_KW)
12636    }
12637}
12638
12639#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12640pub struct RenameTo {
12641    pub(crate) syntax: SyntaxNode,
12642}
12643impl RenameTo {
12644    #[inline]
12645    pub fn name(&self) -> Option<Name> {
12646        support::child(&self.syntax)
12647    }
12648    #[inline]
12649    pub fn rename_token(&self) -> Option<SyntaxToken> {
12650        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12651    }
12652    #[inline]
12653    pub fn to_token(&self) -> Option<SyntaxToken> {
12654        support::token(&self.syntax, SyntaxKind::TO_KW)
12655    }
12656}
12657
12658#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12659pub struct RepeatableClause {
12660    pub(crate) syntax: SyntaxNode,
12661}
12662impl RepeatableClause {
12663    #[inline]
12664    pub fn expr(&self) -> Option<Expr> {
12665        support::child(&self.syntax)
12666    }
12667    #[inline]
12668    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12669        support::token(&self.syntax, SyntaxKind::L_PAREN)
12670    }
12671    #[inline]
12672    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12673        support::token(&self.syntax, SyntaxKind::R_PAREN)
12674    }
12675    #[inline]
12676    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
12677        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
12678    }
12679}
12680
12681#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12682pub struct RepeatableRead {
12683    pub(crate) syntax: SyntaxNode,
12684}
12685impl RepeatableRead {
12686    #[inline]
12687    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12688        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12689    }
12690    #[inline]
12691    pub fn level_token(&self) -> Option<SyntaxToken> {
12692        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12693    }
12694    #[inline]
12695    pub fn read_token(&self) -> Option<SyntaxToken> {
12696        support::token(&self.syntax, SyntaxKind::READ_KW)
12697    }
12698    #[inline]
12699    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
12700        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
12701    }
12702}
12703
12704#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12705pub struct ReplicaIdentity {
12706    pub(crate) syntax: SyntaxNode,
12707}
12708impl ReplicaIdentity {
12709    #[inline]
12710    pub fn identity_token(&self) -> Option<SyntaxToken> {
12711        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
12712    }
12713    #[inline]
12714    pub fn replica_token(&self) -> Option<SyntaxToken> {
12715        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
12716    }
12717}
12718
12719#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12720pub struct Reset {
12721    pub(crate) syntax: SyntaxNode,
12722}
12723impl Reset {
12724    #[inline]
12725    pub fn name_ref(&self) -> Option<NameRef> {
12726        support::child(&self.syntax)
12727    }
12728    #[inline]
12729    pub fn all_token(&self) -> Option<SyntaxToken> {
12730        support::token(&self.syntax, SyntaxKind::ALL_KW)
12731    }
12732    #[inline]
12733    pub fn reset_token(&self) -> Option<SyntaxToken> {
12734        support::token(&self.syntax, SyntaxKind::RESET_KW)
12735    }
12736}
12737
12738#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12739pub struct ResetConfigParam {
12740    pub(crate) syntax: SyntaxNode,
12741}
12742impl ResetConfigParam {
12743    #[inline]
12744    pub fn path(&self) -> Option<Path> {
12745        support::child(&self.syntax)
12746    }
12747    #[inline]
12748    pub fn all_token(&self) -> Option<SyntaxToken> {
12749        support::token(&self.syntax, SyntaxKind::ALL_KW)
12750    }
12751    #[inline]
12752    pub fn reset_token(&self) -> Option<SyntaxToken> {
12753        support::token(&self.syntax, SyntaxKind::RESET_KW)
12754    }
12755}
12756
12757#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12758pub struct ResetFuncOption {
12759    pub(crate) syntax: SyntaxNode,
12760}
12761impl ResetFuncOption {
12762    #[inline]
12763    pub fn name_ref(&self) -> Option<NameRef> {
12764        support::child(&self.syntax)
12765    }
12766    #[inline]
12767    pub fn reset_token(&self) -> Option<SyntaxToken> {
12768        support::token(&self.syntax, SyntaxKind::RESET_KW)
12769    }
12770}
12771
12772#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12773pub struct ResetOptions {
12774    pub(crate) syntax: SyntaxNode,
12775}
12776impl ResetOptions {
12777    #[inline]
12778    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12779        support::token(&self.syntax, SyntaxKind::L_PAREN)
12780    }
12781    #[inline]
12782    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12783        support::token(&self.syntax, SyntaxKind::R_PAREN)
12784    }
12785    #[inline]
12786    pub fn reset_token(&self) -> Option<SyntaxToken> {
12787        support::token(&self.syntax, SyntaxKind::RESET_KW)
12788    }
12789}
12790
12791#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12792pub struct ResetSessionAuth {
12793    pub(crate) syntax: SyntaxNode,
12794}
12795impl ResetSessionAuth {
12796    #[inline]
12797    pub fn authorization_token(&self) -> Option<SyntaxToken> {
12798        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
12799    }
12800    #[inline]
12801    pub fn reset_token(&self) -> Option<SyntaxToken> {
12802        support::token(&self.syntax, SyntaxKind::RESET_KW)
12803    }
12804    #[inline]
12805    pub fn session_token(&self) -> Option<SyntaxToken> {
12806        support::token(&self.syntax, SyntaxKind::SESSION_KW)
12807    }
12808}
12809
12810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12811pub struct Restart {
12812    pub(crate) syntax: SyntaxNode,
12813}
12814impl Restart {
12815    #[inline]
12816    pub fn restart_token(&self) -> Option<SyntaxToken> {
12817        support::token(&self.syntax, SyntaxKind::RESTART_KW)
12818    }
12819    #[inline]
12820    pub fn with_token(&self) -> Option<SyntaxToken> {
12821        support::token(&self.syntax, SyntaxKind::WITH_KW)
12822    }
12823}
12824
12825#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12826pub struct Restrict {
12827    pub(crate) syntax: SyntaxNode,
12828}
12829impl Restrict {
12830    #[inline]
12831    pub fn restrict_token(&self) -> Option<SyntaxToken> {
12832        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
12833    }
12834}
12835
12836#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12837pub struct RetType {
12838    pub(crate) syntax: SyntaxNode,
12839}
12840impl RetType {
12841    #[inline]
12842    pub fn ty(&self) -> Option<Type> {
12843        support::child(&self.syntax)
12844    }
12845    #[inline]
12846    pub fn returns_token(&self) -> Option<SyntaxToken> {
12847        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
12848    }
12849}
12850
12851#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12852pub struct ReturnFuncOption {
12853    pub(crate) syntax: SyntaxNode,
12854}
12855impl ReturnFuncOption {
12856    #[inline]
12857    pub fn expr(&self) -> Option<Expr> {
12858        support::child(&self.syntax)
12859    }
12860    #[inline]
12861    pub fn return_token(&self) -> Option<SyntaxToken> {
12862        support::token(&self.syntax, SyntaxKind::RETURN_KW)
12863    }
12864}
12865
12866#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12867pub struct ReturningClause {
12868    pub(crate) syntax: SyntaxNode,
12869}
12870impl ReturningClause {
12871    #[inline]
12872    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
12873        support::child(&self.syntax)
12874    }
12875    #[inline]
12876    pub fn target_list(&self) -> Option<TargetList> {
12877        support::child(&self.syntax)
12878    }
12879    #[inline]
12880    pub fn returning_token(&self) -> Option<SyntaxToken> {
12881        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
12882    }
12883}
12884
12885#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12886pub struct ReturningOption {
12887    pub(crate) syntax: SyntaxNode,
12888}
12889impl ReturningOption {
12890    #[inline]
12891    pub fn name(&self) -> Option<Name> {
12892        support::child(&self.syntax)
12893    }
12894    #[inline]
12895    pub fn as_token(&self) -> Option<SyntaxToken> {
12896        support::token(&self.syntax, SyntaxKind::AS_KW)
12897    }
12898    #[inline]
12899    pub fn new_token(&self) -> Option<SyntaxToken> {
12900        support::token(&self.syntax, SyntaxKind::NEW_KW)
12901    }
12902    #[inline]
12903    pub fn old_token(&self) -> Option<SyntaxToken> {
12904        support::token(&self.syntax, SyntaxKind::OLD_KW)
12905    }
12906}
12907
12908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12909pub struct ReturningOptionList {
12910    pub(crate) syntax: SyntaxNode,
12911}
12912impl ReturningOptionList {
12913    #[inline]
12914    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
12915        support::children(&self.syntax)
12916    }
12917    #[inline]
12918    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12919        support::token(&self.syntax, SyntaxKind::L_PAREN)
12920    }
12921    #[inline]
12922    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12923        support::token(&self.syntax, SyntaxKind::R_PAREN)
12924    }
12925    #[inline]
12926    pub fn with_token(&self) -> Option<SyntaxToken> {
12927        support::token(&self.syntax, SyntaxKind::WITH_KW)
12928    }
12929}
12930
12931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12932pub struct Revoke {
12933    pub(crate) syntax: SyntaxNode,
12934}
12935impl Revoke {
12936    #[inline]
12937    pub fn name_refs(&self) -> AstChildren<NameRef> {
12938        support::children(&self.syntax)
12939    }
12940    #[inline]
12941    pub fn paths(&self) -> AstChildren<Path> {
12942        support::children(&self.syntax)
12943    }
12944    #[inline]
12945    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
12946        support::child(&self.syntax)
12947    }
12948    #[inline]
12949    pub fn role(&self) -> Option<Role> {
12950        support::child(&self.syntax)
12951    }
12952    #[inline]
12953    pub fn role_list(&self) -> Option<RoleList> {
12954        support::child(&self.syntax)
12955    }
12956    #[inline]
12957    pub fn all_token(&self) -> Option<SyntaxToken> {
12958        support::token(&self.syntax, SyntaxKind::ALL_KW)
12959    }
12960    #[inline]
12961    pub fn by_token(&self) -> Option<SyntaxToken> {
12962        support::token(&self.syntax, SyntaxKind::BY_KW)
12963    }
12964    #[inline]
12965    pub fn cascade_token(&self) -> Option<SyntaxToken> {
12966        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
12967    }
12968    #[inline]
12969    pub fn for_token(&self) -> Option<SyntaxToken> {
12970        support::token(&self.syntax, SyntaxKind::FOR_KW)
12971    }
12972    #[inline]
12973    pub fn from_token(&self) -> Option<SyntaxToken> {
12974        support::token(&self.syntax, SyntaxKind::FROM_KW)
12975    }
12976    #[inline]
12977    pub fn grant_token(&self) -> Option<SyntaxToken> {
12978        support::token(&self.syntax, SyntaxKind::GRANT_KW)
12979    }
12980    #[inline]
12981    pub fn granted_token(&self) -> Option<SyntaxToken> {
12982        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
12983    }
12984    #[inline]
12985    pub fn in_token(&self) -> Option<SyntaxToken> {
12986        support::token(&self.syntax, SyntaxKind::IN_KW)
12987    }
12988    #[inline]
12989    pub fn on_token(&self) -> Option<SyntaxToken> {
12990        support::token(&self.syntax, SyntaxKind::ON_KW)
12991    }
12992    #[inline]
12993    pub fn option_token(&self) -> Option<SyntaxToken> {
12994        support::token(&self.syntax, SyntaxKind::OPTION_KW)
12995    }
12996    #[inline]
12997    pub fn privileges_token(&self) -> Option<SyntaxToken> {
12998        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
12999    }
13000    #[inline]
13001    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13002        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13003    }
13004    #[inline]
13005    pub fn revoke_token(&self) -> Option<SyntaxToken> {
13006        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
13007    }
13008    #[inline]
13009    pub fn schema_token(&self) -> Option<SyntaxToken> {
13010        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13011    }
13012    #[inline]
13013    pub fn table_token(&self) -> Option<SyntaxToken> {
13014        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13015    }
13016    #[inline]
13017    pub fn tables_token(&self) -> Option<SyntaxToken> {
13018        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13019    }
13020}
13021
13022#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13023pub struct RevokeCommand {
13024    pub(crate) syntax: SyntaxNode,
13025}
13026impl RevokeCommand {
13027    #[inline]
13028    pub fn role(&self) -> Option<Role> {
13029        support::child(&self.syntax)
13030    }
13031    #[inline]
13032    pub fn all_token(&self) -> Option<SyntaxToken> {
13033        support::token(&self.syntax, SyntaxKind::ALL_KW)
13034    }
13035    #[inline]
13036    pub fn alter_token(&self) -> Option<SyntaxToken> {
13037        support::token(&self.syntax, SyntaxKind::ALTER_KW)
13038    }
13039    #[inline]
13040    pub fn create_token(&self) -> Option<SyntaxToken> {
13041        support::token(&self.syntax, SyntaxKind::CREATE_KW)
13042    }
13043    #[inline]
13044    pub fn delete_token(&self) -> Option<SyntaxToken> {
13045        support::token(&self.syntax, SyntaxKind::DELETE_KW)
13046    }
13047    #[inline]
13048    pub fn execute_token(&self) -> Option<SyntaxToken> {
13049        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
13050    }
13051    #[inline]
13052    pub fn ident_token(&self) -> Option<SyntaxToken> {
13053        support::token(&self.syntax, SyntaxKind::IDENT)
13054    }
13055    #[inline]
13056    pub fn insert_token(&self) -> Option<SyntaxToken> {
13057        support::token(&self.syntax, SyntaxKind::INSERT_KW)
13058    }
13059    #[inline]
13060    pub fn references_token(&self) -> Option<SyntaxToken> {
13061        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
13062    }
13063    #[inline]
13064    pub fn select_token(&self) -> Option<SyntaxToken> {
13065        support::token(&self.syntax, SyntaxKind::SELECT_KW)
13066    }
13067    #[inline]
13068    pub fn system_token(&self) -> Option<SyntaxToken> {
13069        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
13070    }
13071    #[inline]
13072    pub fn temp_token(&self) -> Option<SyntaxToken> {
13073        support::token(&self.syntax, SyntaxKind::TEMP_KW)
13074    }
13075    #[inline]
13076    pub fn temporary_token(&self) -> Option<SyntaxToken> {
13077        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
13078    }
13079    #[inline]
13080    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13081        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13082    }
13083    #[inline]
13084    pub fn truncate_token(&self) -> Option<SyntaxToken> {
13085        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
13086    }
13087    #[inline]
13088    pub fn update_token(&self) -> Option<SyntaxToken> {
13089        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
13090    }
13091}
13092
13093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13094pub struct RevokeCommandList {
13095    pub(crate) syntax: SyntaxNode,
13096}
13097impl RevokeCommandList {
13098    #[inline]
13099    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
13100        support::children(&self.syntax)
13101    }
13102}
13103
13104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13105pub struct RevokeDefaultPrivileges {
13106    pub(crate) syntax: SyntaxNode,
13107}
13108impl RevokeDefaultPrivileges {
13109    #[inline]
13110    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
13111        support::child(&self.syntax)
13112    }
13113    #[inline]
13114    pub fn privileges(&self) -> Option<Privileges> {
13115        support::child(&self.syntax)
13116    }
13117    #[inline]
13118    pub fn role_list(&self) -> Option<RoleList> {
13119        support::child(&self.syntax)
13120    }
13121    #[inline]
13122    pub fn cascade_token(&self) -> Option<SyntaxToken> {
13123        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
13124    }
13125    #[inline]
13126    pub fn for_token(&self) -> Option<SyntaxToken> {
13127        support::token(&self.syntax, SyntaxKind::FOR_KW)
13128    }
13129    #[inline]
13130    pub fn from_token(&self) -> Option<SyntaxToken> {
13131        support::token(&self.syntax, SyntaxKind::FROM_KW)
13132    }
13133    #[inline]
13134    pub fn grant_token(&self) -> Option<SyntaxToken> {
13135        support::token(&self.syntax, SyntaxKind::GRANT_KW)
13136    }
13137    #[inline]
13138    pub fn on_token(&self) -> Option<SyntaxToken> {
13139        support::token(&self.syntax, SyntaxKind::ON_KW)
13140    }
13141    #[inline]
13142    pub fn option_token(&self) -> Option<SyntaxToken> {
13143        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13144    }
13145    #[inline]
13146    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13147        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13148    }
13149    #[inline]
13150    pub fn revoke_token(&self) -> Option<SyntaxToken> {
13151        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
13152    }
13153}
13154
13155#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13156pub struct Role {
13157    pub(crate) syntax: SyntaxNode,
13158}
13159impl Role {
13160    #[inline]
13161    pub fn name_ref(&self) -> Option<NameRef> {
13162        support::child(&self.syntax)
13163    }
13164    #[inline]
13165    pub fn current_role_token(&self) -> Option<SyntaxToken> {
13166        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
13167    }
13168    #[inline]
13169    pub fn current_user_token(&self) -> Option<SyntaxToken> {
13170        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
13171    }
13172    #[inline]
13173    pub fn group_token(&self) -> Option<SyntaxToken> {
13174        support::token(&self.syntax, SyntaxKind::GROUP_KW)
13175    }
13176    #[inline]
13177    pub fn session_user_token(&self) -> Option<SyntaxToken> {
13178        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
13179    }
13180}
13181
13182#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13183pub struct RoleList {
13184    pub(crate) syntax: SyntaxNode,
13185}
13186impl RoleList {
13187    #[inline]
13188    pub fn roles(&self) -> AstChildren<Role> {
13189        support::children(&self.syntax)
13190    }
13191}
13192
13193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13194pub struct RoleOption {
13195    pub(crate) syntax: SyntaxNode,
13196}
13197impl RoleOption {
13198    #[inline]
13199    pub fn inherit_token(&self) -> Option<SyntaxToken> {
13200        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
13201    }
13202}
13203
13204#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13205pub struct RoleOptionList {
13206    pub(crate) syntax: SyntaxNode,
13207}
13208impl RoleOptionList {
13209    #[inline]
13210    pub fn role_options(&self) -> AstChildren<RoleOption> {
13211        support::children(&self.syntax)
13212    }
13213    #[inline]
13214    pub fn with_token(&self) -> Option<SyntaxToken> {
13215        support::token(&self.syntax, SyntaxKind::WITH_KW)
13216    }
13217}
13218
13219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13220pub struct Rollback {
13221    pub(crate) syntax: SyntaxNode,
13222}
13223impl Rollback {
13224    #[inline]
13225    pub fn literal(&self) -> Option<Literal> {
13226        support::child(&self.syntax)
13227    }
13228    #[inline]
13229    pub fn name_ref(&self) -> Option<NameRef> {
13230        support::child(&self.syntax)
13231    }
13232    #[inline]
13233    pub fn abort_token(&self) -> Option<SyntaxToken> {
13234        support::token(&self.syntax, SyntaxKind::ABORT_KW)
13235    }
13236    #[inline]
13237    pub fn and_token(&self) -> Option<SyntaxToken> {
13238        support::token(&self.syntax, SyntaxKind::AND_KW)
13239    }
13240    #[inline]
13241    pub fn chain_token(&self) -> Option<SyntaxToken> {
13242        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
13243    }
13244    #[inline]
13245    pub fn no_token(&self) -> Option<SyntaxToken> {
13246        support::token(&self.syntax, SyntaxKind::NO_KW)
13247    }
13248    #[inline]
13249    pub fn prepared_token(&self) -> Option<SyntaxToken> {
13250        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
13251    }
13252    #[inline]
13253    pub fn rollback_token(&self) -> Option<SyntaxToken> {
13254        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
13255    }
13256    #[inline]
13257    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13258        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13259    }
13260    #[inline]
13261    pub fn to_token(&self) -> Option<SyntaxToken> {
13262        support::token(&self.syntax, SyntaxKind::TO_KW)
13263    }
13264    #[inline]
13265    pub fn transaction_token(&self) -> Option<SyntaxToken> {
13266        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
13267    }
13268    #[inline]
13269    pub fn work_token(&self) -> Option<SyntaxToken> {
13270        support::token(&self.syntax, SyntaxKind::WORK_KW)
13271    }
13272}
13273
13274#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13275pub struct Row {
13276    pub(crate) syntax: SyntaxNode,
13277}
13278impl Row {
13279    #[inline]
13280    pub fn exprs(&self) -> AstChildren<Expr> {
13281        support::children(&self.syntax)
13282    }
13283}
13284
13285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13286pub struct RowList {
13287    pub(crate) syntax: SyntaxNode,
13288}
13289impl RowList {
13290    #[inline]
13291    pub fn rows(&self) -> AstChildren<Row> {
13292        support::children(&self.syntax)
13293    }
13294}
13295
13296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13297pub struct RowsFuncOption {
13298    pub(crate) syntax: SyntaxNode,
13299}
13300impl RowsFuncOption {
13301    #[inline]
13302    pub fn rows_token(&self) -> Option<SyntaxToken> {
13303        support::token(&self.syntax, SyntaxKind::ROWS_KW)
13304    }
13305}
13306
13307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13308pub struct Savepoint {
13309    pub(crate) syntax: SyntaxNode,
13310}
13311impl Savepoint {
13312    #[inline]
13313    pub fn name(&self) -> Option<Name> {
13314        support::child(&self.syntax)
13315    }
13316    #[inline]
13317    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13318        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13319    }
13320}
13321
13322#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13323pub struct SchemaAuthorization {
13324    pub(crate) syntax: SyntaxNode,
13325}
13326impl SchemaAuthorization {
13327    #[inline]
13328    pub fn role(&self) -> Option<Role> {
13329        support::child(&self.syntax)
13330    }
13331    #[inline]
13332    pub fn authorization_token(&self) -> Option<SyntaxToken> {
13333        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
13334    }
13335}
13336
13337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13338pub struct SecurityFuncOption {
13339    pub(crate) syntax: SyntaxNode,
13340}
13341impl SecurityFuncOption {
13342    #[inline]
13343    pub fn definer_token(&self) -> Option<SyntaxToken> {
13344        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
13345    }
13346    #[inline]
13347    pub fn invoker_token(&self) -> Option<SyntaxToken> {
13348        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
13349    }
13350    #[inline]
13351    pub fn security_token(&self) -> Option<SyntaxToken> {
13352        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13353    }
13354}
13355
13356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13357pub struct SecurityLabel {
13358    pub(crate) syntax: SyntaxNode,
13359}
13360impl SecurityLabel {
13361    #[inline]
13362    pub fn aggregate(&self) -> Option<Aggregate> {
13363        support::child(&self.syntax)
13364    }
13365    #[inline]
13366    pub fn for_provider(&self) -> Option<ForProvider> {
13367        support::child(&self.syntax)
13368    }
13369    #[inline]
13370    pub fn function_sig(&self) -> Option<FunctionSig> {
13371        support::child(&self.syntax)
13372    }
13373    #[inline]
13374    pub fn literal(&self) -> Option<Literal> {
13375        support::child(&self.syntax)
13376    }
13377    #[inline]
13378    pub fn path(&self) -> Option<Path> {
13379        support::child(&self.syntax)
13380    }
13381    #[inline]
13382    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
13383        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
13384    }
13385    #[inline]
13386    pub fn column_token(&self) -> Option<SyntaxToken> {
13387        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
13388    }
13389    #[inline]
13390    pub fn database_token(&self) -> Option<SyntaxToken> {
13391        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
13392    }
13393    #[inline]
13394    pub fn domain_token(&self) -> Option<SyntaxToken> {
13395        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
13396    }
13397    #[inline]
13398    pub fn event_token(&self) -> Option<SyntaxToken> {
13399        support::token(&self.syntax, SyntaxKind::EVENT_KW)
13400    }
13401    #[inline]
13402    pub fn foreign_token(&self) -> Option<SyntaxToken> {
13403        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
13404    }
13405    #[inline]
13406    pub fn function_token(&self) -> Option<SyntaxToken> {
13407        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
13408    }
13409    #[inline]
13410    pub fn is_token(&self) -> Option<SyntaxToken> {
13411        support::token(&self.syntax, SyntaxKind::IS_KW)
13412    }
13413    #[inline]
13414    pub fn label_token(&self) -> Option<SyntaxToken> {
13415        support::token(&self.syntax, SyntaxKind::LABEL_KW)
13416    }
13417    #[inline]
13418    pub fn language_token(&self) -> Option<SyntaxToken> {
13419        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
13420    }
13421    #[inline]
13422    pub fn large_token(&self) -> Option<SyntaxToken> {
13423        support::token(&self.syntax, SyntaxKind::LARGE_KW)
13424    }
13425    #[inline]
13426    pub fn materialized_token(&self) -> Option<SyntaxToken> {
13427        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
13428    }
13429    #[inline]
13430    pub fn null_token(&self) -> Option<SyntaxToken> {
13431        support::token(&self.syntax, SyntaxKind::NULL_KW)
13432    }
13433    #[inline]
13434    pub fn object_token(&self) -> Option<SyntaxToken> {
13435        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
13436    }
13437    #[inline]
13438    pub fn on_token(&self) -> Option<SyntaxToken> {
13439        support::token(&self.syntax, SyntaxKind::ON_KW)
13440    }
13441    #[inline]
13442    pub fn procedural_token(&self) -> Option<SyntaxToken> {
13443        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
13444    }
13445    #[inline]
13446    pub fn procedure_token(&self) -> Option<SyntaxToken> {
13447        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
13448    }
13449    #[inline]
13450    pub fn publication_token(&self) -> Option<SyntaxToken> {
13451        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
13452    }
13453    #[inline]
13454    pub fn role_token(&self) -> Option<SyntaxToken> {
13455        support::token(&self.syntax, SyntaxKind::ROLE_KW)
13456    }
13457    #[inline]
13458    pub fn routine_token(&self) -> Option<SyntaxToken> {
13459        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
13460    }
13461    #[inline]
13462    pub fn schema_token(&self) -> Option<SyntaxToken> {
13463        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13464    }
13465    #[inline]
13466    pub fn security_token(&self) -> Option<SyntaxToken> {
13467        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13468    }
13469    #[inline]
13470    pub fn sequence_token(&self) -> Option<SyntaxToken> {
13471        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
13472    }
13473    #[inline]
13474    pub fn subscription_token(&self) -> Option<SyntaxToken> {
13475        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
13476    }
13477    #[inline]
13478    pub fn table_token(&self) -> Option<SyntaxToken> {
13479        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13480    }
13481    #[inline]
13482    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
13483        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
13484    }
13485    #[inline]
13486    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13487        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13488    }
13489    #[inline]
13490    pub fn type_token(&self) -> Option<SyntaxToken> {
13491        support::token(&self.syntax, SyntaxKind::TYPE_KW)
13492    }
13493    #[inline]
13494    pub fn view_token(&self) -> Option<SyntaxToken> {
13495        support::token(&self.syntax, SyntaxKind::VIEW_KW)
13496    }
13497}
13498
13499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13500pub struct Select {
13501    pub(crate) syntax: SyntaxNode,
13502}
13503impl Select {
13504    #[inline]
13505    pub fn fetch_clause(&self) -> Option<FetchClause> {
13506        support::child(&self.syntax)
13507    }
13508    #[inline]
13509    pub fn filter_clause(&self) -> Option<FilterClause> {
13510        support::child(&self.syntax)
13511    }
13512    #[inline]
13513    pub fn from_clause(&self) -> Option<FromClause> {
13514        support::child(&self.syntax)
13515    }
13516    #[inline]
13517    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13518        support::child(&self.syntax)
13519    }
13520    #[inline]
13521    pub fn having_clause(&self) -> Option<HavingClause> {
13522        support::child(&self.syntax)
13523    }
13524    #[inline]
13525    pub fn limit_clause(&self) -> Option<LimitClause> {
13526        support::child(&self.syntax)
13527    }
13528    #[inline]
13529    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
13530        support::children(&self.syntax)
13531    }
13532    #[inline]
13533    pub fn offset_clause(&self) -> Option<OffsetClause> {
13534        support::child(&self.syntax)
13535    }
13536    #[inline]
13537    pub fn order_by_clause(&self) -> Option<OrderByClause> {
13538        support::child(&self.syntax)
13539    }
13540    #[inline]
13541    pub fn select_clause(&self) -> Option<SelectClause> {
13542        support::child(&self.syntax)
13543    }
13544    #[inline]
13545    pub fn where_clause(&self) -> Option<WhereClause> {
13546        support::child(&self.syntax)
13547    }
13548    #[inline]
13549    pub fn window_clause(&self) -> Option<WindowClause> {
13550        support::child(&self.syntax)
13551    }
13552    #[inline]
13553    pub fn with_clause(&self) -> Option<WithClause> {
13554        support::child(&self.syntax)
13555    }
13556}
13557
13558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13559pub struct SelectClause {
13560    pub(crate) syntax: SyntaxNode,
13561}
13562impl SelectClause {
13563    #[inline]
13564    pub fn distinct_clause(&self) -> Option<DistinctClause> {
13565        support::child(&self.syntax)
13566    }
13567    #[inline]
13568    pub fn target_list(&self) -> Option<TargetList> {
13569        support::child(&self.syntax)
13570    }
13571    #[inline]
13572    pub fn all_token(&self) -> Option<SyntaxToken> {
13573        support::token(&self.syntax, SyntaxKind::ALL_KW)
13574    }
13575    #[inline]
13576    pub fn select_token(&self) -> Option<SyntaxToken> {
13577        support::token(&self.syntax, SyntaxKind::SELECT_KW)
13578    }
13579}
13580
13581#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13582pub struct SelectInto {
13583    pub(crate) syntax: SyntaxNode,
13584}
13585impl SelectInto {
13586    #[inline]
13587    pub fn filter_clause(&self) -> Option<FilterClause> {
13588        support::child(&self.syntax)
13589    }
13590    #[inline]
13591    pub fn from_clause(&self) -> Option<FromClause> {
13592        support::child(&self.syntax)
13593    }
13594    #[inline]
13595    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13596        support::child(&self.syntax)
13597    }
13598    #[inline]
13599    pub fn having_clause(&self) -> Option<HavingClause> {
13600        support::child(&self.syntax)
13601    }
13602    #[inline]
13603    pub fn into_clause(&self) -> Option<IntoClause> {
13604        support::child(&self.syntax)
13605    }
13606    #[inline]
13607    pub fn limit_clause(&self) -> Option<LimitClause> {
13608        support::child(&self.syntax)
13609    }
13610    #[inline]
13611    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
13612        support::children(&self.syntax)
13613    }
13614    #[inline]
13615    pub fn offset_clause(&self) -> Option<OffsetClause> {
13616        support::child(&self.syntax)
13617    }
13618    #[inline]
13619    pub fn order_by_clause(&self) -> Option<OrderByClause> {
13620        support::child(&self.syntax)
13621    }
13622    #[inline]
13623    pub fn select_clause(&self) -> Option<SelectClause> {
13624        support::child(&self.syntax)
13625    }
13626    #[inline]
13627    pub fn where_clause(&self) -> Option<WhereClause> {
13628        support::child(&self.syntax)
13629    }
13630    #[inline]
13631    pub fn window_clause(&self) -> Option<WindowClause> {
13632        support::child(&self.syntax)
13633    }
13634    #[inline]
13635    pub fn with_clause(&self) -> Option<WithClause> {
13636        support::child(&self.syntax)
13637    }
13638}
13639
13640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13641pub struct SequenceOption {
13642    pub(crate) syntax: SyntaxNode,
13643}
13644impl SequenceOption {
13645    #[inline]
13646    pub fn literal(&self) -> Option<Literal> {
13647        support::child(&self.syntax)
13648    }
13649    #[inline]
13650    pub fn name_ref(&self) -> Option<NameRef> {
13651        support::child(&self.syntax)
13652    }
13653    #[inline]
13654    pub fn path(&self) -> Option<Path> {
13655        support::child(&self.syntax)
13656    }
13657    #[inline]
13658    pub fn ty(&self) -> Option<Type> {
13659        support::child(&self.syntax)
13660    }
13661    #[inline]
13662    pub fn as_token(&self) -> Option<SyntaxToken> {
13663        support::token(&self.syntax, SyntaxKind::AS_KW)
13664    }
13665    #[inline]
13666    pub fn by_token(&self) -> Option<SyntaxToken> {
13667        support::token(&self.syntax, SyntaxKind::BY_KW)
13668    }
13669    #[inline]
13670    pub fn cycle_token(&self) -> Option<SyntaxToken> {
13671        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
13672    }
13673    #[inline]
13674    pub fn increment_token(&self) -> Option<SyntaxToken> {
13675        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
13676    }
13677    #[inline]
13678    pub fn logged_token(&self) -> Option<SyntaxToken> {
13679        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
13680    }
13681    #[inline]
13682    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
13683        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
13684    }
13685    #[inline]
13686    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
13687        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
13688    }
13689    #[inline]
13690    pub fn name_token(&self) -> Option<SyntaxToken> {
13691        support::token(&self.syntax, SyntaxKind::NAME_KW)
13692    }
13693    #[inline]
13694    pub fn no_token(&self) -> Option<SyntaxToken> {
13695        support::token(&self.syntax, SyntaxKind::NO_KW)
13696    }
13697    #[inline]
13698    pub fn none_token(&self) -> Option<SyntaxToken> {
13699        support::token(&self.syntax, SyntaxKind::NONE_KW)
13700    }
13701    #[inline]
13702    pub fn owned_token(&self) -> Option<SyntaxToken> {
13703        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13704    }
13705    #[inline]
13706    pub fn restart_token(&self) -> Option<SyntaxToken> {
13707        support::token(&self.syntax, SyntaxKind::RESTART_KW)
13708    }
13709    #[inline]
13710    pub fn sequence_token(&self) -> Option<SyntaxToken> {
13711        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
13712    }
13713    #[inline]
13714    pub fn start_token(&self) -> Option<SyntaxToken> {
13715        support::token(&self.syntax, SyntaxKind::START_KW)
13716    }
13717    #[inline]
13718    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
13719        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
13720    }
13721    #[inline]
13722    pub fn with_token(&self) -> Option<SyntaxToken> {
13723        support::token(&self.syntax, SyntaxKind::WITH_KW)
13724    }
13725}
13726
13727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13728pub struct SequenceOptionList {
13729    pub(crate) syntax: SyntaxNode,
13730}
13731impl SequenceOptionList {
13732    #[inline]
13733    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
13734        support::children(&self.syntax)
13735    }
13736    #[inline]
13737    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13738        support::token(&self.syntax, SyntaxKind::L_PAREN)
13739    }
13740    #[inline]
13741    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13742        support::token(&self.syntax, SyntaxKind::R_PAREN)
13743    }
13744}
13745
13746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13747pub struct Serializable {
13748    pub(crate) syntax: SyntaxNode,
13749}
13750impl Serializable {
13751    #[inline]
13752    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13753        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13754    }
13755    #[inline]
13756    pub fn level_token(&self) -> Option<SyntaxToken> {
13757        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13758    }
13759    #[inline]
13760    pub fn serializable_token(&self) -> Option<SyntaxToken> {
13761        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
13762    }
13763}
13764
13765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13766pub struct Set {
13767    pub(crate) syntax: SyntaxNode,
13768}
13769impl Set {
13770    #[inline]
13771    pub fn expr(&self) -> Option<Expr> {
13772        support::child(&self.syntax)
13773    }
13774    #[inline]
13775    pub fn path(&self) -> Option<Path> {
13776        support::child(&self.syntax)
13777    }
13778    #[inline]
13779    pub fn eq_token(&self) -> Option<SyntaxToken> {
13780        support::token(&self.syntax, SyntaxKind::EQ)
13781    }
13782    #[inline]
13783    pub fn default_token(&self) -> Option<SyntaxToken> {
13784        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13785    }
13786    #[inline]
13787    pub fn local_token(&self) -> Option<SyntaxToken> {
13788        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
13789    }
13790    #[inline]
13791    pub fn session_token(&self) -> Option<SyntaxToken> {
13792        support::token(&self.syntax, SyntaxKind::SESSION_KW)
13793    }
13794    #[inline]
13795    pub fn set_token(&self) -> Option<SyntaxToken> {
13796        support::token(&self.syntax, SyntaxKind::SET_KW)
13797    }
13798    #[inline]
13799    pub fn time_token(&self) -> Option<SyntaxToken> {
13800        support::token(&self.syntax, SyntaxKind::TIME_KW)
13801    }
13802    #[inline]
13803    pub fn to_token(&self) -> Option<SyntaxToken> {
13804        support::token(&self.syntax, SyntaxKind::TO_KW)
13805    }
13806    #[inline]
13807    pub fn zone_token(&self) -> Option<SyntaxToken> {
13808        support::token(&self.syntax, SyntaxKind::ZONE_KW)
13809    }
13810}
13811
13812#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13813pub struct SetAccessMethod {
13814    pub(crate) syntax: SyntaxNode,
13815}
13816impl SetAccessMethod {
13817    #[inline]
13818    pub fn name_ref(&self) -> Option<NameRef> {
13819        support::child(&self.syntax)
13820    }
13821    #[inline]
13822    pub fn access_token(&self) -> Option<SyntaxToken> {
13823        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
13824    }
13825    #[inline]
13826    pub fn method_token(&self) -> Option<SyntaxToken> {
13827        support::token(&self.syntax, SyntaxKind::METHOD_KW)
13828    }
13829    #[inline]
13830    pub fn set_token(&self) -> Option<SyntaxToken> {
13831        support::token(&self.syntax, SyntaxKind::SET_KW)
13832    }
13833}
13834
13835#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13836pub struct SetClause {
13837    pub(crate) syntax: SyntaxNode,
13838}
13839impl SetClause {
13840    #[inline]
13841    pub fn set_column_list(&self) -> Option<SetColumnList> {
13842        support::child(&self.syntax)
13843    }
13844    #[inline]
13845    pub fn set_token(&self) -> Option<SyntaxToken> {
13846        support::token(&self.syntax, SyntaxKind::SET_KW)
13847    }
13848}
13849
13850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13851pub struct SetColumnList {
13852    pub(crate) syntax: SyntaxNode,
13853}
13854impl SetColumnList {
13855    #[inline]
13856    pub fn set_columns(&self) -> AstChildren<SetColumn> {
13857        support::children(&self.syntax)
13858    }
13859}
13860
13861#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13862pub struct SetCompression {
13863    pub(crate) syntax: SyntaxNode,
13864}
13865impl SetCompression {
13866    #[inline]
13867    pub fn compression_token(&self) -> Option<SyntaxToken> {
13868        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
13869    }
13870    #[inline]
13871    pub fn set_token(&self) -> Option<SyntaxToken> {
13872        support::token(&self.syntax, SyntaxKind::SET_KW)
13873    }
13874}
13875
13876#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13877pub struct SetConfigParam {
13878    pub(crate) syntax: SyntaxNode,
13879}
13880impl SetConfigParam {
13881    #[inline]
13882    pub fn path(&self) -> Option<Path> {
13883        support::child(&self.syntax)
13884    }
13885    #[inline]
13886    pub fn set_token(&self) -> Option<SyntaxToken> {
13887        support::token(&self.syntax, SyntaxKind::SET_KW)
13888    }
13889}
13890
13891#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13892pub struct SetConstraints {
13893    pub(crate) syntax: SyntaxNode,
13894}
13895impl SetConstraints {
13896    #[inline]
13897    pub fn paths(&self) -> AstChildren<Path> {
13898        support::children(&self.syntax)
13899    }
13900    #[inline]
13901    pub fn all_token(&self) -> Option<SyntaxToken> {
13902        support::token(&self.syntax, SyntaxKind::ALL_KW)
13903    }
13904    #[inline]
13905    pub fn constraints_token(&self) -> Option<SyntaxToken> {
13906        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
13907    }
13908    #[inline]
13909    pub fn deferred_token(&self) -> Option<SyntaxToken> {
13910        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
13911    }
13912    #[inline]
13913    pub fn immediate_token(&self) -> Option<SyntaxToken> {
13914        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
13915    }
13916    #[inline]
13917    pub fn set_token(&self) -> Option<SyntaxToken> {
13918        support::token(&self.syntax, SyntaxKind::SET_KW)
13919    }
13920}
13921
13922#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13923pub struct SetDefault {
13924    pub(crate) syntax: SyntaxNode,
13925}
13926impl SetDefault {
13927    #[inline]
13928    pub fn expr(&self) -> Option<Expr> {
13929        support::child(&self.syntax)
13930    }
13931    #[inline]
13932    pub fn default_token(&self) -> Option<SyntaxToken> {
13933        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13934    }
13935    #[inline]
13936    pub fn set_token(&self) -> Option<SyntaxToken> {
13937        support::token(&self.syntax, SyntaxKind::SET_KW)
13938    }
13939}
13940
13941#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13942pub struct SetDefaultColumns {
13943    pub(crate) syntax: SyntaxNode,
13944}
13945impl SetDefaultColumns {
13946    #[inline]
13947    pub fn column_list(&self) -> Option<ColumnList> {
13948        support::child(&self.syntax)
13949    }
13950    #[inline]
13951    pub fn default_token(&self) -> Option<SyntaxToken> {
13952        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13953    }
13954    #[inline]
13955    pub fn set_token(&self) -> Option<SyntaxToken> {
13956        support::token(&self.syntax, SyntaxKind::SET_KW)
13957    }
13958}
13959
13960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13961pub struct SetExpr {
13962    pub(crate) syntax: SyntaxNode,
13963}
13964impl SetExpr {
13965    #[inline]
13966    pub fn expr(&self) -> Option<Expr> {
13967        support::child(&self.syntax)
13968    }
13969    #[inline]
13970    pub fn default_token(&self) -> Option<SyntaxToken> {
13971        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13972    }
13973}
13974
13975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13976pub struct SetExprList {
13977    pub(crate) syntax: SyntaxNode,
13978}
13979impl SetExprList {
13980    #[inline]
13981    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
13982        support::children(&self.syntax)
13983    }
13984    #[inline]
13985    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13986        support::token(&self.syntax, SyntaxKind::L_PAREN)
13987    }
13988    #[inline]
13989    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13990        support::token(&self.syntax, SyntaxKind::R_PAREN)
13991    }
13992    #[inline]
13993    pub fn row_token(&self) -> Option<SyntaxToken> {
13994        support::token(&self.syntax, SyntaxKind::ROW_KW)
13995    }
13996}
13997
13998#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13999pub struct SetExpression {
14000    pub(crate) syntax: SyntaxNode,
14001}
14002impl SetExpression {
14003    #[inline]
14004    pub fn expr(&self) -> Option<Expr> {
14005        support::child(&self.syntax)
14006    }
14007    #[inline]
14008    pub fn expression_token(&self) -> Option<SyntaxToken> {
14009        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
14010    }
14011    #[inline]
14012    pub fn set_token(&self) -> Option<SyntaxToken> {
14013        support::token(&self.syntax, SyntaxKind::SET_KW)
14014    }
14015}
14016
14017#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14018pub struct SetFuncOption {
14019    pub(crate) syntax: SyntaxNode,
14020}
14021impl SetFuncOption {
14022    #[inline]
14023    pub fn set_token(&self) -> Option<SyntaxToken> {
14024        support::token(&self.syntax, SyntaxKind::SET_KW)
14025    }
14026}
14027
14028#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14029pub struct SetGenerated {
14030    pub(crate) syntax: SyntaxNode,
14031}
14032impl SetGenerated {
14033    #[inline]
14034    pub fn set_token(&self) -> Option<SyntaxToken> {
14035        support::token(&self.syntax, SyntaxKind::SET_KW)
14036    }
14037}
14038
14039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14040pub struct SetGeneratedOptions {
14041    pub(crate) syntax: SyntaxNode,
14042}
14043impl SetGeneratedOptions {
14044    #[inline]
14045    pub fn generated_token(&self) -> Option<SyntaxToken> {
14046        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
14047    }
14048    #[inline]
14049    pub fn set_token(&self) -> Option<SyntaxToken> {
14050        support::token(&self.syntax, SyntaxKind::SET_KW)
14051    }
14052}
14053
14054#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14055pub struct SetLogged {
14056    pub(crate) syntax: SyntaxNode,
14057}
14058impl SetLogged {
14059    #[inline]
14060    pub fn logged_token(&self) -> Option<SyntaxToken> {
14061        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
14062    }
14063    #[inline]
14064    pub fn set_token(&self) -> Option<SyntaxToken> {
14065        support::token(&self.syntax, SyntaxKind::SET_KW)
14066    }
14067}
14068
14069#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14070pub struct SetMultipleColumns {
14071    pub(crate) syntax: SyntaxNode,
14072}
14073impl SetMultipleColumns {
14074    #[inline]
14075    pub fn column_list(&self) -> Option<ColumnList> {
14076        support::child(&self.syntax)
14077    }
14078    #[inline]
14079    pub fn paren_select(&self) -> Option<ParenSelect> {
14080        support::child(&self.syntax)
14081    }
14082    #[inline]
14083    pub fn set_expr_list(&self) -> Option<SetExprList> {
14084        support::child(&self.syntax)
14085    }
14086    #[inline]
14087    pub fn eq_token(&self) -> Option<SyntaxToken> {
14088        support::token(&self.syntax, SyntaxKind::EQ)
14089    }
14090}
14091
14092#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14093pub struct SetNotNull {
14094    pub(crate) syntax: SyntaxNode,
14095}
14096impl SetNotNull {
14097    #[inline]
14098    pub fn not_token(&self) -> Option<SyntaxToken> {
14099        support::token(&self.syntax, SyntaxKind::NOT_KW)
14100    }
14101    #[inline]
14102    pub fn null_token(&self) -> Option<SyntaxToken> {
14103        support::token(&self.syntax, SyntaxKind::NULL_KW)
14104    }
14105    #[inline]
14106    pub fn set_token(&self) -> Option<SyntaxToken> {
14107        support::token(&self.syntax, SyntaxKind::SET_KW)
14108    }
14109}
14110
14111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14112pub struct SetNullColumns {
14113    pub(crate) syntax: SyntaxNode,
14114}
14115impl SetNullColumns {
14116    #[inline]
14117    pub fn column_list(&self) -> Option<ColumnList> {
14118        support::child(&self.syntax)
14119    }
14120    #[inline]
14121    pub fn null_token(&self) -> Option<SyntaxToken> {
14122        support::token(&self.syntax, SyntaxKind::NULL_KW)
14123    }
14124    #[inline]
14125    pub fn set_token(&self) -> Option<SyntaxToken> {
14126        support::token(&self.syntax, SyntaxKind::SET_KW)
14127    }
14128}
14129
14130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14131pub struct SetOptions {
14132    pub(crate) syntax: SyntaxNode,
14133}
14134impl SetOptions {
14135    #[inline]
14136    pub fn attribute_list(&self) -> Option<AttributeList> {
14137        support::child(&self.syntax)
14138    }
14139    #[inline]
14140    pub fn set_token(&self) -> Option<SyntaxToken> {
14141        support::token(&self.syntax, SyntaxKind::SET_KW)
14142    }
14143}
14144
14145#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14146pub struct SetOptionsList {
14147    pub(crate) syntax: SyntaxNode,
14148}
14149impl SetOptionsList {
14150    #[inline]
14151    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
14152        support::child(&self.syntax)
14153    }
14154    #[inline]
14155    pub fn options_token(&self) -> Option<SyntaxToken> {
14156        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
14157    }
14158    #[inline]
14159    pub fn set_token(&self) -> Option<SyntaxToken> {
14160        support::token(&self.syntax, SyntaxKind::SET_KW)
14161    }
14162}
14163
14164#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14165pub struct SetRole {
14166    pub(crate) syntax: SyntaxNode,
14167}
14168impl SetRole {
14169    #[inline]
14170    pub fn role(&self) -> Option<Role> {
14171        support::child(&self.syntax)
14172    }
14173    #[inline]
14174    pub fn local_token(&self) -> Option<SyntaxToken> {
14175        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14176    }
14177    #[inline]
14178    pub fn none_token(&self) -> Option<SyntaxToken> {
14179        support::token(&self.syntax, SyntaxKind::NONE_KW)
14180    }
14181    #[inline]
14182    pub fn reset_token(&self) -> Option<SyntaxToken> {
14183        support::token(&self.syntax, SyntaxKind::RESET_KW)
14184    }
14185    #[inline]
14186    pub fn role_token(&self) -> Option<SyntaxToken> {
14187        support::token(&self.syntax, SyntaxKind::ROLE_KW)
14188    }
14189    #[inline]
14190    pub fn session_token(&self) -> Option<SyntaxToken> {
14191        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14192    }
14193    #[inline]
14194    pub fn set_token(&self) -> Option<SyntaxToken> {
14195        support::token(&self.syntax, SyntaxKind::SET_KW)
14196    }
14197}
14198
14199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14200pub struct SetSchema {
14201    pub(crate) syntax: SyntaxNode,
14202}
14203impl SetSchema {
14204    #[inline]
14205    pub fn name_ref(&self) -> Option<NameRef> {
14206        support::child(&self.syntax)
14207    }
14208    #[inline]
14209    pub fn schema_token(&self) -> Option<SyntaxToken> {
14210        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14211    }
14212    #[inline]
14213    pub fn set_token(&self) -> Option<SyntaxToken> {
14214        support::token(&self.syntax, SyntaxKind::SET_KW)
14215    }
14216}
14217
14218#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14219pub struct SetSequenceOption {
14220    pub(crate) syntax: SyntaxNode,
14221}
14222impl SetSequenceOption {
14223    #[inline]
14224    pub fn set_token(&self) -> Option<SyntaxToken> {
14225        support::token(&self.syntax, SyntaxKind::SET_KW)
14226    }
14227}
14228
14229#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14230pub struct SetSessionAuth {
14231    pub(crate) syntax: SyntaxNode,
14232}
14233impl SetSessionAuth {
14234    #[inline]
14235    pub fn literal(&self) -> Option<Literal> {
14236        support::child(&self.syntax)
14237    }
14238    #[inline]
14239    pub fn role(&self) -> Option<Role> {
14240        support::child(&self.syntax)
14241    }
14242    #[inline]
14243    pub fn authorization_token(&self) -> Option<SyntaxToken> {
14244        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
14245    }
14246    #[inline]
14247    pub fn default_token(&self) -> Option<SyntaxToken> {
14248        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14249    }
14250    #[inline]
14251    pub fn local_token(&self) -> Option<SyntaxToken> {
14252        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14253    }
14254    #[inline]
14255    pub fn session_token(&self) -> Option<SyntaxToken> {
14256        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14257    }
14258    #[inline]
14259    pub fn set_token(&self) -> Option<SyntaxToken> {
14260        support::token(&self.syntax, SyntaxKind::SET_KW)
14261    }
14262}
14263
14264#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14265pub struct SetSingleColumn {
14266    pub(crate) syntax: SyntaxNode,
14267}
14268impl SetSingleColumn {
14269    #[inline]
14270    pub fn column(&self) -> Option<Column> {
14271        support::child(&self.syntax)
14272    }
14273    #[inline]
14274    pub fn set_expr(&self) -> Option<SetExpr> {
14275        support::child(&self.syntax)
14276    }
14277    #[inline]
14278    pub fn eq_token(&self) -> Option<SyntaxToken> {
14279        support::token(&self.syntax, SyntaxKind::EQ)
14280    }
14281}
14282
14283#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14284pub struct SetStatistics {
14285    pub(crate) syntax: SyntaxNode,
14286}
14287impl SetStatistics {
14288    #[inline]
14289    pub fn set_token(&self) -> Option<SyntaxToken> {
14290        support::token(&self.syntax, SyntaxKind::SET_KW)
14291    }
14292    #[inline]
14293    pub fn statistics_token(&self) -> Option<SyntaxToken> {
14294        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
14295    }
14296}
14297
14298#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14299pub struct SetStorage {
14300    pub(crate) syntax: SyntaxNode,
14301}
14302impl SetStorage {
14303    #[inline]
14304    pub fn set_token(&self) -> Option<SyntaxToken> {
14305        support::token(&self.syntax, SyntaxKind::SET_KW)
14306    }
14307    #[inline]
14308    pub fn storage_token(&self) -> Option<SyntaxToken> {
14309        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14310    }
14311}
14312
14313#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14314pub struct SetTablespace {
14315    pub(crate) syntax: SyntaxNode,
14316}
14317impl SetTablespace {
14318    #[inline]
14319    pub fn path(&self) -> Option<Path> {
14320        support::child(&self.syntax)
14321    }
14322    #[inline]
14323    pub fn set_token(&self) -> Option<SyntaxToken> {
14324        support::token(&self.syntax, SyntaxKind::SET_KW)
14325    }
14326    #[inline]
14327    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
14328        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
14329    }
14330}
14331
14332#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14333pub struct SetTransaction {
14334    pub(crate) syntax: SyntaxNode,
14335}
14336impl SetTransaction {
14337    #[inline]
14338    pub fn literal(&self) -> Option<Literal> {
14339        support::child(&self.syntax)
14340    }
14341    #[inline]
14342    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
14343        support::child(&self.syntax)
14344    }
14345    #[inline]
14346    pub fn as_token(&self) -> Option<SyntaxToken> {
14347        support::token(&self.syntax, SyntaxKind::AS_KW)
14348    }
14349    #[inline]
14350    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
14351        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
14352    }
14353    #[inline]
14354    pub fn session_token(&self) -> Option<SyntaxToken> {
14355        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14356    }
14357    #[inline]
14358    pub fn set_token(&self) -> Option<SyntaxToken> {
14359        support::token(&self.syntax, SyntaxKind::SET_KW)
14360    }
14361    #[inline]
14362    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
14363        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
14364    }
14365    #[inline]
14366    pub fn transaction_token(&self) -> Option<SyntaxToken> {
14367        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
14368    }
14369}
14370
14371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14372pub struct SetType {
14373    pub(crate) syntax: SyntaxNode,
14374}
14375impl SetType {
14376    #[inline]
14377    pub fn collate(&self) -> Option<Collate> {
14378        support::child(&self.syntax)
14379    }
14380    #[inline]
14381    pub fn ty(&self) -> Option<Type> {
14382        support::child(&self.syntax)
14383    }
14384    #[inline]
14385    pub fn set_token(&self) -> Option<SyntaxToken> {
14386        support::token(&self.syntax, SyntaxKind::SET_KW)
14387    }
14388    #[inline]
14389    pub fn type_token(&self) -> Option<SyntaxToken> {
14390        support::token(&self.syntax, SyntaxKind::TYPE_KW)
14391    }
14392}
14393
14394#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14395pub struct SetUnlogged {
14396    pub(crate) syntax: SyntaxNode,
14397}
14398impl SetUnlogged {
14399    #[inline]
14400    pub fn set_token(&self) -> Option<SyntaxToken> {
14401        support::token(&self.syntax, SyntaxKind::SET_KW)
14402    }
14403    #[inline]
14404    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
14405        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
14406    }
14407}
14408
14409#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14410pub struct SetWithoutCluster {
14411    pub(crate) syntax: SyntaxNode,
14412}
14413impl SetWithoutCluster {
14414    #[inline]
14415    pub fn cluster_token(&self) -> Option<SyntaxToken> {
14416        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
14417    }
14418    #[inline]
14419    pub fn set_token(&self) -> Option<SyntaxToken> {
14420        support::token(&self.syntax, SyntaxKind::SET_KW)
14421    }
14422    #[inline]
14423    pub fn without_token(&self) -> Option<SyntaxToken> {
14424        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14425    }
14426}
14427
14428#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14429pub struct SetWithoutOids {
14430    pub(crate) syntax: SyntaxNode,
14431}
14432impl SetWithoutOids {
14433    #[inline]
14434    pub fn oids_token(&self) -> Option<SyntaxToken> {
14435        support::token(&self.syntax, SyntaxKind::OIDS_KW)
14436    }
14437    #[inline]
14438    pub fn set_token(&self) -> Option<SyntaxToken> {
14439        support::token(&self.syntax, SyntaxKind::SET_KW)
14440    }
14441    #[inline]
14442    pub fn without_token(&self) -> Option<SyntaxToken> {
14443        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14444    }
14445}
14446
14447#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14448pub struct Show {
14449    pub(crate) syntax: SyntaxNode,
14450}
14451impl Show {
14452    #[inline]
14453    pub fn show_token(&self) -> Option<SyntaxToken> {
14454        support::token(&self.syntax, SyntaxKind::SHOW_KW)
14455    }
14456}
14457
14458#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14459pub struct SimilarTo {
14460    pub(crate) syntax: SyntaxNode,
14461}
14462impl SimilarTo {
14463    #[inline]
14464    pub fn similar_token(&self) -> Option<SyntaxToken> {
14465        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14466    }
14467    #[inline]
14468    pub fn to_token(&self) -> Option<SyntaxToken> {
14469        support::token(&self.syntax, SyntaxKind::TO_KW)
14470    }
14471}
14472
14473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14474pub struct SliceExpr {
14475    pub(crate) syntax: SyntaxNode,
14476}
14477impl SliceExpr {
14478    #[inline]
14479    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
14480        support::token(&self.syntax, SyntaxKind::L_BRACK)
14481    }
14482    #[inline]
14483    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
14484        support::token(&self.syntax, SyntaxKind::R_BRACK)
14485    }
14486    #[inline]
14487    pub fn colon_token(&self) -> Option<SyntaxToken> {
14488        support::token(&self.syntax, SyntaxKind::COLON)
14489    }
14490}
14491
14492#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14493pub struct SomeFn {
14494    pub(crate) syntax: SyntaxNode,
14495}
14496impl SomeFn {
14497    #[inline]
14498    pub fn expr(&self) -> Option<Expr> {
14499        support::child(&self.syntax)
14500    }
14501    #[inline]
14502    pub fn select_variant(&self) -> Option<SelectVariant> {
14503        support::child(&self.syntax)
14504    }
14505    #[inline]
14506    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14507        support::token(&self.syntax, SyntaxKind::L_PAREN)
14508    }
14509    #[inline]
14510    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14511        support::token(&self.syntax, SyntaxKind::R_PAREN)
14512    }
14513    #[inline]
14514    pub fn some_token(&self) -> Option<SyntaxToken> {
14515        support::token(&self.syntax, SyntaxKind::SOME_KW)
14516    }
14517}
14518
14519#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14520pub struct SortAsc {
14521    pub(crate) syntax: SyntaxNode,
14522}
14523impl SortAsc {
14524    #[inline]
14525    pub fn asc_token(&self) -> Option<SyntaxToken> {
14526        support::token(&self.syntax, SyntaxKind::ASC_KW)
14527    }
14528}
14529
14530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14531pub struct SortBy {
14532    pub(crate) syntax: SyntaxNode,
14533}
14534impl SortBy {
14535    #[inline]
14536    pub fn expr(&self) -> Option<Expr> {
14537        support::child(&self.syntax)
14538    }
14539    #[inline]
14540    pub fn nulls_first(&self) -> Option<NullsFirst> {
14541        support::child(&self.syntax)
14542    }
14543    #[inline]
14544    pub fn nulls_last(&self) -> Option<NullsLast> {
14545        support::child(&self.syntax)
14546    }
14547    #[inline]
14548    pub fn sort_asc(&self) -> Option<SortAsc> {
14549        support::child(&self.syntax)
14550    }
14551    #[inline]
14552    pub fn sort_desc(&self) -> Option<SortDesc> {
14553        support::child(&self.syntax)
14554    }
14555    #[inline]
14556    pub fn sort_using(&self) -> Option<SortUsing> {
14557        support::child(&self.syntax)
14558    }
14559}
14560
14561#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14562pub struct SortByList {
14563    pub(crate) syntax: SyntaxNode,
14564}
14565impl SortByList {
14566    #[inline]
14567    pub fn sort_bys(&self) -> AstChildren<SortBy> {
14568        support::children(&self.syntax)
14569    }
14570}
14571
14572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14573pub struct SortDesc {
14574    pub(crate) syntax: SyntaxNode,
14575}
14576impl SortDesc {
14577    #[inline]
14578    pub fn desc_token(&self) -> Option<SyntaxToken> {
14579        support::token(&self.syntax, SyntaxKind::DESC_KW)
14580    }
14581}
14582
14583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14584pub struct SortUsing {
14585    pub(crate) syntax: SyntaxNode,
14586}
14587impl SortUsing {
14588    #[inline]
14589    pub fn op(&self) -> Option<Op> {
14590        support::child(&self.syntax)
14591    }
14592    #[inline]
14593    pub fn using_token(&self) -> Option<SyntaxToken> {
14594        support::token(&self.syntax, SyntaxKind::USING_KW)
14595    }
14596}
14597
14598#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14599pub struct SourceFile {
14600    pub(crate) syntax: SyntaxNode,
14601}
14602impl SourceFile {
14603    #[inline]
14604    pub fn stmts(&self) -> AstChildren<Stmt> {
14605        support::children(&self.syntax)
14606    }
14607}
14608
14609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14610pub struct Storage {
14611    pub(crate) syntax: SyntaxNode,
14612}
14613impl Storage {
14614    #[inline]
14615    pub fn default_token(&self) -> Option<SyntaxToken> {
14616        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14617    }
14618    #[inline]
14619    pub fn external_token(&self) -> Option<SyntaxToken> {
14620        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
14621    }
14622    #[inline]
14623    pub fn ident_token(&self) -> Option<SyntaxToken> {
14624        support::token(&self.syntax, SyntaxKind::IDENT)
14625    }
14626    #[inline]
14627    pub fn storage_token(&self) -> Option<SyntaxToken> {
14628        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14629    }
14630}
14631
14632#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14633pub struct StrictFuncOption {
14634    pub(crate) syntax: SyntaxNode,
14635}
14636impl StrictFuncOption {
14637    #[inline]
14638    pub fn called_token(&self) -> Option<SyntaxToken> {
14639        support::token(&self.syntax, SyntaxKind::CALLED_KW)
14640    }
14641    #[inline]
14642    pub fn input_token(&self) -> Option<SyntaxToken> {
14643        support::token(&self.syntax, SyntaxKind::INPUT_KW)
14644    }
14645    #[inline]
14646    pub fn null_token(&self) -> Option<SyntaxToken> {
14647        support::token(&self.syntax, SyntaxKind::NULL_KW)
14648    }
14649    #[inline]
14650    pub fn on_token(&self) -> Option<SyntaxToken> {
14651        support::token(&self.syntax, SyntaxKind::ON_KW)
14652    }
14653    #[inline]
14654    pub fn returns_token(&self) -> Option<SyntaxToken> {
14655        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
14656    }
14657    #[inline]
14658    pub fn strict_token(&self) -> Option<SyntaxToken> {
14659        support::token(&self.syntax, SyntaxKind::STRICT_KW)
14660    }
14661}
14662
14663#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14664pub struct SubstringFn {
14665    pub(crate) syntax: SyntaxNode,
14666}
14667impl SubstringFn {
14668    #[inline]
14669    pub fn expr(&self) -> Option<Expr> {
14670        support::child(&self.syntax)
14671    }
14672    #[inline]
14673    pub fn exprs(&self) -> AstChildren<Expr> {
14674        support::children(&self.syntax)
14675    }
14676    #[inline]
14677    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14678        support::token(&self.syntax, SyntaxKind::L_PAREN)
14679    }
14680    #[inline]
14681    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14682        support::token(&self.syntax, SyntaxKind::R_PAREN)
14683    }
14684    #[inline]
14685    pub fn for_token(&self) -> Option<SyntaxToken> {
14686        support::token(&self.syntax, SyntaxKind::FOR_KW)
14687    }
14688    #[inline]
14689    pub fn from_token(&self) -> Option<SyntaxToken> {
14690        support::token(&self.syntax, SyntaxKind::FROM_KW)
14691    }
14692    #[inline]
14693    pub fn similar_token(&self) -> Option<SyntaxToken> {
14694        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14695    }
14696    #[inline]
14697    pub fn substring_token(&self) -> Option<SyntaxToken> {
14698        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
14699    }
14700}
14701
14702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14703pub struct SupportFuncOption {
14704    pub(crate) syntax: SyntaxNode,
14705}
14706impl SupportFuncOption {
14707    #[inline]
14708    pub fn support_token(&self) -> Option<SyntaxToken> {
14709        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
14710    }
14711}
14712
14713#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14714pub struct Table {
14715    pub(crate) syntax: SyntaxNode,
14716}
14717impl Table {
14718    #[inline]
14719    pub fn relation_name(&self) -> Option<RelationName> {
14720        support::child(&self.syntax)
14721    }
14722    #[inline]
14723    pub fn table_token(&self) -> Option<SyntaxToken> {
14724        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14725    }
14726}
14727
14728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14729pub struct TableAndColumns {
14730    pub(crate) syntax: SyntaxNode,
14731}
14732impl TableAndColumns {
14733    #[inline]
14734    pub fn column_list(&self) -> Option<ColumnList> {
14735        support::child(&self.syntax)
14736    }
14737    #[inline]
14738    pub fn relation_name(&self) -> Option<RelationName> {
14739        support::child(&self.syntax)
14740    }
14741}
14742
14743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14744pub struct TableAndColumnsList {
14745    pub(crate) syntax: SyntaxNode,
14746}
14747impl TableAndColumnsList {
14748    #[inline]
14749    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
14750        support::children(&self.syntax)
14751    }
14752}
14753
14754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14755pub struct TableArgList {
14756    pub(crate) syntax: SyntaxNode,
14757}
14758impl TableArgList {
14759    #[inline]
14760    pub fn args(&self) -> AstChildren<TableArg> {
14761        support::children(&self.syntax)
14762    }
14763    #[inline]
14764    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14765        support::token(&self.syntax, SyntaxKind::L_PAREN)
14766    }
14767    #[inline]
14768    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14769        support::token(&self.syntax, SyntaxKind::R_PAREN)
14770    }
14771}
14772
14773#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14774pub struct TableList {
14775    pub(crate) syntax: SyntaxNode,
14776}
14777impl TableList {
14778    #[inline]
14779    pub fn relation_names(&self) -> AstChildren<RelationName> {
14780        support::children(&self.syntax)
14781    }
14782}
14783
14784#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14785pub struct TablesampleClause {
14786    pub(crate) syntax: SyntaxNode,
14787}
14788impl TablesampleClause {
14789    #[inline]
14790    pub fn call_expr(&self) -> Option<CallExpr> {
14791        support::child(&self.syntax)
14792    }
14793    #[inline]
14794    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
14795        support::child(&self.syntax)
14796    }
14797    #[inline]
14798    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
14799        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
14800    }
14801}
14802
14803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14804pub struct Tablespace {
14805    pub(crate) syntax: SyntaxNode,
14806}
14807impl Tablespace {
14808    #[inline]
14809    pub fn name_ref(&self) -> Option<NameRef> {
14810        support::child(&self.syntax)
14811    }
14812    #[inline]
14813    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
14814        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
14815    }
14816}
14817
14818#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14819pub struct Target {
14820    pub(crate) syntax: SyntaxNode,
14821}
14822impl Target {
14823    #[inline]
14824    pub fn as_name(&self) -> Option<AsName> {
14825        support::child(&self.syntax)
14826    }
14827    #[inline]
14828    pub fn expr(&self) -> Option<Expr> {
14829        support::child(&self.syntax)
14830    }
14831    #[inline]
14832    pub fn star_token(&self) -> Option<SyntaxToken> {
14833        support::token(&self.syntax, SyntaxKind::STAR)
14834    }
14835}
14836
14837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14838pub struct TargetList {
14839    pub(crate) syntax: SyntaxNode,
14840}
14841impl TargetList {
14842    #[inline]
14843    pub fn targets(&self) -> AstChildren<Target> {
14844        support::children(&self.syntax)
14845    }
14846}
14847
14848#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14849pub struct TimeType {
14850    pub(crate) syntax: SyntaxNode,
14851}
14852impl TimeType {
14853    #[inline]
14854    pub fn literal(&self) -> Option<Literal> {
14855        support::child(&self.syntax)
14856    }
14857    #[inline]
14858    pub fn timezone(&self) -> Option<Timezone> {
14859        support::child(&self.syntax)
14860    }
14861    #[inline]
14862    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14863        support::token(&self.syntax, SyntaxKind::L_PAREN)
14864    }
14865    #[inline]
14866    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14867        support::token(&self.syntax, SyntaxKind::R_PAREN)
14868    }
14869    #[inline]
14870    pub fn time_token(&self) -> Option<SyntaxToken> {
14871        support::token(&self.syntax, SyntaxKind::TIME_KW)
14872    }
14873    #[inline]
14874    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
14875        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
14876    }
14877}
14878
14879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14880pub struct Timing {
14881    pub(crate) syntax: SyntaxNode,
14882}
14883impl Timing {
14884    #[inline]
14885    pub fn after_token(&self) -> Option<SyntaxToken> {
14886        support::token(&self.syntax, SyntaxKind::AFTER_KW)
14887    }
14888    #[inline]
14889    pub fn before_token(&self) -> Option<SyntaxToken> {
14890        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
14891    }
14892    #[inline]
14893    pub fn instead_token(&self) -> Option<SyntaxToken> {
14894        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
14895    }
14896    #[inline]
14897    pub fn of_token(&self) -> Option<SyntaxToken> {
14898        support::token(&self.syntax, SyntaxKind::OF_KW)
14899    }
14900}
14901
14902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14903pub struct TransactionModeList {
14904    pub(crate) syntax: SyntaxNode,
14905}
14906impl TransactionModeList {
14907    #[inline]
14908    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
14909        support::children(&self.syntax)
14910    }
14911}
14912
14913#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14914pub struct TransformFromFunc {
14915    pub(crate) syntax: SyntaxNode,
14916}
14917impl TransformFromFunc {
14918    #[inline]
14919    pub fn function_sig(&self) -> Option<FunctionSig> {
14920        support::child(&self.syntax)
14921    }
14922    #[inline]
14923    pub fn from_token(&self) -> Option<SyntaxToken> {
14924        support::token(&self.syntax, SyntaxKind::FROM_KW)
14925    }
14926    #[inline]
14927    pub fn function_token(&self) -> Option<SyntaxToken> {
14928        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
14929    }
14930    #[inline]
14931    pub fn sql_token(&self) -> Option<SyntaxToken> {
14932        support::token(&self.syntax, SyntaxKind::SQL_KW)
14933    }
14934    #[inline]
14935    pub fn with_token(&self) -> Option<SyntaxToken> {
14936        support::token(&self.syntax, SyntaxKind::WITH_KW)
14937    }
14938}
14939
14940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14941pub struct TransformFuncOption {
14942    pub(crate) syntax: SyntaxNode,
14943}
14944impl TransformFuncOption {
14945    #[inline]
14946    pub fn transform_token(&self) -> Option<SyntaxToken> {
14947        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
14948    }
14949}
14950
14951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14952pub struct TransformToFunc {
14953    pub(crate) syntax: SyntaxNode,
14954}
14955impl TransformToFunc {
14956    #[inline]
14957    pub fn function_sig(&self) -> Option<FunctionSig> {
14958        support::child(&self.syntax)
14959    }
14960    #[inline]
14961    pub fn function_token(&self) -> Option<SyntaxToken> {
14962        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
14963    }
14964    #[inline]
14965    pub fn sql_token(&self) -> Option<SyntaxToken> {
14966        support::token(&self.syntax, SyntaxKind::SQL_KW)
14967    }
14968    #[inline]
14969    pub fn to_token(&self) -> Option<SyntaxToken> {
14970        support::token(&self.syntax, SyntaxKind::TO_KW)
14971    }
14972    #[inline]
14973    pub fn with_token(&self) -> Option<SyntaxToken> {
14974        support::token(&self.syntax, SyntaxKind::WITH_KW)
14975    }
14976}
14977
14978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14979pub struct TriggerEvent {
14980    pub(crate) syntax: SyntaxNode,
14981}
14982impl TriggerEvent {
14983    #[inline]
14984    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
14985        support::child(&self.syntax)
14986    }
14987    #[inline]
14988    pub fn delete_token(&self) -> Option<SyntaxToken> {
14989        support::token(&self.syntax, SyntaxKind::DELETE_KW)
14990    }
14991    #[inline]
14992    pub fn insert_token(&self) -> Option<SyntaxToken> {
14993        support::token(&self.syntax, SyntaxKind::INSERT_KW)
14994    }
14995    #[inline]
14996    pub fn truncate_token(&self) -> Option<SyntaxToken> {
14997        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
14998    }
14999}
15000
15001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15002pub struct TriggerEventList {
15003    pub(crate) syntax: SyntaxNode,
15004}
15005impl TriggerEventList {
15006    #[inline]
15007    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
15008        support::children(&self.syntax)
15009    }
15010}
15011
15012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15013pub struct TriggerEventUpdate {
15014    pub(crate) syntax: SyntaxNode,
15015}
15016impl TriggerEventUpdate {
15017    #[inline]
15018    pub fn name_refs(&self) -> AstChildren<NameRef> {
15019        support::children(&self.syntax)
15020    }
15021    #[inline]
15022    pub fn of_token(&self) -> Option<SyntaxToken> {
15023        support::token(&self.syntax, SyntaxKind::OF_KW)
15024    }
15025    #[inline]
15026    pub fn update_token(&self) -> Option<SyntaxToken> {
15027        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15028    }
15029}
15030
15031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15032pub struct TrimFn {
15033    pub(crate) syntax: SyntaxNode,
15034}
15035impl TrimFn {
15036    #[inline]
15037    pub fn expr(&self) -> Option<Expr> {
15038        support::child(&self.syntax)
15039    }
15040    #[inline]
15041    pub fn exprs(&self) -> AstChildren<Expr> {
15042        support::children(&self.syntax)
15043    }
15044    #[inline]
15045    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15046        support::token(&self.syntax, SyntaxKind::L_PAREN)
15047    }
15048    #[inline]
15049    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15050        support::token(&self.syntax, SyntaxKind::R_PAREN)
15051    }
15052    #[inline]
15053    pub fn from_token(&self) -> Option<SyntaxToken> {
15054        support::token(&self.syntax, SyntaxKind::FROM_KW)
15055    }
15056    #[inline]
15057    pub fn trim_token(&self) -> Option<SyntaxToken> {
15058        support::token(&self.syntax, SyntaxKind::TRIM_KW)
15059    }
15060}
15061
15062#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15063pub struct Truncate {
15064    pub(crate) syntax: SyntaxNode,
15065}
15066impl Truncate {
15067    #[inline]
15068    pub fn table_list(&self) -> Option<TableList> {
15069        support::child(&self.syntax)
15070    }
15071    #[inline]
15072    pub fn cascade_token(&self) -> Option<SyntaxToken> {
15073        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
15074    }
15075    #[inline]
15076    pub fn continue_token(&self) -> Option<SyntaxToken> {
15077        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
15078    }
15079    #[inline]
15080    pub fn identity_token(&self) -> Option<SyntaxToken> {
15081        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
15082    }
15083    #[inline]
15084    pub fn restart_token(&self) -> Option<SyntaxToken> {
15085        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15086    }
15087    #[inline]
15088    pub fn restrict_token(&self) -> Option<SyntaxToken> {
15089        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
15090    }
15091    #[inline]
15092    pub fn table_token(&self) -> Option<SyntaxToken> {
15093        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15094    }
15095    #[inline]
15096    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15097        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15098    }
15099}
15100
15101#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15102pub struct TupleExpr {
15103    pub(crate) syntax: SyntaxNode,
15104}
15105impl TupleExpr {
15106    #[inline]
15107    pub fn exprs(&self) -> AstChildren<Expr> {
15108        support::children(&self.syntax)
15109    }
15110    #[inline]
15111    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15112        support::token(&self.syntax, SyntaxKind::L_PAREN)
15113    }
15114    #[inline]
15115    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15116        support::token(&self.syntax, SyntaxKind::R_PAREN)
15117    }
15118}
15119
15120#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15121pub struct UnicodeNormalForm {
15122    pub(crate) syntax: SyntaxNode,
15123}
15124impl UnicodeNormalForm {
15125    #[inline]
15126    pub fn nfc_token(&self) -> Option<SyntaxToken> {
15127        support::token(&self.syntax, SyntaxKind::NFC_KW)
15128    }
15129    #[inline]
15130    pub fn nfd_token(&self) -> Option<SyntaxToken> {
15131        support::token(&self.syntax, SyntaxKind::NFD_KW)
15132    }
15133    #[inline]
15134    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
15135        support::token(&self.syntax, SyntaxKind::NFKC_KW)
15136    }
15137    #[inline]
15138    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
15139        support::token(&self.syntax, SyntaxKind::NFKD_KW)
15140    }
15141}
15142
15143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15144pub struct UniqueConstraint {
15145    pub(crate) syntax: SyntaxNode,
15146}
15147impl UniqueConstraint {
15148    #[inline]
15149    pub fn column_list(&self) -> Option<ColumnList> {
15150        support::child(&self.syntax)
15151    }
15152    #[inline]
15153    pub fn name(&self) -> Option<Name> {
15154        support::child(&self.syntax)
15155    }
15156    #[inline]
15157    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
15158        support::child(&self.syntax)
15159    }
15160    #[inline]
15161    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
15162        support::child(&self.syntax)
15163    }
15164    #[inline]
15165    pub fn using_index(&self) -> Option<UsingIndex> {
15166        support::child(&self.syntax)
15167    }
15168    #[inline]
15169    pub fn constraint_token(&self) -> Option<SyntaxToken> {
15170        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
15171    }
15172    #[inline]
15173    pub fn unique_token(&self) -> Option<SyntaxToken> {
15174        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
15175    }
15176}
15177
15178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15179pub struct Unlisten {
15180    pub(crate) syntax: SyntaxNode,
15181}
15182impl Unlisten {
15183    #[inline]
15184    pub fn name_ref(&self) -> Option<NameRef> {
15185        support::child(&self.syntax)
15186    }
15187    #[inline]
15188    pub fn star_token(&self) -> Option<SyntaxToken> {
15189        support::token(&self.syntax, SyntaxKind::STAR)
15190    }
15191    #[inline]
15192    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
15193        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
15194    }
15195}
15196
15197#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15198pub struct Update {
15199    pub(crate) syntax: SyntaxNode,
15200}
15201impl Update {
15202    #[inline]
15203    pub fn alias(&self) -> Option<Alias> {
15204        support::child(&self.syntax)
15205    }
15206    #[inline]
15207    pub fn from_clause(&self) -> Option<FromClause> {
15208        support::child(&self.syntax)
15209    }
15210    #[inline]
15211    pub fn relation_name(&self) -> Option<RelationName> {
15212        support::child(&self.syntax)
15213    }
15214    #[inline]
15215    pub fn returning_clause(&self) -> Option<ReturningClause> {
15216        support::child(&self.syntax)
15217    }
15218    #[inline]
15219    pub fn set_clause(&self) -> Option<SetClause> {
15220        support::child(&self.syntax)
15221    }
15222    #[inline]
15223    pub fn where_clause(&self) -> Option<WhereClause> {
15224        support::child(&self.syntax)
15225    }
15226    #[inline]
15227    pub fn update_token(&self) -> Option<SyntaxToken> {
15228        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15229    }
15230}
15231
15232#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15233pub struct UsingClause {
15234    pub(crate) syntax: SyntaxNode,
15235}
15236impl UsingClause {
15237    #[inline]
15238    pub fn from_items(&self) -> AstChildren<FromItem> {
15239        support::children(&self.syntax)
15240    }
15241    #[inline]
15242    pub fn using_token(&self) -> Option<SyntaxToken> {
15243        support::token(&self.syntax, SyntaxKind::USING_KW)
15244    }
15245}
15246
15247#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15248pub struct UsingIndex {
15249    pub(crate) syntax: SyntaxNode,
15250}
15251impl UsingIndex {
15252    #[inline]
15253    pub fn name_ref(&self) -> Option<NameRef> {
15254        support::child(&self.syntax)
15255    }
15256    #[inline]
15257    pub fn index_token(&self) -> Option<SyntaxToken> {
15258        support::token(&self.syntax, SyntaxKind::INDEX_KW)
15259    }
15260    #[inline]
15261    pub fn using_token(&self) -> Option<SyntaxToken> {
15262        support::token(&self.syntax, SyntaxKind::USING_KW)
15263    }
15264}
15265
15266#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15267pub struct UsingMethod {
15268    pub(crate) syntax: SyntaxNode,
15269}
15270impl UsingMethod {
15271    #[inline]
15272    pub fn name_ref(&self) -> Option<NameRef> {
15273        support::child(&self.syntax)
15274    }
15275    #[inline]
15276    pub fn using_token(&self) -> Option<SyntaxToken> {
15277        support::token(&self.syntax, SyntaxKind::USING_KW)
15278    }
15279}
15280
15281#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15282pub struct UsingOnClause {
15283    pub(crate) syntax: SyntaxNode,
15284}
15285impl UsingOnClause {
15286    #[inline]
15287    pub fn from_item(&self) -> Option<FromItem> {
15288        support::child(&self.syntax)
15289    }
15290    #[inline]
15291    pub fn on_clause(&self) -> Option<OnClause> {
15292        support::child(&self.syntax)
15293    }
15294    #[inline]
15295    pub fn using_token(&self) -> Option<SyntaxToken> {
15296        support::token(&self.syntax, SyntaxKind::USING_KW)
15297    }
15298}
15299
15300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15301pub struct Vacuum {
15302    pub(crate) syntax: SyntaxNode,
15303}
15304impl Vacuum {
15305    #[inline]
15306    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
15307        support::child(&self.syntax)
15308    }
15309    #[inline]
15310    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
15311        support::child(&self.syntax)
15312    }
15313    #[inline]
15314    pub fn analyse_token(&self) -> Option<SyntaxToken> {
15315        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
15316    }
15317    #[inline]
15318    pub fn analyze_token(&self) -> Option<SyntaxToken> {
15319        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
15320    }
15321    #[inline]
15322    pub fn freeze_token(&self) -> Option<SyntaxToken> {
15323        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
15324    }
15325    #[inline]
15326    pub fn full_token(&self) -> Option<SyntaxToken> {
15327        support::token(&self.syntax, SyntaxKind::FULL_KW)
15328    }
15329    #[inline]
15330    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
15331        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
15332    }
15333    #[inline]
15334    pub fn verbose_token(&self) -> Option<SyntaxToken> {
15335        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
15336    }
15337}
15338
15339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15340pub struct VacuumOption {
15341    pub(crate) syntax: SyntaxNode,
15342}
15343impl VacuumOption {
15344    #[inline]
15345    pub fn literal(&self) -> Option<Literal> {
15346        support::child(&self.syntax)
15347    }
15348}
15349
15350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15351pub struct VacuumOptionList {
15352    pub(crate) syntax: SyntaxNode,
15353}
15354impl VacuumOptionList {
15355    #[inline]
15356    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
15357        support::children(&self.syntax)
15358    }
15359    #[inline]
15360    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15361        support::token(&self.syntax, SyntaxKind::L_PAREN)
15362    }
15363    #[inline]
15364    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15365        support::token(&self.syntax, SyntaxKind::R_PAREN)
15366    }
15367}
15368
15369#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15370pub struct ValidateConstraint {
15371    pub(crate) syntax: SyntaxNode,
15372}
15373impl ValidateConstraint {
15374    #[inline]
15375    pub fn name_ref(&self) -> Option<NameRef> {
15376        support::child(&self.syntax)
15377    }
15378    #[inline]
15379    pub fn constraint_token(&self) -> Option<SyntaxToken> {
15380        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
15381    }
15382    #[inline]
15383    pub fn validate_token(&self) -> Option<SyntaxToken> {
15384        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
15385    }
15386}
15387
15388#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15389pub struct Values {
15390    pub(crate) syntax: SyntaxNode,
15391}
15392impl Values {
15393    #[inline]
15394    pub fn row_list(&self) -> Option<RowList> {
15395        support::child(&self.syntax)
15396    }
15397    #[inline]
15398    pub fn values_token(&self) -> Option<SyntaxToken> {
15399        support::token(&self.syntax, SyntaxKind::VALUES_KW)
15400    }
15401}
15402
15403#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15404pub struct Variant {
15405    pub(crate) syntax: SyntaxNode,
15406}
15407impl Variant {
15408    #[inline]
15409    pub fn literal(&self) -> Option<Literal> {
15410        support::child(&self.syntax)
15411    }
15412}
15413
15414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15415pub struct VariantList {
15416    pub(crate) syntax: SyntaxNode,
15417}
15418impl VariantList {
15419    #[inline]
15420    pub fn variants(&self) -> AstChildren<Variant> {
15421        support::children(&self.syntax)
15422    }
15423    #[inline]
15424    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15425        support::token(&self.syntax, SyntaxKind::L_PAREN)
15426    }
15427    #[inline]
15428    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15429        support::token(&self.syntax, SyntaxKind::R_PAREN)
15430    }
15431}
15432
15433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15434pub struct VolatilityFuncOption {
15435    pub(crate) syntax: SyntaxNode,
15436}
15437impl VolatilityFuncOption {
15438    #[inline]
15439    pub fn immutable_token(&self) -> Option<SyntaxToken> {
15440        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
15441    }
15442    #[inline]
15443    pub fn stable_token(&self) -> Option<SyntaxToken> {
15444        support::token(&self.syntax, SyntaxKind::STABLE_KW)
15445    }
15446    #[inline]
15447    pub fn volatile_token(&self) -> Option<SyntaxToken> {
15448        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
15449    }
15450}
15451
15452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15453pub struct WhenClause {
15454    pub(crate) syntax: SyntaxNode,
15455}
15456impl WhenClause {
15457    #[inline]
15458    pub fn then_token(&self) -> Option<SyntaxToken> {
15459        support::token(&self.syntax, SyntaxKind::THEN_KW)
15460    }
15461    #[inline]
15462    pub fn when_token(&self) -> Option<SyntaxToken> {
15463        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15464    }
15465}
15466
15467#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15468pub struct WhenClauseList {
15469    pub(crate) syntax: SyntaxNode,
15470}
15471impl WhenClauseList {
15472    #[inline]
15473    pub fn when_clause(&self) -> Option<WhenClause> {
15474        support::child(&self.syntax)
15475    }
15476    #[inline]
15477    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
15478        support::children(&self.syntax)
15479    }
15480}
15481
15482#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15483pub struct WhenCondition {
15484    pub(crate) syntax: SyntaxNode,
15485}
15486impl WhenCondition {
15487    #[inline]
15488    pub fn expr(&self) -> Option<Expr> {
15489        support::child(&self.syntax)
15490    }
15491    #[inline]
15492    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15493        support::token(&self.syntax, SyntaxKind::L_PAREN)
15494    }
15495    #[inline]
15496    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15497        support::token(&self.syntax, SyntaxKind::R_PAREN)
15498    }
15499    #[inline]
15500    pub fn when_token(&self) -> Option<SyntaxToken> {
15501        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15502    }
15503}
15504
15505#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15506pub struct WhereClause {
15507    pub(crate) syntax: SyntaxNode,
15508}
15509impl WhereClause {
15510    #[inline]
15511    pub fn expr(&self) -> Option<Expr> {
15512        support::child(&self.syntax)
15513    }
15514    #[inline]
15515    pub fn where_token(&self) -> Option<SyntaxToken> {
15516        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15517    }
15518}
15519
15520#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15521pub struct WhereConditionClause {
15522    pub(crate) syntax: SyntaxNode,
15523}
15524impl WhereConditionClause {
15525    #[inline]
15526    pub fn expr(&self) -> Option<Expr> {
15527        support::child(&self.syntax)
15528    }
15529    #[inline]
15530    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15531        support::token(&self.syntax, SyntaxKind::L_PAREN)
15532    }
15533    #[inline]
15534    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15535        support::token(&self.syntax, SyntaxKind::R_PAREN)
15536    }
15537    #[inline]
15538    pub fn where_token(&self) -> Option<SyntaxToken> {
15539        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15540    }
15541}
15542
15543#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15544pub struct WhereCurrentOf {
15545    pub(crate) syntax: SyntaxNode,
15546}
15547impl WhereCurrentOf {
15548    #[inline]
15549    pub fn name_ref(&self) -> Option<NameRef> {
15550        support::child(&self.syntax)
15551    }
15552    #[inline]
15553    pub fn current_token(&self) -> Option<SyntaxToken> {
15554        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
15555    }
15556    #[inline]
15557    pub fn of_token(&self) -> Option<SyntaxToken> {
15558        support::token(&self.syntax, SyntaxKind::OF_KW)
15559    }
15560    #[inline]
15561    pub fn where_token(&self) -> Option<SyntaxToken> {
15562        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15563    }
15564}
15565
15566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15567pub struct WindowClause {
15568    pub(crate) syntax: SyntaxNode,
15569}
15570impl WindowClause {
15571    #[inline]
15572    pub fn window_defs(&self) -> AstChildren<WindowDef> {
15573        support::children(&self.syntax)
15574    }
15575    #[inline]
15576    pub fn window_token(&self) -> Option<SyntaxToken> {
15577        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
15578    }
15579}
15580
15581#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15582pub struct WindowDef {
15583    pub(crate) syntax: SyntaxNode,
15584}
15585impl WindowDef {
15586    #[inline]
15587    pub fn name(&self) -> Option<Name> {
15588        support::child(&self.syntax)
15589    }
15590    #[inline]
15591    pub fn window_spec(&self) -> Option<WindowSpec> {
15592        support::child(&self.syntax)
15593    }
15594    #[inline]
15595    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15596        support::token(&self.syntax, SyntaxKind::L_PAREN)
15597    }
15598    #[inline]
15599    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15600        support::token(&self.syntax, SyntaxKind::R_PAREN)
15601    }
15602    #[inline]
15603    pub fn as_token(&self) -> Option<SyntaxToken> {
15604        support::token(&self.syntax, SyntaxKind::AS_KW)
15605    }
15606}
15607
15608#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15609pub struct WindowFuncOption {
15610    pub(crate) syntax: SyntaxNode,
15611}
15612impl WindowFuncOption {
15613    #[inline]
15614    pub fn window_token(&self) -> Option<SyntaxToken> {
15615        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
15616    }
15617}
15618
15619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15620pub struct WindowSpec {
15621    pub(crate) syntax: SyntaxNode,
15622}
15623impl WindowSpec {
15624    #[inline]
15625    pub fn exprs(&self) -> AstChildren<Expr> {
15626        support::children(&self.syntax)
15627    }
15628    #[inline]
15629    pub fn frame_clause(&self) -> Option<FrameClause> {
15630        support::child(&self.syntax)
15631    }
15632    #[inline]
15633    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15634        support::child(&self.syntax)
15635    }
15636    #[inline]
15637    pub fn by_token(&self) -> Option<SyntaxToken> {
15638        support::token(&self.syntax, SyntaxKind::BY_KW)
15639    }
15640    #[inline]
15641    pub fn ident_token(&self) -> Option<SyntaxToken> {
15642        support::token(&self.syntax, SyntaxKind::IDENT)
15643    }
15644    #[inline]
15645    pub fn partition_token(&self) -> Option<SyntaxToken> {
15646        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
15647    }
15648}
15649
15650#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15651pub struct WithClause {
15652    pub(crate) syntax: SyntaxNode,
15653}
15654impl WithClause {
15655    #[inline]
15656    pub fn with_tables(&self) -> AstChildren<WithTable> {
15657        support::children(&self.syntax)
15658    }
15659    #[inline]
15660    pub fn recursive_token(&self) -> Option<SyntaxToken> {
15661        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
15662    }
15663    #[inline]
15664    pub fn with_token(&self) -> Option<SyntaxToken> {
15665        support::token(&self.syntax, SyntaxKind::WITH_KW)
15666    }
15667}
15668
15669#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15670pub struct WithData {
15671    pub(crate) syntax: SyntaxNode,
15672}
15673impl WithData {
15674    #[inline]
15675    pub fn data_token(&self) -> Option<SyntaxToken> {
15676        support::token(&self.syntax, SyntaxKind::DATA_KW)
15677    }
15678    #[inline]
15679    pub fn with_token(&self) -> Option<SyntaxToken> {
15680        support::token(&self.syntax, SyntaxKind::WITH_KW)
15681    }
15682}
15683
15684#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15685pub struct WithNoData {
15686    pub(crate) syntax: SyntaxNode,
15687}
15688impl WithNoData {
15689    #[inline]
15690    pub fn data_token(&self) -> Option<SyntaxToken> {
15691        support::token(&self.syntax, SyntaxKind::DATA_KW)
15692    }
15693    #[inline]
15694    pub fn no_token(&self) -> Option<SyntaxToken> {
15695        support::token(&self.syntax, SyntaxKind::NO_KW)
15696    }
15697    #[inline]
15698    pub fn with_token(&self) -> Option<SyntaxToken> {
15699        support::token(&self.syntax, SyntaxKind::WITH_KW)
15700    }
15701}
15702
15703#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15704pub struct WithOptions {
15705    pub(crate) syntax: SyntaxNode,
15706}
15707impl WithOptions {
15708    #[inline]
15709    pub fn options_token(&self) -> Option<SyntaxToken> {
15710        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
15711    }
15712    #[inline]
15713    pub fn with_token(&self) -> Option<SyntaxToken> {
15714        support::token(&self.syntax, SyntaxKind::WITH_KW)
15715    }
15716}
15717
15718#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15719pub struct WithParams {
15720    pub(crate) syntax: SyntaxNode,
15721}
15722impl WithParams {
15723    #[inline]
15724    pub fn attribute_list(&self) -> Option<AttributeList> {
15725        support::child(&self.syntax)
15726    }
15727    #[inline]
15728    pub fn with_token(&self) -> Option<SyntaxToken> {
15729        support::token(&self.syntax, SyntaxKind::WITH_KW)
15730    }
15731}
15732
15733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15734pub struct WithTable {
15735    pub(crate) syntax: SyntaxNode,
15736}
15737impl WithTable {
15738    #[inline]
15739    pub fn column_list(&self) -> Option<ColumnList> {
15740        support::child(&self.syntax)
15741    }
15742    #[inline]
15743    pub fn materialized(&self) -> Option<Materialized> {
15744        support::child(&self.syntax)
15745    }
15746    #[inline]
15747    pub fn name(&self) -> Option<Name> {
15748        support::child(&self.syntax)
15749    }
15750    #[inline]
15751    pub fn not_materialized(&self) -> Option<NotMaterialized> {
15752        support::child(&self.syntax)
15753    }
15754    #[inline]
15755    pub fn query(&self) -> Option<WithQuery> {
15756        support::child(&self.syntax)
15757    }
15758    #[inline]
15759    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15760        support::token(&self.syntax, SyntaxKind::L_PAREN)
15761    }
15762    #[inline]
15763    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15764        support::token(&self.syntax, SyntaxKind::R_PAREN)
15765    }
15766    #[inline]
15767    pub fn as_token(&self) -> Option<SyntaxToken> {
15768        support::token(&self.syntax, SyntaxKind::AS_KW)
15769    }
15770}
15771
15772#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15773pub struct WithTimezone {
15774    pub(crate) syntax: SyntaxNode,
15775}
15776impl WithTimezone {
15777    #[inline]
15778    pub fn time_token(&self) -> Option<SyntaxToken> {
15779        support::token(&self.syntax, SyntaxKind::TIME_KW)
15780    }
15781    #[inline]
15782    pub fn with_token(&self) -> Option<SyntaxToken> {
15783        support::token(&self.syntax, SyntaxKind::WITH_KW)
15784    }
15785    #[inline]
15786    pub fn zone_token(&self) -> Option<SyntaxToken> {
15787        support::token(&self.syntax, SyntaxKind::ZONE_KW)
15788    }
15789}
15790
15791#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15792pub struct WithinClause {
15793    pub(crate) syntax: SyntaxNode,
15794}
15795impl WithinClause {
15796    #[inline]
15797    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15798        support::child(&self.syntax)
15799    }
15800    #[inline]
15801    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15802        support::token(&self.syntax, SyntaxKind::L_PAREN)
15803    }
15804    #[inline]
15805    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15806        support::token(&self.syntax, SyntaxKind::R_PAREN)
15807    }
15808    #[inline]
15809    pub fn group_token(&self) -> Option<SyntaxToken> {
15810        support::token(&self.syntax, SyntaxKind::GROUP_KW)
15811    }
15812    #[inline]
15813    pub fn within_token(&self) -> Option<SyntaxToken> {
15814        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
15815    }
15816}
15817
15818#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15819pub struct WithoutOids {
15820    pub(crate) syntax: SyntaxNode,
15821}
15822impl WithoutOids {
15823    #[inline]
15824    pub fn oids_token(&self) -> Option<SyntaxToken> {
15825        support::token(&self.syntax, SyntaxKind::OIDS_KW)
15826    }
15827    #[inline]
15828    pub fn without_token(&self) -> Option<SyntaxToken> {
15829        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
15830    }
15831}
15832
15833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15834pub struct WithoutTimezone {
15835    pub(crate) syntax: SyntaxNode,
15836}
15837impl WithoutTimezone {
15838    #[inline]
15839    pub fn time_token(&self) -> Option<SyntaxToken> {
15840        support::token(&self.syntax, SyntaxKind::TIME_KW)
15841    }
15842    #[inline]
15843    pub fn without_token(&self) -> Option<SyntaxToken> {
15844        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
15845    }
15846    #[inline]
15847    pub fn zone_token(&self) -> Option<SyntaxToken> {
15848        support::token(&self.syntax, SyntaxKind::ZONE_KW)
15849    }
15850}
15851
15852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15853pub struct XmlAttributeList {
15854    pub(crate) syntax: SyntaxNode,
15855}
15856impl XmlAttributeList {
15857    #[inline]
15858    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
15859        support::children(&self.syntax)
15860    }
15861}
15862
15863#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15864pub struct XmlColumnOption {
15865    pub(crate) syntax: SyntaxNode,
15866}
15867impl XmlColumnOption {
15868    #[inline]
15869    pub fn expr(&self) -> Option<Expr> {
15870        support::child(&self.syntax)
15871    }
15872    #[inline]
15873    pub fn default_token(&self) -> Option<SyntaxToken> {
15874        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15875    }
15876    #[inline]
15877    pub fn ident_token(&self) -> Option<SyntaxToken> {
15878        support::token(&self.syntax, SyntaxKind::IDENT)
15879    }
15880    #[inline]
15881    pub fn not_token(&self) -> Option<SyntaxToken> {
15882        support::token(&self.syntax, SyntaxKind::NOT_KW)
15883    }
15884    #[inline]
15885    pub fn null_token(&self) -> Option<SyntaxToken> {
15886        support::token(&self.syntax, SyntaxKind::NULL_KW)
15887    }
15888    #[inline]
15889    pub fn path_token(&self) -> Option<SyntaxToken> {
15890        support::token(&self.syntax, SyntaxKind::PATH_KW)
15891    }
15892}
15893
15894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15895pub struct XmlColumnOptionList {
15896    pub(crate) syntax: SyntaxNode,
15897}
15898impl XmlColumnOptionList {
15899    #[inline]
15900    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
15901        support::child(&self.syntax)
15902    }
15903    #[inline]
15904    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
15905        support::children(&self.syntax)
15906    }
15907}
15908
15909#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15910pub struct XmlElementFn {
15911    pub(crate) syntax: SyntaxNode,
15912}
15913impl XmlElementFn {
15914    #[inline]
15915    pub fn exprs(&self) -> AstChildren<Expr> {
15916        support::children(&self.syntax)
15917    }
15918    #[inline]
15919    pub fn name(&self) -> Option<Name> {
15920        support::child(&self.syntax)
15921    }
15922    #[inline]
15923    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
15924        support::child(&self.syntax)
15925    }
15926    #[inline]
15927    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15928        support::token(&self.syntax, SyntaxKind::L_PAREN)
15929    }
15930    #[inline]
15931    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15932        support::token(&self.syntax, SyntaxKind::R_PAREN)
15933    }
15934    #[inline]
15935    pub fn comma_token(&self) -> Option<SyntaxToken> {
15936        support::token(&self.syntax, SyntaxKind::COMMA)
15937    }
15938    #[inline]
15939    pub fn name_token(&self) -> Option<SyntaxToken> {
15940        support::token(&self.syntax, SyntaxKind::NAME_KW)
15941    }
15942    #[inline]
15943    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
15944        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
15945    }
15946    #[inline]
15947    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
15948        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
15949    }
15950}
15951
15952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15953pub struct XmlExistsFn {
15954    pub(crate) syntax: SyntaxNode,
15955}
15956impl XmlExistsFn {
15957    #[inline]
15958    pub fn expr(&self) -> Option<Expr> {
15959        support::child(&self.syntax)
15960    }
15961    #[inline]
15962    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
15963        support::child(&self.syntax)
15964    }
15965    #[inline]
15966    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15967        support::token(&self.syntax, SyntaxKind::L_PAREN)
15968    }
15969    #[inline]
15970    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15971        support::token(&self.syntax, SyntaxKind::R_PAREN)
15972    }
15973    #[inline]
15974    pub fn passing_token(&self) -> Option<SyntaxToken> {
15975        support::token(&self.syntax, SyntaxKind::PASSING_KW)
15976    }
15977    #[inline]
15978    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
15979        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
15980    }
15981}
15982
15983#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15984pub struct XmlForestFn {
15985    pub(crate) syntax: SyntaxNode,
15986}
15987impl XmlForestFn {
15988    #[inline]
15989    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
15990        support::child(&self.syntax)
15991    }
15992    #[inline]
15993    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15994        support::token(&self.syntax, SyntaxKind::L_PAREN)
15995    }
15996    #[inline]
15997    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15998        support::token(&self.syntax, SyntaxKind::R_PAREN)
15999    }
16000    #[inline]
16001    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
16002        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
16003    }
16004}
16005
16006#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16007pub struct XmlNamespace {
16008    pub(crate) syntax: SyntaxNode,
16009}
16010impl XmlNamespace {
16011    #[inline]
16012    pub fn expr(&self) -> Option<Expr> {
16013        support::child(&self.syntax)
16014    }
16015    #[inline]
16016    pub fn name(&self) -> Option<Name> {
16017        support::child(&self.syntax)
16018    }
16019    #[inline]
16020    pub fn as_token(&self) -> Option<SyntaxToken> {
16021        support::token(&self.syntax, SyntaxKind::AS_KW)
16022    }
16023    #[inline]
16024    pub fn default_token(&self) -> Option<SyntaxToken> {
16025        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16026    }
16027}
16028
16029#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16030pub struct XmlNamespaceList {
16031    pub(crate) syntax: SyntaxNode,
16032}
16033impl XmlNamespaceList {
16034    #[inline]
16035    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
16036        support::children(&self.syntax)
16037    }
16038    #[inline]
16039    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16040        support::token(&self.syntax, SyntaxKind::L_PAREN)
16041    }
16042    #[inline]
16043    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16044        support::token(&self.syntax, SyntaxKind::R_PAREN)
16045    }
16046}
16047
16048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16049pub struct XmlParseFn {
16050    pub(crate) syntax: SyntaxNode,
16051}
16052impl XmlParseFn {
16053    #[inline]
16054    pub fn expr(&self) -> Option<Expr> {
16055        support::child(&self.syntax)
16056    }
16057    #[inline]
16058    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16059        support::token(&self.syntax, SyntaxKind::L_PAREN)
16060    }
16061    #[inline]
16062    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16063        support::token(&self.syntax, SyntaxKind::R_PAREN)
16064    }
16065    #[inline]
16066    pub fn content_token(&self) -> Option<SyntaxToken> {
16067        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16068    }
16069    #[inline]
16070    pub fn document_token(&self) -> Option<SyntaxToken> {
16071        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16072    }
16073    #[inline]
16074    pub fn preserve_token(&self) -> Option<SyntaxToken> {
16075        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
16076    }
16077    #[inline]
16078    pub fn strip_token(&self) -> Option<SyntaxToken> {
16079        support::token(&self.syntax, SyntaxKind::STRIP_KW)
16080    }
16081    #[inline]
16082    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
16083        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
16084    }
16085    #[inline]
16086    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
16087        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
16088    }
16089}
16090
16091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16092pub struct XmlPassingMech {
16093    pub(crate) syntax: SyntaxNode,
16094}
16095impl XmlPassingMech {
16096    #[inline]
16097    pub fn by_token(&self) -> Option<SyntaxToken> {
16098        support::token(&self.syntax, SyntaxKind::BY_KW)
16099    }
16100    #[inline]
16101    pub fn ref_token(&self) -> Option<SyntaxToken> {
16102        support::token(&self.syntax, SyntaxKind::REF_KW)
16103    }
16104    #[inline]
16105    pub fn value_token(&self) -> Option<SyntaxToken> {
16106        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16107    }
16108}
16109
16110#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16111pub struct XmlPiFn {
16112    pub(crate) syntax: SyntaxNode,
16113}
16114impl XmlPiFn {
16115    #[inline]
16116    pub fn expr(&self) -> Option<Expr> {
16117        support::child(&self.syntax)
16118    }
16119    #[inline]
16120    pub fn name(&self) -> Option<Name> {
16121        support::child(&self.syntax)
16122    }
16123    #[inline]
16124    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16125        support::token(&self.syntax, SyntaxKind::L_PAREN)
16126    }
16127    #[inline]
16128    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16129        support::token(&self.syntax, SyntaxKind::R_PAREN)
16130    }
16131    #[inline]
16132    pub fn comma_token(&self) -> Option<SyntaxToken> {
16133        support::token(&self.syntax, SyntaxKind::COMMA)
16134    }
16135    #[inline]
16136    pub fn name_token(&self) -> Option<SyntaxToken> {
16137        support::token(&self.syntax, SyntaxKind::NAME_KW)
16138    }
16139    #[inline]
16140    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
16141        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
16142    }
16143}
16144
16145#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16146pub struct XmlRootFn {
16147    pub(crate) syntax: SyntaxNode,
16148}
16149impl XmlRootFn {
16150    #[inline]
16151    pub fn expr(&self) -> Option<Expr> {
16152        support::child(&self.syntax)
16153    }
16154    #[inline]
16155    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16156        support::token(&self.syntax, SyntaxKind::L_PAREN)
16157    }
16158    #[inline]
16159    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16160        support::token(&self.syntax, SyntaxKind::R_PAREN)
16161    }
16162    #[inline]
16163    pub fn comma_token(&self) -> Option<SyntaxToken> {
16164        support::token(&self.syntax, SyntaxKind::COMMA)
16165    }
16166    #[inline]
16167    pub fn no_token(&self) -> Option<SyntaxToken> {
16168        support::token(&self.syntax, SyntaxKind::NO_KW)
16169    }
16170    #[inline]
16171    pub fn standalone_token(&self) -> Option<SyntaxToken> {
16172        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
16173    }
16174    #[inline]
16175    pub fn value_token(&self) -> Option<SyntaxToken> {
16176        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16177    }
16178    #[inline]
16179    pub fn version_token(&self) -> Option<SyntaxToken> {
16180        support::token(&self.syntax, SyntaxKind::VERSION_KW)
16181    }
16182    #[inline]
16183    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
16184        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
16185    }
16186    #[inline]
16187    pub fn yes_token(&self) -> Option<SyntaxToken> {
16188        support::token(&self.syntax, SyntaxKind::YES_KW)
16189    }
16190}
16191
16192#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16193pub struct XmlRowPassingClause {
16194    pub(crate) syntax: SyntaxNode,
16195}
16196impl XmlRowPassingClause {
16197    #[inline]
16198    pub fn expr(&self) -> Option<Expr> {
16199        support::child(&self.syntax)
16200    }
16201    #[inline]
16202    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16203        support::child(&self.syntax)
16204    }
16205    #[inline]
16206    pub fn passing_token(&self) -> Option<SyntaxToken> {
16207        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16208    }
16209}
16210
16211#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16212pub struct XmlSerializeFn {
16213    pub(crate) syntax: SyntaxNode,
16214}
16215impl XmlSerializeFn {
16216    #[inline]
16217    pub fn expr(&self) -> Option<Expr> {
16218        support::child(&self.syntax)
16219    }
16220    #[inline]
16221    pub fn ty(&self) -> Option<Type> {
16222        support::child(&self.syntax)
16223    }
16224    #[inline]
16225    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16226        support::token(&self.syntax, SyntaxKind::L_PAREN)
16227    }
16228    #[inline]
16229    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16230        support::token(&self.syntax, SyntaxKind::R_PAREN)
16231    }
16232    #[inline]
16233    pub fn as_token(&self) -> Option<SyntaxToken> {
16234        support::token(&self.syntax, SyntaxKind::AS_KW)
16235    }
16236    #[inline]
16237    pub fn content_token(&self) -> Option<SyntaxToken> {
16238        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16239    }
16240    #[inline]
16241    pub fn document_token(&self) -> Option<SyntaxToken> {
16242        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16243    }
16244    #[inline]
16245    pub fn ident_token(&self) -> Option<SyntaxToken> {
16246        support::token(&self.syntax, SyntaxKind::IDENT)
16247    }
16248    #[inline]
16249    pub fn no_token(&self) -> Option<SyntaxToken> {
16250        support::token(&self.syntax, SyntaxKind::NO_KW)
16251    }
16252    #[inline]
16253    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
16254        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
16255    }
16256}
16257
16258#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16259pub struct XmlTable {
16260    pub(crate) syntax: SyntaxNode,
16261}
16262impl XmlTable {
16263    #[inline]
16264    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
16265        support::child(&self.syntax)
16266    }
16267    #[inline]
16268    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
16269        support::child(&self.syntax)
16270    }
16271    #[inline]
16272    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
16273        support::child(&self.syntax)
16274    }
16275    #[inline]
16276    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16277        support::token(&self.syntax, SyntaxKind::L_PAREN)
16278    }
16279    #[inline]
16280    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16281        support::token(&self.syntax, SyntaxKind::R_PAREN)
16282    }
16283    #[inline]
16284    pub fn comma_token(&self) -> Option<SyntaxToken> {
16285        support::token(&self.syntax, SyntaxKind::COMMA)
16286    }
16287    #[inline]
16288    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
16289        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
16290    }
16291    #[inline]
16292    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
16293        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
16294    }
16295}
16296
16297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16298pub struct XmlTableColumn {
16299    pub(crate) syntax: SyntaxNode,
16300}
16301impl XmlTableColumn {
16302    #[inline]
16303    pub fn name(&self) -> Option<Name> {
16304        support::child(&self.syntax)
16305    }
16306    #[inline]
16307    pub fn ty(&self) -> Option<Type> {
16308        support::child(&self.syntax)
16309    }
16310    #[inline]
16311    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
16312        support::child(&self.syntax)
16313    }
16314    #[inline]
16315    pub fn for_token(&self) -> Option<SyntaxToken> {
16316        support::token(&self.syntax, SyntaxKind::FOR_KW)
16317    }
16318    #[inline]
16319    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
16320        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
16321    }
16322}
16323
16324#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16325pub struct XmlTableColumnList {
16326    pub(crate) syntax: SyntaxNode,
16327}
16328impl XmlTableColumnList {
16329    #[inline]
16330    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
16331        support::children(&self.syntax)
16332    }
16333}
16334
16335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16336pub enum AlterColumnOption {
16337    AddGenerated(AddGenerated),
16338    DropDefault(DropDefault),
16339    DropExpression(DropExpression),
16340    DropIdentity(DropIdentity),
16341    DropNotNull(DropNotNull),
16342    ResetOptions(ResetOptions),
16343    Restart(Restart),
16344    SetCompression(SetCompression),
16345    SetDefault(SetDefault),
16346    SetExpression(SetExpression),
16347    SetGenerated(SetGenerated),
16348    SetGeneratedOptions(SetGeneratedOptions),
16349    SetNotNull(SetNotNull),
16350    SetOptions(SetOptions),
16351    SetOptionsList(SetOptionsList),
16352    SetSequenceOption(SetSequenceOption),
16353    SetStatistics(SetStatistics),
16354    SetStorage(SetStorage),
16355    SetType(SetType),
16356}
16357
16358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16359pub enum AlterDomainAction {
16360    AddConstraint(AddConstraint),
16361    DropConstraint(DropConstraint),
16362    DropDefault(DropDefault),
16363    DropNotNull(DropNotNull),
16364    OwnerTo(OwnerTo),
16365    RenameConstraint(RenameConstraint),
16366    RenameTo(RenameTo),
16367    SetDefault(SetDefault),
16368    SetNotNull(SetNotNull),
16369    SetSchema(SetSchema),
16370    ValidateConstraint(ValidateConstraint),
16371}
16372
16373#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16374pub enum AlterMaterializedViewAction {
16375    DependsOnExtension(DependsOnExtension),
16376    NoDependsOnExtension(NoDependsOnExtension),
16377    RenameColumn(RenameColumn),
16378    RenameTo(RenameTo),
16379    SetSchema(SetSchema),
16380    AlterTableAction(AlterTableAction),
16381}
16382
16383#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16384pub enum AlterTableAction {
16385    AddColumn(AddColumn),
16386    AddConstraint(AddConstraint),
16387    AlterColumn(AlterColumn),
16388    AlterConstraint(AlterConstraint),
16389    AttachPartition(AttachPartition),
16390    ClusterOn(ClusterOn),
16391    DetachPartition(DetachPartition),
16392    DisableRls(DisableRls),
16393    DisableRule(DisableRule),
16394    DisableTrigger(DisableTrigger),
16395    DropColumn(DropColumn),
16396    DropConstraint(DropConstraint),
16397    EnableAlwaysRule(EnableAlwaysRule),
16398    EnableAlwaysTrigger(EnableAlwaysTrigger),
16399    EnableReplicaRule(EnableReplicaRule),
16400    EnableReplicaTrigger(EnableReplicaTrigger),
16401    EnableRls(EnableRls),
16402    EnableRule(EnableRule),
16403    EnableTrigger(EnableTrigger),
16404    ForceRls(ForceRls),
16405    InheritTable(InheritTable),
16406    NoForceRls(NoForceRls),
16407    NoInheritTable(NoInheritTable),
16408    NotOf(NotOf),
16409    OfType(OfType),
16410    OptionItemList(OptionItemList),
16411    OwnerTo(OwnerTo),
16412    RenameColumn(RenameColumn),
16413    RenameConstraint(RenameConstraint),
16414    RenameTo(RenameTo),
16415    ReplicaIdentity(ReplicaIdentity),
16416    ResetOptions(ResetOptions),
16417    SetAccessMethod(SetAccessMethod),
16418    SetLogged(SetLogged),
16419    SetOptions(SetOptions),
16420    SetSchema(SetSchema),
16421    SetTablespace(SetTablespace),
16422    SetUnlogged(SetUnlogged),
16423    SetWithoutCluster(SetWithoutCluster),
16424    SetWithoutOids(SetWithoutOids),
16425    ValidateConstraint(ValidateConstraint),
16426}
16427
16428#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16429pub enum ColumnConstraint {
16430    CheckConstraint(CheckConstraint),
16431    DefaultConstraint(DefaultConstraint),
16432    ExcludeConstraint(ExcludeConstraint),
16433    NotNullConstraint(NotNullConstraint),
16434    PrimaryKeyConstraint(PrimaryKeyConstraint),
16435    ReferencesConstraint(ReferencesConstraint),
16436    UniqueConstraint(UniqueConstraint),
16437}
16438
16439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16440pub enum ConflictAction {
16441    ConflictDoNothing(ConflictDoNothing),
16442    ConflictDoUpdateSet(ConflictDoUpdateSet),
16443}
16444
16445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16446pub enum ConflictTarget {
16447    ConflictOnConstraint(ConflictOnConstraint),
16448    ConflictOnIndex(ConflictOnIndex),
16449}
16450
16451#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16452pub enum Constraint {
16453    CheckConstraint(CheckConstraint),
16454    DefaultConstraint(DefaultConstraint),
16455    ForeignKeyConstraint(ForeignKeyConstraint),
16456    GeneratedConstraint(GeneratedConstraint),
16457    NotNullConstraint(NotNullConstraint),
16458    NullConstraint(NullConstraint),
16459    PrimaryKeyConstraint(PrimaryKeyConstraint),
16460    ReferencesConstraint(ReferencesConstraint),
16461    UniqueConstraint(UniqueConstraint),
16462}
16463
16464#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16465pub enum ExplainStmt {
16466    CompoundSelect(CompoundSelect),
16467    CreateMaterializedView(CreateMaterializedView),
16468    CreateTableAs(CreateTableAs),
16469    Declare(Declare),
16470    Delete(Delete),
16471    Execute(Execute),
16472    Insert(Insert),
16473    Merge(Merge),
16474    ParenSelect(ParenSelect),
16475    Select(Select),
16476    SelectInto(SelectInto),
16477    Table(Table),
16478    Update(Update),
16479    Values(Values),
16480}
16481
16482#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16483pub enum Expr {
16484    ArrayExpr(ArrayExpr),
16485    BetweenExpr(BetweenExpr),
16486    BinExpr(BinExpr),
16487    CallExpr(CallExpr),
16488    CaseExpr(CaseExpr),
16489    CastExpr(CastExpr),
16490    FieldExpr(FieldExpr),
16491    IndexExpr(IndexExpr),
16492    Literal(Literal),
16493    NameRef(NameRef),
16494    ParenExpr(ParenExpr),
16495    PostfixExpr(PostfixExpr),
16496    PrefixExpr(PrefixExpr),
16497    SliceExpr(SliceExpr),
16498    TupleExpr(TupleExpr),
16499}
16500
16501#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16502pub enum FuncOption {
16503    AsFuncOption(AsFuncOption),
16504    BeginFuncOptionList(BeginFuncOptionList),
16505    CostFuncOption(CostFuncOption),
16506    LanguageFuncOption(LanguageFuncOption),
16507    LeakproofFuncOption(LeakproofFuncOption),
16508    ParallelFuncOption(ParallelFuncOption),
16509    ResetFuncOption(ResetFuncOption),
16510    ReturnFuncOption(ReturnFuncOption),
16511    RowsFuncOption(RowsFuncOption),
16512    SecurityFuncOption(SecurityFuncOption),
16513    SetFuncOption(SetFuncOption),
16514    StrictFuncOption(StrictFuncOption),
16515    SupportFuncOption(SupportFuncOption),
16516    TransformFuncOption(TransformFuncOption),
16517    VolatilityFuncOption(VolatilityFuncOption),
16518    WindowFuncOption(WindowFuncOption),
16519}
16520
16521#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16522pub enum GroupBy {
16523    GroupingCube(GroupingCube),
16524    GroupingExpr(GroupingExpr),
16525    GroupingRollup(GroupingRollup),
16526    GroupingSets(GroupingSets),
16527}
16528
16529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16530pub enum JoinType {
16531    JoinCross(JoinCross),
16532    JoinFull(JoinFull),
16533    JoinInner(JoinInner),
16534    JoinLeft(JoinLeft),
16535    JoinRight(JoinRight),
16536}
16537
16538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16539pub enum JsonBehavior {
16540    JsonBehaviorDefault(JsonBehaviorDefault),
16541    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
16542    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
16543    JsonBehaviorError(JsonBehaviorError),
16544    JsonBehaviorFalse(JsonBehaviorFalse),
16545    JsonBehaviorNull(JsonBehaviorNull),
16546    JsonBehaviorTrue(JsonBehaviorTrue),
16547    JsonBehaviorUnknown(JsonBehaviorUnknown),
16548}
16549
16550#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16551pub enum MatchType {
16552    MatchFull(MatchFull),
16553    MatchPartial(MatchPartial),
16554    MatchSimple(MatchSimple),
16555}
16556
16557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16558pub enum MergeAction {
16559    MergeDelete(MergeDelete),
16560    MergeDoNothing(MergeDoNothing),
16561    MergeInsert(MergeInsert),
16562    MergeUpdate(MergeUpdate),
16563}
16564
16565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16566pub enum MergeWhenClause {
16567    MergeWhenMatched(MergeWhenMatched),
16568    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
16569    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
16570}
16571
16572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16573pub enum OnCommitAction {
16574    DeleteRows(DeleteRows),
16575    Drop(Drop),
16576    PreserveRows(PreserveRows),
16577}
16578
16579#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16580pub enum ParamMode {
16581    ParamIn(ParamIn),
16582    ParamInOut(ParamInOut),
16583    ParamOut(ParamOut),
16584    ParamVariadic(ParamVariadic),
16585}
16586
16587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16588pub enum PartitionType {
16589    PartitionDefault(PartitionDefault),
16590    PartitionForValuesFrom(PartitionForValuesFrom),
16591    PartitionForValuesIn(PartitionForValuesIn),
16592    PartitionForValuesWith(PartitionForValuesWith),
16593}
16594
16595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16596pub enum PreparableStmt {
16597    CompoundSelect(CompoundSelect),
16598    Delete(Delete),
16599    Insert(Insert),
16600    Merge(Merge),
16601    Select(Select),
16602    SelectInto(SelectInto),
16603    Table(Table),
16604    Update(Update),
16605    Values(Values),
16606}
16607
16608#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16609pub enum RefAction {
16610    Cascade(Cascade),
16611    NoAction(NoAction),
16612    Restrict(Restrict),
16613    SetDefaultColumns(SetDefaultColumns),
16614    SetNullColumns(SetNullColumns),
16615}
16616
16617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16618pub enum SchemaElement {
16619    CreateIndex(CreateIndex),
16620    CreateSequence(CreateSequence),
16621    CreateTable(CreateTable),
16622    CreateTrigger(CreateTrigger),
16623    CreateView(CreateView),
16624    Grant(Grant),
16625}
16626
16627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16628pub enum SelectVariant {
16629    CompoundSelect(CompoundSelect),
16630    ParenSelect(ParenSelect),
16631    Select(Select),
16632    SelectInto(SelectInto),
16633    Table(Table),
16634    Values(Values),
16635}
16636
16637#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16638pub enum SetColumn {
16639    SetMultipleColumns(SetMultipleColumns),
16640    SetSingleColumn(SetSingleColumn),
16641}
16642
16643#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16644pub enum Stmt {
16645    AlterAggregate(AlterAggregate),
16646    AlterCollation(AlterCollation),
16647    AlterConversion(AlterConversion),
16648    AlterDatabase(AlterDatabase),
16649    AlterDefaultPrivileges(AlterDefaultPrivileges),
16650    AlterDomain(AlterDomain),
16651    AlterEventTrigger(AlterEventTrigger),
16652    AlterExtension(AlterExtension),
16653    AlterForeignDataWrapper(AlterForeignDataWrapper),
16654    AlterForeignTable(AlterForeignTable),
16655    AlterFunction(AlterFunction),
16656    AlterGroup(AlterGroup),
16657    AlterIndex(AlterIndex),
16658    AlterLanguage(AlterLanguage),
16659    AlterLargeObject(AlterLargeObject),
16660    AlterMaterializedView(AlterMaterializedView),
16661    AlterOperator(AlterOperator),
16662    AlterOperatorClass(AlterOperatorClass),
16663    AlterOperatorFamily(AlterOperatorFamily),
16664    AlterPolicy(AlterPolicy),
16665    AlterProcedure(AlterProcedure),
16666    AlterPublication(AlterPublication),
16667    AlterRole(AlterRole),
16668    AlterRoutine(AlterRoutine),
16669    AlterRule(AlterRule),
16670    AlterSchema(AlterSchema),
16671    AlterSequence(AlterSequence),
16672    AlterServer(AlterServer),
16673    AlterStatistics(AlterStatistics),
16674    AlterSubscription(AlterSubscription),
16675    AlterSystem(AlterSystem),
16676    AlterTable(AlterTable),
16677    AlterTablespace(AlterTablespace),
16678    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
16679    AlterTextSearchDictionary(AlterTextSearchDictionary),
16680    AlterTextSearchParser(AlterTextSearchParser),
16681    AlterTextSearchTemplate(AlterTextSearchTemplate),
16682    AlterTrigger(AlterTrigger),
16683    AlterType(AlterType),
16684    AlterUser(AlterUser),
16685    AlterUserMapping(AlterUserMapping),
16686    AlterView(AlterView),
16687    Analyze(Analyze),
16688    Begin(Begin),
16689    Call(Call),
16690    Checkpoint(Checkpoint),
16691    Close(Close),
16692    Cluster(Cluster),
16693    CommentOn(CommentOn),
16694    Commit(Commit),
16695    Copy(Copy),
16696    CreateAccessMethod(CreateAccessMethod),
16697    CreateAggregate(CreateAggregate),
16698    CreateCast(CreateCast),
16699    CreateCollation(CreateCollation),
16700    CreateConversion(CreateConversion),
16701    CreateDatabase(CreateDatabase),
16702    CreateDomain(CreateDomain),
16703    CreateEventTrigger(CreateEventTrigger),
16704    CreateExtension(CreateExtension),
16705    CreateForeignDataWrapper(CreateForeignDataWrapper),
16706    CreateForeignTable(CreateForeignTable),
16707    CreateFunction(CreateFunction),
16708    CreateGroup(CreateGroup),
16709    CreateIndex(CreateIndex),
16710    CreateLanguage(CreateLanguage),
16711    CreateMaterializedView(CreateMaterializedView),
16712    CreateOperator(CreateOperator),
16713    CreateOperatorClass(CreateOperatorClass),
16714    CreateOperatorFamily(CreateOperatorFamily),
16715    CreatePolicy(CreatePolicy),
16716    CreateProcedure(CreateProcedure),
16717    CreatePublication(CreatePublication),
16718    CreateRole(CreateRole),
16719    CreateRule(CreateRule),
16720    CreateSchema(CreateSchema),
16721    CreateSequence(CreateSequence),
16722    CreateServer(CreateServer),
16723    CreateStatistics(CreateStatistics),
16724    CreateSubscription(CreateSubscription),
16725    CreateTable(CreateTable),
16726    CreateTableAs(CreateTableAs),
16727    CreateTablespace(CreateTablespace),
16728    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
16729    CreateTextSearchDictionary(CreateTextSearchDictionary),
16730    CreateTextSearchParser(CreateTextSearchParser),
16731    CreateTextSearchTemplate(CreateTextSearchTemplate),
16732    CreateTransform(CreateTransform),
16733    CreateTrigger(CreateTrigger),
16734    CreateType(CreateType),
16735    CreateUser(CreateUser),
16736    CreateUserMapping(CreateUserMapping),
16737    CreateView(CreateView),
16738    Deallocate(Deallocate),
16739    Declare(Declare),
16740    Delete(Delete),
16741    Discard(Discard),
16742    Do(Do),
16743    DropAccessMethod(DropAccessMethod),
16744    DropAggregate(DropAggregate),
16745    DropCast(DropCast),
16746    DropCollation(DropCollation),
16747    DropConversion(DropConversion),
16748    DropDatabase(DropDatabase),
16749    DropDomain(DropDomain),
16750    DropEventTrigger(DropEventTrigger),
16751    DropExtension(DropExtension),
16752    DropForeignDataWrapper(DropForeignDataWrapper),
16753    DropForeignTable(DropForeignTable),
16754    DropFunction(DropFunction),
16755    DropGroup(DropGroup),
16756    DropIndex(DropIndex),
16757    DropLanguage(DropLanguage),
16758    DropMaterializedView(DropMaterializedView),
16759    DropOperator(DropOperator),
16760    DropOperatorClass(DropOperatorClass),
16761    DropOperatorFamily(DropOperatorFamily),
16762    DropOwned(DropOwned),
16763    DropPolicy(DropPolicy),
16764    DropProcedure(DropProcedure),
16765    DropPublication(DropPublication),
16766    DropRole(DropRole),
16767    DropRoutine(DropRoutine),
16768    DropRule(DropRule),
16769    DropSchema(DropSchema),
16770    DropSequence(DropSequence),
16771    DropServer(DropServer),
16772    DropStatistics(DropStatistics),
16773    DropSubscription(DropSubscription),
16774    DropTable(DropTable),
16775    DropTablespace(DropTablespace),
16776    DropTextSearchConfig(DropTextSearchConfig),
16777    DropTextSearchDict(DropTextSearchDict),
16778    DropTextSearchParser(DropTextSearchParser),
16779    DropTextSearchTemplate(DropTextSearchTemplate),
16780    DropTransform(DropTransform),
16781    DropTrigger(DropTrigger),
16782    DropType(DropType),
16783    DropUser(DropUser),
16784    DropUserMapping(DropUserMapping),
16785    DropView(DropView),
16786    Execute(Execute),
16787    Explain(Explain),
16788    Fetch(Fetch),
16789    Grant(Grant),
16790    ImportForeignSchema(ImportForeignSchema),
16791    Insert(Insert),
16792    Listen(Listen),
16793    Load(Load),
16794    Lock(Lock),
16795    Merge(Merge),
16796    Move(Move),
16797    Notify(Notify),
16798    ParenSelect(ParenSelect),
16799    Prepare(Prepare),
16800    PrepareTransaction(PrepareTransaction),
16801    Reassign(Reassign),
16802    Refresh(Refresh),
16803    Reindex(Reindex),
16804    ReleaseSavepoint(ReleaseSavepoint),
16805    Reset(Reset),
16806    ResetSessionAuth(ResetSessionAuth),
16807    Revoke(Revoke),
16808    Rollback(Rollback),
16809    Savepoint(Savepoint),
16810    SecurityLabel(SecurityLabel),
16811    Select(Select),
16812    SelectInto(SelectInto),
16813    Set(Set),
16814    SetConstraints(SetConstraints),
16815    SetRole(SetRole),
16816    SetSessionAuth(SetSessionAuth),
16817    SetTransaction(SetTransaction),
16818    Show(Show),
16819    Table(Table),
16820    Truncate(Truncate),
16821    Unlisten(Unlisten),
16822    Update(Update),
16823    Vacuum(Vacuum),
16824    Values(Values),
16825}
16826
16827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16828pub enum TableArg {
16829    Column(Column),
16830    LikeClause(LikeClause),
16831    TableConstraint(TableConstraint),
16832}
16833
16834#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16835pub enum TableConstraint {
16836    CheckConstraint(CheckConstraint),
16837    ExcludeConstraint(ExcludeConstraint),
16838    ForeignKeyConstraint(ForeignKeyConstraint),
16839    PrimaryKeyConstraint(PrimaryKeyConstraint),
16840    UniqueConstraint(UniqueConstraint),
16841}
16842
16843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16844pub enum Timezone {
16845    WithTimezone(WithTimezone),
16846    WithoutTimezone(WithoutTimezone),
16847}
16848
16849#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16850pub enum TransactionMode {
16851    Deferrable(Deferrable),
16852    NotDeferrable(NotDeferrable),
16853    ReadCommitted(ReadCommitted),
16854    ReadOnly(ReadOnly),
16855    ReadUncommitted(ReadUncommitted),
16856    ReadWrite(ReadWrite),
16857    RepeatableRead(RepeatableRead),
16858    Serializable(Serializable),
16859}
16860
16861#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16862pub enum Type {
16863    ArrayType(ArrayType),
16864    BitType(BitType),
16865    CharType(CharType),
16866    DoubleType(DoubleType),
16867    ExprType(ExprType),
16868    IntervalType(IntervalType),
16869    PathType(PathType),
16870    PercentType(PercentType),
16871    TimeType(TimeType),
16872}
16873
16874#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16875pub enum WithQuery {
16876    CompoundSelect(CompoundSelect),
16877    Delete(Delete),
16878    Insert(Insert),
16879    Merge(Merge),
16880    ParenSelect(ParenSelect),
16881    Select(Select),
16882    Table(Table),
16883    Update(Update),
16884    Values(Values),
16885}
16886impl AstNode for AddColumn {
16887    #[inline]
16888    fn can_cast(kind: SyntaxKind) -> bool {
16889        kind == SyntaxKind::ADD_COLUMN
16890    }
16891    #[inline]
16892    fn cast(syntax: SyntaxNode) -> Option<Self> {
16893        if Self::can_cast(syntax.kind()) {
16894            Some(Self { syntax })
16895        } else {
16896            None
16897        }
16898    }
16899    #[inline]
16900    fn syntax(&self) -> &SyntaxNode {
16901        &self.syntax
16902    }
16903}
16904impl AstNode for AddConstraint {
16905    #[inline]
16906    fn can_cast(kind: SyntaxKind) -> bool {
16907        kind == SyntaxKind::ADD_CONSTRAINT
16908    }
16909    #[inline]
16910    fn cast(syntax: SyntaxNode) -> Option<Self> {
16911        if Self::can_cast(syntax.kind()) {
16912            Some(Self { syntax })
16913        } else {
16914            None
16915        }
16916    }
16917    #[inline]
16918    fn syntax(&self) -> &SyntaxNode {
16919        &self.syntax
16920    }
16921}
16922impl AstNode for AddGenerated {
16923    #[inline]
16924    fn can_cast(kind: SyntaxKind) -> bool {
16925        kind == SyntaxKind::ADD_GENERATED
16926    }
16927    #[inline]
16928    fn cast(syntax: SyntaxNode) -> Option<Self> {
16929        if Self::can_cast(syntax.kind()) {
16930            Some(Self { syntax })
16931        } else {
16932            None
16933        }
16934    }
16935    #[inline]
16936    fn syntax(&self) -> &SyntaxNode {
16937        &self.syntax
16938    }
16939}
16940impl AstNode for AddOpClassOptions {
16941    #[inline]
16942    fn can_cast(kind: SyntaxKind) -> bool {
16943        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
16944    }
16945    #[inline]
16946    fn cast(syntax: SyntaxNode) -> Option<Self> {
16947        if Self::can_cast(syntax.kind()) {
16948            Some(Self { syntax })
16949        } else {
16950            None
16951        }
16952    }
16953    #[inline]
16954    fn syntax(&self) -> &SyntaxNode {
16955        &self.syntax
16956    }
16957}
16958impl AstNode for Aggregate {
16959    #[inline]
16960    fn can_cast(kind: SyntaxKind) -> bool {
16961        kind == SyntaxKind::AGGREGATE
16962    }
16963    #[inline]
16964    fn cast(syntax: SyntaxNode) -> Option<Self> {
16965        if Self::can_cast(syntax.kind()) {
16966            Some(Self { syntax })
16967        } else {
16968            None
16969        }
16970    }
16971    #[inline]
16972    fn syntax(&self) -> &SyntaxNode {
16973        &self.syntax
16974    }
16975}
16976impl AstNode for Alias {
16977    #[inline]
16978    fn can_cast(kind: SyntaxKind) -> bool {
16979        kind == SyntaxKind::ALIAS
16980    }
16981    #[inline]
16982    fn cast(syntax: SyntaxNode) -> Option<Self> {
16983        if Self::can_cast(syntax.kind()) {
16984            Some(Self { syntax })
16985        } else {
16986            None
16987        }
16988    }
16989    #[inline]
16990    fn syntax(&self) -> &SyntaxNode {
16991        &self.syntax
16992    }
16993}
16994impl AstNode for AllFn {
16995    #[inline]
16996    fn can_cast(kind: SyntaxKind) -> bool {
16997        kind == SyntaxKind::ALL_FN
16998    }
16999    #[inline]
17000    fn cast(syntax: SyntaxNode) -> Option<Self> {
17001        if Self::can_cast(syntax.kind()) {
17002            Some(Self { syntax })
17003        } else {
17004            None
17005        }
17006    }
17007    #[inline]
17008    fn syntax(&self) -> &SyntaxNode {
17009        &self.syntax
17010    }
17011}
17012impl AstNode for AlterAggregate {
17013    #[inline]
17014    fn can_cast(kind: SyntaxKind) -> bool {
17015        kind == SyntaxKind::ALTER_AGGREGATE
17016    }
17017    #[inline]
17018    fn cast(syntax: SyntaxNode) -> Option<Self> {
17019        if Self::can_cast(syntax.kind()) {
17020            Some(Self { syntax })
17021        } else {
17022            None
17023        }
17024    }
17025    #[inline]
17026    fn syntax(&self) -> &SyntaxNode {
17027        &self.syntax
17028    }
17029}
17030impl AstNode for AlterCollation {
17031    #[inline]
17032    fn can_cast(kind: SyntaxKind) -> bool {
17033        kind == SyntaxKind::ALTER_COLLATION
17034    }
17035    #[inline]
17036    fn cast(syntax: SyntaxNode) -> Option<Self> {
17037        if Self::can_cast(syntax.kind()) {
17038            Some(Self { syntax })
17039        } else {
17040            None
17041        }
17042    }
17043    #[inline]
17044    fn syntax(&self) -> &SyntaxNode {
17045        &self.syntax
17046    }
17047}
17048impl AstNode for AlterColumn {
17049    #[inline]
17050    fn can_cast(kind: SyntaxKind) -> bool {
17051        kind == SyntaxKind::ALTER_COLUMN
17052    }
17053    #[inline]
17054    fn cast(syntax: SyntaxNode) -> Option<Self> {
17055        if Self::can_cast(syntax.kind()) {
17056            Some(Self { syntax })
17057        } else {
17058            None
17059        }
17060    }
17061    #[inline]
17062    fn syntax(&self) -> &SyntaxNode {
17063        &self.syntax
17064    }
17065}
17066impl AstNode for AlterConstraint {
17067    #[inline]
17068    fn can_cast(kind: SyntaxKind) -> bool {
17069        kind == SyntaxKind::ALTER_CONSTRAINT
17070    }
17071    #[inline]
17072    fn cast(syntax: SyntaxNode) -> Option<Self> {
17073        if Self::can_cast(syntax.kind()) {
17074            Some(Self { syntax })
17075        } else {
17076            None
17077        }
17078    }
17079    #[inline]
17080    fn syntax(&self) -> &SyntaxNode {
17081        &self.syntax
17082    }
17083}
17084impl AstNode for AlterConversion {
17085    #[inline]
17086    fn can_cast(kind: SyntaxKind) -> bool {
17087        kind == SyntaxKind::ALTER_CONVERSION
17088    }
17089    #[inline]
17090    fn cast(syntax: SyntaxNode) -> Option<Self> {
17091        if Self::can_cast(syntax.kind()) {
17092            Some(Self { syntax })
17093        } else {
17094            None
17095        }
17096    }
17097    #[inline]
17098    fn syntax(&self) -> &SyntaxNode {
17099        &self.syntax
17100    }
17101}
17102impl AstNode for AlterDatabase {
17103    #[inline]
17104    fn can_cast(kind: SyntaxKind) -> bool {
17105        kind == SyntaxKind::ALTER_DATABASE
17106    }
17107    #[inline]
17108    fn cast(syntax: SyntaxNode) -> Option<Self> {
17109        if Self::can_cast(syntax.kind()) {
17110            Some(Self { syntax })
17111        } else {
17112            None
17113        }
17114    }
17115    #[inline]
17116    fn syntax(&self) -> &SyntaxNode {
17117        &self.syntax
17118    }
17119}
17120impl AstNode for AlterDefaultPrivileges {
17121    #[inline]
17122    fn can_cast(kind: SyntaxKind) -> bool {
17123        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
17124    }
17125    #[inline]
17126    fn cast(syntax: SyntaxNode) -> Option<Self> {
17127        if Self::can_cast(syntax.kind()) {
17128            Some(Self { syntax })
17129        } else {
17130            None
17131        }
17132    }
17133    #[inline]
17134    fn syntax(&self) -> &SyntaxNode {
17135        &self.syntax
17136    }
17137}
17138impl AstNode for AlterDomain {
17139    #[inline]
17140    fn can_cast(kind: SyntaxKind) -> bool {
17141        kind == SyntaxKind::ALTER_DOMAIN
17142    }
17143    #[inline]
17144    fn cast(syntax: SyntaxNode) -> Option<Self> {
17145        if Self::can_cast(syntax.kind()) {
17146            Some(Self { syntax })
17147        } else {
17148            None
17149        }
17150    }
17151    #[inline]
17152    fn syntax(&self) -> &SyntaxNode {
17153        &self.syntax
17154    }
17155}
17156impl AstNode for AlterEventTrigger {
17157    #[inline]
17158    fn can_cast(kind: SyntaxKind) -> bool {
17159        kind == SyntaxKind::ALTER_EVENT_TRIGGER
17160    }
17161    #[inline]
17162    fn cast(syntax: SyntaxNode) -> Option<Self> {
17163        if Self::can_cast(syntax.kind()) {
17164            Some(Self { syntax })
17165        } else {
17166            None
17167        }
17168    }
17169    #[inline]
17170    fn syntax(&self) -> &SyntaxNode {
17171        &self.syntax
17172    }
17173}
17174impl AstNode for AlterExtension {
17175    #[inline]
17176    fn can_cast(kind: SyntaxKind) -> bool {
17177        kind == SyntaxKind::ALTER_EXTENSION
17178    }
17179    #[inline]
17180    fn cast(syntax: SyntaxNode) -> Option<Self> {
17181        if Self::can_cast(syntax.kind()) {
17182            Some(Self { syntax })
17183        } else {
17184            None
17185        }
17186    }
17187    #[inline]
17188    fn syntax(&self) -> &SyntaxNode {
17189        &self.syntax
17190    }
17191}
17192impl AstNode for AlterForeignDataWrapper {
17193    #[inline]
17194    fn can_cast(kind: SyntaxKind) -> bool {
17195        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
17196    }
17197    #[inline]
17198    fn cast(syntax: SyntaxNode) -> Option<Self> {
17199        if Self::can_cast(syntax.kind()) {
17200            Some(Self { syntax })
17201        } else {
17202            None
17203        }
17204    }
17205    #[inline]
17206    fn syntax(&self) -> &SyntaxNode {
17207        &self.syntax
17208    }
17209}
17210impl AstNode for AlterForeignTable {
17211    #[inline]
17212    fn can_cast(kind: SyntaxKind) -> bool {
17213        kind == SyntaxKind::ALTER_FOREIGN_TABLE
17214    }
17215    #[inline]
17216    fn cast(syntax: SyntaxNode) -> Option<Self> {
17217        if Self::can_cast(syntax.kind()) {
17218            Some(Self { syntax })
17219        } else {
17220            None
17221        }
17222    }
17223    #[inline]
17224    fn syntax(&self) -> &SyntaxNode {
17225        &self.syntax
17226    }
17227}
17228impl AstNode for AlterFunction {
17229    #[inline]
17230    fn can_cast(kind: SyntaxKind) -> bool {
17231        kind == SyntaxKind::ALTER_FUNCTION
17232    }
17233    #[inline]
17234    fn cast(syntax: SyntaxNode) -> Option<Self> {
17235        if Self::can_cast(syntax.kind()) {
17236            Some(Self { syntax })
17237        } else {
17238            None
17239        }
17240    }
17241    #[inline]
17242    fn syntax(&self) -> &SyntaxNode {
17243        &self.syntax
17244    }
17245}
17246impl AstNode for AlterGroup {
17247    #[inline]
17248    fn can_cast(kind: SyntaxKind) -> bool {
17249        kind == SyntaxKind::ALTER_GROUP
17250    }
17251    #[inline]
17252    fn cast(syntax: SyntaxNode) -> Option<Self> {
17253        if Self::can_cast(syntax.kind()) {
17254            Some(Self { syntax })
17255        } else {
17256            None
17257        }
17258    }
17259    #[inline]
17260    fn syntax(&self) -> &SyntaxNode {
17261        &self.syntax
17262    }
17263}
17264impl AstNode for AlterIndex {
17265    #[inline]
17266    fn can_cast(kind: SyntaxKind) -> bool {
17267        kind == SyntaxKind::ALTER_INDEX
17268    }
17269    #[inline]
17270    fn cast(syntax: SyntaxNode) -> Option<Self> {
17271        if Self::can_cast(syntax.kind()) {
17272            Some(Self { syntax })
17273        } else {
17274            None
17275        }
17276    }
17277    #[inline]
17278    fn syntax(&self) -> &SyntaxNode {
17279        &self.syntax
17280    }
17281}
17282impl AstNode for AlterLanguage {
17283    #[inline]
17284    fn can_cast(kind: SyntaxKind) -> bool {
17285        kind == SyntaxKind::ALTER_LANGUAGE
17286    }
17287    #[inline]
17288    fn cast(syntax: SyntaxNode) -> Option<Self> {
17289        if Self::can_cast(syntax.kind()) {
17290            Some(Self { syntax })
17291        } else {
17292            None
17293        }
17294    }
17295    #[inline]
17296    fn syntax(&self) -> &SyntaxNode {
17297        &self.syntax
17298    }
17299}
17300impl AstNode for AlterLargeObject {
17301    #[inline]
17302    fn can_cast(kind: SyntaxKind) -> bool {
17303        kind == SyntaxKind::ALTER_LARGE_OBJECT
17304    }
17305    #[inline]
17306    fn cast(syntax: SyntaxNode) -> Option<Self> {
17307        if Self::can_cast(syntax.kind()) {
17308            Some(Self { syntax })
17309        } else {
17310            None
17311        }
17312    }
17313    #[inline]
17314    fn syntax(&self) -> &SyntaxNode {
17315        &self.syntax
17316    }
17317}
17318impl AstNode for AlterMaterializedView {
17319    #[inline]
17320    fn can_cast(kind: SyntaxKind) -> bool {
17321        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
17322    }
17323    #[inline]
17324    fn cast(syntax: SyntaxNode) -> Option<Self> {
17325        if Self::can_cast(syntax.kind()) {
17326            Some(Self { syntax })
17327        } else {
17328            None
17329        }
17330    }
17331    #[inline]
17332    fn syntax(&self) -> &SyntaxNode {
17333        &self.syntax
17334    }
17335}
17336impl AstNode for AlterOperator {
17337    #[inline]
17338    fn can_cast(kind: SyntaxKind) -> bool {
17339        kind == SyntaxKind::ALTER_OPERATOR
17340    }
17341    #[inline]
17342    fn cast(syntax: SyntaxNode) -> Option<Self> {
17343        if Self::can_cast(syntax.kind()) {
17344            Some(Self { syntax })
17345        } else {
17346            None
17347        }
17348    }
17349    #[inline]
17350    fn syntax(&self) -> &SyntaxNode {
17351        &self.syntax
17352    }
17353}
17354impl AstNode for AlterOperatorClass {
17355    #[inline]
17356    fn can_cast(kind: SyntaxKind) -> bool {
17357        kind == SyntaxKind::ALTER_OPERATOR_CLASS
17358    }
17359    #[inline]
17360    fn cast(syntax: SyntaxNode) -> Option<Self> {
17361        if Self::can_cast(syntax.kind()) {
17362            Some(Self { syntax })
17363        } else {
17364            None
17365        }
17366    }
17367    #[inline]
17368    fn syntax(&self) -> &SyntaxNode {
17369        &self.syntax
17370    }
17371}
17372impl AstNode for AlterOperatorFamily {
17373    #[inline]
17374    fn can_cast(kind: SyntaxKind) -> bool {
17375        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
17376    }
17377    #[inline]
17378    fn cast(syntax: SyntaxNode) -> Option<Self> {
17379        if Self::can_cast(syntax.kind()) {
17380            Some(Self { syntax })
17381        } else {
17382            None
17383        }
17384    }
17385    #[inline]
17386    fn syntax(&self) -> &SyntaxNode {
17387        &self.syntax
17388    }
17389}
17390impl AstNode for AlterOption {
17391    #[inline]
17392    fn can_cast(kind: SyntaxKind) -> bool {
17393        kind == SyntaxKind::ALTER_OPTION
17394    }
17395    #[inline]
17396    fn cast(syntax: SyntaxNode) -> Option<Self> {
17397        if Self::can_cast(syntax.kind()) {
17398            Some(Self { syntax })
17399        } else {
17400            None
17401        }
17402    }
17403    #[inline]
17404    fn syntax(&self) -> &SyntaxNode {
17405        &self.syntax
17406    }
17407}
17408impl AstNode for AlterOptionList {
17409    #[inline]
17410    fn can_cast(kind: SyntaxKind) -> bool {
17411        kind == SyntaxKind::ALTER_OPTION_LIST
17412    }
17413    #[inline]
17414    fn cast(syntax: SyntaxNode) -> Option<Self> {
17415        if Self::can_cast(syntax.kind()) {
17416            Some(Self { syntax })
17417        } else {
17418            None
17419        }
17420    }
17421    #[inline]
17422    fn syntax(&self) -> &SyntaxNode {
17423        &self.syntax
17424    }
17425}
17426impl AstNode for AlterPolicy {
17427    #[inline]
17428    fn can_cast(kind: SyntaxKind) -> bool {
17429        kind == SyntaxKind::ALTER_POLICY
17430    }
17431    #[inline]
17432    fn cast(syntax: SyntaxNode) -> Option<Self> {
17433        if Self::can_cast(syntax.kind()) {
17434            Some(Self { syntax })
17435        } else {
17436            None
17437        }
17438    }
17439    #[inline]
17440    fn syntax(&self) -> &SyntaxNode {
17441        &self.syntax
17442    }
17443}
17444impl AstNode for AlterProcedure {
17445    #[inline]
17446    fn can_cast(kind: SyntaxKind) -> bool {
17447        kind == SyntaxKind::ALTER_PROCEDURE
17448    }
17449    #[inline]
17450    fn cast(syntax: SyntaxNode) -> Option<Self> {
17451        if Self::can_cast(syntax.kind()) {
17452            Some(Self { syntax })
17453        } else {
17454            None
17455        }
17456    }
17457    #[inline]
17458    fn syntax(&self) -> &SyntaxNode {
17459        &self.syntax
17460    }
17461}
17462impl AstNode for AlterPublication {
17463    #[inline]
17464    fn can_cast(kind: SyntaxKind) -> bool {
17465        kind == SyntaxKind::ALTER_PUBLICATION
17466    }
17467    #[inline]
17468    fn cast(syntax: SyntaxNode) -> Option<Self> {
17469        if Self::can_cast(syntax.kind()) {
17470            Some(Self { syntax })
17471        } else {
17472            None
17473        }
17474    }
17475    #[inline]
17476    fn syntax(&self) -> &SyntaxNode {
17477        &self.syntax
17478    }
17479}
17480impl AstNode for AlterRole {
17481    #[inline]
17482    fn can_cast(kind: SyntaxKind) -> bool {
17483        kind == SyntaxKind::ALTER_ROLE
17484    }
17485    #[inline]
17486    fn cast(syntax: SyntaxNode) -> Option<Self> {
17487        if Self::can_cast(syntax.kind()) {
17488            Some(Self { syntax })
17489        } else {
17490            None
17491        }
17492    }
17493    #[inline]
17494    fn syntax(&self) -> &SyntaxNode {
17495        &self.syntax
17496    }
17497}
17498impl AstNode for AlterRoutine {
17499    #[inline]
17500    fn can_cast(kind: SyntaxKind) -> bool {
17501        kind == SyntaxKind::ALTER_ROUTINE
17502    }
17503    #[inline]
17504    fn cast(syntax: SyntaxNode) -> Option<Self> {
17505        if Self::can_cast(syntax.kind()) {
17506            Some(Self { syntax })
17507        } else {
17508            None
17509        }
17510    }
17511    #[inline]
17512    fn syntax(&self) -> &SyntaxNode {
17513        &self.syntax
17514    }
17515}
17516impl AstNode for AlterRule {
17517    #[inline]
17518    fn can_cast(kind: SyntaxKind) -> bool {
17519        kind == SyntaxKind::ALTER_RULE
17520    }
17521    #[inline]
17522    fn cast(syntax: SyntaxNode) -> Option<Self> {
17523        if Self::can_cast(syntax.kind()) {
17524            Some(Self { syntax })
17525        } else {
17526            None
17527        }
17528    }
17529    #[inline]
17530    fn syntax(&self) -> &SyntaxNode {
17531        &self.syntax
17532    }
17533}
17534impl AstNode for AlterSchema {
17535    #[inline]
17536    fn can_cast(kind: SyntaxKind) -> bool {
17537        kind == SyntaxKind::ALTER_SCHEMA
17538    }
17539    #[inline]
17540    fn cast(syntax: SyntaxNode) -> Option<Self> {
17541        if Self::can_cast(syntax.kind()) {
17542            Some(Self { syntax })
17543        } else {
17544            None
17545        }
17546    }
17547    #[inline]
17548    fn syntax(&self) -> &SyntaxNode {
17549        &self.syntax
17550    }
17551}
17552impl AstNode for AlterSequence {
17553    #[inline]
17554    fn can_cast(kind: SyntaxKind) -> bool {
17555        kind == SyntaxKind::ALTER_SEQUENCE
17556    }
17557    #[inline]
17558    fn cast(syntax: SyntaxNode) -> Option<Self> {
17559        if Self::can_cast(syntax.kind()) {
17560            Some(Self { syntax })
17561        } else {
17562            None
17563        }
17564    }
17565    #[inline]
17566    fn syntax(&self) -> &SyntaxNode {
17567        &self.syntax
17568    }
17569}
17570impl AstNode for AlterServer {
17571    #[inline]
17572    fn can_cast(kind: SyntaxKind) -> bool {
17573        kind == SyntaxKind::ALTER_SERVER
17574    }
17575    #[inline]
17576    fn cast(syntax: SyntaxNode) -> Option<Self> {
17577        if Self::can_cast(syntax.kind()) {
17578            Some(Self { syntax })
17579        } else {
17580            None
17581        }
17582    }
17583    #[inline]
17584    fn syntax(&self) -> &SyntaxNode {
17585        &self.syntax
17586    }
17587}
17588impl AstNode for AlterSetStatistics {
17589    #[inline]
17590    fn can_cast(kind: SyntaxKind) -> bool {
17591        kind == SyntaxKind::ALTER_SET_STATISTICS
17592    }
17593    #[inline]
17594    fn cast(syntax: SyntaxNode) -> Option<Self> {
17595        if Self::can_cast(syntax.kind()) {
17596            Some(Self { syntax })
17597        } else {
17598            None
17599        }
17600    }
17601    #[inline]
17602    fn syntax(&self) -> &SyntaxNode {
17603        &self.syntax
17604    }
17605}
17606impl AstNode for AlterStatistics {
17607    #[inline]
17608    fn can_cast(kind: SyntaxKind) -> bool {
17609        kind == SyntaxKind::ALTER_STATISTICS
17610    }
17611    #[inline]
17612    fn cast(syntax: SyntaxNode) -> Option<Self> {
17613        if Self::can_cast(syntax.kind()) {
17614            Some(Self { syntax })
17615        } else {
17616            None
17617        }
17618    }
17619    #[inline]
17620    fn syntax(&self) -> &SyntaxNode {
17621        &self.syntax
17622    }
17623}
17624impl AstNode for AlterSubscription {
17625    #[inline]
17626    fn can_cast(kind: SyntaxKind) -> bool {
17627        kind == SyntaxKind::ALTER_SUBSCRIPTION
17628    }
17629    #[inline]
17630    fn cast(syntax: SyntaxNode) -> Option<Self> {
17631        if Self::can_cast(syntax.kind()) {
17632            Some(Self { syntax })
17633        } else {
17634            None
17635        }
17636    }
17637    #[inline]
17638    fn syntax(&self) -> &SyntaxNode {
17639        &self.syntax
17640    }
17641}
17642impl AstNode for AlterSystem {
17643    #[inline]
17644    fn can_cast(kind: SyntaxKind) -> bool {
17645        kind == SyntaxKind::ALTER_SYSTEM
17646    }
17647    #[inline]
17648    fn cast(syntax: SyntaxNode) -> Option<Self> {
17649        if Self::can_cast(syntax.kind()) {
17650            Some(Self { syntax })
17651        } else {
17652            None
17653        }
17654    }
17655    #[inline]
17656    fn syntax(&self) -> &SyntaxNode {
17657        &self.syntax
17658    }
17659}
17660impl AstNode for AlterTable {
17661    #[inline]
17662    fn can_cast(kind: SyntaxKind) -> bool {
17663        kind == SyntaxKind::ALTER_TABLE
17664    }
17665    #[inline]
17666    fn cast(syntax: SyntaxNode) -> Option<Self> {
17667        if Self::can_cast(syntax.kind()) {
17668            Some(Self { syntax })
17669        } else {
17670            None
17671        }
17672    }
17673    #[inline]
17674    fn syntax(&self) -> &SyntaxNode {
17675        &self.syntax
17676    }
17677}
17678impl AstNode for AlterTablespace {
17679    #[inline]
17680    fn can_cast(kind: SyntaxKind) -> bool {
17681        kind == SyntaxKind::ALTER_TABLESPACE
17682    }
17683    #[inline]
17684    fn cast(syntax: SyntaxNode) -> Option<Self> {
17685        if Self::can_cast(syntax.kind()) {
17686            Some(Self { syntax })
17687        } else {
17688            None
17689        }
17690    }
17691    #[inline]
17692    fn syntax(&self) -> &SyntaxNode {
17693        &self.syntax
17694    }
17695}
17696impl AstNode for AlterTextSearchConfiguration {
17697    #[inline]
17698    fn can_cast(kind: SyntaxKind) -> bool {
17699        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
17700    }
17701    #[inline]
17702    fn cast(syntax: SyntaxNode) -> Option<Self> {
17703        if Self::can_cast(syntax.kind()) {
17704            Some(Self { syntax })
17705        } else {
17706            None
17707        }
17708    }
17709    #[inline]
17710    fn syntax(&self) -> &SyntaxNode {
17711        &self.syntax
17712    }
17713}
17714impl AstNode for AlterTextSearchDictionary {
17715    #[inline]
17716    fn can_cast(kind: SyntaxKind) -> bool {
17717        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
17718    }
17719    #[inline]
17720    fn cast(syntax: SyntaxNode) -> Option<Self> {
17721        if Self::can_cast(syntax.kind()) {
17722            Some(Self { syntax })
17723        } else {
17724            None
17725        }
17726    }
17727    #[inline]
17728    fn syntax(&self) -> &SyntaxNode {
17729        &self.syntax
17730    }
17731}
17732impl AstNode for AlterTextSearchParser {
17733    #[inline]
17734    fn can_cast(kind: SyntaxKind) -> bool {
17735        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
17736    }
17737    #[inline]
17738    fn cast(syntax: SyntaxNode) -> Option<Self> {
17739        if Self::can_cast(syntax.kind()) {
17740            Some(Self { syntax })
17741        } else {
17742            None
17743        }
17744    }
17745    #[inline]
17746    fn syntax(&self) -> &SyntaxNode {
17747        &self.syntax
17748    }
17749}
17750impl AstNode for AlterTextSearchTemplate {
17751    #[inline]
17752    fn can_cast(kind: SyntaxKind) -> bool {
17753        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
17754    }
17755    #[inline]
17756    fn cast(syntax: SyntaxNode) -> Option<Self> {
17757        if Self::can_cast(syntax.kind()) {
17758            Some(Self { syntax })
17759        } else {
17760            None
17761        }
17762    }
17763    #[inline]
17764    fn syntax(&self) -> &SyntaxNode {
17765        &self.syntax
17766    }
17767}
17768impl AstNode for AlterTrigger {
17769    #[inline]
17770    fn can_cast(kind: SyntaxKind) -> bool {
17771        kind == SyntaxKind::ALTER_TRIGGER
17772    }
17773    #[inline]
17774    fn cast(syntax: SyntaxNode) -> Option<Self> {
17775        if Self::can_cast(syntax.kind()) {
17776            Some(Self { syntax })
17777        } else {
17778            None
17779        }
17780    }
17781    #[inline]
17782    fn syntax(&self) -> &SyntaxNode {
17783        &self.syntax
17784    }
17785}
17786impl AstNode for AlterType {
17787    #[inline]
17788    fn can_cast(kind: SyntaxKind) -> bool {
17789        kind == SyntaxKind::ALTER_TYPE
17790    }
17791    #[inline]
17792    fn cast(syntax: SyntaxNode) -> Option<Self> {
17793        if Self::can_cast(syntax.kind()) {
17794            Some(Self { syntax })
17795        } else {
17796            None
17797        }
17798    }
17799    #[inline]
17800    fn syntax(&self) -> &SyntaxNode {
17801        &self.syntax
17802    }
17803}
17804impl AstNode for AlterUser {
17805    #[inline]
17806    fn can_cast(kind: SyntaxKind) -> bool {
17807        kind == SyntaxKind::ALTER_USER
17808    }
17809    #[inline]
17810    fn cast(syntax: SyntaxNode) -> Option<Self> {
17811        if Self::can_cast(syntax.kind()) {
17812            Some(Self { syntax })
17813        } else {
17814            None
17815        }
17816    }
17817    #[inline]
17818    fn syntax(&self) -> &SyntaxNode {
17819        &self.syntax
17820    }
17821}
17822impl AstNode for AlterUserMapping {
17823    #[inline]
17824    fn can_cast(kind: SyntaxKind) -> bool {
17825        kind == SyntaxKind::ALTER_USER_MAPPING
17826    }
17827    #[inline]
17828    fn cast(syntax: SyntaxNode) -> Option<Self> {
17829        if Self::can_cast(syntax.kind()) {
17830            Some(Self { syntax })
17831        } else {
17832            None
17833        }
17834    }
17835    #[inline]
17836    fn syntax(&self) -> &SyntaxNode {
17837        &self.syntax
17838    }
17839}
17840impl AstNode for AlterView {
17841    #[inline]
17842    fn can_cast(kind: SyntaxKind) -> bool {
17843        kind == SyntaxKind::ALTER_VIEW
17844    }
17845    #[inline]
17846    fn cast(syntax: SyntaxNode) -> Option<Self> {
17847        if Self::can_cast(syntax.kind()) {
17848            Some(Self { syntax })
17849        } else {
17850            None
17851        }
17852    }
17853    #[inline]
17854    fn syntax(&self) -> &SyntaxNode {
17855        &self.syntax
17856    }
17857}
17858impl AstNode for Analyze {
17859    #[inline]
17860    fn can_cast(kind: SyntaxKind) -> bool {
17861        kind == SyntaxKind::ANALYZE
17862    }
17863    #[inline]
17864    fn cast(syntax: SyntaxNode) -> Option<Self> {
17865        if Self::can_cast(syntax.kind()) {
17866            Some(Self { syntax })
17867        } else {
17868            None
17869        }
17870    }
17871    #[inline]
17872    fn syntax(&self) -> &SyntaxNode {
17873        &self.syntax
17874    }
17875}
17876impl AstNode for AnyFn {
17877    #[inline]
17878    fn can_cast(kind: SyntaxKind) -> bool {
17879        kind == SyntaxKind::ANY_FN
17880    }
17881    #[inline]
17882    fn cast(syntax: SyntaxNode) -> Option<Self> {
17883        if Self::can_cast(syntax.kind()) {
17884            Some(Self { syntax })
17885        } else {
17886            None
17887        }
17888    }
17889    #[inline]
17890    fn syntax(&self) -> &SyntaxNode {
17891        &self.syntax
17892    }
17893}
17894impl AstNode for Arg {
17895    #[inline]
17896    fn can_cast(kind: SyntaxKind) -> bool {
17897        kind == SyntaxKind::ARG
17898    }
17899    #[inline]
17900    fn cast(syntax: SyntaxNode) -> Option<Self> {
17901        if Self::can_cast(syntax.kind()) {
17902            Some(Self { syntax })
17903        } else {
17904            None
17905        }
17906    }
17907    #[inline]
17908    fn syntax(&self) -> &SyntaxNode {
17909        &self.syntax
17910    }
17911}
17912impl AstNode for ArgList {
17913    #[inline]
17914    fn can_cast(kind: SyntaxKind) -> bool {
17915        kind == SyntaxKind::ARG_LIST
17916    }
17917    #[inline]
17918    fn cast(syntax: SyntaxNode) -> Option<Self> {
17919        if Self::can_cast(syntax.kind()) {
17920            Some(Self { syntax })
17921        } else {
17922            None
17923        }
17924    }
17925    #[inline]
17926    fn syntax(&self) -> &SyntaxNode {
17927        &self.syntax
17928    }
17929}
17930impl AstNode for ArrayExpr {
17931    #[inline]
17932    fn can_cast(kind: SyntaxKind) -> bool {
17933        kind == SyntaxKind::ARRAY_EXPR
17934    }
17935    #[inline]
17936    fn cast(syntax: SyntaxNode) -> Option<Self> {
17937        if Self::can_cast(syntax.kind()) {
17938            Some(Self { syntax })
17939        } else {
17940            None
17941        }
17942    }
17943    #[inline]
17944    fn syntax(&self) -> &SyntaxNode {
17945        &self.syntax
17946    }
17947}
17948impl AstNode for ArrayType {
17949    #[inline]
17950    fn can_cast(kind: SyntaxKind) -> bool {
17951        kind == SyntaxKind::ARRAY_TYPE
17952    }
17953    #[inline]
17954    fn cast(syntax: SyntaxNode) -> Option<Self> {
17955        if Self::can_cast(syntax.kind()) {
17956            Some(Self { syntax })
17957        } else {
17958            None
17959        }
17960    }
17961    #[inline]
17962    fn syntax(&self) -> &SyntaxNode {
17963        &self.syntax
17964    }
17965}
17966impl AstNode for AsFuncOption {
17967    #[inline]
17968    fn can_cast(kind: SyntaxKind) -> bool {
17969        kind == SyntaxKind::AS_FUNC_OPTION
17970    }
17971    #[inline]
17972    fn cast(syntax: SyntaxNode) -> Option<Self> {
17973        if Self::can_cast(syntax.kind()) {
17974            Some(Self { syntax })
17975        } else {
17976            None
17977        }
17978    }
17979    #[inline]
17980    fn syntax(&self) -> &SyntaxNode {
17981        &self.syntax
17982    }
17983}
17984impl AstNode for AsName {
17985    #[inline]
17986    fn can_cast(kind: SyntaxKind) -> bool {
17987        kind == SyntaxKind::AS_NAME
17988    }
17989    #[inline]
17990    fn cast(syntax: SyntaxNode) -> Option<Self> {
17991        if Self::can_cast(syntax.kind()) {
17992            Some(Self { syntax })
17993        } else {
17994            None
17995        }
17996    }
17997    #[inline]
17998    fn syntax(&self) -> &SyntaxNode {
17999        &self.syntax
18000    }
18001}
18002impl AstNode for AtTimeZone {
18003    #[inline]
18004    fn can_cast(kind: SyntaxKind) -> bool {
18005        kind == SyntaxKind::AT_TIME_ZONE
18006    }
18007    #[inline]
18008    fn cast(syntax: SyntaxNode) -> Option<Self> {
18009        if Self::can_cast(syntax.kind()) {
18010            Some(Self { syntax })
18011        } else {
18012            None
18013        }
18014    }
18015    #[inline]
18016    fn syntax(&self) -> &SyntaxNode {
18017        &self.syntax
18018    }
18019}
18020impl AstNode for AttachPartition {
18021    #[inline]
18022    fn can_cast(kind: SyntaxKind) -> bool {
18023        kind == SyntaxKind::ATTACH_PARTITION
18024    }
18025    #[inline]
18026    fn cast(syntax: SyntaxNode) -> Option<Self> {
18027        if Self::can_cast(syntax.kind()) {
18028            Some(Self { syntax })
18029        } else {
18030            None
18031        }
18032    }
18033    #[inline]
18034    fn syntax(&self) -> &SyntaxNode {
18035        &self.syntax
18036    }
18037}
18038impl AstNode for AttributeList {
18039    #[inline]
18040    fn can_cast(kind: SyntaxKind) -> bool {
18041        kind == SyntaxKind::ATTRIBUTE_LIST
18042    }
18043    #[inline]
18044    fn cast(syntax: SyntaxNode) -> Option<Self> {
18045        if Self::can_cast(syntax.kind()) {
18046            Some(Self { syntax })
18047        } else {
18048            None
18049        }
18050    }
18051    #[inline]
18052    fn syntax(&self) -> &SyntaxNode {
18053        &self.syntax
18054    }
18055}
18056impl AstNode for AttributeOption {
18057    #[inline]
18058    fn can_cast(kind: SyntaxKind) -> bool {
18059        kind == SyntaxKind::ATTRIBUTE_OPTION
18060    }
18061    #[inline]
18062    fn cast(syntax: SyntaxNode) -> Option<Self> {
18063        if Self::can_cast(syntax.kind()) {
18064            Some(Self { syntax })
18065        } else {
18066            None
18067        }
18068    }
18069    #[inline]
18070    fn syntax(&self) -> &SyntaxNode {
18071        &self.syntax
18072    }
18073}
18074impl AstNode for AttributeValue {
18075    #[inline]
18076    fn can_cast(kind: SyntaxKind) -> bool {
18077        kind == SyntaxKind::ATTRIBUTE_VALUE
18078    }
18079    #[inline]
18080    fn cast(syntax: SyntaxNode) -> Option<Self> {
18081        if Self::can_cast(syntax.kind()) {
18082            Some(Self { syntax })
18083        } else {
18084            None
18085        }
18086    }
18087    #[inline]
18088    fn syntax(&self) -> &SyntaxNode {
18089        &self.syntax
18090    }
18091}
18092impl AstNode for Begin {
18093    #[inline]
18094    fn can_cast(kind: SyntaxKind) -> bool {
18095        kind == SyntaxKind::BEGIN
18096    }
18097    #[inline]
18098    fn cast(syntax: SyntaxNode) -> Option<Self> {
18099        if Self::can_cast(syntax.kind()) {
18100            Some(Self { syntax })
18101        } else {
18102            None
18103        }
18104    }
18105    #[inline]
18106    fn syntax(&self) -> &SyntaxNode {
18107        &self.syntax
18108    }
18109}
18110impl AstNode for BeginFuncOption {
18111    #[inline]
18112    fn can_cast(kind: SyntaxKind) -> bool {
18113        kind == SyntaxKind::BEGIN_FUNC_OPTION
18114    }
18115    #[inline]
18116    fn cast(syntax: SyntaxNode) -> Option<Self> {
18117        if Self::can_cast(syntax.kind()) {
18118            Some(Self { syntax })
18119        } else {
18120            None
18121        }
18122    }
18123    #[inline]
18124    fn syntax(&self) -> &SyntaxNode {
18125        &self.syntax
18126    }
18127}
18128impl AstNode for BeginFuncOptionList {
18129    #[inline]
18130    fn can_cast(kind: SyntaxKind) -> bool {
18131        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
18132    }
18133    #[inline]
18134    fn cast(syntax: SyntaxNode) -> Option<Self> {
18135        if Self::can_cast(syntax.kind()) {
18136            Some(Self { syntax })
18137        } else {
18138            None
18139        }
18140    }
18141    #[inline]
18142    fn syntax(&self) -> &SyntaxNode {
18143        &self.syntax
18144    }
18145}
18146impl AstNode for BetweenExpr {
18147    #[inline]
18148    fn can_cast(kind: SyntaxKind) -> bool {
18149        kind == SyntaxKind::BETWEEN_EXPR
18150    }
18151    #[inline]
18152    fn cast(syntax: SyntaxNode) -> Option<Self> {
18153        if Self::can_cast(syntax.kind()) {
18154            Some(Self { syntax })
18155        } else {
18156            None
18157        }
18158    }
18159    #[inline]
18160    fn syntax(&self) -> &SyntaxNode {
18161        &self.syntax
18162    }
18163}
18164impl AstNode for BinExpr {
18165    #[inline]
18166    fn can_cast(kind: SyntaxKind) -> bool {
18167        kind == SyntaxKind::BIN_EXPR
18168    }
18169    #[inline]
18170    fn cast(syntax: SyntaxNode) -> Option<Self> {
18171        if Self::can_cast(syntax.kind()) {
18172            Some(Self { syntax })
18173        } else {
18174            None
18175        }
18176    }
18177    #[inline]
18178    fn syntax(&self) -> &SyntaxNode {
18179        &self.syntax
18180    }
18181}
18182impl AstNode for BitType {
18183    #[inline]
18184    fn can_cast(kind: SyntaxKind) -> bool {
18185        kind == SyntaxKind::BIT_TYPE
18186    }
18187    #[inline]
18188    fn cast(syntax: SyntaxNode) -> Option<Self> {
18189        if Self::can_cast(syntax.kind()) {
18190            Some(Self { syntax })
18191        } else {
18192            None
18193        }
18194    }
18195    #[inline]
18196    fn syntax(&self) -> &SyntaxNode {
18197        &self.syntax
18198    }
18199}
18200impl AstNode for Call {
18201    #[inline]
18202    fn can_cast(kind: SyntaxKind) -> bool {
18203        kind == SyntaxKind::CALL
18204    }
18205    #[inline]
18206    fn cast(syntax: SyntaxNode) -> Option<Self> {
18207        if Self::can_cast(syntax.kind()) {
18208            Some(Self { syntax })
18209        } else {
18210            None
18211        }
18212    }
18213    #[inline]
18214    fn syntax(&self) -> &SyntaxNode {
18215        &self.syntax
18216    }
18217}
18218impl AstNode for CallExpr {
18219    #[inline]
18220    fn can_cast(kind: SyntaxKind) -> bool {
18221        kind == SyntaxKind::CALL_EXPR
18222    }
18223    #[inline]
18224    fn cast(syntax: SyntaxNode) -> Option<Self> {
18225        if Self::can_cast(syntax.kind()) {
18226            Some(Self { syntax })
18227        } else {
18228            None
18229        }
18230    }
18231    #[inline]
18232    fn syntax(&self) -> &SyntaxNode {
18233        &self.syntax
18234    }
18235}
18236impl AstNode for Cascade {
18237    #[inline]
18238    fn can_cast(kind: SyntaxKind) -> bool {
18239        kind == SyntaxKind::CASCADE
18240    }
18241    #[inline]
18242    fn cast(syntax: SyntaxNode) -> Option<Self> {
18243        if Self::can_cast(syntax.kind()) {
18244            Some(Self { syntax })
18245        } else {
18246            None
18247        }
18248    }
18249    #[inline]
18250    fn syntax(&self) -> &SyntaxNode {
18251        &self.syntax
18252    }
18253}
18254impl AstNode for CaseExpr {
18255    #[inline]
18256    fn can_cast(kind: SyntaxKind) -> bool {
18257        kind == SyntaxKind::CASE_EXPR
18258    }
18259    #[inline]
18260    fn cast(syntax: SyntaxNode) -> Option<Self> {
18261        if Self::can_cast(syntax.kind()) {
18262            Some(Self { syntax })
18263        } else {
18264            None
18265        }
18266    }
18267    #[inline]
18268    fn syntax(&self) -> &SyntaxNode {
18269        &self.syntax
18270    }
18271}
18272impl AstNode for CastExpr {
18273    #[inline]
18274    fn can_cast(kind: SyntaxKind) -> bool {
18275        kind == SyntaxKind::CAST_EXPR
18276    }
18277    #[inline]
18278    fn cast(syntax: SyntaxNode) -> Option<Self> {
18279        if Self::can_cast(syntax.kind()) {
18280            Some(Self { syntax })
18281        } else {
18282            None
18283        }
18284    }
18285    #[inline]
18286    fn syntax(&self) -> &SyntaxNode {
18287        &self.syntax
18288    }
18289}
18290impl AstNode for CastSig {
18291    #[inline]
18292    fn can_cast(kind: SyntaxKind) -> bool {
18293        kind == SyntaxKind::CAST_SIG
18294    }
18295    #[inline]
18296    fn cast(syntax: SyntaxNode) -> Option<Self> {
18297        if Self::can_cast(syntax.kind()) {
18298            Some(Self { syntax })
18299        } else {
18300            None
18301        }
18302    }
18303    #[inline]
18304    fn syntax(&self) -> &SyntaxNode {
18305        &self.syntax
18306    }
18307}
18308impl AstNode for CharType {
18309    #[inline]
18310    fn can_cast(kind: SyntaxKind) -> bool {
18311        kind == SyntaxKind::CHAR_TYPE
18312    }
18313    #[inline]
18314    fn cast(syntax: SyntaxNode) -> Option<Self> {
18315        if Self::can_cast(syntax.kind()) {
18316            Some(Self { syntax })
18317        } else {
18318            None
18319        }
18320    }
18321    #[inline]
18322    fn syntax(&self) -> &SyntaxNode {
18323        &self.syntax
18324    }
18325}
18326impl AstNode for CheckConstraint {
18327    #[inline]
18328    fn can_cast(kind: SyntaxKind) -> bool {
18329        kind == SyntaxKind::CHECK_CONSTRAINT
18330    }
18331    #[inline]
18332    fn cast(syntax: SyntaxNode) -> Option<Self> {
18333        if Self::can_cast(syntax.kind()) {
18334            Some(Self { syntax })
18335        } else {
18336            None
18337        }
18338    }
18339    #[inline]
18340    fn syntax(&self) -> &SyntaxNode {
18341        &self.syntax
18342    }
18343}
18344impl AstNode for Checkpoint {
18345    #[inline]
18346    fn can_cast(kind: SyntaxKind) -> bool {
18347        kind == SyntaxKind::CHECKPOINT
18348    }
18349    #[inline]
18350    fn cast(syntax: SyntaxNode) -> Option<Self> {
18351        if Self::can_cast(syntax.kind()) {
18352            Some(Self { syntax })
18353        } else {
18354            None
18355        }
18356    }
18357    #[inline]
18358    fn syntax(&self) -> &SyntaxNode {
18359        &self.syntax
18360    }
18361}
18362impl AstNode for Close {
18363    #[inline]
18364    fn can_cast(kind: SyntaxKind) -> bool {
18365        kind == SyntaxKind::CLOSE
18366    }
18367    #[inline]
18368    fn cast(syntax: SyntaxNode) -> Option<Self> {
18369        if Self::can_cast(syntax.kind()) {
18370            Some(Self { syntax })
18371        } else {
18372            None
18373        }
18374    }
18375    #[inline]
18376    fn syntax(&self) -> &SyntaxNode {
18377        &self.syntax
18378    }
18379}
18380impl AstNode for Cluster {
18381    #[inline]
18382    fn can_cast(kind: SyntaxKind) -> bool {
18383        kind == SyntaxKind::CLUSTER
18384    }
18385    #[inline]
18386    fn cast(syntax: SyntaxNode) -> Option<Self> {
18387        if Self::can_cast(syntax.kind()) {
18388            Some(Self { syntax })
18389        } else {
18390            None
18391        }
18392    }
18393    #[inline]
18394    fn syntax(&self) -> &SyntaxNode {
18395        &self.syntax
18396    }
18397}
18398impl AstNode for ClusterOn {
18399    #[inline]
18400    fn can_cast(kind: SyntaxKind) -> bool {
18401        kind == SyntaxKind::CLUSTER_ON
18402    }
18403    #[inline]
18404    fn cast(syntax: SyntaxNode) -> Option<Self> {
18405        if Self::can_cast(syntax.kind()) {
18406            Some(Self { syntax })
18407        } else {
18408            None
18409        }
18410    }
18411    #[inline]
18412    fn syntax(&self) -> &SyntaxNode {
18413        &self.syntax
18414    }
18415}
18416impl AstNode for Collate {
18417    #[inline]
18418    fn can_cast(kind: SyntaxKind) -> bool {
18419        kind == SyntaxKind::COLLATE
18420    }
18421    #[inline]
18422    fn cast(syntax: SyntaxNode) -> Option<Self> {
18423        if Self::can_cast(syntax.kind()) {
18424            Some(Self { syntax })
18425        } else {
18426            None
18427        }
18428    }
18429    #[inline]
18430    fn syntax(&self) -> &SyntaxNode {
18431        &self.syntax
18432    }
18433}
18434impl AstNode for ColonColon {
18435    #[inline]
18436    fn can_cast(kind: SyntaxKind) -> bool {
18437        kind == SyntaxKind::COLON_COLON
18438    }
18439    #[inline]
18440    fn cast(syntax: SyntaxNode) -> Option<Self> {
18441        if Self::can_cast(syntax.kind()) {
18442            Some(Self { syntax })
18443        } else {
18444            None
18445        }
18446    }
18447    #[inline]
18448    fn syntax(&self) -> &SyntaxNode {
18449        &self.syntax
18450    }
18451}
18452impl AstNode for ColonEq {
18453    #[inline]
18454    fn can_cast(kind: SyntaxKind) -> bool {
18455        kind == SyntaxKind::COLON_EQ
18456    }
18457    #[inline]
18458    fn cast(syntax: SyntaxNode) -> Option<Self> {
18459        if Self::can_cast(syntax.kind()) {
18460            Some(Self { syntax })
18461        } else {
18462            None
18463        }
18464    }
18465    #[inline]
18466    fn syntax(&self) -> &SyntaxNode {
18467        &self.syntax
18468    }
18469}
18470impl AstNode for Column {
18471    #[inline]
18472    fn can_cast(kind: SyntaxKind) -> bool {
18473        kind == SyntaxKind::COLUMN
18474    }
18475    #[inline]
18476    fn cast(syntax: SyntaxNode) -> Option<Self> {
18477        if Self::can_cast(syntax.kind()) {
18478            Some(Self { syntax })
18479        } else {
18480            None
18481        }
18482    }
18483    #[inline]
18484    fn syntax(&self) -> &SyntaxNode {
18485        &self.syntax
18486    }
18487}
18488impl AstNode for ColumnList {
18489    #[inline]
18490    fn can_cast(kind: SyntaxKind) -> bool {
18491        kind == SyntaxKind::COLUMN_LIST
18492    }
18493    #[inline]
18494    fn cast(syntax: SyntaxNode) -> Option<Self> {
18495        if Self::can_cast(syntax.kind()) {
18496            Some(Self { syntax })
18497        } else {
18498            None
18499        }
18500    }
18501    #[inline]
18502    fn syntax(&self) -> &SyntaxNode {
18503        &self.syntax
18504    }
18505}
18506impl AstNode for CommentOn {
18507    #[inline]
18508    fn can_cast(kind: SyntaxKind) -> bool {
18509        kind == SyntaxKind::COMMENT_ON
18510    }
18511    #[inline]
18512    fn cast(syntax: SyntaxNode) -> Option<Self> {
18513        if Self::can_cast(syntax.kind()) {
18514            Some(Self { syntax })
18515        } else {
18516            None
18517        }
18518    }
18519    #[inline]
18520    fn syntax(&self) -> &SyntaxNode {
18521        &self.syntax
18522    }
18523}
18524impl AstNode for Commit {
18525    #[inline]
18526    fn can_cast(kind: SyntaxKind) -> bool {
18527        kind == SyntaxKind::COMMIT
18528    }
18529    #[inline]
18530    fn cast(syntax: SyntaxNode) -> Option<Self> {
18531        if Self::can_cast(syntax.kind()) {
18532            Some(Self { syntax })
18533        } else {
18534            None
18535        }
18536    }
18537    #[inline]
18538    fn syntax(&self) -> &SyntaxNode {
18539        &self.syntax
18540    }
18541}
18542impl AstNode for CompoundSelect {
18543    #[inline]
18544    fn can_cast(kind: SyntaxKind) -> bool {
18545        kind == SyntaxKind::COMPOUND_SELECT
18546    }
18547    #[inline]
18548    fn cast(syntax: SyntaxNode) -> Option<Self> {
18549        if Self::can_cast(syntax.kind()) {
18550            Some(Self { syntax })
18551        } else {
18552            None
18553        }
18554    }
18555    #[inline]
18556    fn syntax(&self) -> &SyntaxNode {
18557        &self.syntax
18558    }
18559}
18560impl AstNode for CompressionMethod {
18561    #[inline]
18562    fn can_cast(kind: SyntaxKind) -> bool {
18563        kind == SyntaxKind::COMPRESSION_METHOD
18564    }
18565    #[inline]
18566    fn cast(syntax: SyntaxNode) -> Option<Self> {
18567        if Self::can_cast(syntax.kind()) {
18568            Some(Self { syntax })
18569        } else {
18570            None
18571        }
18572    }
18573    #[inline]
18574    fn syntax(&self) -> &SyntaxNode {
18575        &self.syntax
18576    }
18577}
18578impl AstNode for ConflictDoNothing {
18579    #[inline]
18580    fn can_cast(kind: SyntaxKind) -> bool {
18581        kind == SyntaxKind::CONFLICT_DO_NOTHING
18582    }
18583    #[inline]
18584    fn cast(syntax: SyntaxNode) -> Option<Self> {
18585        if Self::can_cast(syntax.kind()) {
18586            Some(Self { syntax })
18587        } else {
18588            None
18589        }
18590    }
18591    #[inline]
18592    fn syntax(&self) -> &SyntaxNode {
18593        &self.syntax
18594    }
18595}
18596impl AstNode for ConflictDoUpdateSet {
18597    #[inline]
18598    fn can_cast(kind: SyntaxKind) -> bool {
18599        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
18600    }
18601    #[inline]
18602    fn cast(syntax: SyntaxNode) -> Option<Self> {
18603        if Self::can_cast(syntax.kind()) {
18604            Some(Self { syntax })
18605        } else {
18606            None
18607        }
18608    }
18609    #[inline]
18610    fn syntax(&self) -> &SyntaxNode {
18611        &self.syntax
18612    }
18613}
18614impl AstNode for ConflictIndexItem {
18615    #[inline]
18616    fn can_cast(kind: SyntaxKind) -> bool {
18617        kind == SyntaxKind::CONFLICT_INDEX_ITEM
18618    }
18619    #[inline]
18620    fn cast(syntax: SyntaxNode) -> Option<Self> {
18621        if Self::can_cast(syntax.kind()) {
18622            Some(Self { syntax })
18623        } else {
18624            None
18625        }
18626    }
18627    #[inline]
18628    fn syntax(&self) -> &SyntaxNode {
18629        &self.syntax
18630    }
18631}
18632impl AstNode for ConflictIndexItemList {
18633    #[inline]
18634    fn can_cast(kind: SyntaxKind) -> bool {
18635        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
18636    }
18637    #[inline]
18638    fn cast(syntax: SyntaxNode) -> Option<Self> {
18639        if Self::can_cast(syntax.kind()) {
18640            Some(Self { syntax })
18641        } else {
18642            None
18643        }
18644    }
18645    #[inline]
18646    fn syntax(&self) -> &SyntaxNode {
18647        &self.syntax
18648    }
18649}
18650impl AstNode for ConflictOnConstraint {
18651    #[inline]
18652    fn can_cast(kind: SyntaxKind) -> bool {
18653        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
18654    }
18655    #[inline]
18656    fn cast(syntax: SyntaxNode) -> Option<Self> {
18657        if Self::can_cast(syntax.kind()) {
18658            Some(Self { syntax })
18659        } else {
18660            None
18661        }
18662    }
18663    #[inline]
18664    fn syntax(&self) -> &SyntaxNode {
18665        &self.syntax
18666    }
18667}
18668impl AstNode for ConflictOnIndex {
18669    #[inline]
18670    fn can_cast(kind: SyntaxKind) -> bool {
18671        kind == SyntaxKind::CONFLICT_ON_INDEX
18672    }
18673    #[inline]
18674    fn cast(syntax: SyntaxNode) -> Option<Self> {
18675        if Self::can_cast(syntax.kind()) {
18676            Some(Self { syntax })
18677        } else {
18678            None
18679        }
18680    }
18681    #[inline]
18682    fn syntax(&self) -> &SyntaxNode {
18683        &self.syntax
18684    }
18685}
18686impl AstNode for ConstraintExclusion {
18687    #[inline]
18688    fn can_cast(kind: SyntaxKind) -> bool {
18689        kind == SyntaxKind::CONSTRAINT_EXCLUSION
18690    }
18691    #[inline]
18692    fn cast(syntax: SyntaxNode) -> Option<Self> {
18693        if Self::can_cast(syntax.kind()) {
18694            Some(Self { syntax })
18695        } else {
18696            None
18697        }
18698    }
18699    #[inline]
18700    fn syntax(&self) -> &SyntaxNode {
18701        &self.syntax
18702    }
18703}
18704impl AstNode for ConstraintExclusionList {
18705    #[inline]
18706    fn can_cast(kind: SyntaxKind) -> bool {
18707        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
18708    }
18709    #[inline]
18710    fn cast(syntax: SyntaxNode) -> Option<Self> {
18711        if Self::can_cast(syntax.kind()) {
18712            Some(Self { syntax })
18713        } else {
18714            None
18715        }
18716    }
18717    #[inline]
18718    fn syntax(&self) -> &SyntaxNode {
18719        &self.syntax
18720    }
18721}
18722impl AstNode for ConstraintIncludeClause {
18723    #[inline]
18724    fn can_cast(kind: SyntaxKind) -> bool {
18725        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
18726    }
18727    #[inline]
18728    fn cast(syntax: SyntaxNode) -> Option<Self> {
18729        if Self::can_cast(syntax.kind()) {
18730            Some(Self { syntax })
18731        } else {
18732            None
18733        }
18734    }
18735    #[inline]
18736    fn syntax(&self) -> &SyntaxNode {
18737        &self.syntax
18738    }
18739}
18740impl AstNode for ConstraintIndexMethod {
18741    #[inline]
18742    fn can_cast(kind: SyntaxKind) -> bool {
18743        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
18744    }
18745    #[inline]
18746    fn cast(syntax: SyntaxNode) -> Option<Self> {
18747        if Self::can_cast(syntax.kind()) {
18748            Some(Self { syntax })
18749        } else {
18750            None
18751        }
18752    }
18753    #[inline]
18754    fn syntax(&self) -> &SyntaxNode {
18755        &self.syntax
18756    }
18757}
18758impl AstNode for ConstraintIndexTablespace {
18759    #[inline]
18760    fn can_cast(kind: SyntaxKind) -> bool {
18761        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
18762    }
18763    #[inline]
18764    fn cast(syntax: SyntaxNode) -> Option<Self> {
18765        if Self::can_cast(syntax.kind()) {
18766            Some(Self { syntax })
18767        } else {
18768            None
18769        }
18770    }
18771    #[inline]
18772    fn syntax(&self) -> &SyntaxNode {
18773        &self.syntax
18774    }
18775}
18776impl AstNode for Copy {
18777    #[inline]
18778    fn can_cast(kind: SyntaxKind) -> bool {
18779        kind == SyntaxKind::COPY
18780    }
18781    #[inline]
18782    fn cast(syntax: SyntaxNode) -> Option<Self> {
18783        if Self::can_cast(syntax.kind()) {
18784            Some(Self { syntax })
18785        } else {
18786            None
18787        }
18788    }
18789    #[inline]
18790    fn syntax(&self) -> &SyntaxNode {
18791        &self.syntax
18792    }
18793}
18794impl AstNode for CostFuncOption {
18795    #[inline]
18796    fn can_cast(kind: SyntaxKind) -> bool {
18797        kind == SyntaxKind::COST_FUNC_OPTION
18798    }
18799    #[inline]
18800    fn cast(syntax: SyntaxNode) -> Option<Self> {
18801        if Self::can_cast(syntax.kind()) {
18802            Some(Self { syntax })
18803        } else {
18804            None
18805        }
18806    }
18807    #[inline]
18808    fn syntax(&self) -> &SyntaxNode {
18809        &self.syntax
18810    }
18811}
18812impl AstNode for CreateAccessMethod {
18813    #[inline]
18814    fn can_cast(kind: SyntaxKind) -> bool {
18815        kind == SyntaxKind::CREATE_ACCESS_METHOD
18816    }
18817    #[inline]
18818    fn cast(syntax: SyntaxNode) -> Option<Self> {
18819        if Self::can_cast(syntax.kind()) {
18820            Some(Self { syntax })
18821        } else {
18822            None
18823        }
18824    }
18825    #[inline]
18826    fn syntax(&self) -> &SyntaxNode {
18827        &self.syntax
18828    }
18829}
18830impl AstNode for CreateAggregate {
18831    #[inline]
18832    fn can_cast(kind: SyntaxKind) -> bool {
18833        kind == SyntaxKind::CREATE_AGGREGATE
18834    }
18835    #[inline]
18836    fn cast(syntax: SyntaxNode) -> Option<Self> {
18837        if Self::can_cast(syntax.kind()) {
18838            Some(Self { syntax })
18839        } else {
18840            None
18841        }
18842    }
18843    #[inline]
18844    fn syntax(&self) -> &SyntaxNode {
18845        &self.syntax
18846    }
18847}
18848impl AstNode for CreateCast {
18849    #[inline]
18850    fn can_cast(kind: SyntaxKind) -> bool {
18851        kind == SyntaxKind::CREATE_CAST
18852    }
18853    #[inline]
18854    fn cast(syntax: SyntaxNode) -> Option<Self> {
18855        if Self::can_cast(syntax.kind()) {
18856            Some(Self { syntax })
18857        } else {
18858            None
18859        }
18860    }
18861    #[inline]
18862    fn syntax(&self) -> &SyntaxNode {
18863        &self.syntax
18864    }
18865}
18866impl AstNode for CreateCollation {
18867    #[inline]
18868    fn can_cast(kind: SyntaxKind) -> bool {
18869        kind == SyntaxKind::CREATE_COLLATION
18870    }
18871    #[inline]
18872    fn cast(syntax: SyntaxNode) -> Option<Self> {
18873        if Self::can_cast(syntax.kind()) {
18874            Some(Self { syntax })
18875        } else {
18876            None
18877        }
18878    }
18879    #[inline]
18880    fn syntax(&self) -> &SyntaxNode {
18881        &self.syntax
18882    }
18883}
18884impl AstNode for CreateConversion {
18885    #[inline]
18886    fn can_cast(kind: SyntaxKind) -> bool {
18887        kind == SyntaxKind::CREATE_CONVERSION
18888    }
18889    #[inline]
18890    fn cast(syntax: SyntaxNode) -> Option<Self> {
18891        if Self::can_cast(syntax.kind()) {
18892            Some(Self { syntax })
18893        } else {
18894            None
18895        }
18896    }
18897    #[inline]
18898    fn syntax(&self) -> &SyntaxNode {
18899        &self.syntax
18900    }
18901}
18902impl AstNode for CreateDatabase {
18903    #[inline]
18904    fn can_cast(kind: SyntaxKind) -> bool {
18905        kind == SyntaxKind::CREATE_DATABASE
18906    }
18907    #[inline]
18908    fn cast(syntax: SyntaxNode) -> Option<Self> {
18909        if Self::can_cast(syntax.kind()) {
18910            Some(Self { syntax })
18911        } else {
18912            None
18913        }
18914    }
18915    #[inline]
18916    fn syntax(&self) -> &SyntaxNode {
18917        &self.syntax
18918    }
18919}
18920impl AstNode for CreateDatabaseOption {
18921    #[inline]
18922    fn can_cast(kind: SyntaxKind) -> bool {
18923        kind == SyntaxKind::CREATE_DATABASE_OPTION
18924    }
18925    #[inline]
18926    fn cast(syntax: SyntaxNode) -> Option<Self> {
18927        if Self::can_cast(syntax.kind()) {
18928            Some(Self { syntax })
18929        } else {
18930            None
18931        }
18932    }
18933    #[inline]
18934    fn syntax(&self) -> &SyntaxNode {
18935        &self.syntax
18936    }
18937}
18938impl AstNode for CreateDatabaseOptionList {
18939    #[inline]
18940    fn can_cast(kind: SyntaxKind) -> bool {
18941        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
18942    }
18943    #[inline]
18944    fn cast(syntax: SyntaxNode) -> Option<Self> {
18945        if Self::can_cast(syntax.kind()) {
18946            Some(Self { syntax })
18947        } else {
18948            None
18949        }
18950    }
18951    #[inline]
18952    fn syntax(&self) -> &SyntaxNode {
18953        &self.syntax
18954    }
18955}
18956impl AstNode for CreateDomain {
18957    #[inline]
18958    fn can_cast(kind: SyntaxKind) -> bool {
18959        kind == SyntaxKind::CREATE_DOMAIN
18960    }
18961    #[inline]
18962    fn cast(syntax: SyntaxNode) -> Option<Self> {
18963        if Self::can_cast(syntax.kind()) {
18964            Some(Self { syntax })
18965        } else {
18966            None
18967        }
18968    }
18969    #[inline]
18970    fn syntax(&self) -> &SyntaxNode {
18971        &self.syntax
18972    }
18973}
18974impl AstNode for CreateEventTrigger {
18975    #[inline]
18976    fn can_cast(kind: SyntaxKind) -> bool {
18977        kind == SyntaxKind::CREATE_EVENT_TRIGGER
18978    }
18979    #[inline]
18980    fn cast(syntax: SyntaxNode) -> Option<Self> {
18981        if Self::can_cast(syntax.kind()) {
18982            Some(Self { syntax })
18983        } else {
18984            None
18985        }
18986    }
18987    #[inline]
18988    fn syntax(&self) -> &SyntaxNode {
18989        &self.syntax
18990    }
18991}
18992impl AstNode for CreateExtension {
18993    #[inline]
18994    fn can_cast(kind: SyntaxKind) -> bool {
18995        kind == SyntaxKind::CREATE_EXTENSION
18996    }
18997    #[inline]
18998    fn cast(syntax: SyntaxNode) -> Option<Self> {
18999        if Self::can_cast(syntax.kind()) {
19000            Some(Self { syntax })
19001        } else {
19002            None
19003        }
19004    }
19005    #[inline]
19006    fn syntax(&self) -> &SyntaxNode {
19007        &self.syntax
19008    }
19009}
19010impl AstNode for CreateForeignDataWrapper {
19011    #[inline]
19012    fn can_cast(kind: SyntaxKind) -> bool {
19013        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
19014    }
19015    #[inline]
19016    fn cast(syntax: SyntaxNode) -> Option<Self> {
19017        if Self::can_cast(syntax.kind()) {
19018            Some(Self { syntax })
19019        } else {
19020            None
19021        }
19022    }
19023    #[inline]
19024    fn syntax(&self) -> &SyntaxNode {
19025        &self.syntax
19026    }
19027}
19028impl AstNode for CreateForeignTable {
19029    #[inline]
19030    fn can_cast(kind: SyntaxKind) -> bool {
19031        kind == SyntaxKind::CREATE_FOREIGN_TABLE
19032    }
19033    #[inline]
19034    fn cast(syntax: SyntaxNode) -> Option<Self> {
19035        if Self::can_cast(syntax.kind()) {
19036            Some(Self { syntax })
19037        } else {
19038            None
19039        }
19040    }
19041    #[inline]
19042    fn syntax(&self) -> &SyntaxNode {
19043        &self.syntax
19044    }
19045}
19046impl AstNode for CreateFunction {
19047    #[inline]
19048    fn can_cast(kind: SyntaxKind) -> bool {
19049        kind == SyntaxKind::CREATE_FUNCTION
19050    }
19051    #[inline]
19052    fn cast(syntax: SyntaxNode) -> Option<Self> {
19053        if Self::can_cast(syntax.kind()) {
19054            Some(Self { syntax })
19055        } else {
19056            None
19057        }
19058    }
19059    #[inline]
19060    fn syntax(&self) -> &SyntaxNode {
19061        &self.syntax
19062    }
19063}
19064impl AstNode for CreateGroup {
19065    #[inline]
19066    fn can_cast(kind: SyntaxKind) -> bool {
19067        kind == SyntaxKind::CREATE_GROUP
19068    }
19069    #[inline]
19070    fn cast(syntax: SyntaxNode) -> Option<Self> {
19071        if Self::can_cast(syntax.kind()) {
19072            Some(Self { syntax })
19073        } else {
19074            None
19075        }
19076    }
19077    #[inline]
19078    fn syntax(&self) -> &SyntaxNode {
19079        &self.syntax
19080    }
19081}
19082impl AstNode for CreateIndex {
19083    #[inline]
19084    fn can_cast(kind: SyntaxKind) -> bool {
19085        kind == SyntaxKind::CREATE_INDEX
19086    }
19087    #[inline]
19088    fn cast(syntax: SyntaxNode) -> Option<Self> {
19089        if Self::can_cast(syntax.kind()) {
19090            Some(Self { syntax })
19091        } else {
19092            None
19093        }
19094    }
19095    #[inline]
19096    fn syntax(&self) -> &SyntaxNode {
19097        &self.syntax
19098    }
19099}
19100impl AstNode for CreateLanguage {
19101    #[inline]
19102    fn can_cast(kind: SyntaxKind) -> bool {
19103        kind == SyntaxKind::CREATE_LANGUAGE
19104    }
19105    #[inline]
19106    fn cast(syntax: SyntaxNode) -> Option<Self> {
19107        if Self::can_cast(syntax.kind()) {
19108            Some(Self { syntax })
19109        } else {
19110            None
19111        }
19112    }
19113    #[inline]
19114    fn syntax(&self) -> &SyntaxNode {
19115        &self.syntax
19116    }
19117}
19118impl AstNode for CreateMaterializedView {
19119    #[inline]
19120    fn can_cast(kind: SyntaxKind) -> bool {
19121        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
19122    }
19123    #[inline]
19124    fn cast(syntax: SyntaxNode) -> Option<Self> {
19125        if Self::can_cast(syntax.kind()) {
19126            Some(Self { syntax })
19127        } else {
19128            None
19129        }
19130    }
19131    #[inline]
19132    fn syntax(&self) -> &SyntaxNode {
19133        &self.syntax
19134    }
19135}
19136impl AstNode for CreateOperator {
19137    #[inline]
19138    fn can_cast(kind: SyntaxKind) -> bool {
19139        kind == SyntaxKind::CREATE_OPERATOR
19140    }
19141    #[inline]
19142    fn cast(syntax: SyntaxNode) -> Option<Self> {
19143        if Self::can_cast(syntax.kind()) {
19144            Some(Self { syntax })
19145        } else {
19146            None
19147        }
19148    }
19149    #[inline]
19150    fn syntax(&self) -> &SyntaxNode {
19151        &self.syntax
19152    }
19153}
19154impl AstNode for CreateOperatorClass {
19155    #[inline]
19156    fn can_cast(kind: SyntaxKind) -> bool {
19157        kind == SyntaxKind::CREATE_OPERATOR_CLASS
19158    }
19159    #[inline]
19160    fn cast(syntax: SyntaxNode) -> Option<Self> {
19161        if Self::can_cast(syntax.kind()) {
19162            Some(Self { syntax })
19163        } else {
19164            None
19165        }
19166    }
19167    #[inline]
19168    fn syntax(&self) -> &SyntaxNode {
19169        &self.syntax
19170    }
19171}
19172impl AstNode for CreateOperatorFamily {
19173    #[inline]
19174    fn can_cast(kind: SyntaxKind) -> bool {
19175        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
19176    }
19177    #[inline]
19178    fn cast(syntax: SyntaxNode) -> Option<Self> {
19179        if Self::can_cast(syntax.kind()) {
19180            Some(Self { syntax })
19181        } else {
19182            None
19183        }
19184    }
19185    #[inline]
19186    fn syntax(&self) -> &SyntaxNode {
19187        &self.syntax
19188    }
19189}
19190impl AstNode for CreatePolicy {
19191    #[inline]
19192    fn can_cast(kind: SyntaxKind) -> bool {
19193        kind == SyntaxKind::CREATE_POLICY
19194    }
19195    #[inline]
19196    fn cast(syntax: SyntaxNode) -> Option<Self> {
19197        if Self::can_cast(syntax.kind()) {
19198            Some(Self { syntax })
19199        } else {
19200            None
19201        }
19202    }
19203    #[inline]
19204    fn syntax(&self) -> &SyntaxNode {
19205        &self.syntax
19206    }
19207}
19208impl AstNode for CreateProcedure {
19209    #[inline]
19210    fn can_cast(kind: SyntaxKind) -> bool {
19211        kind == SyntaxKind::CREATE_PROCEDURE
19212    }
19213    #[inline]
19214    fn cast(syntax: SyntaxNode) -> Option<Self> {
19215        if Self::can_cast(syntax.kind()) {
19216            Some(Self { syntax })
19217        } else {
19218            None
19219        }
19220    }
19221    #[inline]
19222    fn syntax(&self) -> &SyntaxNode {
19223        &self.syntax
19224    }
19225}
19226impl AstNode for CreatePublication {
19227    #[inline]
19228    fn can_cast(kind: SyntaxKind) -> bool {
19229        kind == SyntaxKind::CREATE_PUBLICATION
19230    }
19231    #[inline]
19232    fn cast(syntax: SyntaxNode) -> Option<Self> {
19233        if Self::can_cast(syntax.kind()) {
19234            Some(Self { syntax })
19235        } else {
19236            None
19237        }
19238    }
19239    #[inline]
19240    fn syntax(&self) -> &SyntaxNode {
19241        &self.syntax
19242    }
19243}
19244impl AstNode for CreateRole {
19245    #[inline]
19246    fn can_cast(kind: SyntaxKind) -> bool {
19247        kind == SyntaxKind::CREATE_ROLE
19248    }
19249    #[inline]
19250    fn cast(syntax: SyntaxNode) -> Option<Self> {
19251        if Self::can_cast(syntax.kind()) {
19252            Some(Self { syntax })
19253        } else {
19254            None
19255        }
19256    }
19257    #[inline]
19258    fn syntax(&self) -> &SyntaxNode {
19259        &self.syntax
19260    }
19261}
19262impl AstNode for CreateRule {
19263    #[inline]
19264    fn can_cast(kind: SyntaxKind) -> bool {
19265        kind == SyntaxKind::CREATE_RULE
19266    }
19267    #[inline]
19268    fn cast(syntax: SyntaxNode) -> Option<Self> {
19269        if Self::can_cast(syntax.kind()) {
19270            Some(Self { syntax })
19271        } else {
19272            None
19273        }
19274    }
19275    #[inline]
19276    fn syntax(&self) -> &SyntaxNode {
19277        &self.syntax
19278    }
19279}
19280impl AstNode for CreateSchema {
19281    #[inline]
19282    fn can_cast(kind: SyntaxKind) -> bool {
19283        kind == SyntaxKind::CREATE_SCHEMA
19284    }
19285    #[inline]
19286    fn cast(syntax: SyntaxNode) -> Option<Self> {
19287        if Self::can_cast(syntax.kind()) {
19288            Some(Self { syntax })
19289        } else {
19290            None
19291        }
19292    }
19293    #[inline]
19294    fn syntax(&self) -> &SyntaxNode {
19295        &self.syntax
19296    }
19297}
19298impl AstNode for CreateSequence {
19299    #[inline]
19300    fn can_cast(kind: SyntaxKind) -> bool {
19301        kind == SyntaxKind::CREATE_SEQUENCE
19302    }
19303    #[inline]
19304    fn cast(syntax: SyntaxNode) -> Option<Self> {
19305        if Self::can_cast(syntax.kind()) {
19306            Some(Self { syntax })
19307        } else {
19308            None
19309        }
19310    }
19311    #[inline]
19312    fn syntax(&self) -> &SyntaxNode {
19313        &self.syntax
19314    }
19315}
19316impl AstNode for CreateServer {
19317    #[inline]
19318    fn can_cast(kind: SyntaxKind) -> bool {
19319        kind == SyntaxKind::CREATE_SERVER
19320    }
19321    #[inline]
19322    fn cast(syntax: SyntaxNode) -> Option<Self> {
19323        if Self::can_cast(syntax.kind()) {
19324            Some(Self { syntax })
19325        } else {
19326            None
19327        }
19328    }
19329    #[inline]
19330    fn syntax(&self) -> &SyntaxNode {
19331        &self.syntax
19332    }
19333}
19334impl AstNode for CreateStatistics {
19335    #[inline]
19336    fn can_cast(kind: SyntaxKind) -> bool {
19337        kind == SyntaxKind::CREATE_STATISTICS
19338    }
19339    #[inline]
19340    fn cast(syntax: SyntaxNode) -> Option<Self> {
19341        if Self::can_cast(syntax.kind()) {
19342            Some(Self { syntax })
19343        } else {
19344            None
19345        }
19346    }
19347    #[inline]
19348    fn syntax(&self) -> &SyntaxNode {
19349        &self.syntax
19350    }
19351}
19352impl AstNode for CreateSubscription {
19353    #[inline]
19354    fn can_cast(kind: SyntaxKind) -> bool {
19355        kind == SyntaxKind::CREATE_SUBSCRIPTION
19356    }
19357    #[inline]
19358    fn cast(syntax: SyntaxNode) -> Option<Self> {
19359        if Self::can_cast(syntax.kind()) {
19360            Some(Self { syntax })
19361        } else {
19362            None
19363        }
19364    }
19365    #[inline]
19366    fn syntax(&self) -> &SyntaxNode {
19367        &self.syntax
19368    }
19369}
19370impl AstNode for CreateTable {
19371    #[inline]
19372    fn can_cast(kind: SyntaxKind) -> bool {
19373        kind == SyntaxKind::CREATE_TABLE
19374    }
19375    #[inline]
19376    fn cast(syntax: SyntaxNode) -> Option<Self> {
19377        if Self::can_cast(syntax.kind()) {
19378            Some(Self { syntax })
19379        } else {
19380            None
19381        }
19382    }
19383    #[inline]
19384    fn syntax(&self) -> &SyntaxNode {
19385        &self.syntax
19386    }
19387}
19388impl AstNode for CreateTableAs {
19389    #[inline]
19390    fn can_cast(kind: SyntaxKind) -> bool {
19391        kind == SyntaxKind::CREATE_TABLE_AS
19392    }
19393    #[inline]
19394    fn cast(syntax: SyntaxNode) -> Option<Self> {
19395        if Self::can_cast(syntax.kind()) {
19396            Some(Self { syntax })
19397        } else {
19398            None
19399        }
19400    }
19401    #[inline]
19402    fn syntax(&self) -> &SyntaxNode {
19403        &self.syntax
19404    }
19405}
19406impl AstNode for CreateTablespace {
19407    #[inline]
19408    fn can_cast(kind: SyntaxKind) -> bool {
19409        kind == SyntaxKind::CREATE_TABLESPACE
19410    }
19411    #[inline]
19412    fn cast(syntax: SyntaxNode) -> Option<Self> {
19413        if Self::can_cast(syntax.kind()) {
19414            Some(Self { syntax })
19415        } else {
19416            None
19417        }
19418    }
19419    #[inline]
19420    fn syntax(&self) -> &SyntaxNode {
19421        &self.syntax
19422    }
19423}
19424impl AstNode for CreateTextSearchConfiguration {
19425    #[inline]
19426    fn can_cast(kind: SyntaxKind) -> bool {
19427        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
19428    }
19429    #[inline]
19430    fn cast(syntax: SyntaxNode) -> Option<Self> {
19431        if Self::can_cast(syntax.kind()) {
19432            Some(Self { syntax })
19433        } else {
19434            None
19435        }
19436    }
19437    #[inline]
19438    fn syntax(&self) -> &SyntaxNode {
19439        &self.syntax
19440    }
19441}
19442impl AstNode for CreateTextSearchDictionary {
19443    #[inline]
19444    fn can_cast(kind: SyntaxKind) -> bool {
19445        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
19446    }
19447    #[inline]
19448    fn cast(syntax: SyntaxNode) -> Option<Self> {
19449        if Self::can_cast(syntax.kind()) {
19450            Some(Self { syntax })
19451        } else {
19452            None
19453        }
19454    }
19455    #[inline]
19456    fn syntax(&self) -> &SyntaxNode {
19457        &self.syntax
19458    }
19459}
19460impl AstNode for CreateTextSearchParser {
19461    #[inline]
19462    fn can_cast(kind: SyntaxKind) -> bool {
19463        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
19464    }
19465    #[inline]
19466    fn cast(syntax: SyntaxNode) -> Option<Self> {
19467        if Self::can_cast(syntax.kind()) {
19468            Some(Self { syntax })
19469        } else {
19470            None
19471        }
19472    }
19473    #[inline]
19474    fn syntax(&self) -> &SyntaxNode {
19475        &self.syntax
19476    }
19477}
19478impl AstNode for CreateTextSearchTemplate {
19479    #[inline]
19480    fn can_cast(kind: SyntaxKind) -> bool {
19481        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
19482    }
19483    #[inline]
19484    fn cast(syntax: SyntaxNode) -> Option<Self> {
19485        if Self::can_cast(syntax.kind()) {
19486            Some(Self { syntax })
19487        } else {
19488            None
19489        }
19490    }
19491    #[inline]
19492    fn syntax(&self) -> &SyntaxNode {
19493        &self.syntax
19494    }
19495}
19496impl AstNode for CreateTransform {
19497    #[inline]
19498    fn can_cast(kind: SyntaxKind) -> bool {
19499        kind == SyntaxKind::CREATE_TRANSFORM
19500    }
19501    #[inline]
19502    fn cast(syntax: SyntaxNode) -> Option<Self> {
19503        if Self::can_cast(syntax.kind()) {
19504            Some(Self { syntax })
19505        } else {
19506            None
19507        }
19508    }
19509    #[inline]
19510    fn syntax(&self) -> &SyntaxNode {
19511        &self.syntax
19512    }
19513}
19514impl AstNode for CreateTrigger {
19515    #[inline]
19516    fn can_cast(kind: SyntaxKind) -> bool {
19517        kind == SyntaxKind::CREATE_TRIGGER
19518    }
19519    #[inline]
19520    fn cast(syntax: SyntaxNode) -> Option<Self> {
19521        if Self::can_cast(syntax.kind()) {
19522            Some(Self { syntax })
19523        } else {
19524            None
19525        }
19526    }
19527    #[inline]
19528    fn syntax(&self) -> &SyntaxNode {
19529        &self.syntax
19530    }
19531}
19532impl AstNode for CreateType {
19533    #[inline]
19534    fn can_cast(kind: SyntaxKind) -> bool {
19535        kind == SyntaxKind::CREATE_TYPE
19536    }
19537    #[inline]
19538    fn cast(syntax: SyntaxNode) -> Option<Self> {
19539        if Self::can_cast(syntax.kind()) {
19540            Some(Self { syntax })
19541        } else {
19542            None
19543        }
19544    }
19545    #[inline]
19546    fn syntax(&self) -> &SyntaxNode {
19547        &self.syntax
19548    }
19549}
19550impl AstNode for CreateUser {
19551    #[inline]
19552    fn can_cast(kind: SyntaxKind) -> bool {
19553        kind == SyntaxKind::CREATE_USER
19554    }
19555    #[inline]
19556    fn cast(syntax: SyntaxNode) -> Option<Self> {
19557        if Self::can_cast(syntax.kind()) {
19558            Some(Self { syntax })
19559        } else {
19560            None
19561        }
19562    }
19563    #[inline]
19564    fn syntax(&self) -> &SyntaxNode {
19565        &self.syntax
19566    }
19567}
19568impl AstNode for CreateUserMapping {
19569    #[inline]
19570    fn can_cast(kind: SyntaxKind) -> bool {
19571        kind == SyntaxKind::CREATE_USER_MAPPING
19572    }
19573    #[inline]
19574    fn cast(syntax: SyntaxNode) -> Option<Self> {
19575        if Self::can_cast(syntax.kind()) {
19576            Some(Self { syntax })
19577        } else {
19578            None
19579        }
19580    }
19581    #[inline]
19582    fn syntax(&self) -> &SyntaxNode {
19583        &self.syntax
19584    }
19585}
19586impl AstNode for CreateView {
19587    #[inline]
19588    fn can_cast(kind: SyntaxKind) -> bool {
19589        kind == SyntaxKind::CREATE_VIEW
19590    }
19591    #[inline]
19592    fn cast(syntax: SyntaxNode) -> Option<Self> {
19593        if Self::can_cast(syntax.kind()) {
19594            Some(Self { syntax })
19595        } else {
19596            None
19597        }
19598    }
19599    #[inline]
19600    fn syntax(&self) -> &SyntaxNode {
19601        &self.syntax
19602    }
19603}
19604impl AstNode for CustomOp {
19605    #[inline]
19606    fn can_cast(kind: SyntaxKind) -> bool {
19607        kind == SyntaxKind::CUSTOM_OP
19608    }
19609    #[inline]
19610    fn cast(syntax: SyntaxNode) -> Option<Self> {
19611        if Self::can_cast(syntax.kind()) {
19612            Some(Self { syntax })
19613        } else {
19614            None
19615        }
19616    }
19617    #[inline]
19618    fn syntax(&self) -> &SyntaxNode {
19619        &self.syntax
19620    }
19621}
19622impl AstNode for Deallocate {
19623    #[inline]
19624    fn can_cast(kind: SyntaxKind) -> bool {
19625        kind == SyntaxKind::DEALLOCATE
19626    }
19627    #[inline]
19628    fn cast(syntax: SyntaxNode) -> Option<Self> {
19629        if Self::can_cast(syntax.kind()) {
19630            Some(Self { syntax })
19631        } else {
19632            None
19633        }
19634    }
19635    #[inline]
19636    fn syntax(&self) -> &SyntaxNode {
19637        &self.syntax
19638    }
19639}
19640impl AstNode for Declare {
19641    #[inline]
19642    fn can_cast(kind: SyntaxKind) -> bool {
19643        kind == SyntaxKind::DECLARE
19644    }
19645    #[inline]
19646    fn cast(syntax: SyntaxNode) -> Option<Self> {
19647        if Self::can_cast(syntax.kind()) {
19648            Some(Self { syntax })
19649        } else {
19650            None
19651        }
19652    }
19653    #[inline]
19654    fn syntax(&self) -> &SyntaxNode {
19655        &self.syntax
19656    }
19657}
19658impl AstNode for DefaultConstraint {
19659    #[inline]
19660    fn can_cast(kind: SyntaxKind) -> bool {
19661        kind == SyntaxKind::DEFAULT_CONSTRAINT
19662    }
19663    #[inline]
19664    fn cast(syntax: SyntaxNode) -> Option<Self> {
19665        if Self::can_cast(syntax.kind()) {
19666            Some(Self { syntax })
19667        } else {
19668            None
19669        }
19670    }
19671    #[inline]
19672    fn syntax(&self) -> &SyntaxNode {
19673        &self.syntax
19674    }
19675}
19676impl AstNode for Deferrable {
19677    #[inline]
19678    fn can_cast(kind: SyntaxKind) -> bool {
19679        kind == SyntaxKind::DEFERRABLE
19680    }
19681    #[inline]
19682    fn cast(syntax: SyntaxNode) -> Option<Self> {
19683        if Self::can_cast(syntax.kind()) {
19684            Some(Self { syntax })
19685        } else {
19686            None
19687        }
19688    }
19689    #[inline]
19690    fn syntax(&self) -> &SyntaxNode {
19691        &self.syntax
19692    }
19693}
19694impl AstNode for DeferrableConstraintOption {
19695    #[inline]
19696    fn can_cast(kind: SyntaxKind) -> bool {
19697        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
19698    }
19699    #[inline]
19700    fn cast(syntax: SyntaxNode) -> Option<Self> {
19701        if Self::can_cast(syntax.kind()) {
19702            Some(Self { syntax })
19703        } else {
19704            None
19705        }
19706    }
19707    #[inline]
19708    fn syntax(&self) -> &SyntaxNode {
19709        &self.syntax
19710    }
19711}
19712impl AstNode for Delete {
19713    #[inline]
19714    fn can_cast(kind: SyntaxKind) -> bool {
19715        kind == SyntaxKind::DELETE
19716    }
19717    #[inline]
19718    fn cast(syntax: SyntaxNode) -> Option<Self> {
19719        if Self::can_cast(syntax.kind()) {
19720            Some(Self { syntax })
19721        } else {
19722            None
19723        }
19724    }
19725    #[inline]
19726    fn syntax(&self) -> &SyntaxNode {
19727        &self.syntax
19728    }
19729}
19730impl AstNode for DeleteRows {
19731    #[inline]
19732    fn can_cast(kind: SyntaxKind) -> bool {
19733        kind == SyntaxKind::DELETE_ROWS
19734    }
19735    #[inline]
19736    fn cast(syntax: SyntaxNode) -> Option<Self> {
19737        if Self::can_cast(syntax.kind()) {
19738            Some(Self { syntax })
19739        } else {
19740            None
19741        }
19742    }
19743    #[inline]
19744    fn syntax(&self) -> &SyntaxNode {
19745        &self.syntax
19746    }
19747}
19748impl AstNode for DependsOnExtension {
19749    #[inline]
19750    fn can_cast(kind: SyntaxKind) -> bool {
19751        kind == SyntaxKind::DEPENDS_ON_EXTENSION
19752    }
19753    #[inline]
19754    fn cast(syntax: SyntaxNode) -> Option<Self> {
19755        if Self::can_cast(syntax.kind()) {
19756            Some(Self { syntax })
19757        } else {
19758            None
19759        }
19760    }
19761    #[inline]
19762    fn syntax(&self) -> &SyntaxNode {
19763        &self.syntax
19764    }
19765}
19766impl AstNode for DetachPartition {
19767    #[inline]
19768    fn can_cast(kind: SyntaxKind) -> bool {
19769        kind == SyntaxKind::DETACH_PARTITION
19770    }
19771    #[inline]
19772    fn cast(syntax: SyntaxNode) -> Option<Self> {
19773        if Self::can_cast(syntax.kind()) {
19774            Some(Self { syntax })
19775        } else {
19776            None
19777        }
19778    }
19779    #[inline]
19780    fn syntax(&self) -> &SyntaxNode {
19781        &self.syntax
19782    }
19783}
19784impl AstNode for DisableRls {
19785    #[inline]
19786    fn can_cast(kind: SyntaxKind) -> bool {
19787        kind == SyntaxKind::DISABLE_RLS
19788    }
19789    #[inline]
19790    fn cast(syntax: SyntaxNode) -> Option<Self> {
19791        if Self::can_cast(syntax.kind()) {
19792            Some(Self { syntax })
19793        } else {
19794            None
19795        }
19796    }
19797    #[inline]
19798    fn syntax(&self) -> &SyntaxNode {
19799        &self.syntax
19800    }
19801}
19802impl AstNode for DisableRule {
19803    #[inline]
19804    fn can_cast(kind: SyntaxKind) -> bool {
19805        kind == SyntaxKind::DISABLE_RULE
19806    }
19807    #[inline]
19808    fn cast(syntax: SyntaxNode) -> Option<Self> {
19809        if Self::can_cast(syntax.kind()) {
19810            Some(Self { syntax })
19811        } else {
19812            None
19813        }
19814    }
19815    #[inline]
19816    fn syntax(&self) -> &SyntaxNode {
19817        &self.syntax
19818    }
19819}
19820impl AstNode for DisableTrigger {
19821    #[inline]
19822    fn can_cast(kind: SyntaxKind) -> bool {
19823        kind == SyntaxKind::DISABLE_TRIGGER
19824    }
19825    #[inline]
19826    fn cast(syntax: SyntaxNode) -> Option<Self> {
19827        if Self::can_cast(syntax.kind()) {
19828            Some(Self { syntax })
19829        } else {
19830            None
19831        }
19832    }
19833    #[inline]
19834    fn syntax(&self) -> &SyntaxNode {
19835        &self.syntax
19836    }
19837}
19838impl AstNode for Discard {
19839    #[inline]
19840    fn can_cast(kind: SyntaxKind) -> bool {
19841        kind == SyntaxKind::DISCARD
19842    }
19843    #[inline]
19844    fn cast(syntax: SyntaxNode) -> Option<Self> {
19845        if Self::can_cast(syntax.kind()) {
19846            Some(Self { syntax })
19847        } else {
19848            None
19849        }
19850    }
19851    #[inline]
19852    fn syntax(&self) -> &SyntaxNode {
19853        &self.syntax
19854    }
19855}
19856impl AstNode for DistinctClause {
19857    #[inline]
19858    fn can_cast(kind: SyntaxKind) -> bool {
19859        kind == SyntaxKind::DISTINCT_CLAUSE
19860    }
19861    #[inline]
19862    fn cast(syntax: SyntaxNode) -> Option<Self> {
19863        if Self::can_cast(syntax.kind()) {
19864            Some(Self { syntax })
19865        } else {
19866            None
19867        }
19868    }
19869    #[inline]
19870    fn syntax(&self) -> &SyntaxNode {
19871        &self.syntax
19872    }
19873}
19874impl AstNode for Do {
19875    #[inline]
19876    fn can_cast(kind: SyntaxKind) -> bool {
19877        kind == SyntaxKind::DO
19878    }
19879    #[inline]
19880    fn cast(syntax: SyntaxNode) -> Option<Self> {
19881        if Self::can_cast(syntax.kind()) {
19882            Some(Self { syntax })
19883        } else {
19884            None
19885        }
19886    }
19887    #[inline]
19888    fn syntax(&self) -> &SyntaxNode {
19889        &self.syntax
19890    }
19891}
19892impl AstNode for DoubleType {
19893    #[inline]
19894    fn can_cast(kind: SyntaxKind) -> bool {
19895        kind == SyntaxKind::DOUBLE_TYPE
19896    }
19897    #[inline]
19898    fn cast(syntax: SyntaxNode) -> Option<Self> {
19899        if Self::can_cast(syntax.kind()) {
19900            Some(Self { syntax })
19901        } else {
19902            None
19903        }
19904    }
19905    #[inline]
19906    fn syntax(&self) -> &SyntaxNode {
19907        &self.syntax
19908    }
19909}
19910impl AstNode for Drop {
19911    #[inline]
19912    fn can_cast(kind: SyntaxKind) -> bool {
19913        kind == SyntaxKind::DROP
19914    }
19915    #[inline]
19916    fn cast(syntax: SyntaxNode) -> Option<Self> {
19917        if Self::can_cast(syntax.kind()) {
19918            Some(Self { syntax })
19919        } else {
19920            None
19921        }
19922    }
19923    #[inline]
19924    fn syntax(&self) -> &SyntaxNode {
19925        &self.syntax
19926    }
19927}
19928impl AstNode for DropAccessMethod {
19929    #[inline]
19930    fn can_cast(kind: SyntaxKind) -> bool {
19931        kind == SyntaxKind::DROP_ACCESS_METHOD
19932    }
19933    #[inline]
19934    fn cast(syntax: SyntaxNode) -> Option<Self> {
19935        if Self::can_cast(syntax.kind()) {
19936            Some(Self { syntax })
19937        } else {
19938            None
19939        }
19940    }
19941    #[inline]
19942    fn syntax(&self) -> &SyntaxNode {
19943        &self.syntax
19944    }
19945}
19946impl AstNode for DropAggregate {
19947    #[inline]
19948    fn can_cast(kind: SyntaxKind) -> bool {
19949        kind == SyntaxKind::DROP_AGGREGATE
19950    }
19951    #[inline]
19952    fn cast(syntax: SyntaxNode) -> Option<Self> {
19953        if Self::can_cast(syntax.kind()) {
19954            Some(Self { syntax })
19955        } else {
19956            None
19957        }
19958    }
19959    #[inline]
19960    fn syntax(&self) -> &SyntaxNode {
19961        &self.syntax
19962    }
19963}
19964impl AstNode for DropCast {
19965    #[inline]
19966    fn can_cast(kind: SyntaxKind) -> bool {
19967        kind == SyntaxKind::DROP_CAST
19968    }
19969    #[inline]
19970    fn cast(syntax: SyntaxNode) -> Option<Self> {
19971        if Self::can_cast(syntax.kind()) {
19972            Some(Self { syntax })
19973        } else {
19974            None
19975        }
19976    }
19977    #[inline]
19978    fn syntax(&self) -> &SyntaxNode {
19979        &self.syntax
19980    }
19981}
19982impl AstNode for DropCollation {
19983    #[inline]
19984    fn can_cast(kind: SyntaxKind) -> bool {
19985        kind == SyntaxKind::DROP_COLLATION
19986    }
19987    #[inline]
19988    fn cast(syntax: SyntaxNode) -> Option<Self> {
19989        if Self::can_cast(syntax.kind()) {
19990            Some(Self { syntax })
19991        } else {
19992            None
19993        }
19994    }
19995    #[inline]
19996    fn syntax(&self) -> &SyntaxNode {
19997        &self.syntax
19998    }
19999}
20000impl AstNode for DropColumn {
20001    #[inline]
20002    fn can_cast(kind: SyntaxKind) -> bool {
20003        kind == SyntaxKind::DROP_COLUMN
20004    }
20005    #[inline]
20006    fn cast(syntax: SyntaxNode) -> Option<Self> {
20007        if Self::can_cast(syntax.kind()) {
20008            Some(Self { syntax })
20009        } else {
20010            None
20011        }
20012    }
20013    #[inline]
20014    fn syntax(&self) -> &SyntaxNode {
20015        &self.syntax
20016    }
20017}
20018impl AstNode for DropConstraint {
20019    #[inline]
20020    fn can_cast(kind: SyntaxKind) -> bool {
20021        kind == SyntaxKind::DROP_CONSTRAINT
20022    }
20023    #[inline]
20024    fn cast(syntax: SyntaxNode) -> Option<Self> {
20025        if Self::can_cast(syntax.kind()) {
20026            Some(Self { syntax })
20027        } else {
20028            None
20029        }
20030    }
20031    #[inline]
20032    fn syntax(&self) -> &SyntaxNode {
20033        &self.syntax
20034    }
20035}
20036impl AstNode for DropConversion {
20037    #[inline]
20038    fn can_cast(kind: SyntaxKind) -> bool {
20039        kind == SyntaxKind::DROP_CONVERSION
20040    }
20041    #[inline]
20042    fn cast(syntax: SyntaxNode) -> Option<Self> {
20043        if Self::can_cast(syntax.kind()) {
20044            Some(Self { syntax })
20045        } else {
20046            None
20047        }
20048    }
20049    #[inline]
20050    fn syntax(&self) -> &SyntaxNode {
20051        &self.syntax
20052    }
20053}
20054impl AstNode for DropDatabase {
20055    #[inline]
20056    fn can_cast(kind: SyntaxKind) -> bool {
20057        kind == SyntaxKind::DROP_DATABASE
20058    }
20059    #[inline]
20060    fn cast(syntax: SyntaxNode) -> Option<Self> {
20061        if Self::can_cast(syntax.kind()) {
20062            Some(Self { syntax })
20063        } else {
20064            None
20065        }
20066    }
20067    #[inline]
20068    fn syntax(&self) -> &SyntaxNode {
20069        &self.syntax
20070    }
20071}
20072impl AstNode for DropDefault {
20073    #[inline]
20074    fn can_cast(kind: SyntaxKind) -> bool {
20075        kind == SyntaxKind::DROP_DEFAULT
20076    }
20077    #[inline]
20078    fn cast(syntax: SyntaxNode) -> Option<Self> {
20079        if Self::can_cast(syntax.kind()) {
20080            Some(Self { syntax })
20081        } else {
20082            None
20083        }
20084    }
20085    #[inline]
20086    fn syntax(&self) -> &SyntaxNode {
20087        &self.syntax
20088    }
20089}
20090impl AstNode for DropDomain {
20091    #[inline]
20092    fn can_cast(kind: SyntaxKind) -> bool {
20093        kind == SyntaxKind::DROP_DOMAIN
20094    }
20095    #[inline]
20096    fn cast(syntax: SyntaxNode) -> Option<Self> {
20097        if Self::can_cast(syntax.kind()) {
20098            Some(Self { syntax })
20099        } else {
20100            None
20101        }
20102    }
20103    #[inline]
20104    fn syntax(&self) -> &SyntaxNode {
20105        &self.syntax
20106    }
20107}
20108impl AstNode for DropEventTrigger {
20109    #[inline]
20110    fn can_cast(kind: SyntaxKind) -> bool {
20111        kind == SyntaxKind::DROP_EVENT_TRIGGER
20112    }
20113    #[inline]
20114    fn cast(syntax: SyntaxNode) -> Option<Self> {
20115        if Self::can_cast(syntax.kind()) {
20116            Some(Self { syntax })
20117        } else {
20118            None
20119        }
20120    }
20121    #[inline]
20122    fn syntax(&self) -> &SyntaxNode {
20123        &self.syntax
20124    }
20125}
20126impl AstNode for DropExpression {
20127    #[inline]
20128    fn can_cast(kind: SyntaxKind) -> bool {
20129        kind == SyntaxKind::DROP_EXPRESSION
20130    }
20131    #[inline]
20132    fn cast(syntax: SyntaxNode) -> Option<Self> {
20133        if Self::can_cast(syntax.kind()) {
20134            Some(Self { syntax })
20135        } else {
20136            None
20137        }
20138    }
20139    #[inline]
20140    fn syntax(&self) -> &SyntaxNode {
20141        &self.syntax
20142    }
20143}
20144impl AstNode for DropExtension {
20145    #[inline]
20146    fn can_cast(kind: SyntaxKind) -> bool {
20147        kind == SyntaxKind::DROP_EXTENSION
20148    }
20149    #[inline]
20150    fn cast(syntax: SyntaxNode) -> Option<Self> {
20151        if Self::can_cast(syntax.kind()) {
20152            Some(Self { syntax })
20153        } else {
20154            None
20155        }
20156    }
20157    #[inline]
20158    fn syntax(&self) -> &SyntaxNode {
20159        &self.syntax
20160    }
20161}
20162impl AstNode for DropForeignDataWrapper {
20163    #[inline]
20164    fn can_cast(kind: SyntaxKind) -> bool {
20165        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
20166    }
20167    #[inline]
20168    fn cast(syntax: SyntaxNode) -> Option<Self> {
20169        if Self::can_cast(syntax.kind()) {
20170            Some(Self { syntax })
20171        } else {
20172            None
20173        }
20174    }
20175    #[inline]
20176    fn syntax(&self) -> &SyntaxNode {
20177        &self.syntax
20178    }
20179}
20180impl AstNode for DropForeignTable {
20181    #[inline]
20182    fn can_cast(kind: SyntaxKind) -> bool {
20183        kind == SyntaxKind::DROP_FOREIGN_TABLE
20184    }
20185    #[inline]
20186    fn cast(syntax: SyntaxNode) -> Option<Self> {
20187        if Self::can_cast(syntax.kind()) {
20188            Some(Self { syntax })
20189        } else {
20190            None
20191        }
20192    }
20193    #[inline]
20194    fn syntax(&self) -> &SyntaxNode {
20195        &self.syntax
20196    }
20197}
20198impl AstNode for DropFunction {
20199    #[inline]
20200    fn can_cast(kind: SyntaxKind) -> bool {
20201        kind == SyntaxKind::DROP_FUNCTION
20202    }
20203    #[inline]
20204    fn cast(syntax: SyntaxNode) -> Option<Self> {
20205        if Self::can_cast(syntax.kind()) {
20206            Some(Self { syntax })
20207        } else {
20208            None
20209        }
20210    }
20211    #[inline]
20212    fn syntax(&self) -> &SyntaxNode {
20213        &self.syntax
20214    }
20215}
20216impl AstNode for DropGroup {
20217    #[inline]
20218    fn can_cast(kind: SyntaxKind) -> bool {
20219        kind == SyntaxKind::DROP_GROUP
20220    }
20221    #[inline]
20222    fn cast(syntax: SyntaxNode) -> Option<Self> {
20223        if Self::can_cast(syntax.kind()) {
20224            Some(Self { syntax })
20225        } else {
20226            None
20227        }
20228    }
20229    #[inline]
20230    fn syntax(&self) -> &SyntaxNode {
20231        &self.syntax
20232    }
20233}
20234impl AstNode for DropIdentity {
20235    #[inline]
20236    fn can_cast(kind: SyntaxKind) -> bool {
20237        kind == SyntaxKind::DROP_IDENTITY
20238    }
20239    #[inline]
20240    fn cast(syntax: SyntaxNode) -> Option<Self> {
20241        if Self::can_cast(syntax.kind()) {
20242            Some(Self { syntax })
20243        } else {
20244            None
20245        }
20246    }
20247    #[inline]
20248    fn syntax(&self) -> &SyntaxNode {
20249        &self.syntax
20250    }
20251}
20252impl AstNode for DropIndex {
20253    #[inline]
20254    fn can_cast(kind: SyntaxKind) -> bool {
20255        kind == SyntaxKind::DROP_INDEX
20256    }
20257    #[inline]
20258    fn cast(syntax: SyntaxNode) -> Option<Self> {
20259        if Self::can_cast(syntax.kind()) {
20260            Some(Self { syntax })
20261        } else {
20262            None
20263        }
20264    }
20265    #[inline]
20266    fn syntax(&self) -> &SyntaxNode {
20267        &self.syntax
20268    }
20269}
20270impl AstNode for DropLanguage {
20271    #[inline]
20272    fn can_cast(kind: SyntaxKind) -> bool {
20273        kind == SyntaxKind::DROP_LANGUAGE
20274    }
20275    #[inline]
20276    fn cast(syntax: SyntaxNode) -> Option<Self> {
20277        if Self::can_cast(syntax.kind()) {
20278            Some(Self { syntax })
20279        } else {
20280            None
20281        }
20282    }
20283    #[inline]
20284    fn syntax(&self) -> &SyntaxNode {
20285        &self.syntax
20286    }
20287}
20288impl AstNode for DropMaterializedView {
20289    #[inline]
20290    fn can_cast(kind: SyntaxKind) -> bool {
20291        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
20292    }
20293    #[inline]
20294    fn cast(syntax: SyntaxNode) -> Option<Self> {
20295        if Self::can_cast(syntax.kind()) {
20296            Some(Self { syntax })
20297        } else {
20298            None
20299        }
20300    }
20301    #[inline]
20302    fn syntax(&self) -> &SyntaxNode {
20303        &self.syntax
20304    }
20305}
20306impl AstNode for DropNotNull {
20307    #[inline]
20308    fn can_cast(kind: SyntaxKind) -> bool {
20309        kind == SyntaxKind::DROP_NOT_NULL
20310    }
20311    #[inline]
20312    fn cast(syntax: SyntaxNode) -> Option<Self> {
20313        if Self::can_cast(syntax.kind()) {
20314            Some(Self { syntax })
20315        } else {
20316            None
20317        }
20318    }
20319    #[inline]
20320    fn syntax(&self) -> &SyntaxNode {
20321        &self.syntax
20322    }
20323}
20324impl AstNode for DropOpClassOption {
20325    #[inline]
20326    fn can_cast(kind: SyntaxKind) -> bool {
20327        kind == SyntaxKind::DROP_OP_CLASS_OPTION
20328    }
20329    #[inline]
20330    fn cast(syntax: SyntaxNode) -> Option<Self> {
20331        if Self::can_cast(syntax.kind()) {
20332            Some(Self { syntax })
20333        } else {
20334            None
20335        }
20336    }
20337    #[inline]
20338    fn syntax(&self) -> &SyntaxNode {
20339        &self.syntax
20340    }
20341}
20342impl AstNode for DropOpClassOptionList {
20343    #[inline]
20344    fn can_cast(kind: SyntaxKind) -> bool {
20345        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
20346    }
20347    #[inline]
20348    fn cast(syntax: SyntaxNode) -> Option<Self> {
20349        if Self::can_cast(syntax.kind()) {
20350            Some(Self { syntax })
20351        } else {
20352            None
20353        }
20354    }
20355    #[inline]
20356    fn syntax(&self) -> &SyntaxNode {
20357        &self.syntax
20358    }
20359}
20360impl AstNode for DropOpClassOptions {
20361    #[inline]
20362    fn can_cast(kind: SyntaxKind) -> bool {
20363        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
20364    }
20365    #[inline]
20366    fn cast(syntax: SyntaxNode) -> Option<Self> {
20367        if Self::can_cast(syntax.kind()) {
20368            Some(Self { syntax })
20369        } else {
20370            None
20371        }
20372    }
20373    #[inline]
20374    fn syntax(&self) -> &SyntaxNode {
20375        &self.syntax
20376    }
20377}
20378impl AstNode for DropOperator {
20379    #[inline]
20380    fn can_cast(kind: SyntaxKind) -> bool {
20381        kind == SyntaxKind::DROP_OPERATOR
20382    }
20383    #[inline]
20384    fn cast(syntax: SyntaxNode) -> Option<Self> {
20385        if Self::can_cast(syntax.kind()) {
20386            Some(Self { syntax })
20387        } else {
20388            None
20389        }
20390    }
20391    #[inline]
20392    fn syntax(&self) -> &SyntaxNode {
20393        &self.syntax
20394    }
20395}
20396impl AstNode for DropOperatorClass {
20397    #[inline]
20398    fn can_cast(kind: SyntaxKind) -> bool {
20399        kind == SyntaxKind::DROP_OPERATOR_CLASS
20400    }
20401    #[inline]
20402    fn cast(syntax: SyntaxNode) -> Option<Self> {
20403        if Self::can_cast(syntax.kind()) {
20404            Some(Self { syntax })
20405        } else {
20406            None
20407        }
20408    }
20409    #[inline]
20410    fn syntax(&self) -> &SyntaxNode {
20411        &self.syntax
20412    }
20413}
20414impl AstNode for DropOperatorFamily {
20415    #[inline]
20416    fn can_cast(kind: SyntaxKind) -> bool {
20417        kind == SyntaxKind::DROP_OPERATOR_FAMILY
20418    }
20419    #[inline]
20420    fn cast(syntax: SyntaxNode) -> Option<Self> {
20421        if Self::can_cast(syntax.kind()) {
20422            Some(Self { syntax })
20423        } else {
20424            None
20425        }
20426    }
20427    #[inline]
20428    fn syntax(&self) -> &SyntaxNode {
20429        &self.syntax
20430    }
20431}
20432impl AstNode for DropOwned {
20433    #[inline]
20434    fn can_cast(kind: SyntaxKind) -> bool {
20435        kind == SyntaxKind::DROP_OWNED
20436    }
20437    #[inline]
20438    fn cast(syntax: SyntaxNode) -> Option<Self> {
20439        if Self::can_cast(syntax.kind()) {
20440            Some(Self { syntax })
20441        } else {
20442            None
20443        }
20444    }
20445    #[inline]
20446    fn syntax(&self) -> &SyntaxNode {
20447        &self.syntax
20448    }
20449}
20450impl AstNode for DropPolicy {
20451    #[inline]
20452    fn can_cast(kind: SyntaxKind) -> bool {
20453        kind == SyntaxKind::DROP_POLICY
20454    }
20455    #[inline]
20456    fn cast(syntax: SyntaxNode) -> Option<Self> {
20457        if Self::can_cast(syntax.kind()) {
20458            Some(Self { syntax })
20459        } else {
20460            None
20461        }
20462    }
20463    #[inline]
20464    fn syntax(&self) -> &SyntaxNode {
20465        &self.syntax
20466    }
20467}
20468impl AstNode for DropProcedure {
20469    #[inline]
20470    fn can_cast(kind: SyntaxKind) -> bool {
20471        kind == SyntaxKind::DROP_PROCEDURE
20472    }
20473    #[inline]
20474    fn cast(syntax: SyntaxNode) -> Option<Self> {
20475        if Self::can_cast(syntax.kind()) {
20476            Some(Self { syntax })
20477        } else {
20478            None
20479        }
20480    }
20481    #[inline]
20482    fn syntax(&self) -> &SyntaxNode {
20483        &self.syntax
20484    }
20485}
20486impl AstNode for DropPublication {
20487    #[inline]
20488    fn can_cast(kind: SyntaxKind) -> bool {
20489        kind == SyntaxKind::DROP_PUBLICATION
20490    }
20491    #[inline]
20492    fn cast(syntax: SyntaxNode) -> Option<Self> {
20493        if Self::can_cast(syntax.kind()) {
20494            Some(Self { syntax })
20495        } else {
20496            None
20497        }
20498    }
20499    #[inline]
20500    fn syntax(&self) -> &SyntaxNode {
20501        &self.syntax
20502    }
20503}
20504impl AstNode for DropRole {
20505    #[inline]
20506    fn can_cast(kind: SyntaxKind) -> bool {
20507        kind == SyntaxKind::DROP_ROLE
20508    }
20509    #[inline]
20510    fn cast(syntax: SyntaxNode) -> Option<Self> {
20511        if Self::can_cast(syntax.kind()) {
20512            Some(Self { syntax })
20513        } else {
20514            None
20515        }
20516    }
20517    #[inline]
20518    fn syntax(&self) -> &SyntaxNode {
20519        &self.syntax
20520    }
20521}
20522impl AstNode for DropRoutine {
20523    #[inline]
20524    fn can_cast(kind: SyntaxKind) -> bool {
20525        kind == SyntaxKind::DROP_ROUTINE
20526    }
20527    #[inline]
20528    fn cast(syntax: SyntaxNode) -> Option<Self> {
20529        if Self::can_cast(syntax.kind()) {
20530            Some(Self { syntax })
20531        } else {
20532            None
20533        }
20534    }
20535    #[inline]
20536    fn syntax(&self) -> &SyntaxNode {
20537        &self.syntax
20538    }
20539}
20540impl AstNode for DropRule {
20541    #[inline]
20542    fn can_cast(kind: SyntaxKind) -> bool {
20543        kind == SyntaxKind::DROP_RULE
20544    }
20545    #[inline]
20546    fn cast(syntax: SyntaxNode) -> Option<Self> {
20547        if Self::can_cast(syntax.kind()) {
20548            Some(Self { syntax })
20549        } else {
20550            None
20551        }
20552    }
20553    #[inline]
20554    fn syntax(&self) -> &SyntaxNode {
20555        &self.syntax
20556    }
20557}
20558impl AstNode for DropSchema {
20559    #[inline]
20560    fn can_cast(kind: SyntaxKind) -> bool {
20561        kind == SyntaxKind::DROP_SCHEMA
20562    }
20563    #[inline]
20564    fn cast(syntax: SyntaxNode) -> Option<Self> {
20565        if Self::can_cast(syntax.kind()) {
20566            Some(Self { syntax })
20567        } else {
20568            None
20569        }
20570    }
20571    #[inline]
20572    fn syntax(&self) -> &SyntaxNode {
20573        &self.syntax
20574    }
20575}
20576impl AstNode for DropSequence {
20577    #[inline]
20578    fn can_cast(kind: SyntaxKind) -> bool {
20579        kind == SyntaxKind::DROP_SEQUENCE
20580    }
20581    #[inline]
20582    fn cast(syntax: SyntaxNode) -> Option<Self> {
20583        if Self::can_cast(syntax.kind()) {
20584            Some(Self { syntax })
20585        } else {
20586            None
20587        }
20588    }
20589    #[inline]
20590    fn syntax(&self) -> &SyntaxNode {
20591        &self.syntax
20592    }
20593}
20594impl AstNode for DropServer {
20595    #[inline]
20596    fn can_cast(kind: SyntaxKind) -> bool {
20597        kind == SyntaxKind::DROP_SERVER
20598    }
20599    #[inline]
20600    fn cast(syntax: SyntaxNode) -> Option<Self> {
20601        if Self::can_cast(syntax.kind()) {
20602            Some(Self { syntax })
20603        } else {
20604            None
20605        }
20606    }
20607    #[inline]
20608    fn syntax(&self) -> &SyntaxNode {
20609        &self.syntax
20610    }
20611}
20612impl AstNode for DropStatistics {
20613    #[inline]
20614    fn can_cast(kind: SyntaxKind) -> bool {
20615        kind == SyntaxKind::DROP_STATISTICS
20616    }
20617    #[inline]
20618    fn cast(syntax: SyntaxNode) -> Option<Self> {
20619        if Self::can_cast(syntax.kind()) {
20620            Some(Self { syntax })
20621        } else {
20622            None
20623        }
20624    }
20625    #[inline]
20626    fn syntax(&self) -> &SyntaxNode {
20627        &self.syntax
20628    }
20629}
20630impl AstNode for DropSubscription {
20631    #[inline]
20632    fn can_cast(kind: SyntaxKind) -> bool {
20633        kind == SyntaxKind::DROP_SUBSCRIPTION
20634    }
20635    #[inline]
20636    fn cast(syntax: SyntaxNode) -> Option<Self> {
20637        if Self::can_cast(syntax.kind()) {
20638            Some(Self { syntax })
20639        } else {
20640            None
20641        }
20642    }
20643    #[inline]
20644    fn syntax(&self) -> &SyntaxNode {
20645        &self.syntax
20646    }
20647}
20648impl AstNode for DropTable {
20649    #[inline]
20650    fn can_cast(kind: SyntaxKind) -> bool {
20651        kind == SyntaxKind::DROP_TABLE
20652    }
20653    #[inline]
20654    fn cast(syntax: SyntaxNode) -> Option<Self> {
20655        if Self::can_cast(syntax.kind()) {
20656            Some(Self { syntax })
20657        } else {
20658            None
20659        }
20660    }
20661    #[inline]
20662    fn syntax(&self) -> &SyntaxNode {
20663        &self.syntax
20664    }
20665}
20666impl AstNode for DropTablespace {
20667    #[inline]
20668    fn can_cast(kind: SyntaxKind) -> bool {
20669        kind == SyntaxKind::DROP_TABLESPACE
20670    }
20671    #[inline]
20672    fn cast(syntax: SyntaxNode) -> Option<Self> {
20673        if Self::can_cast(syntax.kind()) {
20674            Some(Self { syntax })
20675        } else {
20676            None
20677        }
20678    }
20679    #[inline]
20680    fn syntax(&self) -> &SyntaxNode {
20681        &self.syntax
20682    }
20683}
20684impl AstNode for DropTextSearchConfig {
20685    #[inline]
20686    fn can_cast(kind: SyntaxKind) -> bool {
20687        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
20688    }
20689    #[inline]
20690    fn cast(syntax: SyntaxNode) -> Option<Self> {
20691        if Self::can_cast(syntax.kind()) {
20692            Some(Self { syntax })
20693        } else {
20694            None
20695        }
20696    }
20697    #[inline]
20698    fn syntax(&self) -> &SyntaxNode {
20699        &self.syntax
20700    }
20701}
20702impl AstNode for DropTextSearchDict {
20703    #[inline]
20704    fn can_cast(kind: SyntaxKind) -> bool {
20705        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
20706    }
20707    #[inline]
20708    fn cast(syntax: SyntaxNode) -> Option<Self> {
20709        if Self::can_cast(syntax.kind()) {
20710            Some(Self { syntax })
20711        } else {
20712            None
20713        }
20714    }
20715    #[inline]
20716    fn syntax(&self) -> &SyntaxNode {
20717        &self.syntax
20718    }
20719}
20720impl AstNode for DropTextSearchParser {
20721    #[inline]
20722    fn can_cast(kind: SyntaxKind) -> bool {
20723        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
20724    }
20725    #[inline]
20726    fn cast(syntax: SyntaxNode) -> Option<Self> {
20727        if Self::can_cast(syntax.kind()) {
20728            Some(Self { syntax })
20729        } else {
20730            None
20731        }
20732    }
20733    #[inline]
20734    fn syntax(&self) -> &SyntaxNode {
20735        &self.syntax
20736    }
20737}
20738impl AstNode for DropTextSearchTemplate {
20739    #[inline]
20740    fn can_cast(kind: SyntaxKind) -> bool {
20741        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
20742    }
20743    #[inline]
20744    fn cast(syntax: SyntaxNode) -> Option<Self> {
20745        if Self::can_cast(syntax.kind()) {
20746            Some(Self { syntax })
20747        } else {
20748            None
20749        }
20750    }
20751    #[inline]
20752    fn syntax(&self) -> &SyntaxNode {
20753        &self.syntax
20754    }
20755}
20756impl AstNode for DropTransform {
20757    #[inline]
20758    fn can_cast(kind: SyntaxKind) -> bool {
20759        kind == SyntaxKind::DROP_TRANSFORM
20760    }
20761    #[inline]
20762    fn cast(syntax: SyntaxNode) -> Option<Self> {
20763        if Self::can_cast(syntax.kind()) {
20764            Some(Self { syntax })
20765        } else {
20766            None
20767        }
20768    }
20769    #[inline]
20770    fn syntax(&self) -> &SyntaxNode {
20771        &self.syntax
20772    }
20773}
20774impl AstNode for DropTrigger {
20775    #[inline]
20776    fn can_cast(kind: SyntaxKind) -> bool {
20777        kind == SyntaxKind::DROP_TRIGGER
20778    }
20779    #[inline]
20780    fn cast(syntax: SyntaxNode) -> Option<Self> {
20781        if Self::can_cast(syntax.kind()) {
20782            Some(Self { syntax })
20783        } else {
20784            None
20785        }
20786    }
20787    #[inline]
20788    fn syntax(&self) -> &SyntaxNode {
20789        &self.syntax
20790    }
20791}
20792impl AstNode for DropType {
20793    #[inline]
20794    fn can_cast(kind: SyntaxKind) -> bool {
20795        kind == SyntaxKind::DROP_TYPE
20796    }
20797    #[inline]
20798    fn cast(syntax: SyntaxNode) -> Option<Self> {
20799        if Self::can_cast(syntax.kind()) {
20800            Some(Self { syntax })
20801        } else {
20802            None
20803        }
20804    }
20805    #[inline]
20806    fn syntax(&self) -> &SyntaxNode {
20807        &self.syntax
20808    }
20809}
20810impl AstNode for DropUser {
20811    #[inline]
20812    fn can_cast(kind: SyntaxKind) -> bool {
20813        kind == SyntaxKind::DROP_USER
20814    }
20815    #[inline]
20816    fn cast(syntax: SyntaxNode) -> Option<Self> {
20817        if Self::can_cast(syntax.kind()) {
20818            Some(Self { syntax })
20819        } else {
20820            None
20821        }
20822    }
20823    #[inline]
20824    fn syntax(&self) -> &SyntaxNode {
20825        &self.syntax
20826    }
20827}
20828impl AstNode for DropUserMapping {
20829    #[inline]
20830    fn can_cast(kind: SyntaxKind) -> bool {
20831        kind == SyntaxKind::DROP_USER_MAPPING
20832    }
20833    #[inline]
20834    fn cast(syntax: SyntaxNode) -> Option<Self> {
20835        if Self::can_cast(syntax.kind()) {
20836            Some(Self { syntax })
20837        } else {
20838            None
20839        }
20840    }
20841    #[inline]
20842    fn syntax(&self) -> &SyntaxNode {
20843        &self.syntax
20844    }
20845}
20846impl AstNode for DropView {
20847    #[inline]
20848    fn can_cast(kind: SyntaxKind) -> bool {
20849        kind == SyntaxKind::DROP_VIEW
20850    }
20851    #[inline]
20852    fn cast(syntax: SyntaxNode) -> Option<Self> {
20853        if Self::can_cast(syntax.kind()) {
20854            Some(Self { syntax })
20855        } else {
20856            None
20857        }
20858    }
20859    #[inline]
20860    fn syntax(&self) -> &SyntaxNode {
20861        &self.syntax
20862    }
20863}
20864impl AstNode for ElseClause {
20865    #[inline]
20866    fn can_cast(kind: SyntaxKind) -> bool {
20867        kind == SyntaxKind::ELSE_CLAUSE
20868    }
20869    #[inline]
20870    fn cast(syntax: SyntaxNode) -> Option<Self> {
20871        if Self::can_cast(syntax.kind()) {
20872            Some(Self { syntax })
20873        } else {
20874            None
20875        }
20876    }
20877    #[inline]
20878    fn syntax(&self) -> &SyntaxNode {
20879        &self.syntax
20880    }
20881}
20882impl AstNode for EnableAlwaysRule {
20883    #[inline]
20884    fn can_cast(kind: SyntaxKind) -> bool {
20885        kind == SyntaxKind::ENABLE_ALWAYS_RULE
20886    }
20887    #[inline]
20888    fn cast(syntax: SyntaxNode) -> Option<Self> {
20889        if Self::can_cast(syntax.kind()) {
20890            Some(Self { syntax })
20891        } else {
20892            None
20893        }
20894    }
20895    #[inline]
20896    fn syntax(&self) -> &SyntaxNode {
20897        &self.syntax
20898    }
20899}
20900impl AstNode for EnableAlwaysTrigger {
20901    #[inline]
20902    fn can_cast(kind: SyntaxKind) -> bool {
20903        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
20904    }
20905    #[inline]
20906    fn cast(syntax: SyntaxNode) -> Option<Self> {
20907        if Self::can_cast(syntax.kind()) {
20908            Some(Self { syntax })
20909        } else {
20910            None
20911        }
20912    }
20913    #[inline]
20914    fn syntax(&self) -> &SyntaxNode {
20915        &self.syntax
20916    }
20917}
20918impl AstNode for EnableReplicaRule {
20919    #[inline]
20920    fn can_cast(kind: SyntaxKind) -> bool {
20921        kind == SyntaxKind::ENABLE_REPLICA_RULE
20922    }
20923    #[inline]
20924    fn cast(syntax: SyntaxNode) -> Option<Self> {
20925        if Self::can_cast(syntax.kind()) {
20926            Some(Self { syntax })
20927        } else {
20928            None
20929        }
20930    }
20931    #[inline]
20932    fn syntax(&self) -> &SyntaxNode {
20933        &self.syntax
20934    }
20935}
20936impl AstNode for EnableReplicaTrigger {
20937    #[inline]
20938    fn can_cast(kind: SyntaxKind) -> bool {
20939        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
20940    }
20941    #[inline]
20942    fn cast(syntax: SyntaxNode) -> Option<Self> {
20943        if Self::can_cast(syntax.kind()) {
20944            Some(Self { syntax })
20945        } else {
20946            None
20947        }
20948    }
20949    #[inline]
20950    fn syntax(&self) -> &SyntaxNode {
20951        &self.syntax
20952    }
20953}
20954impl AstNode for EnableRls {
20955    #[inline]
20956    fn can_cast(kind: SyntaxKind) -> bool {
20957        kind == SyntaxKind::ENABLE_RLS
20958    }
20959    #[inline]
20960    fn cast(syntax: SyntaxNode) -> Option<Self> {
20961        if Self::can_cast(syntax.kind()) {
20962            Some(Self { syntax })
20963        } else {
20964            None
20965        }
20966    }
20967    #[inline]
20968    fn syntax(&self) -> &SyntaxNode {
20969        &self.syntax
20970    }
20971}
20972impl AstNode for EnableRule {
20973    #[inline]
20974    fn can_cast(kind: SyntaxKind) -> bool {
20975        kind == SyntaxKind::ENABLE_RULE
20976    }
20977    #[inline]
20978    fn cast(syntax: SyntaxNode) -> Option<Self> {
20979        if Self::can_cast(syntax.kind()) {
20980            Some(Self { syntax })
20981        } else {
20982            None
20983        }
20984    }
20985    #[inline]
20986    fn syntax(&self) -> &SyntaxNode {
20987        &self.syntax
20988    }
20989}
20990impl AstNode for EnableTrigger {
20991    #[inline]
20992    fn can_cast(kind: SyntaxKind) -> bool {
20993        kind == SyntaxKind::ENABLE_TRIGGER
20994    }
20995    #[inline]
20996    fn cast(syntax: SyntaxNode) -> Option<Self> {
20997        if Self::can_cast(syntax.kind()) {
20998            Some(Self { syntax })
20999        } else {
21000            None
21001        }
21002    }
21003    #[inline]
21004    fn syntax(&self) -> &SyntaxNode {
21005        &self.syntax
21006    }
21007}
21008impl AstNode for Enforced {
21009    #[inline]
21010    fn can_cast(kind: SyntaxKind) -> bool {
21011        kind == SyntaxKind::ENFORCED
21012    }
21013    #[inline]
21014    fn cast(syntax: SyntaxNode) -> Option<Self> {
21015        if Self::can_cast(syntax.kind()) {
21016            Some(Self { syntax })
21017        } else {
21018            None
21019        }
21020    }
21021    #[inline]
21022    fn syntax(&self) -> &SyntaxNode {
21023        &self.syntax
21024    }
21025}
21026impl AstNode for EventTriggerWhen {
21027    #[inline]
21028    fn can_cast(kind: SyntaxKind) -> bool {
21029        kind == SyntaxKind::EVENT_TRIGGER_WHEN
21030    }
21031    #[inline]
21032    fn cast(syntax: SyntaxNode) -> Option<Self> {
21033        if Self::can_cast(syntax.kind()) {
21034            Some(Self { syntax })
21035        } else {
21036            None
21037        }
21038    }
21039    #[inline]
21040    fn syntax(&self) -> &SyntaxNode {
21041        &self.syntax
21042    }
21043}
21044impl AstNode for EventTriggerWhenClause {
21045    #[inline]
21046    fn can_cast(kind: SyntaxKind) -> bool {
21047        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
21048    }
21049    #[inline]
21050    fn cast(syntax: SyntaxNode) -> Option<Self> {
21051        if Self::can_cast(syntax.kind()) {
21052            Some(Self { syntax })
21053        } else {
21054            None
21055        }
21056    }
21057    #[inline]
21058    fn syntax(&self) -> &SyntaxNode {
21059        &self.syntax
21060    }
21061}
21062impl AstNode for ExceptTables {
21063    #[inline]
21064    fn can_cast(kind: SyntaxKind) -> bool {
21065        kind == SyntaxKind::EXCEPT_TABLES
21066    }
21067    #[inline]
21068    fn cast(syntax: SyntaxNode) -> Option<Self> {
21069        if Self::can_cast(syntax.kind()) {
21070            Some(Self { syntax })
21071        } else {
21072            None
21073        }
21074    }
21075    #[inline]
21076    fn syntax(&self) -> &SyntaxNode {
21077        &self.syntax
21078    }
21079}
21080impl AstNode for ExcludeConstraint {
21081    #[inline]
21082    fn can_cast(kind: SyntaxKind) -> bool {
21083        kind == SyntaxKind::EXCLUDE_CONSTRAINT
21084    }
21085    #[inline]
21086    fn cast(syntax: SyntaxNode) -> Option<Self> {
21087        if Self::can_cast(syntax.kind()) {
21088            Some(Self { syntax })
21089        } else {
21090            None
21091        }
21092    }
21093    #[inline]
21094    fn syntax(&self) -> &SyntaxNode {
21095        &self.syntax
21096    }
21097}
21098impl AstNode for Execute {
21099    #[inline]
21100    fn can_cast(kind: SyntaxKind) -> bool {
21101        kind == SyntaxKind::EXECUTE
21102    }
21103    #[inline]
21104    fn cast(syntax: SyntaxNode) -> Option<Self> {
21105        if Self::can_cast(syntax.kind()) {
21106            Some(Self { syntax })
21107        } else {
21108            None
21109        }
21110    }
21111    #[inline]
21112    fn syntax(&self) -> &SyntaxNode {
21113        &self.syntax
21114    }
21115}
21116impl AstNode for ExistsFn {
21117    #[inline]
21118    fn can_cast(kind: SyntaxKind) -> bool {
21119        kind == SyntaxKind::EXISTS_FN
21120    }
21121    #[inline]
21122    fn cast(syntax: SyntaxNode) -> Option<Self> {
21123        if Self::can_cast(syntax.kind()) {
21124            Some(Self { syntax })
21125        } else {
21126            None
21127        }
21128    }
21129    #[inline]
21130    fn syntax(&self) -> &SyntaxNode {
21131        &self.syntax
21132    }
21133}
21134impl AstNode for Explain {
21135    #[inline]
21136    fn can_cast(kind: SyntaxKind) -> bool {
21137        kind == SyntaxKind::EXPLAIN
21138    }
21139    #[inline]
21140    fn cast(syntax: SyntaxNode) -> Option<Self> {
21141        if Self::can_cast(syntax.kind()) {
21142            Some(Self { syntax })
21143        } else {
21144            None
21145        }
21146    }
21147    #[inline]
21148    fn syntax(&self) -> &SyntaxNode {
21149        &self.syntax
21150    }
21151}
21152impl AstNode for ExprAsName {
21153    #[inline]
21154    fn can_cast(kind: SyntaxKind) -> bool {
21155        kind == SyntaxKind::EXPR_AS_NAME
21156    }
21157    #[inline]
21158    fn cast(syntax: SyntaxNode) -> Option<Self> {
21159        if Self::can_cast(syntax.kind()) {
21160            Some(Self { syntax })
21161        } else {
21162            None
21163        }
21164    }
21165    #[inline]
21166    fn syntax(&self) -> &SyntaxNode {
21167        &self.syntax
21168    }
21169}
21170impl AstNode for ExprType {
21171    #[inline]
21172    fn can_cast(kind: SyntaxKind) -> bool {
21173        kind == SyntaxKind::EXPR_TYPE
21174    }
21175    #[inline]
21176    fn cast(syntax: SyntaxNode) -> Option<Self> {
21177        if Self::can_cast(syntax.kind()) {
21178            Some(Self { syntax })
21179        } else {
21180            None
21181        }
21182    }
21183    #[inline]
21184    fn syntax(&self) -> &SyntaxNode {
21185        &self.syntax
21186    }
21187}
21188impl AstNode for ExtractFn {
21189    #[inline]
21190    fn can_cast(kind: SyntaxKind) -> bool {
21191        kind == SyntaxKind::EXTRACT_FN
21192    }
21193    #[inline]
21194    fn cast(syntax: SyntaxNode) -> Option<Self> {
21195        if Self::can_cast(syntax.kind()) {
21196            Some(Self { syntax })
21197        } else {
21198            None
21199        }
21200    }
21201    #[inline]
21202    fn syntax(&self) -> &SyntaxNode {
21203        &self.syntax
21204    }
21205}
21206impl AstNode for FatArrow {
21207    #[inline]
21208    fn can_cast(kind: SyntaxKind) -> bool {
21209        kind == SyntaxKind::FAT_ARROW
21210    }
21211    #[inline]
21212    fn cast(syntax: SyntaxNode) -> Option<Self> {
21213        if Self::can_cast(syntax.kind()) {
21214            Some(Self { syntax })
21215        } else {
21216            None
21217        }
21218    }
21219    #[inline]
21220    fn syntax(&self) -> &SyntaxNode {
21221        &self.syntax
21222    }
21223}
21224impl AstNode for FdwOption {
21225    #[inline]
21226    fn can_cast(kind: SyntaxKind) -> bool {
21227        kind == SyntaxKind::FDW_OPTION
21228    }
21229    #[inline]
21230    fn cast(syntax: SyntaxNode) -> Option<Self> {
21231        if Self::can_cast(syntax.kind()) {
21232            Some(Self { syntax })
21233        } else {
21234            None
21235        }
21236    }
21237    #[inline]
21238    fn syntax(&self) -> &SyntaxNode {
21239        &self.syntax
21240    }
21241}
21242impl AstNode for FdwOptionList {
21243    #[inline]
21244    fn can_cast(kind: SyntaxKind) -> bool {
21245        kind == SyntaxKind::FDW_OPTION_LIST
21246    }
21247    #[inline]
21248    fn cast(syntax: SyntaxNode) -> Option<Self> {
21249        if Self::can_cast(syntax.kind()) {
21250            Some(Self { syntax })
21251        } else {
21252            None
21253        }
21254    }
21255    #[inline]
21256    fn syntax(&self) -> &SyntaxNode {
21257        &self.syntax
21258    }
21259}
21260impl AstNode for Fetch {
21261    #[inline]
21262    fn can_cast(kind: SyntaxKind) -> bool {
21263        kind == SyntaxKind::FETCH
21264    }
21265    #[inline]
21266    fn cast(syntax: SyntaxNode) -> Option<Self> {
21267        if Self::can_cast(syntax.kind()) {
21268            Some(Self { syntax })
21269        } else {
21270            None
21271        }
21272    }
21273    #[inline]
21274    fn syntax(&self) -> &SyntaxNode {
21275        &self.syntax
21276    }
21277}
21278impl AstNode for FetchClause {
21279    #[inline]
21280    fn can_cast(kind: SyntaxKind) -> bool {
21281        kind == SyntaxKind::FETCH_CLAUSE
21282    }
21283    #[inline]
21284    fn cast(syntax: SyntaxNode) -> Option<Self> {
21285        if Self::can_cast(syntax.kind()) {
21286            Some(Self { syntax })
21287        } else {
21288            None
21289        }
21290    }
21291    #[inline]
21292    fn syntax(&self) -> &SyntaxNode {
21293        &self.syntax
21294    }
21295}
21296impl AstNode for FieldExpr {
21297    #[inline]
21298    fn can_cast(kind: SyntaxKind) -> bool {
21299        kind == SyntaxKind::FIELD_EXPR
21300    }
21301    #[inline]
21302    fn cast(syntax: SyntaxNode) -> Option<Self> {
21303        if Self::can_cast(syntax.kind()) {
21304            Some(Self { syntax })
21305        } else {
21306            None
21307        }
21308    }
21309    #[inline]
21310    fn syntax(&self) -> &SyntaxNode {
21311        &self.syntax
21312    }
21313}
21314impl AstNode for FilterClause {
21315    #[inline]
21316    fn can_cast(kind: SyntaxKind) -> bool {
21317        kind == SyntaxKind::FILTER_CLAUSE
21318    }
21319    #[inline]
21320    fn cast(syntax: SyntaxNode) -> Option<Self> {
21321        if Self::can_cast(syntax.kind()) {
21322            Some(Self { syntax })
21323        } else {
21324            None
21325        }
21326    }
21327    #[inline]
21328    fn syntax(&self) -> &SyntaxNode {
21329        &self.syntax
21330    }
21331}
21332impl AstNode for ForProvider {
21333    #[inline]
21334    fn can_cast(kind: SyntaxKind) -> bool {
21335        kind == SyntaxKind::FOR_PROVIDER
21336    }
21337    #[inline]
21338    fn cast(syntax: SyntaxNode) -> Option<Self> {
21339        if Self::can_cast(syntax.kind()) {
21340            Some(Self { syntax })
21341        } else {
21342            None
21343        }
21344    }
21345    #[inline]
21346    fn syntax(&self) -> &SyntaxNode {
21347        &self.syntax
21348    }
21349}
21350impl AstNode for ForceRls {
21351    #[inline]
21352    fn can_cast(kind: SyntaxKind) -> bool {
21353        kind == SyntaxKind::FORCE_RLS
21354    }
21355    #[inline]
21356    fn cast(syntax: SyntaxNode) -> Option<Self> {
21357        if Self::can_cast(syntax.kind()) {
21358            Some(Self { syntax })
21359        } else {
21360            None
21361        }
21362    }
21363    #[inline]
21364    fn syntax(&self) -> &SyntaxNode {
21365        &self.syntax
21366    }
21367}
21368impl AstNode for ForeignKeyConstraint {
21369    #[inline]
21370    fn can_cast(kind: SyntaxKind) -> bool {
21371        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
21372    }
21373    #[inline]
21374    fn cast(syntax: SyntaxNode) -> Option<Self> {
21375        if Self::can_cast(syntax.kind()) {
21376            Some(Self { syntax })
21377        } else {
21378            None
21379        }
21380    }
21381    #[inline]
21382    fn syntax(&self) -> &SyntaxNode {
21383        &self.syntax
21384    }
21385}
21386impl AstNode for FrameClause {
21387    #[inline]
21388    fn can_cast(kind: SyntaxKind) -> bool {
21389        kind == SyntaxKind::FRAME_CLAUSE
21390    }
21391    #[inline]
21392    fn cast(syntax: SyntaxNode) -> Option<Self> {
21393        if Self::can_cast(syntax.kind()) {
21394            Some(Self { syntax })
21395        } else {
21396            None
21397        }
21398    }
21399    #[inline]
21400    fn syntax(&self) -> &SyntaxNode {
21401        &self.syntax
21402    }
21403}
21404impl AstNode for FromClause {
21405    #[inline]
21406    fn can_cast(kind: SyntaxKind) -> bool {
21407        kind == SyntaxKind::FROM_CLAUSE
21408    }
21409    #[inline]
21410    fn cast(syntax: SyntaxNode) -> Option<Self> {
21411        if Self::can_cast(syntax.kind()) {
21412            Some(Self { syntax })
21413        } else {
21414            None
21415        }
21416    }
21417    #[inline]
21418    fn syntax(&self) -> &SyntaxNode {
21419        &self.syntax
21420    }
21421}
21422impl AstNode for FromItem {
21423    #[inline]
21424    fn can_cast(kind: SyntaxKind) -> bool {
21425        kind == SyntaxKind::FROM_ITEM
21426    }
21427    #[inline]
21428    fn cast(syntax: SyntaxNode) -> Option<Self> {
21429        if Self::can_cast(syntax.kind()) {
21430            Some(Self { syntax })
21431        } else {
21432            None
21433        }
21434    }
21435    #[inline]
21436    fn syntax(&self) -> &SyntaxNode {
21437        &self.syntax
21438    }
21439}
21440impl AstNode for FromServer {
21441    #[inline]
21442    fn can_cast(kind: SyntaxKind) -> bool {
21443        kind == SyntaxKind::FROM_SERVER
21444    }
21445    #[inline]
21446    fn cast(syntax: SyntaxNode) -> Option<Self> {
21447        if Self::can_cast(syntax.kind()) {
21448            Some(Self { syntax })
21449        } else {
21450            None
21451        }
21452    }
21453    #[inline]
21454    fn syntax(&self) -> &SyntaxNode {
21455        &self.syntax
21456    }
21457}
21458impl AstNode for FromTable {
21459    #[inline]
21460    fn can_cast(kind: SyntaxKind) -> bool {
21461        kind == SyntaxKind::FROM_TABLE
21462    }
21463    #[inline]
21464    fn cast(syntax: SyntaxNode) -> Option<Self> {
21465        if Self::can_cast(syntax.kind()) {
21466            Some(Self { syntax })
21467        } else {
21468            None
21469        }
21470    }
21471    #[inline]
21472    fn syntax(&self) -> &SyntaxNode {
21473        &self.syntax
21474    }
21475}
21476impl AstNode for FuncOptionList {
21477    #[inline]
21478    fn can_cast(kind: SyntaxKind) -> bool {
21479        kind == SyntaxKind::FUNC_OPTION_LIST
21480    }
21481    #[inline]
21482    fn cast(syntax: SyntaxNode) -> Option<Self> {
21483        if Self::can_cast(syntax.kind()) {
21484            Some(Self { syntax })
21485        } else {
21486            None
21487        }
21488    }
21489    #[inline]
21490    fn syntax(&self) -> &SyntaxNode {
21491        &self.syntax
21492    }
21493}
21494impl AstNode for FunctionSig {
21495    #[inline]
21496    fn can_cast(kind: SyntaxKind) -> bool {
21497        kind == SyntaxKind::FUNCTION_SIG
21498    }
21499    #[inline]
21500    fn cast(syntax: SyntaxNode) -> Option<Self> {
21501        if Self::can_cast(syntax.kind()) {
21502            Some(Self { syntax })
21503        } else {
21504            None
21505        }
21506    }
21507    #[inline]
21508    fn syntax(&self) -> &SyntaxNode {
21509        &self.syntax
21510    }
21511}
21512impl AstNode for FunctionSigList {
21513    #[inline]
21514    fn can_cast(kind: SyntaxKind) -> bool {
21515        kind == SyntaxKind::FUNCTION_SIG_LIST
21516    }
21517    #[inline]
21518    fn cast(syntax: SyntaxNode) -> Option<Self> {
21519        if Self::can_cast(syntax.kind()) {
21520            Some(Self { syntax })
21521        } else {
21522            None
21523        }
21524    }
21525    #[inline]
21526    fn syntax(&self) -> &SyntaxNode {
21527        &self.syntax
21528    }
21529}
21530impl AstNode for GeneratedConstraint {
21531    #[inline]
21532    fn can_cast(kind: SyntaxKind) -> bool {
21533        kind == SyntaxKind::GENERATED_CONSTRAINT
21534    }
21535    #[inline]
21536    fn cast(syntax: SyntaxNode) -> Option<Self> {
21537        if Self::can_cast(syntax.kind()) {
21538            Some(Self { syntax })
21539        } else {
21540            None
21541        }
21542    }
21543    #[inline]
21544    fn syntax(&self) -> &SyntaxNode {
21545        &self.syntax
21546    }
21547}
21548impl AstNode for Grant {
21549    #[inline]
21550    fn can_cast(kind: SyntaxKind) -> bool {
21551        kind == SyntaxKind::GRANT
21552    }
21553    #[inline]
21554    fn cast(syntax: SyntaxNode) -> Option<Self> {
21555        if Self::can_cast(syntax.kind()) {
21556            Some(Self { syntax })
21557        } else {
21558            None
21559        }
21560    }
21561    #[inline]
21562    fn syntax(&self) -> &SyntaxNode {
21563        &self.syntax
21564    }
21565}
21566impl AstNode for GrantDefaultPrivileges {
21567    #[inline]
21568    fn can_cast(kind: SyntaxKind) -> bool {
21569        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
21570    }
21571    #[inline]
21572    fn cast(syntax: SyntaxNode) -> Option<Self> {
21573        if Self::can_cast(syntax.kind()) {
21574            Some(Self { syntax })
21575        } else {
21576            None
21577        }
21578    }
21579    #[inline]
21580    fn syntax(&self) -> &SyntaxNode {
21581        &self.syntax
21582    }
21583}
21584impl AstNode for GroupByClause {
21585    #[inline]
21586    fn can_cast(kind: SyntaxKind) -> bool {
21587        kind == SyntaxKind::GROUP_BY_CLAUSE
21588    }
21589    #[inline]
21590    fn cast(syntax: SyntaxNode) -> Option<Self> {
21591        if Self::can_cast(syntax.kind()) {
21592            Some(Self { syntax })
21593        } else {
21594            None
21595        }
21596    }
21597    #[inline]
21598    fn syntax(&self) -> &SyntaxNode {
21599        &self.syntax
21600    }
21601}
21602impl AstNode for GroupByList {
21603    #[inline]
21604    fn can_cast(kind: SyntaxKind) -> bool {
21605        kind == SyntaxKind::GROUP_BY_LIST
21606    }
21607    #[inline]
21608    fn cast(syntax: SyntaxNode) -> Option<Self> {
21609        if Self::can_cast(syntax.kind()) {
21610            Some(Self { syntax })
21611        } else {
21612            None
21613        }
21614    }
21615    #[inline]
21616    fn syntax(&self) -> &SyntaxNode {
21617        &self.syntax
21618    }
21619}
21620impl AstNode for GroupingCube {
21621    #[inline]
21622    fn can_cast(kind: SyntaxKind) -> bool {
21623        kind == SyntaxKind::GROUPING_CUBE
21624    }
21625    #[inline]
21626    fn cast(syntax: SyntaxNode) -> Option<Self> {
21627        if Self::can_cast(syntax.kind()) {
21628            Some(Self { syntax })
21629        } else {
21630            None
21631        }
21632    }
21633    #[inline]
21634    fn syntax(&self) -> &SyntaxNode {
21635        &self.syntax
21636    }
21637}
21638impl AstNode for GroupingExpr {
21639    #[inline]
21640    fn can_cast(kind: SyntaxKind) -> bool {
21641        kind == SyntaxKind::GROUPING_EXPR
21642    }
21643    #[inline]
21644    fn cast(syntax: SyntaxNode) -> Option<Self> {
21645        if Self::can_cast(syntax.kind()) {
21646            Some(Self { syntax })
21647        } else {
21648            None
21649        }
21650    }
21651    #[inline]
21652    fn syntax(&self) -> &SyntaxNode {
21653        &self.syntax
21654    }
21655}
21656impl AstNode for GroupingRollup {
21657    #[inline]
21658    fn can_cast(kind: SyntaxKind) -> bool {
21659        kind == SyntaxKind::GROUPING_ROLLUP
21660    }
21661    #[inline]
21662    fn cast(syntax: SyntaxNode) -> Option<Self> {
21663        if Self::can_cast(syntax.kind()) {
21664            Some(Self { syntax })
21665        } else {
21666            None
21667        }
21668    }
21669    #[inline]
21670    fn syntax(&self) -> &SyntaxNode {
21671        &self.syntax
21672    }
21673}
21674impl AstNode for GroupingSets {
21675    #[inline]
21676    fn can_cast(kind: SyntaxKind) -> bool {
21677        kind == SyntaxKind::GROUPING_SETS
21678    }
21679    #[inline]
21680    fn cast(syntax: SyntaxNode) -> Option<Self> {
21681        if Self::can_cast(syntax.kind()) {
21682            Some(Self { syntax })
21683        } else {
21684            None
21685        }
21686    }
21687    #[inline]
21688    fn syntax(&self) -> &SyntaxNode {
21689        &self.syntax
21690    }
21691}
21692impl AstNode for Gteq {
21693    #[inline]
21694    fn can_cast(kind: SyntaxKind) -> bool {
21695        kind == SyntaxKind::GTEQ
21696    }
21697    #[inline]
21698    fn cast(syntax: SyntaxNode) -> Option<Self> {
21699        if Self::can_cast(syntax.kind()) {
21700            Some(Self { syntax })
21701        } else {
21702            None
21703        }
21704    }
21705    #[inline]
21706    fn syntax(&self) -> &SyntaxNode {
21707        &self.syntax
21708    }
21709}
21710impl AstNode for HandlerClause {
21711    #[inline]
21712    fn can_cast(kind: SyntaxKind) -> bool {
21713        kind == SyntaxKind::HANDLER_CLAUSE
21714    }
21715    #[inline]
21716    fn cast(syntax: SyntaxNode) -> Option<Self> {
21717        if Self::can_cast(syntax.kind()) {
21718            Some(Self { syntax })
21719        } else {
21720            None
21721        }
21722    }
21723    #[inline]
21724    fn syntax(&self) -> &SyntaxNode {
21725        &self.syntax
21726    }
21727}
21728impl AstNode for HavingClause {
21729    #[inline]
21730    fn can_cast(kind: SyntaxKind) -> bool {
21731        kind == SyntaxKind::HAVING_CLAUSE
21732    }
21733    #[inline]
21734    fn cast(syntax: SyntaxNode) -> Option<Self> {
21735        if Self::can_cast(syntax.kind()) {
21736            Some(Self { syntax })
21737        } else {
21738            None
21739        }
21740    }
21741    #[inline]
21742    fn syntax(&self) -> &SyntaxNode {
21743        &self.syntax
21744    }
21745}
21746impl AstNode for IfExists {
21747    #[inline]
21748    fn can_cast(kind: SyntaxKind) -> bool {
21749        kind == SyntaxKind::IF_EXISTS
21750    }
21751    #[inline]
21752    fn cast(syntax: SyntaxNode) -> Option<Self> {
21753        if Self::can_cast(syntax.kind()) {
21754            Some(Self { syntax })
21755        } else {
21756            None
21757        }
21758    }
21759    #[inline]
21760    fn syntax(&self) -> &SyntaxNode {
21761        &self.syntax
21762    }
21763}
21764impl AstNode for IfNotExists {
21765    #[inline]
21766    fn can_cast(kind: SyntaxKind) -> bool {
21767        kind == SyntaxKind::IF_NOT_EXISTS
21768    }
21769    #[inline]
21770    fn cast(syntax: SyntaxNode) -> Option<Self> {
21771        if Self::can_cast(syntax.kind()) {
21772            Some(Self { syntax })
21773        } else {
21774            None
21775        }
21776    }
21777    #[inline]
21778    fn syntax(&self) -> &SyntaxNode {
21779        &self.syntax
21780    }
21781}
21782impl AstNode for ImportForeignSchema {
21783    #[inline]
21784    fn can_cast(kind: SyntaxKind) -> bool {
21785        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
21786    }
21787    #[inline]
21788    fn cast(syntax: SyntaxNode) -> Option<Self> {
21789        if Self::can_cast(syntax.kind()) {
21790            Some(Self { syntax })
21791        } else {
21792            None
21793        }
21794    }
21795    #[inline]
21796    fn syntax(&self) -> &SyntaxNode {
21797        &self.syntax
21798    }
21799}
21800impl AstNode for IndexExpr {
21801    #[inline]
21802    fn can_cast(kind: SyntaxKind) -> bool {
21803        kind == SyntaxKind::INDEX_EXPR
21804    }
21805    #[inline]
21806    fn cast(syntax: SyntaxNode) -> Option<Self> {
21807        if Self::can_cast(syntax.kind()) {
21808            Some(Self { syntax })
21809        } else {
21810            None
21811        }
21812    }
21813    #[inline]
21814    fn syntax(&self) -> &SyntaxNode {
21815        &self.syntax
21816    }
21817}
21818impl AstNode for Inherit {
21819    #[inline]
21820    fn can_cast(kind: SyntaxKind) -> bool {
21821        kind == SyntaxKind::INHERIT
21822    }
21823    #[inline]
21824    fn cast(syntax: SyntaxNode) -> Option<Self> {
21825        if Self::can_cast(syntax.kind()) {
21826            Some(Self { syntax })
21827        } else {
21828            None
21829        }
21830    }
21831    #[inline]
21832    fn syntax(&self) -> &SyntaxNode {
21833        &self.syntax
21834    }
21835}
21836impl AstNode for InheritTable {
21837    #[inline]
21838    fn can_cast(kind: SyntaxKind) -> bool {
21839        kind == SyntaxKind::INHERIT_TABLE
21840    }
21841    #[inline]
21842    fn cast(syntax: SyntaxNode) -> Option<Self> {
21843        if Self::can_cast(syntax.kind()) {
21844            Some(Self { syntax })
21845        } else {
21846            None
21847        }
21848    }
21849    #[inline]
21850    fn syntax(&self) -> &SyntaxNode {
21851        &self.syntax
21852    }
21853}
21854impl AstNode for Inherits {
21855    #[inline]
21856    fn can_cast(kind: SyntaxKind) -> bool {
21857        kind == SyntaxKind::INHERITS
21858    }
21859    #[inline]
21860    fn cast(syntax: SyntaxNode) -> Option<Self> {
21861        if Self::can_cast(syntax.kind()) {
21862            Some(Self { syntax })
21863        } else {
21864            None
21865        }
21866    }
21867    #[inline]
21868    fn syntax(&self) -> &SyntaxNode {
21869        &self.syntax
21870    }
21871}
21872impl AstNode for InitiallyDeferredConstraintOption {
21873    #[inline]
21874    fn can_cast(kind: SyntaxKind) -> bool {
21875        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
21876    }
21877    #[inline]
21878    fn cast(syntax: SyntaxNode) -> Option<Self> {
21879        if Self::can_cast(syntax.kind()) {
21880            Some(Self { syntax })
21881        } else {
21882            None
21883        }
21884    }
21885    #[inline]
21886    fn syntax(&self) -> &SyntaxNode {
21887        &self.syntax
21888    }
21889}
21890impl AstNode for InitiallyImmediateConstraintOption {
21891    #[inline]
21892    fn can_cast(kind: SyntaxKind) -> bool {
21893        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
21894    }
21895    #[inline]
21896    fn cast(syntax: SyntaxNode) -> Option<Self> {
21897        if Self::can_cast(syntax.kind()) {
21898            Some(Self { syntax })
21899        } else {
21900            None
21901        }
21902    }
21903    #[inline]
21904    fn syntax(&self) -> &SyntaxNode {
21905        &self.syntax
21906    }
21907}
21908impl AstNode for Insert {
21909    #[inline]
21910    fn can_cast(kind: SyntaxKind) -> bool {
21911        kind == SyntaxKind::INSERT
21912    }
21913    #[inline]
21914    fn cast(syntax: SyntaxNode) -> Option<Self> {
21915        if Self::can_cast(syntax.kind()) {
21916            Some(Self { syntax })
21917        } else {
21918            None
21919        }
21920    }
21921    #[inline]
21922    fn syntax(&self) -> &SyntaxNode {
21923        &self.syntax
21924    }
21925}
21926impl AstNode for IntervalType {
21927    #[inline]
21928    fn can_cast(kind: SyntaxKind) -> bool {
21929        kind == SyntaxKind::INTERVAL_TYPE
21930    }
21931    #[inline]
21932    fn cast(syntax: SyntaxNode) -> Option<Self> {
21933        if Self::can_cast(syntax.kind()) {
21934            Some(Self { syntax })
21935        } else {
21936            None
21937        }
21938    }
21939    #[inline]
21940    fn syntax(&self) -> &SyntaxNode {
21941        &self.syntax
21942    }
21943}
21944impl AstNode for IntoClause {
21945    #[inline]
21946    fn can_cast(kind: SyntaxKind) -> bool {
21947        kind == SyntaxKind::INTO_CLAUSE
21948    }
21949    #[inline]
21950    fn cast(syntax: SyntaxNode) -> Option<Self> {
21951        if Self::can_cast(syntax.kind()) {
21952            Some(Self { syntax })
21953        } else {
21954            None
21955        }
21956    }
21957    #[inline]
21958    fn syntax(&self) -> &SyntaxNode {
21959        &self.syntax
21960    }
21961}
21962impl AstNode for IntoSchema {
21963    #[inline]
21964    fn can_cast(kind: SyntaxKind) -> bool {
21965        kind == SyntaxKind::INTO_SCHEMA
21966    }
21967    #[inline]
21968    fn cast(syntax: SyntaxNode) -> Option<Self> {
21969        if Self::can_cast(syntax.kind()) {
21970            Some(Self { syntax })
21971        } else {
21972            None
21973        }
21974    }
21975    #[inline]
21976    fn syntax(&self) -> &SyntaxNode {
21977        &self.syntax
21978    }
21979}
21980impl AstNode for IsDistinctFrom {
21981    #[inline]
21982    fn can_cast(kind: SyntaxKind) -> bool {
21983        kind == SyntaxKind::IS_DISTINCT_FROM
21984    }
21985    #[inline]
21986    fn cast(syntax: SyntaxNode) -> Option<Self> {
21987        if Self::can_cast(syntax.kind()) {
21988            Some(Self { syntax })
21989        } else {
21990            None
21991        }
21992    }
21993    #[inline]
21994    fn syntax(&self) -> &SyntaxNode {
21995        &self.syntax
21996    }
21997}
21998impl AstNode for IsJson {
21999    #[inline]
22000    fn can_cast(kind: SyntaxKind) -> bool {
22001        kind == SyntaxKind::IS_JSON
22002    }
22003    #[inline]
22004    fn cast(syntax: SyntaxNode) -> Option<Self> {
22005        if Self::can_cast(syntax.kind()) {
22006            Some(Self { syntax })
22007        } else {
22008            None
22009        }
22010    }
22011    #[inline]
22012    fn syntax(&self) -> &SyntaxNode {
22013        &self.syntax
22014    }
22015}
22016impl AstNode for IsJsonArray {
22017    #[inline]
22018    fn can_cast(kind: SyntaxKind) -> bool {
22019        kind == SyntaxKind::IS_JSON_ARRAY
22020    }
22021    #[inline]
22022    fn cast(syntax: SyntaxNode) -> Option<Self> {
22023        if Self::can_cast(syntax.kind()) {
22024            Some(Self { syntax })
22025        } else {
22026            None
22027        }
22028    }
22029    #[inline]
22030    fn syntax(&self) -> &SyntaxNode {
22031        &self.syntax
22032    }
22033}
22034impl AstNode for IsJsonObject {
22035    #[inline]
22036    fn can_cast(kind: SyntaxKind) -> bool {
22037        kind == SyntaxKind::IS_JSON_OBJECT
22038    }
22039    #[inline]
22040    fn cast(syntax: SyntaxNode) -> Option<Self> {
22041        if Self::can_cast(syntax.kind()) {
22042            Some(Self { syntax })
22043        } else {
22044            None
22045        }
22046    }
22047    #[inline]
22048    fn syntax(&self) -> &SyntaxNode {
22049        &self.syntax
22050    }
22051}
22052impl AstNode for IsJsonScalar {
22053    #[inline]
22054    fn can_cast(kind: SyntaxKind) -> bool {
22055        kind == SyntaxKind::IS_JSON_SCALAR
22056    }
22057    #[inline]
22058    fn cast(syntax: SyntaxNode) -> Option<Self> {
22059        if Self::can_cast(syntax.kind()) {
22060            Some(Self { syntax })
22061        } else {
22062            None
22063        }
22064    }
22065    #[inline]
22066    fn syntax(&self) -> &SyntaxNode {
22067        &self.syntax
22068    }
22069}
22070impl AstNode for IsJsonValue {
22071    #[inline]
22072    fn can_cast(kind: SyntaxKind) -> bool {
22073        kind == SyntaxKind::IS_JSON_VALUE
22074    }
22075    #[inline]
22076    fn cast(syntax: SyntaxNode) -> Option<Self> {
22077        if Self::can_cast(syntax.kind()) {
22078            Some(Self { syntax })
22079        } else {
22080            None
22081        }
22082    }
22083    #[inline]
22084    fn syntax(&self) -> &SyntaxNode {
22085        &self.syntax
22086    }
22087}
22088impl AstNode for IsNormalized {
22089    #[inline]
22090    fn can_cast(kind: SyntaxKind) -> bool {
22091        kind == SyntaxKind::IS_NORMALIZED
22092    }
22093    #[inline]
22094    fn cast(syntax: SyntaxNode) -> Option<Self> {
22095        if Self::can_cast(syntax.kind()) {
22096            Some(Self { syntax })
22097        } else {
22098            None
22099        }
22100    }
22101    #[inline]
22102    fn syntax(&self) -> &SyntaxNode {
22103        &self.syntax
22104    }
22105}
22106impl AstNode for IsNot {
22107    #[inline]
22108    fn can_cast(kind: SyntaxKind) -> bool {
22109        kind == SyntaxKind::IS_NOT
22110    }
22111    #[inline]
22112    fn cast(syntax: SyntaxNode) -> Option<Self> {
22113        if Self::can_cast(syntax.kind()) {
22114            Some(Self { syntax })
22115        } else {
22116            None
22117        }
22118    }
22119    #[inline]
22120    fn syntax(&self) -> &SyntaxNode {
22121        &self.syntax
22122    }
22123}
22124impl AstNode for IsNotDistinctFrom {
22125    #[inline]
22126    fn can_cast(kind: SyntaxKind) -> bool {
22127        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
22128    }
22129    #[inline]
22130    fn cast(syntax: SyntaxNode) -> Option<Self> {
22131        if Self::can_cast(syntax.kind()) {
22132            Some(Self { syntax })
22133        } else {
22134            None
22135        }
22136    }
22137    #[inline]
22138    fn syntax(&self) -> &SyntaxNode {
22139        &self.syntax
22140    }
22141}
22142impl AstNode for IsNotJson {
22143    #[inline]
22144    fn can_cast(kind: SyntaxKind) -> bool {
22145        kind == SyntaxKind::IS_NOT_JSON
22146    }
22147    #[inline]
22148    fn cast(syntax: SyntaxNode) -> Option<Self> {
22149        if Self::can_cast(syntax.kind()) {
22150            Some(Self { syntax })
22151        } else {
22152            None
22153        }
22154    }
22155    #[inline]
22156    fn syntax(&self) -> &SyntaxNode {
22157        &self.syntax
22158    }
22159}
22160impl AstNode for IsNotJsonArray {
22161    #[inline]
22162    fn can_cast(kind: SyntaxKind) -> bool {
22163        kind == SyntaxKind::IS_NOT_JSON_ARRAY
22164    }
22165    #[inline]
22166    fn cast(syntax: SyntaxNode) -> Option<Self> {
22167        if Self::can_cast(syntax.kind()) {
22168            Some(Self { syntax })
22169        } else {
22170            None
22171        }
22172    }
22173    #[inline]
22174    fn syntax(&self) -> &SyntaxNode {
22175        &self.syntax
22176    }
22177}
22178impl AstNode for IsNotJsonObject {
22179    #[inline]
22180    fn can_cast(kind: SyntaxKind) -> bool {
22181        kind == SyntaxKind::IS_NOT_JSON_OBJECT
22182    }
22183    #[inline]
22184    fn cast(syntax: SyntaxNode) -> Option<Self> {
22185        if Self::can_cast(syntax.kind()) {
22186            Some(Self { syntax })
22187        } else {
22188            None
22189        }
22190    }
22191    #[inline]
22192    fn syntax(&self) -> &SyntaxNode {
22193        &self.syntax
22194    }
22195}
22196impl AstNode for IsNotJsonScalar {
22197    #[inline]
22198    fn can_cast(kind: SyntaxKind) -> bool {
22199        kind == SyntaxKind::IS_NOT_JSON_SCALAR
22200    }
22201    #[inline]
22202    fn cast(syntax: SyntaxNode) -> Option<Self> {
22203        if Self::can_cast(syntax.kind()) {
22204            Some(Self { syntax })
22205        } else {
22206            None
22207        }
22208    }
22209    #[inline]
22210    fn syntax(&self) -> &SyntaxNode {
22211        &self.syntax
22212    }
22213}
22214impl AstNode for IsNotJsonValue {
22215    #[inline]
22216    fn can_cast(kind: SyntaxKind) -> bool {
22217        kind == SyntaxKind::IS_NOT_JSON_VALUE
22218    }
22219    #[inline]
22220    fn cast(syntax: SyntaxNode) -> Option<Self> {
22221        if Self::can_cast(syntax.kind()) {
22222            Some(Self { syntax })
22223        } else {
22224            None
22225        }
22226    }
22227    #[inline]
22228    fn syntax(&self) -> &SyntaxNode {
22229        &self.syntax
22230    }
22231}
22232impl AstNode for IsNotNormalized {
22233    #[inline]
22234    fn can_cast(kind: SyntaxKind) -> bool {
22235        kind == SyntaxKind::IS_NOT_NORMALIZED
22236    }
22237    #[inline]
22238    fn cast(syntax: SyntaxNode) -> Option<Self> {
22239        if Self::can_cast(syntax.kind()) {
22240            Some(Self { syntax })
22241        } else {
22242            None
22243        }
22244    }
22245    #[inline]
22246    fn syntax(&self) -> &SyntaxNode {
22247        &self.syntax
22248    }
22249}
22250impl AstNode for Join {
22251    #[inline]
22252    fn can_cast(kind: SyntaxKind) -> bool {
22253        kind == SyntaxKind::JOIN
22254    }
22255    #[inline]
22256    fn cast(syntax: SyntaxNode) -> Option<Self> {
22257        if Self::can_cast(syntax.kind()) {
22258            Some(Self { syntax })
22259        } else {
22260            None
22261        }
22262    }
22263    #[inline]
22264    fn syntax(&self) -> &SyntaxNode {
22265        &self.syntax
22266    }
22267}
22268impl AstNode for JoinCross {
22269    #[inline]
22270    fn can_cast(kind: SyntaxKind) -> bool {
22271        kind == SyntaxKind::JOIN_CROSS
22272    }
22273    #[inline]
22274    fn cast(syntax: SyntaxNode) -> Option<Self> {
22275        if Self::can_cast(syntax.kind()) {
22276            Some(Self { syntax })
22277        } else {
22278            None
22279        }
22280    }
22281    #[inline]
22282    fn syntax(&self) -> &SyntaxNode {
22283        &self.syntax
22284    }
22285}
22286impl AstNode for JoinExpr {
22287    #[inline]
22288    fn can_cast(kind: SyntaxKind) -> bool {
22289        kind == SyntaxKind::JOIN_EXPR
22290    }
22291    #[inline]
22292    fn cast(syntax: SyntaxNode) -> Option<Self> {
22293        if Self::can_cast(syntax.kind()) {
22294            Some(Self { syntax })
22295        } else {
22296            None
22297        }
22298    }
22299    #[inline]
22300    fn syntax(&self) -> &SyntaxNode {
22301        &self.syntax
22302    }
22303}
22304impl AstNode for JoinFull {
22305    #[inline]
22306    fn can_cast(kind: SyntaxKind) -> bool {
22307        kind == SyntaxKind::JOIN_FULL
22308    }
22309    #[inline]
22310    fn cast(syntax: SyntaxNode) -> Option<Self> {
22311        if Self::can_cast(syntax.kind()) {
22312            Some(Self { syntax })
22313        } else {
22314            None
22315        }
22316    }
22317    #[inline]
22318    fn syntax(&self) -> &SyntaxNode {
22319        &self.syntax
22320    }
22321}
22322impl AstNode for JoinInner {
22323    #[inline]
22324    fn can_cast(kind: SyntaxKind) -> bool {
22325        kind == SyntaxKind::JOIN_INNER
22326    }
22327    #[inline]
22328    fn cast(syntax: SyntaxNode) -> Option<Self> {
22329        if Self::can_cast(syntax.kind()) {
22330            Some(Self { syntax })
22331        } else {
22332            None
22333        }
22334    }
22335    #[inline]
22336    fn syntax(&self) -> &SyntaxNode {
22337        &self.syntax
22338    }
22339}
22340impl AstNode for JoinLeft {
22341    #[inline]
22342    fn can_cast(kind: SyntaxKind) -> bool {
22343        kind == SyntaxKind::JOIN_LEFT
22344    }
22345    #[inline]
22346    fn cast(syntax: SyntaxNode) -> Option<Self> {
22347        if Self::can_cast(syntax.kind()) {
22348            Some(Self { syntax })
22349        } else {
22350            None
22351        }
22352    }
22353    #[inline]
22354    fn syntax(&self) -> &SyntaxNode {
22355        &self.syntax
22356    }
22357}
22358impl AstNode for JoinRight {
22359    #[inline]
22360    fn can_cast(kind: SyntaxKind) -> bool {
22361        kind == SyntaxKind::JOIN_RIGHT
22362    }
22363    #[inline]
22364    fn cast(syntax: SyntaxNode) -> Option<Self> {
22365        if Self::can_cast(syntax.kind()) {
22366            Some(Self { syntax })
22367        } else {
22368            None
22369        }
22370    }
22371    #[inline]
22372    fn syntax(&self) -> &SyntaxNode {
22373        &self.syntax
22374    }
22375}
22376impl AstNode for JoinUsingClause {
22377    #[inline]
22378    fn can_cast(kind: SyntaxKind) -> bool {
22379        kind == SyntaxKind::JOIN_USING_CLAUSE
22380    }
22381    #[inline]
22382    fn cast(syntax: SyntaxNode) -> Option<Self> {
22383        if Self::can_cast(syntax.kind()) {
22384            Some(Self { syntax })
22385        } else {
22386            None
22387        }
22388    }
22389    #[inline]
22390    fn syntax(&self) -> &SyntaxNode {
22391        &self.syntax
22392    }
22393}
22394impl AstNode for JsonArrayAggFn {
22395    #[inline]
22396    fn can_cast(kind: SyntaxKind) -> bool {
22397        kind == SyntaxKind::JSON_ARRAY_AGG_FN
22398    }
22399    #[inline]
22400    fn cast(syntax: SyntaxNode) -> Option<Self> {
22401        if Self::can_cast(syntax.kind()) {
22402            Some(Self { syntax })
22403        } else {
22404            None
22405        }
22406    }
22407    #[inline]
22408    fn syntax(&self) -> &SyntaxNode {
22409        &self.syntax
22410    }
22411}
22412impl AstNode for JsonArrayFn {
22413    #[inline]
22414    fn can_cast(kind: SyntaxKind) -> bool {
22415        kind == SyntaxKind::JSON_ARRAY_FN
22416    }
22417    #[inline]
22418    fn cast(syntax: SyntaxNode) -> Option<Self> {
22419        if Self::can_cast(syntax.kind()) {
22420            Some(Self { syntax })
22421        } else {
22422            None
22423        }
22424    }
22425    #[inline]
22426    fn syntax(&self) -> &SyntaxNode {
22427        &self.syntax
22428    }
22429}
22430impl AstNode for JsonBehaviorClause {
22431    #[inline]
22432    fn can_cast(kind: SyntaxKind) -> bool {
22433        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
22434    }
22435    #[inline]
22436    fn cast(syntax: SyntaxNode) -> Option<Self> {
22437        if Self::can_cast(syntax.kind()) {
22438            Some(Self { syntax })
22439        } else {
22440            None
22441        }
22442    }
22443    #[inline]
22444    fn syntax(&self) -> &SyntaxNode {
22445        &self.syntax
22446    }
22447}
22448impl AstNode for JsonBehaviorDefault {
22449    #[inline]
22450    fn can_cast(kind: SyntaxKind) -> bool {
22451        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
22452    }
22453    #[inline]
22454    fn cast(syntax: SyntaxNode) -> Option<Self> {
22455        if Self::can_cast(syntax.kind()) {
22456            Some(Self { syntax })
22457        } else {
22458            None
22459        }
22460    }
22461    #[inline]
22462    fn syntax(&self) -> &SyntaxNode {
22463        &self.syntax
22464    }
22465}
22466impl AstNode for JsonBehaviorEmptyArray {
22467    #[inline]
22468    fn can_cast(kind: SyntaxKind) -> bool {
22469        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
22470    }
22471    #[inline]
22472    fn cast(syntax: SyntaxNode) -> Option<Self> {
22473        if Self::can_cast(syntax.kind()) {
22474            Some(Self { syntax })
22475        } else {
22476            None
22477        }
22478    }
22479    #[inline]
22480    fn syntax(&self) -> &SyntaxNode {
22481        &self.syntax
22482    }
22483}
22484impl AstNode for JsonBehaviorEmptyObject {
22485    #[inline]
22486    fn can_cast(kind: SyntaxKind) -> bool {
22487        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
22488    }
22489    #[inline]
22490    fn cast(syntax: SyntaxNode) -> Option<Self> {
22491        if Self::can_cast(syntax.kind()) {
22492            Some(Self { syntax })
22493        } else {
22494            None
22495        }
22496    }
22497    #[inline]
22498    fn syntax(&self) -> &SyntaxNode {
22499        &self.syntax
22500    }
22501}
22502impl AstNode for JsonBehaviorError {
22503    #[inline]
22504    fn can_cast(kind: SyntaxKind) -> bool {
22505        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
22506    }
22507    #[inline]
22508    fn cast(syntax: SyntaxNode) -> Option<Self> {
22509        if Self::can_cast(syntax.kind()) {
22510            Some(Self { syntax })
22511        } else {
22512            None
22513        }
22514    }
22515    #[inline]
22516    fn syntax(&self) -> &SyntaxNode {
22517        &self.syntax
22518    }
22519}
22520impl AstNode for JsonBehaviorFalse {
22521    #[inline]
22522    fn can_cast(kind: SyntaxKind) -> bool {
22523        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
22524    }
22525    #[inline]
22526    fn cast(syntax: SyntaxNode) -> Option<Self> {
22527        if Self::can_cast(syntax.kind()) {
22528            Some(Self { syntax })
22529        } else {
22530            None
22531        }
22532    }
22533    #[inline]
22534    fn syntax(&self) -> &SyntaxNode {
22535        &self.syntax
22536    }
22537}
22538impl AstNode for JsonBehaviorNull {
22539    #[inline]
22540    fn can_cast(kind: SyntaxKind) -> bool {
22541        kind == SyntaxKind::JSON_BEHAVIOR_NULL
22542    }
22543    #[inline]
22544    fn cast(syntax: SyntaxNode) -> Option<Self> {
22545        if Self::can_cast(syntax.kind()) {
22546            Some(Self { syntax })
22547        } else {
22548            None
22549        }
22550    }
22551    #[inline]
22552    fn syntax(&self) -> &SyntaxNode {
22553        &self.syntax
22554    }
22555}
22556impl AstNode for JsonBehaviorTrue {
22557    #[inline]
22558    fn can_cast(kind: SyntaxKind) -> bool {
22559        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
22560    }
22561    #[inline]
22562    fn cast(syntax: SyntaxNode) -> Option<Self> {
22563        if Self::can_cast(syntax.kind()) {
22564            Some(Self { syntax })
22565        } else {
22566            None
22567        }
22568    }
22569    #[inline]
22570    fn syntax(&self) -> &SyntaxNode {
22571        &self.syntax
22572    }
22573}
22574impl AstNode for JsonBehaviorUnknown {
22575    #[inline]
22576    fn can_cast(kind: SyntaxKind) -> bool {
22577        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
22578    }
22579    #[inline]
22580    fn cast(syntax: SyntaxNode) -> Option<Self> {
22581        if Self::can_cast(syntax.kind()) {
22582            Some(Self { syntax })
22583        } else {
22584            None
22585        }
22586    }
22587    #[inline]
22588    fn syntax(&self) -> &SyntaxNode {
22589        &self.syntax
22590    }
22591}
22592impl AstNode for JsonEncodingClause {
22593    #[inline]
22594    fn can_cast(kind: SyntaxKind) -> bool {
22595        kind == SyntaxKind::JSON_ENCODING_CLAUSE
22596    }
22597    #[inline]
22598    fn cast(syntax: SyntaxNode) -> Option<Self> {
22599        if Self::can_cast(syntax.kind()) {
22600            Some(Self { syntax })
22601        } else {
22602            None
22603        }
22604    }
22605    #[inline]
22606    fn syntax(&self) -> &SyntaxNode {
22607        &self.syntax
22608    }
22609}
22610impl AstNode for JsonExistsFn {
22611    #[inline]
22612    fn can_cast(kind: SyntaxKind) -> bool {
22613        kind == SyntaxKind::JSON_EXISTS_FN
22614    }
22615    #[inline]
22616    fn cast(syntax: SyntaxNode) -> Option<Self> {
22617        if Self::can_cast(syntax.kind()) {
22618            Some(Self { syntax })
22619        } else {
22620            None
22621        }
22622    }
22623    #[inline]
22624    fn syntax(&self) -> &SyntaxNode {
22625        &self.syntax
22626    }
22627}
22628impl AstNode for JsonExprFormat {
22629    #[inline]
22630    fn can_cast(kind: SyntaxKind) -> bool {
22631        kind == SyntaxKind::JSON_EXPR_FORMAT
22632    }
22633    #[inline]
22634    fn cast(syntax: SyntaxNode) -> Option<Self> {
22635        if Self::can_cast(syntax.kind()) {
22636            Some(Self { syntax })
22637        } else {
22638            None
22639        }
22640    }
22641    #[inline]
22642    fn syntax(&self) -> &SyntaxNode {
22643        &self.syntax
22644    }
22645}
22646impl AstNode for JsonFn {
22647    #[inline]
22648    fn can_cast(kind: SyntaxKind) -> bool {
22649        kind == SyntaxKind::JSON_FN
22650    }
22651    #[inline]
22652    fn cast(syntax: SyntaxNode) -> Option<Self> {
22653        if Self::can_cast(syntax.kind()) {
22654            Some(Self { syntax })
22655        } else {
22656            None
22657        }
22658    }
22659    #[inline]
22660    fn syntax(&self) -> &SyntaxNode {
22661        &self.syntax
22662    }
22663}
22664impl AstNode for JsonFormatClause {
22665    #[inline]
22666    fn can_cast(kind: SyntaxKind) -> bool {
22667        kind == SyntaxKind::JSON_FORMAT_CLAUSE
22668    }
22669    #[inline]
22670    fn cast(syntax: SyntaxNode) -> Option<Self> {
22671        if Self::can_cast(syntax.kind()) {
22672            Some(Self { syntax })
22673        } else {
22674            None
22675        }
22676    }
22677    #[inline]
22678    fn syntax(&self) -> &SyntaxNode {
22679        &self.syntax
22680    }
22681}
22682impl AstNode for JsonKeyValue {
22683    #[inline]
22684    fn can_cast(kind: SyntaxKind) -> bool {
22685        kind == SyntaxKind::JSON_KEY_VALUE
22686    }
22687    #[inline]
22688    fn cast(syntax: SyntaxNode) -> Option<Self> {
22689        if Self::can_cast(syntax.kind()) {
22690            Some(Self { syntax })
22691        } else {
22692            None
22693        }
22694    }
22695    #[inline]
22696    fn syntax(&self) -> &SyntaxNode {
22697        &self.syntax
22698    }
22699}
22700impl AstNode for JsonKeysUniqueClause {
22701    #[inline]
22702    fn can_cast(kind: SyntaxKind) -> bool {
22703        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
22704    }
22705    #[inline]
22706    fn cast(syntax: SyntaxNode) -> Option<Self> {
22707        if Self::can_cast(syntax.kind()) {
22708            Some(Self { syntax })
22709        } else {
22710            None
22711        }
22712    }
22713    #[inline]
22714    fn syntax(&self) -> &SyntaxNode {
22715        &self.syntax
22716    }
22717}
22718impl AstNode for JsonNullClause {
22719    #[inline]
22720    fn can_cast(kind: SyntaxKind) -> bool {
22721        kind == SyntaxKind::JSON_NULL_CLAUSE
22722    }
22723    #[inline]
22724    fn cast(syntax: SyntaxNode) -> Option<Self> {
22725        if Self::can_cast(syntax.kind()) {
22726            Some(Self { syntax })
22727        } else {
22728            None
22729        }
22730    }
22731    #[inline]
22732    fn syntax(&self) -> &SyntaxNode {
22733        &self.syntax
22734    }
22735}
22736impl AstNode for JsonObjectAggFn {
22737    #[inline]
22738    fn can_cast(kind: SyntaxKind) -> bool {
22739        kind == SyntaxKind::JSON_OBJECT_AGG_FN
22740    }
22741    #[inline]
22742    fn cast(syntax: SyntaxNode) -> Option<Self> {
22743        if Self::can_cast(syntax.kind()) {
22744            Some(Self { syntax })
22745        } else {
22746            None
22747        }
22748    }
22749    #[inline]
22750    fn syntax(&self) -> &SyntaxNode {
22751        &self.syntax
22752    }
22753}
22754impl AstNode for JsonObjectFn {
22755    #[inline]
22756    fn can_cast(kind: SyntaxKind) -> bool {
22757        kind == SyntaxKind::JSON_OBJECT_FN
22758    }
22759    #[inline]
22760    fn cast(syntax: SyntaxNode) -> Option<Self> {
22761        if Self::can_cast(syntax.kind()) {
22762            Some(Self { syntax })
22763        } else {
22764            None
22765        }
22766    }
22767    #[inline]
22768    fn syntax(&self) -> &SyntaxNode {
22769        &self.syntax
22770    }
22771}
22772impl AstNode for JsonOnEmptyClause {
22773    #[inline]
22774    fn can_cast(kind: SyntaxKind) -> bool {
22775        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
22776    }
22777    #[inline]
22778    fn cast(syntax: SyntaxNode) -> Option<Self> {
22779        if Self::can_cast(syntax.kind()) {
22780            Some(Self { syntax })
22781        } else {
22782            None
22783        }
22784    }
22785    #[inline]
22786    fn syntax(&self) -> &SyntaxNode {
22787        &self.syntax
22788    }
22789}
22790impl AstNode for JsonOnErrorClause {
22791    #[inline]
22792    fn can_cast(kind: SyntaxKind) -> bool {
22793        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
22794    }
22795    #[inline]
22796    fn cast(syntax: SyntaxNode) -> Option<Self> {
22797        if Self::can_cast(syntax.kind()) {
22798            Some(Self { syntax })
22799        } else {
22800            None
22801        }
22802    }
22803    #[inline]
22804    fn syntax(&self) -> &SyntaxNode {
22805        &self.syntax
22806    }
22807}
22808impl AstNode for JsonPassingArg {
22809    #[inline]
22810    fn can_cast(kind: SyntaxKind) -> bool {
22811        kind == SyntaxKind::JSON_PASSING_ARG
22812    }
22813    #[inline]
22814    fn cast(syntax: SyntaxNode) -> Option<Self> {
22815        if Self::can_cast(syntax.kind()) {
22816            Some(Self { syntax })
22817        } else {
22818            None
22819        }
22820    }
22821    #[inline]
22822    fn syntax(&self) -> &SyntaxNode {
22823        &self.syntax
22824    }
22825}
22826impl AstNode for JsonPassingClause {
22827    #[inline]
22828    fn can_cast(kind: SyntaxKind) -> bool {
22829        kind == SyntaxKind::JSON_PASSING_CLAUSE
22830    }
22831    #[inline]
22832    fn cast(syntax: SyntaxNode) -> Option<Self> {
22833        if Self::can_cast(syntax.kind()) {
22834            Some(Self { syntax })
22835        } else {
22836            None
22837        }
22838    }
22839    #[inline]
22840    fn syntax(&self) -> &SyntaxNode {
22841        &self.syntax
22842    }
22843}
22844impl AstNode for JsonPathClause {
22845    #[inline]
22846    fn can_cast(kind: SyntaxKind) -> bool {
22847        kind == SyntaxKind::JSON_PATH_CLAUSE
22848    }
22849    #[inline]
22850    fn cast(syntax: SyntaxNode) -> Option<Self> {
22851        if Self::can_cast(syntax.kind()) {
22852            Some(Self { syntax })
22853        } else {
22854            None
22855        }
22856    }
22857    #[inline]
22858    fn syntax(&self) -> &SyntaxNode {
22859        &self.syntax
22860    }
22861}
22862impl AstNode for JsonQueryFn {
22863    #[inline]
22864    fn can_cast(kind: SyntaxKind) -> bool {
22865        kind == SyntaxKind::JSON_QUERY_FN
22866    }
22867    #[inline]
22868    fn cast(syntax: SyntaxNode) -> Option<Self> {
22869        if Self::can_cast(syntax.kind()) {
22870            Some(Self { syntax })
22871        } else {
22872            None
22873        }
22874    }
22875    #[inline]
22876    fn syntax(&self) -> &SyntaxNode {
22877        &self.syntax
22878    }
22879}
22880impl AstNode for JsonQuotesClause {
22881    #[inline]
22882    fn can_cast(kind: SyntaxKind) -> bool {
22883        kind == SyntaxKind::JSON_QUOTES_CLAUSE
22884    }
22885    #[inline]
22886    fn cast(syntax: SyntaxNode) -> Option<Self> {
22887        if Self::can_cast(syntax.kind()) {
22888            Some(Self { syntax })
22889        } else {
22890            None
22891        }
22892    }
22893    #[inline]
22894    fn syntax(&self) -> &SyntaxNode {
22895        &self.syntax
22896    }
22897}
22898impl AstNode for JsonReturningClause {
22899    #[inline]
22900    fn can_cast(kind: SyntaxKind) -> bool {
22901        kind == SyntaxKind::JSON_RETURNING_CLAUSE
22902    }
22903    #[inline]
22904    fn cast(syntax: SyntaxNode) -> Option<Self> {
22905        if Self::can_cast(syntax.kind()) {
22906            Some(Self { syntax })
22907        } else {
22908            None
22909        }
22910    }
22911    #[inline]
22912    fn syntax(&self) -> &SyntaxNode {
22913        &self.syntax
22914    }
22915}
22916impl AstNode for JsonScalarFn {
22917    #[inline]
22918    fn can_cast(kind: SyntaxKind) -> bool {
22919        kind == SyntaxKind::JSON_SCALAR_FN
22920    }
22921    #[inline]
22922    fn cast(syntax: SyntaxNode) -> Option<Self> {
22923        if Self::can_cast(syntax.kind()) {
22924            Some(Self { syntax })
22925        } else {
22926            None
22927        }
22928    }
22929    #[inline]
22930    fn syntax(&self) -> &SyntaxNode {
22931        &self.syntax
22932    }
22933}
22934impl AstNode for JsonSelectFormat {
22935    #[inline]
22936    fn can_cast(kind: SyntaxKind) -> bool {
22937        kind == SyntaxKind::JSON_SELECT_FORMAT
22938    }
22939    #[inline]
22940    fn cast(syntax: SyntaxNode) -> Option<Self> {
22941        if Self::can_cast(syntax.kind()) {
22942            Some(Self { syntax })
22943        } else {
22944            None
22945        }
22946    }
22947    #[inline]
22948    fn syntax(&self) -> &SyntaxNode {
22949        &self.syntax
22950    }
22951}
22952impl AstNode for JsonSerializeFn {
22953    #[inline]
22954    fn can_cast(kind: SyntaxKind) -> bool {
22955        kind == SyntaxKind::JSON_SERIALIZE_FN
22956    }
22957    #[inline]
22958    fn cast(syntax: SyntaxNode) -> Option<Self> {
22959        if Self::can_cast(syntax.kind()) {
22960            Some(Self { syntax })
22961        } else {
22962            None
22963        }
22964    }
22965    #[inline]
22966    fn syntax(&self) -> &SyntaxNode {
22967        &self.syntax
22968    }
22969}
22970impl AstNode for JsonTable {
22971    #[inline]
22972    fn can_cast(kind: SyntaxKind) -> bool {
22973        kind == SyntaxKind::JSON_TABLE
22974    }
22975    #[inline]
22976    fn cast(syntax: SyntaxNode) -> Option<Self> {
22977        if Self::can_cast(syntax.kind()) {
22978            Some(Self { syntax })
22979        } else {
22980            None
22981        }
22982    }
22983    #[inline]
22984    fn syntax(&self) -> &SyntaxNode {
22985        &self.syntax
22986    }
22987}
22988impl AstNode for JsonTableColumn {
22989    #[inline]
22990    fn can_cast(kind: SyntaxKind) -> bool {
22991        kind == SyntaxKind::JSON_TABLE_COLUMN
22992    }
22993    #[inline]
22994    fn cast(syntax: SyntaxNode) -> Option<Self> {
22995        if Self::can_cast(syntax.kind()) {
22996            Some(Self { syntax })
22997        } else {
22998            None
22999        }
23000    }
23001    #[inline]
23002    fn syntax(&self) -> &SyntaxNode {
23003        &self.syntax
23004    }
23005}
23006impl AstNode for JsonTableColumnList {
23007    #[inline]
23008    fn can_cast(kind: SyntaxKind) -> bool {
23009        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
23010    }
23011    #[inline]
23012    fn cast(syntax: SyntaxNode) -> Option<Self> {
23013        if Self::can_cast(syntax.kind()) {
23014            Some(Self { syntax })
23015        } else {
23016            None
23017        }
23018    }
23019    #[inline]
23020    fn syntax(&self) -> &SyntaxNode {
23021        &self.syntax
23022    }
23023}
23024impl AstNode for JsonValueExpr {
23025    #[inline]
23026    fn can_cast(kind: SyntaxKind) -> bool {
23027        kind == SyntaxKind::JSON_VALUE_EXPR
23028    }
23029    #[inline]
23030    fn cast(syntax: SyntaxNode) -> Option<Self> {
23031        if Self::can_cast(syntax.kind()) {
23032            Some(Self { syntax })
23033        } else {
23034            None
23035        }
23036    }
23037    #[inline]
23038    fn syntax(&self) -> &SyntaxNode {
23039        &self.syntax
23040    }
23041}
23042impl AstNode for JsonValueFn {
23043    #[inline]
23044    fn can_cast(kind: SyntaxKind) -> bool {
23045        kind == SyntaxKind::JSON_VALUE_FN
23046    }
23047    #[inline]
23048    fn cast(syntax: SyntaxNode) -> Option<Self> {
23049        if Self::can_cast(syntax.kind()) {
23050            Some(Self { syntax })
23051        } else {
23052            None
23053        }
23054    }
23055    #[inline]
23056    fn syntax(&self) -> &SyntaxNode {
23057        &self.syntax
23058    }
23059}
23060impl AstNode for JsonWrapperBehaviorClause {
23061    #[inline]
23062    fn can_cast(kind: SyntaxKind) -> bool {
23063        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
23064    }
23065    #[inline]
23066    fn cast(syntax: SyntaxNode) -> Option<Self> {
23067        if Self::can_cast(syntax.kind()) {
23068            Some(Self { syntax })
23069        } else {
23070            None
23071        }
23072    }
23073    #[inline]
23074    fn syntax(&self) -> &SyntaxNode {
23075        &self.syntax
23076    }
23077}
23078impl AstNode for LanguageFuncOption {
23079    #[inline]
23080    fn can_cast(kind: SyntaxKind) -> bool {
23081        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
23082    }
23083    #[inline]
23084    fn cast(syntax: SyntaxNode) -> Option<Self> {
23085        if Self::can_cast(syntax.kind()) {
23086            Some(Self { syntax })
23087        } else {
23088            None
23089        }
23090    }
23091    #[inline]
23092    fn syntax(&self) -> &SyntaxNode {
23093        &self.syntax
23094    }
23095}
23096impl AstNode for LeakproofFuncOption {
23097    #[inline]
23098    fn can_cast(kind: SyntaxKind) -> bool {
23099        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
23100    }
23101    #[inline]
23102    fn cast(syntax: SyntaxNode) -> Option<Self> {
23103        if Self::can_cast(syntax.kind()) {
23104            Some(Self { syntax })
23105        } else {
23106            None
23107        }
23108    }
23109    #[inline]
23110    fn syntax(&self) -> &SyntaxNode {
23111        &self.syntax
23112    }
23113}
23114impl AstNode for LikeClause {
23115    #[inline]
23116    fn can_cast(kind: SyntaxKind) -> bool {
23117        kind == SyntaxKind::LIKE_CLAUSE
23118    }
23119    #[inline]
23120    fn cast(syntax: SyntaxNode) -> Option<Self> {
23121        if Self::can_cast(syntax.kind()) {
23122            Some(Self { syntax })
23123        } else {
23124            None
23125        }
23126    }
23127    #[inline]
23128    fn syntax(&self) -> &SyntaxNode {
23129        &self.syntax
23130    }
23131}
23132impl AstNode for LikeOption {
23133    #[inline]
23134    fn can_cast(kind: SyntaxKind) -> bool {
23135        kind == SyntaxKind::LIKE_OPTION
23136    }
23137    #[inline]
23138    fn cast(syntax: SyntaxNode) -> Option<Self> {
23139        if Self::can_cast(syntax.kind()) {
23140            Some(Self { syntax })
23141        } else {
23142            None
23143        }
23144    }
23145    #[inline]
23146    fn syntax(&self) -> &SyntaxNode {
23147        &self.syntax
23148    }
23149}
23150impl AstNode for LimitClause {
23151    #[inline]
23152    fn can_cast(kind: SyntaxKind) -> bool {
23153        kind == SyntaxKind::LIMIT_CLAUSE
23154    }
23155    #[inline]
23156    fn cast(syntax: SyntaxNode) -> Option<Self> {
23157        if Self::can_cast(syntax.kind()) {
23158            Some(Self { syntax })
23159        } else {
23160            None
23161        }
23162    }
23163    #[inline]
23164    fn syntax(&self) -> &SyntaxNode {
23165        &self.syntax
23166    }
23167}
23168impl AstNode for LimitToTables {
23169    #[inline]
23170    fn can_cast(kind: SyntaxKind) -> bool {
23171        kind == SyntaxKind::LIMIT_TO_TABLES
23172    }
23173    #[inline]
23174    fn cast(syntax: SyntaxNode) -> Option<Self> {
23175        if Self::can_cast(syntax.kind()) {
23176            Some(Self { syntax })
23177        } else {
23178            None
23179        }
23180    }
23181    #[inline]
23182    fn syntax(&self) -> &SyntaxNode {
23183        &self.syntax
23184    }
23185}
23186impl AstNode for Listen {
23187    #[inline]
23188    fn can_cast(kind: SyntaxKind) -> bool {
23189        kind == SyntaxKind::LISTEN
23190    }
23191    #[inline]
23192    fn cast(syntax: SyntaxNode) -> Option<Self> {
23193        if Self::can_cast(syntax.kind()) {
23194            Some(Self { syntax })
23195        } else {
23196            None
23197        }
23198    }
23199    #[inline]
23200    fn syntax(&self) -> &SyntaxNode {
23201        &self.syntax
23202    }
23203}
23204impl AstNode for Literal {
23205    #[inline]
23206    fn can_cast(kind: SyntaxKind) -> bool {
23207        kind == SyntaxKind::LITERAL
23208    }
23209    #[inline]
23210    fn cast(syntax: SyntaxNode) -> Option<Self> {
23211        if Self::can_cast(syntax.kind()) {
23212            Some(Self { syntax })
23213        } else {
23214            None
23215        }
23216    }
23217    #[inline]
23218    fn syntax(&self) -> &SyntaxNode {
23219        &self.syntax
23220    }
23221}
23222impl AstNode for Load {
23223    #[inline]
23224    fn can_cast(kind: SyntaxKind) -> bool {
23225        kind == SyntaxKind::LOAD
23226    }
23227    #[inline]
23228    fn cast(syntax: SyntaxNode) -> Option<Self> {
23229        if Self::can_cast(syntax.kind()) {
23230            Some(Self { syntax })
23231        } else {
23232            None
23233        }
23234    }
23235    #[inline]
23236    fn syntax(&self) -> &SyntaxNode {
23237        &self.syntax
23238    }
23239}
23240impl AstNode for Lock {
23241    #[inline]
23242    fn can_cast(kind: SyntaxKind) -> bool {
23243        kind == SyntaxKind::LOCK
23244    }
23245    #[inline]
23246    fn cast(syntax: SyntaxNode) -> Option<Self> {
23247        if Self::can_cast(syntax.kind()) {
23248            Some(Self { syntax })
23249        } else {
23250            None
23251        }
23252    }
23253    #[inline]
23254    fn syntax(&self) -> &SyntaxNode {
23255        &self.syntax
23256    }
23257}
23258impl AstNode for LockingClause {
23259    #[inline]
23260    fn can_cast(kind: SyntaxKind) -> bool {
23261        kind == SyntaxKind::LOCKING_CLAUSE
23262    }
23263    #[inline]
23264    fn cast(syntax: SyntaxNode) -> Option<Self> {
23265        if Self::can_cast(syntax.kind()) {
23266            Some(Self { syntax })
23267        } else {
23268            None
23269        }
23270    }
23271    #[inline]
23272    fn syntax(&self) -> &SyntaxNode {
23273        &self.syntax
23274    }
23275}
23276impl AstNode for Lteq {
23277    #[inline]
23278    fn can_cast(kind: SyntaxKind) -> bool {
23279        kind == SyntaxKind::LTEQ
23280    }
23281    #[inline]
23282    fn cast(syntax: SyntaxNode) -> Option<Self> {
23283        if Self::can_cast(syntax.kind()) {
23284            Some(Self { syntax })
23285        } else {
23286            None
23287        }
23288    }
23289    #[inline]
23290    fn syntax(&self) -> &SyntaxNode {
23291        &self.syntax
23292    }
23293}
23294impl AstNode for MatchFull {
23295    #[inline]
23296    fn can_cast(kind: SyntaxKind) -> bool {
23297        kind == SyntaxKind::MATCH_FULL
23298    }
23299    #[inline]
23300    fn cast(syntax: SyntaxNode) -> Option<Self> {
23301        if Self::can_cast(syntax.kind()) {
23302            Some(Self { syntax })
23303        } else {
23304            None
23305        }
23306    }
23307    #[inline]
23308    fn syntax(&self) -> &SyntaxNode {
23309        &self.syntax
23310    }
23311}
23312impl AstNode for MatchPartial {
23313    #[inline]
23314    fn can_cast(kind: SyntaxKind) -> bool {
23315        kind == SyntaxKind::MATCH_PARTIAL
23316    }
23317    #[inline]
23318    fn cast(syntax: SyntaxNode) -> Option<Self> {
23319        if Self::can_cast(syntax.kind()) {
23320            Some(Self { syntax })
23321        } else {
23322            None
23323        }
23324    }
23325    #[inline]
23326    fn syntax(&self) -> &SyntaxNode {
23327        &self.syntax
23328    }
23329}
23330impl AstNode for MatchSimple {
23331    #[inline]
23332    fn can_cast(kind: SyntaxKind) -> bool {
23333        kind == SyntaxKind::MATCH_SIMPLE
23334    }
23335    #[inline]
23336    fn cast(syntax: SyntaxNode) -> Option<Self> {
23337        if Self::can_cast(syntax.kind()) {
23338            Some(Self { syntax })
23339        } else {
23340            None
23341        }
23342    }
23343    #[inline]
23344    fn syntax(&self) -> &SyntaxNode {
23345        &self.syntax
23346    }
23347}
23348impl AstNode for Materialized {
23349    #[inline]
23350    fn can_cast(kind: SyntaxKind) -> bool {
23351        kind == SyntaxKind::MATERIALIZED
23352    }
23353    #[inline]
23354    fn cast(syntax: SyntaxNode) -> Option<Self> {
23355        if Self::can_cast(syntax.kind()) {
23356            Some(Self { syntax })
23357        } else {
23358            None
23359        }
23360    }
23361    #[inline]
23362    fn syntax(&self) -> &SyntaxNode {
23363        &self.syntax
23364    }
23365}
23366impl AstNode for Merge {
23367    #[inline]
23368    fn can_cast(kind: SyntaxKind) -> bool {
23369        kind == SyntaxKind::MERGE
23370    }
23371    #[inline]
23372    fn cast(syntax: SyntaxNode) -> Option<Self> {
23373        if Self::can_cast(syntax.kind()) {
23374            Some(Self { syntax })
23375        } else {
23376            None
23377        }
23378    }
23379    #[inline]
23380    fn syntax(&self) -> &SyntaxNode {
23381        &self.syntax
23382    }
23383}
23384impl AstNode for MergeDelete {
23385    #[inline]
23386    fn can_cast(kind: SyntaxKind) -> bool {
23387        kind == SyntaxKind::MERGE_DELETE
23388    }
23389    #[inline]
23390    fn cast(syntax: SyntaxNode) -> Option<Self> {
23391        if Self::can_cast(syntax.kind()) {
23392            Some(Self { syntax })
23393        } else {
23394            None
23395        }
23396    }
23397    #[inline]
23398    fn syntax(&self) -> &SyntaxNode {
23399        &self.syntax
23400    }
23401}
23402impl AstNode for MergeDoNothing {
23403    #[inline]
23404    fn can_cast(kind: SyntaxKind) -> bool {
23405        kind == SyntaxKind::MERGE_DO_NOTHING
23406    }
23407    #[inline]
23408    fn cast(syntax: SyntaxNode) -> Option<Self> {
23409        if Self::can_cast(syntax.kind()) {
23410            Some(Self { syntax })
23411        } else {
23412            None
23413        }
23414    }
23415    #[inline]
23416    fn syntax(&self) -> &SyntaxNode {
23417        &self.syntax
23418    }
23419}
23420impl AstNode for MergeInsert {
23421    #[inline]
23422    fn can_cast(kind: SyntaxKind) -> bool {
23423        kind == SyntaxKind::MERGE_INSERT
23424    }
23425    #[inline]
23426    fn cast(syntax: SyntaxNode) -> Option<Self> {
23427        if Self::can_cast(syntax.kind()) {
23428            Some(Self { syntax })
23429        } else {
23430            None
23431        }
23432    }
23433    #[inline]
23434    fn syntax(&self) -> &SyntaxNode {
23435        &self.syntax
23436    }
23437}
23438impl AstNode for MergeUpdate {
23439    #[inline]
23440    fn can_cast(kind: SyntaxKind) -> bool {
23441        kind == SyntaxKind::MERGE_UPDATE
23442    }
23443    #[inline]
23444    fn cast(syntax: SyntaxNode) -> Option<Self> {
23445        if Self::can_cast(syntax.kind()) {
23446            Some(Self { syntax })
23447        } else {
23448            None
23449        }
23450    }
23451    #[inline]
23452    fn syntax(&self) -> &SyntaxNode {
23453        &self.syntax
23454    }
23455}
23456impl AstNode for MergeWhenMatched {
23457    #[inline]
23458    fn can_cast(kind: SyntaxKind) -> bool {
23459        kind == SyntaxKind::MERGE_WHEN_MATCHED
23460    }
23461    #[inline]
23462    fn cast(syntax: SyntaxNode) -> Option<Self> {
23463        if Self::can_cast(syntax.kind()) {
23464            Some(Self { syntax })
23465        } else {
23466            None
23467        }
23468    }
23469    #[inline]
23470    fn syntax(&self) -> &SyntaxNode {
23471        &self.syntax
23472    }
23473}
23474impl AstNode for MergeWhenNotMatchedSource {
23475    #[inline]
23476    fn can_cast(kind: SyntaxKind) -> bool {
23477        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
23478    }
23479    #[inline]
23480    fn cast(syntax: SyntaxNode) -> Option<Self> {
23481        if Self::can_cast(syntax.kind()) {
23482            Some(Self { syntax })
23483        } else {
23484            None
23485        }
23486    }
23487    #[inline]
23488    fn syntax(&self) -> &SyntaxNode {
23489        &self.syntax
23490    }
23491}
23492impl AstNode for MergeWhenNotMatchedTarget {
23493    #[inline]
23494    fn can_cast(kind: SyntaxKind) -> bool {
23495        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
23496    }
23497    #[inline]
23498    fn cast(syntax: SyntaxNode) -> Option<Self> {
23499        if Self::can_cast(syntax.kind()) {
23500            Some(Self { syntax })
23501        } else {
23502            None
23503        }
23504    }
23505    #[inline]
23506    fn syntax(&self) -> &SyntaxNode {
23507        &self.syntax
23508    }
23509}
23510impl AstNode for Move {
23511    #[inline]
23512    fn can_cast(kind: SyntaxKind) -> bool {
23513        kind == SyntaxKind::MOVE
23514    }
23515    #[inline]
23516    fn cast(syntax: SyntaxNode) -> Option<Self> {
23517        if Self::can_cast(syntax.kind()) {
23518            Some(Self { syntax })
23519        } else {
23520            None
23521        }
23522    }
23523    #[inline]
23524    fn syntax(&self) -> &SyntaxNode {
23525        &self.syntax
23526    }
23527}
23528impl AstNode for Name {
23529    #[inline]
23530    fn can_cast(kind: SyntaxKind) -> bool {
23531        kind == SyntaxKind::NAME
23532    }
23533    #[inline]
23534    fn cast(syntax: SyntaxNode) -> Option<Self> {
23535        if Self::can_cast(syntax.kind()) {
23536            Some(Self { syntax })
23537        } else {
23538            None
23539        }
23540    }
23541    #[inline]
23542    fn syntax(&self) -> &SyntaxNode {
23543        &self.syntax
23544    }
23545}
23546impl AstNode for NameRef {
23547    #[inline]
23548    fn can_cast(kind: SyntaxKind) -> bool {
23549        kind == SyntaxKind::NAME_REF
23550    }
23551    #[inline]
23552    fn cast(syntax: SyntaxNode) -> Option<Self> {
23553        if Self::can_cast(syntax.kind()) {
23554            Some(Self { syntax })
23555        } else {
23556            None
23557        }
23558    }
23559    #[inline]
23560    fn syntax(&self) -> &SyntaxNode {
23561        &self.syntax
23562    }
23563}
23564impl AstNode for NamedArg {
23565    #[inline]
23566    fn can_cast(kind: SyntaxKind) -> bool {
23567        kind == SyntaxKind::NAMED_ARG
23568    }
23569    #[inline]
23570    fn cast(syntax: SyntaxNode) -> Option<Self> {
23571        if Self::can_cast(syntax.kind()) {
23572            Some(Self { syntax })
23573        } else {
23574            None
23575        }
23576    }
23577    #[inline]
23578    fn syntax(&self) -> &SyntaxNode {
23579        &self.syntax
23580    }
23581}
23582impl AstNode for Neq {
23583    #[inline]
23584    fn can_cast(kind: SyntaxKind) -> bool {
23585        kind == SyntaxKind::NEQ
23586    }
23587    #[inline]
23588    fn cast(syntax: SyntaxNode) -> Option<Self> {
23589        if Self::can_cast(syntax.kind()) {
23590            Some(Self { syntax })
23591        } else {
23592            None
23593        }
23594    }
23595    #[inline]
23596    fn syntax(&self) -> &SyntaxNode {
23597        &self.syntax
23598    }
23599}
23600impl AstNode for Neqb {
23601    #[inline]
23602    fn can_cast(kind: SyntaxKind) -> bool {
23603        kind == SyntaxKind::NEQB
23604    }
23605    #[inline]
23606    fn cast(syntax: SyntaxNode) -> Option<Self> {
23607        if Self::can_cast(syntax.kind()) {
23608            Some(Self { syntax })
23609        } else {
23610            None
23611        }
23612    }
23613    #[inline]
23614    fn syntax(&self) -> &SyntaxNode {
23615        &self.syntax
23616    }
23617}
23618impl AstNode for NoAction {
23619    #[inline]
23620    fn can_cast(kind: SyntaxKind) -> bool {
23621        kind == SyntaxKind::NO_ACTION
23622    }
23623    #[inline]
23624    fn cast(syntax: SyntaxNode) -> Option<Self> {
23625        if Self::can_cast(syntax.kind()) {
23626            Some(Self { syntax })
23627        } else {
23628            None
23629        }
23630    }
23631    #[inline]
23632    fn syntax(&self) -> &SyntaxNode {
23633        &self.syntax
23634    }
23635}
23636impl AstNode for NoDependsOnExtension {
23637    #[inline]
23638    fn can_cast(kind: SyntaxKind) -> bool {
23639        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
23640    }
23641    #[inline]
23642    fn cast(syntax: SyntaxNode) -> Option<Self> {
23643        if Self::can_cast(syntax.kind()) {
23644            Some(Self { syntax })
23645        } else {
23646            None
23647        }
23648    }
23649    #[inline]
23650    fn syntax(&self) -> &SyntaxNode {
23651        &self.syntax
23652    }
23653}
23654impl AstNode for NoForceRls {
23655    #[inline]
23656    fn can_cast(kind: SyntaxKind) -> bool {
23657        kind == SyntaxKind::NO_FORCE_RLS
23658    }
23659    #[inline]
23660    fn cast(syntax: SyntaxNode) -> Option<Self> {
23661        if Self::can_cast(syntax.kind()) {
23662            Some(Self { syntax })
23663        } else {
23664            None
23665        }
23666    }
23667    #[inline]
23668    fn syntax(&self) -> &SyntaxNode {
23669        &self.syntax
23670    }
23671}
23672impl AstNode for NoInherit {
23673    #[inline]
23674    fn can_cast(kind: SyntaxKind) -> bool {
23675        kind == SyntaxKind::NO_INHERIT
23676    }
23677    #[inline]
23678    fn cast(syntax: SyntaxNode) -> Option<Self> {
23679        if Self::can_cast(syntax.kind()) {
23680            Some(Self { syntax })
23681        } else {
23682            None
23683        }
23684    }
23685    #[inline]
23686    fn syntax(&self) -> &SyntaxNode {
23687        &self.syntax
23688    }
23689}
23690impl AstNode for NoInheritTable {
23691    #[inline]
23692    fn can_cast(kind: SyntaxKind) -> bool {
23693        kind == SyntaxKind::NO_INHERIT_TABLE
23694    }
23695    #[inline]
23696    fn cast(syntax: SyntaxNode) -> Option<Self> {
23697        if Self::can_cast(syntax.kind()) {
23698            Some(Self { syntax })
23699        } else {
23700            None
23701        }
23702    }
23703    #[inline]
23704    fn syntax(&self) -> &SyntaxNode {
23705        &self.syntax
23706    }
23707}
23708impl AstNode for NonStandardParam {
23709    #[inline]
23710    fn can_cast(kind: SyntaxKind) -> bool {
23711        kind == SyntaxKind::NON_STANDARD_PARAM
23712    }
23713    #[inline]
23714    fn cast(syntax: SyntaxNode) -> Option<Self> {
23715        if Self::can_cast(syntax.kind()) {
23716            Some(Self { syntax })
23717        } else {
23718            None
23719        }
23720    }
23721    #[inline]
23722    fn syntax(&self) -> &SyntaxNode {
23723        &self.syntax
23724    }
23725}
23726impl AstNode for NotDeferrable {
23727    #[inline]
23728    fn can_cast(kind: SyntaxKind) -> bool {
23729        kind == SyntaxKind::NOT_DEFERRABLE
23730    }
23731    #[inline]
23732    fn cast(syntax: SyntaxNode) -> Option<Self> {
23733        if Self::can_cast(syntax.kind()) {
23734            Some(Self { syntax })
23735        } else {
23736            None
23737        }
23738    }
23739    #[inline]
23740    fn syntax(&self) -> &SyntaxNode {
23741        &self.syntax
23742    }
23743}
23744impl AstNode for NotDeferrableConstraintOption {
23745    #[inline]
23746    fn can_cast(kind: SyntaxKind) -> bool {
23747        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
23748    }
23749    #[inline]
23750    fn cast(syntax: SyntaxNode) -> Option<Self> {
23751        if Self::can_cast(syntax.kind()) {
23752            Some(Self { syntax })
23753        } else {
23754            None
23755        }
23756    }
23757    #[inline]
23758    fn syntax(&self) -> &SyntaxNode {
23759        &self.syntax
23760    }
23761}
23762impl AstNode for NotEnforced {
23763    #[inline]
23764    fn can_cast(kind: SyntaxKind) -> bool {
23765        kind == SyntaxKind::NOT_ENFORCED
23766    }
23767    #[inline]
23768    fn cast(syntax: SyntaxNode) -> Option<Self> {
23769        if Self::can_cast(syntax.kind()) {
23770            Some(Self { syntax })
23771        } else {
23772            None
23773        }
23774    }
23775    #[inline]
23776    fn syntax(&self) -> &SyntaxNode {
23777        &self.syntax
23778    }
23779}
23780impl AstNode for NotIlike {
23781    #[inline]
23782    fn can_cast(kind: SyntaxKind) -> bool {
23783        kind == SyntaxKind::NOT_ILIKE
23784    }
23785    #[inline]
23786    fn cast(syntax: SyntaxNode) -> Option<Self> {
23787        if Self::can_cast(syntax.kind()) {
23788            Some(Self { syntax })
23789        } else {
23790            None
23791        }
23792    }
23793    #[inline]
23794    fn syntax(&self) -> &SyntaxNode {
23795        &self.syntax
23796    }
23797}
23798impl AstNode for NotIn {
23799    #[inline]
23800    fn can_cast(kind: SyntaxKind) -> bool {
23801        kind == SyntaxKind::NOT_IN
23802    }
23803    #[inline]
23804    fn cast(syntax: SyntaxNode) -> Option<Self> {
23805        if Self::can_cast(syntax.kind()) {
23806            Some(Self { syntax })
23807        } else {
23808            None
23809        }
23810    }
23811    #[inline]
23812    fn syntax(&self) -> &SyntaxNode {
23813        &self.syntax
23814    }
23815}
23816impl AstNode for NotLike {
23817    #[inline]
23818    fn can_cast(kind: SyntaxKind) -> bool {
23819        kind == SyntaxKind::NOT_LIKE
23820    }
23821    #[inline]
23822    fn cast(syntax: SyntaxNode) -> Option<Self> {
23823        if Self::can_cast(syntax.kind()) {
23824            Some(Self { syntax })
23825        } else {
23826            None
23827        }
23828    }
23829    #[inline]
23830    fn syntax(&self) -> &SyntaxNode {
23831        &self.syntax
23832    }
23833}
23834impl AstNode for NotMaterialized {
23835    #[inline]
23836    fn can_cast(kind: SyntaxKind) -> bool {
23837        kind == SyntaxKind::NOT_MATERIALIZED
23838    }
23839    #[inline]
23840    fn cast(syntax: SyntaxNode) -> Option<Self> {
23841        if Self::can_cast(syntax.kind()) {
23842            Some(Self { syntax })
23843        } else {
23844            None
23845        }
23846    }
23847    #[inline]
23848    fn syntax(&self) -> &SyntaxNode {
23849        &self.syntax
23850    }
23851}
23852impl AstNode for NotNullConstraint {
23853    #[inline]
23854    fn can_cast(kind: SyntaxKind) -> bool {
23855        kind == SyntaxKind::NOT_NULL_CONSTRAINT
23856    }
23857    #[inline]
23858    fn cast(syntax: SyntaxNode) -> Option<Self> {
23859        if Self::can_cast(syntax.kind()) {
23860            Some(Self { syntax })
23861        } else {
23862            None
23863        }
23864    }
23865    #[inline]
23866    fn syntax(&self) -> &SyntaxNode {
23867        &self.syntax
23868    }
23869}
23870impl AstNode for NotOf {
23871    #[inline]
23872    fn can_cast(kind: SyntaxKind) -> bool {
23873        kind == SyntaxKind::NOT_OF
23874    }
23875    #[inline]
23876    fn cast(syntax: SyntaxNode) -> Option<Self> {
23877        if Self::can_cast(syntax.kind()) {
23878            Some(Self { syntax })
23879        } else {
23880            None
23881        }
23882    }
23883    #[inline]
23884    fn syntax(&self) -> &SyntaxNode {
23885        &self.syntax
23886    }
23887}
23888impl AstNode for NotSimilarTo {
23889    #[inline]
23890    fn can_cast(kind: SyntaxKind) -> bool {
23891        kind == SyntaxKind::NOT_SIMILAR_TO
23892    }
23893    #[inline]
23894    fn cast(syntax: SyntaxNode) -> Option<Self> {
23895        if Self::can_cast(syntax.kind()) {
23896            Some(Self { syntax })
23897        } else {
23898            None
23899        }
23900    }
23901    #[inline]
23902    fn syntax(&self) -> &SyntaxNode {
23903        &self.syntax
23904    }
23905}
23906impl AstNode for NotValid {
23907    #[inline]
23908    fn can_cast(kind: SyntaxKind) -> bool {
23909        kind == SyntaxKind::NOT_VALID
23910    }
23911    #[inline]
23912    fn cast(syntax: SyntaxNode) -> Option<Self> {
23913        if Self::can_cast(syntax.kind()) {
23914            Some(Self { syntax })
23915        } else {
23916            None
23917        }
23918    }
23919    #[inline]
23920    fn syntax(&self) -> &SyntaxNode {
23921        &self.syntax
23922    }
23923}
23924impl AstNode for Notify {
23925    #[inline]
23926    fn can_cast(kind: SyntaxKind) -> bool {
23927        kind == SyntaxKind::NOTIFY
23928    }
23929    #[inline]
23930    fn cast(syntax: SyntaxNode) -> Option<Self> {
23931        if Self::can_cast(syntax.kind()) {
23932            Some(Self { syntax })
23933        } else {
23934            None
23935        }
23936    }
23937    #[inline]
23938    fn syntax(&self) -> &SyntaxNode {
23939        &self.syntax
23940    }
23941}
23942impl AstNode for NullConstraint {
23943    #[inline]
23944    fn can_cast(kind: SyntaxKind) -> bool {
23945        kind == SyntaxKind::NULL_CONSTRAINT
23946    }
23947    #[inline]
23948    fn cast(syntax: SyntaxNode) -> Option<Self> {
23949        if Self::can_cast(syntax.kind()) {
23950            Some(Self { syntax })
23951        } else {
23952            None
23953        }
23954    }
23955    #[inline]
23956    fn syntax(&self) -> &SyntaxNode {
23957        &self.syntax
23958    }
23959}
23960impl AstNode for NullsDistinct {
23961    #[inline]
23962    fn can_cast(kind: SyntaxKind) -> bool {
23963        kind == SyntaxKind::NULLS_DISTINCT
23964    }
23965    #[inline]
23966    fn cast(syntax: SyntaxNode) -> Option<Self> {
23967        if Self::can_cast(syntax.kind()) {
23968            Some(Self { syntax })
23969        } else {
23970            None
23971        }
23972    }
23973    #[inline]
23974    fn syntax(&self) -> &SyntaxNode {
23975        &self.syntax
23976    }
23977}
23978impl AstNode for NullsFirst {
23979    #[inline]
23980    fn can_cast(kind: SyntaxKind) -> bool {
23981        kind == SyntaxKind::NULLS_FIRST
23982    }
23983    #[inline]
23984    fn cast(syntax: SyntaxNode) -> Option<Self> {
23985        if Self::can_cast(syntax.kind()) {
23986            Some(Self { syntax })
23987        } else {
23988            None
23989        }
23990    }
23991    #[inline]
23992    fn syntax(&self) -> &SyntaxNode {
23993        &self.syntax
23994    }
23995}
23996impl AstNode for NullsLast {
23997    #[inline]
23998    fn can_cast(kind: SyntaxKind) -> bool {
23999        kind == SyntaxKind::NULLS_LAST
24000    }
24001    #[inline]
24002    fn cast(syntax: SyntaxNode) -> Option<Self> {
24003        if Self::can_cast(syntax.kind()) {
24004            Some(Self { syntax })
24005        } else {
24006            None
24007        }
24008    }
24009    #[inline]
24010    fn syntax(&self) -> &SyntaxNode {
24011        &self.syntax
24012    }
24013}
24014impl AstNode for NullsNotDistinct {
24015    #[inline]
24016    fn can_cast(kind: SyntaxKind) -> bool {
24017        kind == SyntaxKind::NULLS_NOT_DISTINCT
24018    }
24019    #[inline]
24020    fn cast(syntax: SyntaxNode) -> Option<Self> {
24021        if Self::can_cast(syntax.kind()) {
24022            Some(Self { syntax })
24023        } else {
24024            None
24025        }
24026    }
24027    #[inline]
24028    fn syntax(&self) -> &SyntaxNode {
24029        &self.syntax
24030    }
24031}
24032impl AstNode for OfType {
24033    #[inline]
24034    fn can_cast(kind: SyntaxKind) -> bool {
24035        kind == SyntaxKind::OF_TYPE
24036    }
24037    #[inline]
24038    fn cast(syntax: SyntaxNode) -> Option<Self> {
24039        if Self::can_cast(syntax.kind()) {
24040            Some(Self { syntax })
24041        } else {
24042            None
24043        }
24044    }
24045    #[inline]
24046    fn syntax(&self) -> &SyntaxNode {
24047        &self.syntax
24048    }
24049}
24050impl AstNode for OffsetClause {
24051    #[inline]
24052    fn can_cast(kind: SyntaxKind) -> bool {
24053        kind == SyntaxKind::OFFSET_CLAUSE
24054    }
24055    #[inline]
24056    fn cast(syntax: SyntaxNode) -> Option<Self> {
24057        if Self::can_cast(syntax.kind()) {
24058            Some(Self { syntax })
24059        } else {
24060            None
24061        }
24062    }
24063    #[inline]
24064    fn syntax(&self) -> &SyntaxNode {
24065        &self.syntax
24066    }
24067}
24068impl AstNode for OnClause {
24069    #[inline]
24070    fn can_cast(kind: SyntaxKind) -> bool {
24071        kind == SyntaxKind::ON_CLAUSE
24072    }
24073    #[inline]
24074    fn cast(syntax: SyntaxNode) -> Option<Self> {
24075        if Self::can_cast(syntax.kind()) {
24076            Some(Self { syntax })
24077        } else {
24078            None
24079        }
24080    }
24081    #[inline]
24082    fn syntax(&self) -> &SyntaxNode {
24083        &self.syntax
24084    }
24085}
24086impl AstNode for OnCommit {
24087    #[inline]
24088    fn can_cast(kind: SyntaxKind) -> bool {
24089        kind == SyntaxKind::ON_COMMIT
24090    }
24091    #[inline]
24092    fn cast(syntax: SyntaxNode) -> Option<Self> {
24093        if Self::can_cast(syntax.kind()) {
24094            Some(Self { syntax })
24095        } else {
24096            None
24097        }
24098    }
24099    #[inline]
24100    fn syntax(&self) -> &SyntaxNode {
24101        &self.syntax
24102    }
24103}
24104impl AstNode for OnConflictClause {
24105    #[inline]
24106    fn can_cast(kind: SyntaxKind) -> bool {
24107        kind == SyntaxKind::ON_CONFLICT_CLAUSE
24108    }
24109    #[inline]
24110    fn cast(syntax: SyntaxNode) -> Option<Self> {
24111        if Self::can_cast(syntax.kind()) {
24112            Some(Self { syntax })
24113        } else {
24114            None
24115        }
24116    }
24117    #[inline]
24118    fn syntax(&self) -> &SyntaxNode {
24119        &self.syntax
24120    }
24121}
24122impl AstNode for OnDeleteAction {
24123    #[inline]
24124    fn can_cast(kind: SyntaxKind) -> bool {
24125        kind == SyntaxKind::ON_DELETE_ACTION
24126    }
24127    #[inline]
24128    fn cast(syntax: SyntaxNode) -> Option<Self> {
24129        if Self::can_cast(syntax.kind()) {
24130            Some(Self { syntax })
24131        } else {
24132            None
24133        }
24134    }
24135    #[inline]
24136    fn syntax(&self) -> &SyntaxNode {
24137        &self.syntax
24138    }
24139}
24140impl AstNode for OnTable {
24141    #[inline]
24142    fn can_cast(kind: SyntaxKind) -> bool {
24143        kind == SyntaxKind::ON_TABLE
24144    }
24145    #[inline]
24146    fn cast(syntax: SyntaxNode) -> Option<Self> {
24147        if Self::can_cast(syntax.kind()) {
24148            Some(Self { syntax })
24149        } else {
24150            None
24151        }
24152    }
24153    #[inline]
24154    fn syntax(&self) -> &SyntaxNode {
24155        &self.syntax
24156    }
24157}
24158impl AstNode for OnUpdateAction {
24159    #[inline]
24160    fn can_cast(kind: SyntaxKind) -> bool {
24161        kind == SyntaxKind::ON_UPDATE_ACTION
24162    }
24163    #[inline]
24164    fn cast(syntax: SyntaxNode) -> Option<Self> {
24165        if Self::can_cast(syntax.kind()) {
24166            Some(Self { syntax })
24167        } else {
24168            None
24169        }
24170    }
24171    #[inline]
24172    fn syntax(&self) -> &SyntaxNode {
24173        &self.syntax
24174    }
24175}
24176impl AstNode for Op {
24177    #[inline]
24178    fn can_cast(kind: SyntaxKind) -> bool {
24179        kind == SyntaxKind::OP
24180    }
24181    #[inline]
24182    fn cast(syntax: SyntaxNode) -> Option<Self> {
24183        if Self::can_cast(syntax.kind()) {
24184            Some(Self { syntax })
24185        } else {
24186            None
24187        }
24188    }
24189    #[inline]
24190    fn syntax(&self) -> &SyntaxNode {
24191        &self.syntax
24192    }
24193}
24194impl AstNode for OpClassOption {
24195    #[inline]
24196    fn can_cast(kind: SyntaxKind) -> bool {
24197        kind == SyntaxKind::OP_CLASS_OPTION
24198    }
24199    #[inline]
24200    fn cast(syntax: SyntaxNode) -> Option<Self> {
24201        if Self::can_cast(syntax.kind()) {
24202            Some(Self { syntax })
24203        } else {
24204            None
24205        }
24206    }
24207    #[inline]
24208    fn syntax(&self) -> &SyntaxNode {
24209        &self.syntax
24210    }
24211}
24212impl AstNode for OpSig {
24213    #[inline]
24214    fn can_cast(kind: SyntaxKind) -> bool {
24215        kind == SyntaxKind::OP_SIG
24216    }
24217    #[inline]
24218    fn cast(syntax: SyntaxNode) -> Option<Self> {
24219        if Self::can_cast(syntax.kind()) {
24220            Some(Self { syntax })
24221        } else {
24222            None
24223        }
24224    }
24225    #[inline]
24226    fn syntax(&self) -> &SyntaxNode {
24227        &self.syntax
24228    }
24229}
24230impl AstNode for OpSigList {
24231    #[inline]
24232    fn can_cast(kind: SyntaxKind) -> bool {
24233        kind == SyntaxKind::OP_SIG_LIST
24234    }
24235    #[inline]
24236    fn cast(syntax: SyntaxNode) -> Option<Self> {
24237        if Self::can_cast(syntax.kind()) {
24238            Some(Self { syntax })
24239        } else {
24240            None
24241        }
24242    }
24243    #[inline]
24244    fn syntax(&self) -> &SyntaxNode {
24245        &self.syntax
24246    }
24247}
24248impl AstNode for OperatorCall {
24249    #[inline]
24250    fn can_cast(kind: SyntaxKind) -> bool {
24251        kind == SyntaxKind::OPERATOR_CALL
24252    }
24253    #[inline]
24254    fn cast(syntax: SyntaxNode) -> Option<Self> {
24255        if Self::can_cast(syntax.kind()) {
24256            Some(Self { syntax })
24257        } else {
24258            None
24259        }
24260    }
24261    #[inline]
24262    fn syntax(&self) -> &SyntaxNode {
24263        &self.syntax
24264    }
24265}
24266impl AstNode for OperatorClassOptionList {
24267    #[inline]
24268    fn can_cast(kind: SyntaxKind) -> bool {
24269        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
24270    }
24271    #[inline]
24272    fn cast(syntax: SyntaxNode) -> Option<Self> {
24273        if Self::can_cast(syntax.kind()) {
24274            Some(Self { syntax })
24275        } else {
24276            None
24277        }
24278    }
24279    #[inline]
24280    fn syntax(&self) -> &SyntaxNode {
24281        &self.syntax
24282    }
24283}
24284impl AstNode for OptionItem {
24285    #[inline]
24286    fn can_cast(kind: SyntaxKind) -> bool {
24287        kind == SyntaxKind::OPTION_ITEM
24288    }
24289    #[inline]
24290    fn cast(syntax: SyntaxNode) -> Option<Self> {
24291        if Self::can_cast(syntax.kind()) {
24292            Some(Self { syntax })
24293        } else {
24294            None
24295        }
24296    }
24297    #[inline]
24298    fn syntax(&self) -> &SyntaxNode {
24299        &self.syntax
24300    }
24301}
24302impl AstNode for OptionItemList {
24303    #[inline]
24304    fn can_cast(kind: SyntaxKind) -> bool {
24305        kind == SyntaxKind::OPTION_ITEM_LIST
24306    }
24307    #[inline]
24308    fn cast(syntax: SyntaxNode) -> Option<Self> {
24309        if Self::can_cast(syntax.kind()) {
24310            Some(Self { syntax })
24311        } else {
24312            None
24313        }
24314    }
24315    #[inline]
24316    fn syntax(&self) -> &SyntaxNode {
24317        &self.syntax
24318    }
24319}
24320impl AstNode for OrReplace {
24321    #[inline]
24322    fn can_cast(kind: SyntaxKind) -> bool {
24323        kind == SyntaxKind::OR_REPLACE
24324    }
24325    #[inline]
24326    fn cast(syntax: SyntaxNode) -> Option<Self> {
24327        if Self::can_cast(syntax.kind()) {
24328            Some(Self { syntax })
24329        } else {
24330            None
24331        }
24332    }
24333    #[inline]
24334    fn syntax(&self) -> &SyntaxNode {
24335        &self.syntax
24336    }
24337}
24338impl AstNode for OrderByClause {
24339    #[inline]
24340    fn can_cast(kind: SyntaxKind) -> bool {
24341        kind == SyntaxKind::ORDER_BY_CLAUSE
24342    }
24343    #[inline]
24344    fn cast(syntax: SyntaxNode) -> Option<Self> {
24345        if Self::can_cast(syntax.kind()) {
24346            Some(Self { syntax })
24347        } else {
24348            None
24349        }
24350    }
24351    #[inline]
24352    fn syntax(&self) -> &SyntaxNode {
24353        &self.syntax
24354    }
24355}
24356impl AstNode for OverClause {
24357    #[inline]
24358    fn can_cast(kind: SyntaxKind) -> bool {
24359        kind == SyntaxKind::OVER_CLAUSE
24360    }
24361    #[inline]
24362    fn cast(syntax: SyntaxNode) -> Option<Self> {
24363        if Self::can_cast(syntax.kind()) {
24364            Some(Self { syntax })
24365        } else {
24366            None
24367        }
24368    }
24369    #[inline]
24370    fn syntax(&self) -> &SyntaxNode {
24371        &self.syntax
24372    }
24373}
24374impl AstNode for OverlayFn {
24375    #[inline]
24376    fn can_cast(kind: SyntaxKind) -> bool {
24377        kind == SyntaxKind::OVERLAY_FN
24378    }
24379    #[inline]
24380    fn cast(syntax: SyntaxNode) -> Option<Self> {
24381        if Self::can_cast(syntax.kind()) {
24382            Some(Self { syntax })
24383        } else {
24384            None
24385        }
24386    }
24387    #[inline]
24388    fn syntax(&self) -> &SyntaxNode {
24389        &self.syntax
24390    }
24391}
24392impl AstNode for OwnerTo {
24393    #[inline]
24394    fn can_cast(kind: SyntaxKind) -> bool {
24395        kind == SyntaxKind::OWNER_TO
24396    }
24397    #[inline]
24398    fn cast(syntax: SyntaxNode) -> Option<Self> {
24399        if Self::can_cast(syntax.kind()) {
24400            Some(Self { syntax })
24401        } else {
24402            None
24403        }
24404    }
24405    #[inline]
24406    fn syntax(&self) -> &SyntaxNode {
24407        &self.syntax
24408    }
24409}
24410impl AstNode for ParallelFuncOption {
24411    #[inline]
24412    fn can_cast(kind: SyntaxKind) -> bool {
24413        kind == SyntaxKind::PARALLEL_FUNC_OPTION
24414    }
24415    #[inline]
24416    fn cast(syntax: SyntaxNode) -> Option<Self> {
24417        if Self::can_cast(syntax.kind()) {
24418            Some(Self { syntax })
24419        } else {
24420            None
24421        }
24422    }
24423    #[inline]
24424    fn syntax(&self) -> &SyntaxNode {
24425        &self.syntax
24426    }
24427}
24428impl AstNode for Param {
24429    #[inline]
24430    fn can_cast(kind: SyntaxKind) -> bool {
24431        kind == SyntaxKind::PARAM
24432    }
24433    #[inline]
24434    fn cast(syntax: SyntaxNode) -> Option<Self> {
24435        if Self::can_cast(syntax.kind()) {
24436            Some(Self { syntax })
24437        } else {
24438            None
24439        }
24440    }
24441    #[inline]
24442    fn syntax(&self) -> &SyntaxNode {
24443        &self.syntax
24444    }
24445}
24446impl AstNode for ParamDefault {
24447    #[inline]
24448    fn can_cast(kind: SyntaxKind) -> bool {
24449        kind == SyntaxKind::PARAM_DEFAULT
24450    }
24451    #[inline]
24452    fn cast(syntax: SyntaxNode) -> Option<Self> {
24453        if Self::can_cast(syntax.kind()) {
24454            Some(Self { syntax })
24455        } else {
24456            None
24457        }
24458    }
24459    #[inline]
24460    fn syntax(&self) -> &SyntaxNode {
24461        &self.syntax
24462    }
24463}
24464impl AstNode for ParamIn {
24465    #[inline]
24466    fn can_cast(kind: SyntaxKind) -> bool {
24467        kind == SyntaxKind::PARAM_IN
24468    }
24469    #[inline]
24470    fn cast(syntax: SyntaxNode) -> Option<Self> {
24471        if Self::can_cast(syntax.kind()) {
24472            Some(Self { syntax })
24473        } else {
24474            None
24475        }
24476    }
24477    #[inline]
24478    fn syntax(&self) -> &SyntaxNode {
24479        &self.syntax
24480    }
24481}
24482impl AstNode for ParamInOut {
24483    #[inline]
24484    fn can_cast(kind: SyntaxKind) -> bool {
24485        kind == SyntaxKind::PARAM_IN_OUT
24486    }
24487    #[inline]
24488    fn cast(syntax: SyntaxNode) -> Option<Self> {
24489        if Self::can_cast(syntax.kind()) {
24490            Some(Self { syntax })
24491        } else {
24492            None
24493        }
24494    }
24495    #[inline]
24496    fn syntax(&self) -> &SyntaxNode {
24497        &self.syntax
24498    }
24499}
24500impl AstNode for ParamList {
24501    #[inline]
24502    fn can_cast(kind: SyntaxKind) -> bool {
24503        kind == SyntaxKind::PARAM_LIST
24504    }
24505    #[inline]
24506    fn cast(syntax: SyntaxNode) -> Option<Self> {
24507        if Self::can_cast(syntax.kind()) {
24508            Some(Self { syntax })
24509        } else {
24510            None
24511        }
24512    }
24513    #[inline]
24514    fn syntax(&self) -> &SyntaxNode {
24515        &self.syntax
24516    }
24517}
24518impl AstNode for ParamOut {
24519    #[inline]
24520    fn can_cast(kind: SyntaxKind) -> bool {
24521        kind == SyntaxKind::PARAM_OUT
24522    }
24523    #[inline]
24524    fn cast(syntax: SyntaxNode) -> Option<Self> {
24525        if Self::can_cast(syntax.kind()) {
24526            Some(Self { syntax })
24527        } else {
24528            None
24529        }
24530    }
24531    #[inline]
24532    fn syntax(&self) -> &SyntaxNode {
24533        &self.syntax
24534    }
24535}
24536impl AstNode for ParamVariadic {
24537    #[inline]
24538    fn can_cast(kind: SyntaxKind) -> bool {
24539        kind == SyntaxKind::PARAM_VARIADIC
24540    }
24541    #[inline]
24542    fn cast(syntax: SyntaxNode) -> Option<Self> {
24543        if Self::can_cast(syntax.kind()) {
24544            Some(Self { syntax })
24545        } else {
24546            None
24547        }
24548    }
24549    #[inline]
24550    fn syntax(&self) -> &SyntaxNode {
24551        &self.syntax
24552    }
24553}
24554impl AstNode for ParenExpr {
24555    #[inline]
24556    fn can_cast(kind: SyntaxKind) -> bool {
24557        kind == SyntaxKind::PAREN_EXPR
24558    }
24559    #[inline]
24560    fn cast(syntax: SyntaxNode) -> Option<Self> {
24561        if Self::can_cast(syntax.kind()) {
24562            Some(Self { syntax })
24563        } else {
24564            None
24565        }
24566    }
24567    #[inline]
24568    fn syntax(&self) -> &SyntaxNode {
24569        &self.syntax
24570    }
24571}
24572impl AstNode for ParenSelect {
24573    #[inline]
24574    fn can_cast(kind: SyntaxKind) -> bool {
24575        kind == SyntaxKind::PAREN_SELECT
24576    }
24577    #[inline]
24578    fn cast(syntax: SyntaxNode) -> Option<Self> {
24579        if Self::can_cast(syntax.kind()) {
24580            Some(Self { syntax })
24581        } else {
24582            None
24583        }
24584    }
24585    #[inline]
24586    fn syntax(&self) -> &SyntaxNode {
24587        &self.syntax
24588    }
24589}
24590impl AstNode for PartitionBy {
24591    #[inline]
24592    fn can_cast(kind: SyntaxKind) -> bool {
24593        kind == SyntaxKind::PARTITION_BY
24594    }
24595    #[inline]
24596    fn cast(syntax: SyntaxNode) -> Option<Self> {
24597        if Self::can_cast(syntax.kind()) {
24598            Some(Self { syntax })
24599        } else {
24600            None
24601        }
24602    }
24603    #[inline]
24604    fn syntax(&self) -> &SyntaxNode {
24605        &self.syntax
24606    }
24607}
24608impl AstNode for PartitionDefault {
24609    #[inline]
24610    fn can_cast(kind: SyntaxKind) -> bool {
24611        kind == SyntaxKind::PARTITION_DEFAULT
24612    }
24613    #[inline]
24614    fn cast(syntax: SyntaxNode) -> Option<Self> {
24615        if Self::can_cast(syntax.kind()) {
24616            Some(Self { syntax })
24617        } else {
24618            None
24619        }
24620    }
24621    #[inline]
24622    fn syntax(&self) -> &SyntaxNode {
24623        &self.syntax
24624    }
24625}
24626impl AstNode for PartitionForValuesFrom {
24627    #[inline]
24628    fn can_cast(kind: SyntaxKind) -> bool {
24629        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
24630    }
24631    #[inline]
24632    fn cast(syntax: SyntaxNode) -> Option<Self> {
24633        if Self::can_cast(syntax.kind()) {
24634            Some(Self { syntax })
24635        } else {
24636            None
24637        }
24638    }
24639    #[inline]
24640    fn syntax(&self) -> &SyntaxNode {
24641        &self.syntax
24642    }
24643}
24644impl AstNode for PartitionForValuesIn {
24645    #[inline]
24646    fn can_cast(kind: SyntaxKind) -> bool {
24647        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
24648    }
24649    #[inline]
24650    fn cast(syntax: SyntaxNode) -> Option<Self> {
24651        if Self::can_cast(syntax.kind()) {
24652            Some(Self { syntax })
24653        } else {
24654            None
24655        }
24656    }
24657    #[inline]
24658    fn syntax(&self) -> &SyntaxNode {
24659        &self.syntax
24660    }
24661}
24662impl AstNode for PartitionForValuesWith {
24663    #[inline]
24664    fn can_cast(kind: SyntaxKind) -> bool {
24665        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
24666    }
24667    #[inline]
24668    fn cast(syntax: SyntaxNode) -> Option<Self> {
24669        if Self::can_cast(syntax.kind()) {
24670            Some(Self { syntax })
24671        } else {
24672            None
24673        }
24674    }
24675    #[inline]
24676    fn syntax(&self) -> &SyntaxNode {
24677        &self.syntax
24678    }
24679}
24680impl AstNode for PartitionItem {
24681    #[inline]
24682    fn can_cast(kind: SyntaxKind) -> bool {
24683        kind == SyntaxKind::PARTITION_ITEM
24684    }
24685    #[inline]
24686    fn cast(syntax: SyntaxNode) -> Option<Self> {
24687        if Self::can_cast(syntax.kind()) {
24688            Some(Self { syntax })
24689        } else {
24690            None
24691        }
24692    }
24693    #[inline]
24694    fn syntax(&self) -> &SyntaxNode {
24695        &self.syntax
24696    }
24697}
24698impl AstNode for PartitionItemList {
24699    #[inline]
24700    fn can_cast(kind: SyntaxKind) -> bool {
24701        kind == SyntaxKind::PARTITION_ITEM_LIST
24702    }
24703    #[inline]
24704    fn cast(syntax: SyntaxNode) -> Option<Self> {
24705        if Self::can_cast(syntax.kind()) {
24706            Some(Self { syntax })
24707        } else {
24708            None
24709        }
24710    }
24711    #[inline]
24712    fn syntax(&self) -> &SyntaxNode {
24713        &self.syntax
24714    }
24715}
24716impl AstNode for PartitionOf {
24717    #[inline]
24718    fn can_cast(kind: SyntaxKind) -> bool {
24719        kind == SyntaxKind::PARTITION_OF
24720    }
24721    #[inline]
24722    fn cast(syntax: SyntaxNode) -> Option<Self> {
24723        if Self::can_cast(syntax.kind()) {
24724            Some(Self { syntax })
24725        } else {
24726            None
24727        }
24728    }
24729    #[inline]
24730    fn syntax(&self) -> &SyntaxNode {
24731        &self.syntax
24732    }
24733}
24734impl AstNode for Path {
24735    #[inline]
24736    fn can_cast(kind: SyntaxKind) -> bool {
24737        kind == SyntaxKind::PATH
24738    }
24739    #[inline]
24740    fn cast(syntax: SyntaxNode) -> Option<Self> {
24741        if Self::can_cast(syntax.kind()) {
24742            Some(Self { syntax })
24743        } else {
24744            None
24745        }
24746    }
24747    #[inline]
24748    fn syntax(&self) -> &SyntaxNode {
24749        &self.syntax
24750    }
24751}
24752impl AstNode for PathSegment {
24753    #[inline]
24754    fn can_cast(kind: SyntaxKind) -> bool {
24755        kind == SyntaxKind::PATH_SEGMENT
24756    }
24757    #[inline]
24758    fn cast(syntax: SyntaxNode) -> Option<Self> {
24759        if Self::can_cast(syntax.kind()) {
24760            Some(Self { syntax })
24761        } else {
24762            None
24763        }
24764    }
24765    #[inline]
24766    fn syntax(&self) -> &SyntaxNode {
24767        &self.syntax
24768    }
24769}
24770impl AstNode for PathType {
24771    #[inline]
24772    fn can_cast(kind: SyntaxKind) -> bool {
24773        kind == SyntaxKind::PATH_TYPE
24774    }
24775    #[inline]
24776    fn cast(syntax: SyntaxNode) -> Option<Self> {
24777        if Self::can_cast(syntax.kind()) {
24778            Some(Self { syntax })
24779        } else {
24780            None
24781        }
24782    }
24783    #[inline]
24784    fn syntax(&self) -> &SyntaxNode {
24785        &self.syntax
24786    }
24787}
24788impl AstNode for PercentType {
24789    #[inline]
24790    fn can_cast(kind: SyntaxKind) -> bool {
24791        kind == SyntaxKind::PERCENT_TYPE
24792    }
24793    #[inline]
24794    fn cast(syntax: SyntaxNode) -> Option<Self> {
24795        if Self::can_cast(syntax.kind()) {
24796            Some(Self { syntax })
24797        } else {
24798            None
24799        }
24800    }
24801    #[inline]
24802    fn syntax(&self) -> &SyntaxNode {
24803        &self.syntax
24804    }
24805}
24806impl AstNode for PercentTypeClause {
24807    #[inline]
24808    fn can_cast(kind: SyntaxKind) -> bool {
24809        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
24810    }
24811    #[inline]
24812    fn cast(syntax: SyntaxNode) -> Option<Self> {
24813        if Self::can_cast(syntax.kind()) {
24814            Some(Self { syntax })
24815        } else {
24816            None
24817        }
24818    }
24819    #[inline]
24820    fn syntax(&self) -> &SyntaxNode {
24821        &self.syntax
24822    }
24823}
24824impl AstNode for PositionFn {
24825    #[inline]
24826    fn can_cast(kind: SyntaxKind) -> bool {
24827        kind == SyntaxKind::POSITION_FN
24828    }
24829    #[inline]
24830    fn cast(syntax: SyntaxNode) -> Option<Self> {
24831        if Self::can_cast(syntax.kind()) {
24832            Some(Self { syntax })
24833        } else {
24834            None
24835        }
24836    }
24837    #[inline]
24838    fn syntax(&self) -> &SyntaxNode {
24839        &self.syntax
24840    }
24841}
24842impl AstNode for PostfixExpr {
24843    #[inline]
24844    fn can_cast(kind: SyntaxKind) -> bool {
24845        kind == SyntaxKind::POSTFIX_EXPR
24846    }
24847    #[inline]
24848    fn cast(syntax: SyntaxNode) -> Option<Self> {
24849        if Self::can_cast(syntax.kind()) {
24850            Some(Self { syntax })
24851        } else {
24852            None
24853        }
24854    }
24855    #[inline]
24856    fn syntax(&self) -> &SyntaxNode {
24857        &self.syntax
24858    }
24859}
24860impl AstNode for PrefixExpr {
24861    #[inline]
24862    fn can_cast(kind: SyntaxKind) -> bool {
24863        kind == SyntaxKind::PREFIX_EXPR
24864    }
24865    #[inline]
24866    fn cast(syntax: SyntaxNode) -> Option<Self> {
24867        if Self::can_cast(syntax.kind()) {
24868            Some(Self { syntax })
24869        } else {
24870            None
24871        }
24872    }
24873    #[inline]
24874    fn syntax(&self) -> &SyntaxNode {
24875        &self.syntax
24876    }
24877}
24878impl AstNode for Prepare {
24879    #[inline]
24880    fn can_cast(kind: SyntaxKind) -> bool {
24881        kind == SyntaxKind::PREPARE
24882    }
24883    #[inline]
24884    fn cast(syntax: SyntaxNode) -> Option<Self> {
24885        if Self::can_cast(syntax.kind()) {
24886            Some(Self { syntax })
24887        } else {
24888            None
24889        }
24890    }
24891    #[inline]
24892    fn syntax(&self) -> &SyntaxNode {
24893        &self.syntax
24894    }
24895}
24896impl AstNode for PrepareTransaction {
24897    #[inline]
24898    fn can_cast(kind: SyntaxKind) -> bool {
24899        kind == SyntaxKind::PREPARE_TRANSACTION
24900    }
24901    #[inline]
24902    fn cast(syntax: SyntaxNode) -> Option<Self> {
24903        if Self::can_cast(syntax.kind()) {
24904            Some(Self { syntax })
24905        } else {
24906            None
24907        }
24908    }
24909    #[inline]
24910    fn syntax(&self) -> &SyntaxNode {
24911        &self.syntax
24912    }
24913}
24914impl AstNode for PreserveRows {
24915    #[inline]
24916    fn can_cast(kind: SyntaxKind) -> bool {
24917        kind == SyntaxKind::PRESERVE_ROWS
24918    }
24919    #[inline]
24920    fn cast(syntax: SyntaxNode) -> Option<Self> {
24921        if Self::can_cast(syntax.kind()) {
24922            Some(Self { syntax })
24923        } else {
24924            None
24925        }
24926    }
24927    #[inline]
24928    fn syntax(&self) -> &SyntaxNode {
24929        &self.syntax
24930    }
24931}
24932impl AstNode for PrimaryKeyConstraint {
24933    #[inline]
24934    fn can_cast(kind: SyntaxKind) -> bool {
24935        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
24936    }
24937    #[inline]
24938    fn cast(syntax: SyntaxNode) -> Option<Self> {
24939        if Self::can_cast(syntax.kind()) {
24940            Some(Self { syntax })
24941        } else {
24942            None
24943        }
24944    }
24945    #[inline]
24946    fn syntax(&self) -> &SyntaxNode {
24947        &self.syntax
24948    }
24949}
24950impl AstNode for PrivilegeTarget {
24951    #[inline]
24952    fn can_cast(kind: SyntaxKind) -> bool {
24953        kind == SyntaxKind::PRIVILEGE_TARGET
24954    }
24955    #[inline]
24956    fn cast(syntax: SyntaxNode) -> Option<Self> {
24957        if Self::can_cast(syntax.kind()) {
24958            Some(Self { syntax })
24959        } else {
24960            None
24961        }
24962    }
24963    #[inline]
24964    fn syntax(&self) -> &SyntaxNode {
24965        &self.syntax
24966    }
24967}
24968impl AstNode for Privileges {
24969    #[inline]
24970    fn can_cast(kind: SyntaxKind) -> bool {
24971        kind == SyntaxKind::PRIVILEGES
24972    }
24973    #[inline]
24974    fn cast(syntax: SyntaxNode) -> Option<Self> {
24975        if Self::can_cast(syntax.kind()) {
24976            Some(Self { syntax })
24977        } else {
24978            None
24979        }
24980    }
24981    #[inline]
24982    fn syntax(&self) -> &SyntaxNode {
24983        &self.syntax
24984    }
24985}
24986impl AstNode for PublicationObject {
24987    #[inline]
24988    fn can_cast(kind: SyntaxKind) -> bool {
24989        kind == SyntaxKind::PUBLICATION_OBJECT
24990    }
24991    #[inline]
24992    fn cast(syntax: SyntaxNode) -> Option<Self> {
24993        if Self::can_cast(syntax.kind()) {
24994            Some(Self { syntax })
24995        } else {
24996            None
24997        }
24998    }
24999    #[inline]
25000    fn syntax(&self) -> &SyntaxNode {
25001        &self.syntax
25002    }
25003}
25004impl AstNode for ReadCommitted {
25005    #[inline]
25006    fn can_cast(kind: SyntaxKind) -> bool {
25007        kind == SyntaxKind::READ_COMMITTED
25008    }
25009    #[inline]
25010    fn cast(syntax: SyntaxNode) -> Option<Self> {
25011        if Self::can_cast(syntax.kind()) {
25012            Some(Self { syntax })
25013        } else {
25014            None
25015        }
25016    }
25017    #[inline]
25018    fn syntax(&self) -> &SyntaxNode {
25019        &self.syntax
25020    }
25021}
25022impl AstNode for ReadOnly {
25023    #[inline]
25024    fn can_cast(kind: SyntaxKind) -> bool {
25025        kind == SyntaxKind::READ_ONLY
25026    }
25027    #[inline]
25028    fn cast(syntax: SyntaxNode) -> Option<Self> {
25029        if Self::can_cast(syntax.kind()) {
25030            Some(Self { syntax })
25031        } else {
25032            None
25033        }
25034    }
25035    #[inline]
25036    fn syntax(&self) -> &SyntaxNode {
25037        &self.syntax
25038    }
25039}
25040impl AstNode for ReadUncommitted {
25041    #[inline]
25042    fn can_cast(kind: SyntaxKind) -> bool {
25043        kind == SyntaxKind::READ_UNCOMMITTED
25044    }
25045    #[inline]
25046    fn cast(syntax: SyntaxNode) -> Option<Self> {
25047        if Self::can_cast(syntax.kind()) {
25048            Some(Self { syntax })
25049        } else {
25050            None
25051        }
25052    }
25053    #[inline]
25054    fn syntax(&self) -> &SyntaxNode {
25055        &self.syntax
25056    }
25057}
25058impl AstNode for ReadWrite {
25059    #[inline]
25060    fn can_cast(kind: SyntaxKind) -> bool {
25061        kind == SyntaxKind::READ_WRITE
25062    }
25063    #[inline]
25064    fn cast(syntax: SyntaxNode) -> Option<Self> {
25065        if Self::can_cast(syntax.kind()) {
25066            Some(Self { syntax })
25067        } else {
25068            None
25069        }
25070    }
25071    #[inline]
25072    fn syntax(&self) -> &SyntaxNode {
25073        &self.syntax
25074    }
25075}
25076impl AstNode for Reassign {
25077    #[inline]
25078    fn can_cast(kind: SyntaxKind) -> bool {
25079        kind == SyntaxKind::REASSIGN
25080    }
25081    #[inline]
25082    fn cast(syntax: SyntaxNode) -> Option<Self> {
25083        if Self::can_cast(syntax.kind()) {
25084            Some(Self { syntax })
25085        } else {
25086            None
25087        }
25088    }
25089    #[inline]
25090    fn syntax(&self) -> &SyntaxNode {
25091        &self.syntax
25092    }
25093}
25094impl AstNode for ReferencesConstraint {
25095    #[inline]
25096    fn can_cast(kind: SyntaxKind) -> bool {
25097        kind == SyntaxKind::REFERENCES_CONSTRAINT
25098    }
25099    #[inline]
25100    fn cast(syntax: SyntaxNode) -> Option<Self> {
25101        if Self::can_cast(syntax.kind()) {
25102            Some(Self { syntax })
25103        } else {
25104            None
25105        }
25106    }
25107    #[inline]
25108    fn syntax(&self) -> &SyntaxNode {
25109        &self.syntax
25110    }
25111}
25112impl AstNode for Referencing {
25113    #[inline]
25114    fn can_cast(kind: SyntaxKind) -> bool {
25115        kind == SyntaxKind::REFERENCING
25116    }
25117    #[inline]
25118    fn cast(syntax: SyntaxNode) -> Option<Self> {
25119        if Self::can_cast(syntax.kind()) {
25120            Some(Self { syntax })
25121        } else {
25122            None
25123        }
25124    }
25125    #[inline]
25126    fn syntax(&self) -> &SyntaxNode {
25127        &self.syntax
25128    }
25129}
25130impl AstNode for ReferencingTable {
25131    #[inline]
25132    fn can_cast(kind: SyntaxKind) -> bool {
25133        kind == SyntaxKind::REFERENCING_TABLE
25134    }
25135    #[inline]
25136    fn cast(syntax: SyntaxNode) -> Option<Self> {
25137        if Self::can_cast(syntax.kind()) {
25138            Some(Self { syntax })
25139        } else {
25140            None
25141        }
25142    }
25143    #[inline]
25144    fn syntax(&self) -> &SyntaxNode {
25145        &self.syntax
25146    }
25147}
25148impl AstNode for Refresh {
25149    #[inline]
25150    fn can_cast(kind: SyntaxKind) -> bool {
25151        kind == SyntaxKind::REFRESH
25152    }
25153    #[inline]
25154    fn cast(syntax: SyntaxNode) -> Option<Self> {
25155        if Self::can_cast(syntax.kind()) {
25156            Some(Self { syntax })
25157        } else {
25158            None
25159        }
25160    }
25161    #[inline]
25162    fn syntax(&self) -> &SyntaxNode {
25163        &self.syntax
25164    }
25165}
25166impl AstNode for RefreshCollationVersion {
25167    #[inline]
25168    fn can_cast(kind: SyntaxKind) -> bool {
25169        kind == SyntaxKind::REFRESH_COLLATION_VERSION
25170    }
25171    #[inline]
25172    fn cast(syntax: SyntaxNode) -> Option<Self> {
25173        if Self::can_cast(syntax.kind()) {
25174            Some(Self { syntax })
25175        } else {
25176            None
25177        }
25178    }
25179    #[inline]
25180    fn syntax(&self) -> &SyntaxNode {
25181        &self.syntax
25182    }
25183}
25184impl AstNode for RefreshVersion {
25185    #[inline]
25186    fn can_cast(kind: SyntaxKind) -> bool {
25187        kind == SyntaxKind::REFRESH_VERSION
25188    }
25189    #[inline]
25190    fn cast(syntax: SyntaxNode) -> Option<Self> {
25191        if Self::can_cast(syntax.kind()) {
25192            Some(Self { syntax })
25193        } else {
25194            None
25195        }
25196    }
25197    #[inline]
25198    fn syntax(&self) -> &SyntaxNode {
25199        &self.syntax
25200    }
25201}
25202impl AstNode for Reindex {
25203    #[inline]
25204    fn can_cast(kind: SyntaxKind) -> bool {
25205        kind == SyntaxKind::REINDEX
25206    }
25207    #[inline]
25208    fn cast(syntax: SyntaxNode) -> Option<Self> {
25209        if Self::can_cast(syntax.kind()) {
25210            Some(Self { syntax })
25211        } else {
25212            None
25213        }
25214    }
25215    #[inline]
25216    fn syntax(&self) -> &SyntaxNode {
25217        &self.syntax
25218    }
25219}
25220impl AstNode for RelationName {
25221    #[inline]
25222    fn can_cast(kind: SyntaxKind) -> bool {
25223        kind == SyntaxKind::RELATION_NAME
25224    }
25225    #[inline]
25226    fn cast(syntax: SyntaxNode) -> Option<Self> {
25227        if Self::can_cast(syntax.kind()) {
25228            Some(Self { syntax })
25229        } else {
25230            None
25231        }
25232    }
25233    #[inline]
25234    fn syntax(&self) -> &SyntaxNode {
25235        &self.syntax
25236    }
25237}
25238impl AstNode for ReleaseSavepoint {
25239    #[inline]
25240    fn can_cast(kind: SyntaxKind) -> bool {
25241        kind == SyntaxKind::RELEASE_SAVEPOINT
25242    }
25243    #[inline]
25244    fn cast(syntax: SyntaxNode) -> Option<Self> {
25245        if Self::can_cast(syntax.kind()) {
25246            Some(Self { syntax })
25247        } else {
25248            None
25249        }
25250    }
25251    #[inline]
25252    fn syntax(&self) -> &SyntaxNode {
25253        &self.syntax
25254    }
25255}
25256impl AstNode for RenameColumn {
25257    #[inline]
25258    fn can_cast(kind: SyntaxKind) -> bool {
25259        kind == SyntaxKind::RENAME_COLUMN
25260    }
25261    #[inline]
25262    fn cast(syntax: SyntaxNode) -> Option<Self> {
25263        if Self::can_cast(syntax.kind()) {
25264            Some(Self { syntax })
25265        } else {
25266            None
25267        }
25268    }
25269    #[inline]
25270    fn syntax(&self) -> &SyntaxNode {
25271        &self.syntax
25272    }
25273}
25274impl AstNode for RenameConstraint {
25275    #[inline]
25276    fn can_cast(kind: SyntaxKind) -> bool {
25277        kind == SyntaxKind::RENAME_CONSTRAINT
25278    }
25279    #[inline]
25280    fn cast(syntax: SyntaxNode) -> Option<Self> {
25281        if Self::can_cast(syntax.kind()) {
25282            Some(Self { syntax })
25283        } else {
25284            None
25285        }
25286    }
25287    #[inline]
25288    fn syntax(&self) -> &SyntaxNode {
25289        &self.syntax
25290    }
25291}
25292impl AstNode for RenameTo {
25293    #[inline]
25294    fn can_cast(kind: SyntaxKind) -> bool {
25295        kind == SyntaxKind::RENAME_TO
25296    }
25297    #[inline]
25298    fn cast(syntax: SyntaxNode) -> Option<Self> {
25299        if Self::can_cast(syntax.kind()) {
25300            Some(Self { syntax })
25301        } else {
25302            None
25303        }
25304    }
25305    #[inline]
25306    fn syntax(&self) -> &SyntaxNode {
25307        &self.syntax
25308    }
25309}
25310impl AstNode for RepeatableClause {
25311    #[inline]
25312    fn can_cast(kind: SyntaxKind) -> bool {
25313        kind == SyntaxKind::REPEATABLE_CLAUSE
25314    }
25315    #[inline]
25316    fn cast(syntax: SyntaxNode) -> Option<Self> {
25317        if Self::can_cast(syntax.kind()) {
25318            Some(Self { syntax })
25319        } else {
25320            None
25321        }
25322    }
25323    #[inline]
25324    fn syntax(&self) -> &SyntaxNode {
25325        &self.syntax
25326    }
25327}
25328impl AstNode for RepeatableRead {
25329    #[inline]
25330    fn can_cast(kind: SyntaxKind) -> bool {
25331        kind == SyntaxKind::REPEATABLE_READ
25332    }
25333    #[inline]
25334    fn cast(syntax: SyntaxNode) -> Option<Self> {
25335        if Self::can_cast(syntax.kind()) {
25336            Some(Self { syntax })
25337        } else {
25338            None
25339        }
25340    }
25341    #[inline]
25342    fn syntax(&self) -> &SyntaxNode {
25343        &self.syntax
25344    }
25345}
25346impl AstNode for ReplicaIdentity {
25347    #[inline]
25348    fn can_cast(kind: SyntaxKind) -> bool {
25349        kind == SyntaxKind::REPLICA_IDENTITY
25350    }
25351    #[inline]
25352    fn cast(syntax: SyntaxNode) -> Option<Self> {
25353        if Self::can_cast(syntax.kind()) {
25354            Some(Self { syntax })
25355        } else {
25356            None
25357        }
25358    }
25359    #[inline]
25360    fn syntax(&self) -> &SyntaxNode {
25361        &self.syntax
25362    }
25363}
25364impl AstNode for Reset {
25365    #[inline]
25366    fn can_cast(kind: SyntaxKind) -> bool {
25367        kind == SyntaxKind::RESET
25368    }
25369    #[inline]
25370    fn cast(syntax: SyntaxNode) -> Option<Self> {
25371        if Self::can_cast(syntax.kind()) {
25372            Some(Self { syntax })
25373        } else {
25374            None
25375        }
25376    }
25377    #[inline]
25378    fn syntax(&self) -> &SyntaxNode {
25379        &self.syntax
25380    }
25381}
25382impl AstNode for ResetConfigParam {
25383    #[inline]
25384    fn can_cast(kind: SyntaxKind) -> bool {
25385        kind == SyntaxKind::RESET_CONFIG_PARAM
25386    }
25387    #[inline]
25388    fn cast(syntax: SyntaxNode) -> Option<Self> {
25389        if Self::can_cast(syntax.kind()) {
25390            Some(Self { syntax })
25391        } else {
25392            None
25393        }
25394    }
25395    #[inline]
25396    fn syntax(&self) -> &SyntaxNode {
25397        &self.syntax
25398    }
25399}
25400impl AstNode for ResetFuncOption {
25401    #[inline]
25402    fn can_cast(kind: SyntaxKind) -> bool {
25403        kind == SyntaxKind::RESET_FUNC_OPTION
25404    }
25405    #[inline]
25406    fn cast(syntax: SyntaxNode) -> Option<Self> {
25407        if Self::can_cast(syntax.kind()) {
25408            Some(Self { syntax })
25409        } else {
25410            None
25411        }
25412    }
25413    #[inline]
25414    fn syntax(&self) -> &SyntaxNode {
25415        &self.syntax
25416    }
25417}
25418impl AstNode for ResetOptions {
25419    #[inline]
25420    fn can_cast(kind: SyntaxKind) -> bool {
25421        kind == SyntaxKind::RESET_OPTIONS
25422    }
25423    #[inline]
25424    fn cast(syntax: SyntaxNode) -> Option<Self> {
25425        if Self::can_cast(syntax.kind()) {
25426            Some(Self { syntax })
25427        } else {
25428            None
25429        }
25430    }
25431    #[inline]
25432    fn syntax(&self) -> &SyntaxNode {
25433        &self.syntax
25434    }
25435}
25436impl AstNode for ResetSessionAuth {
25437    #[inline]
25438    fn can_cast(kind: SyntaxKind) -> bool {
25439        kind == SyntaxKind::RESET_SESSION_AUTH
25440    }
25441    #[inline]
25442    fn cast(syntax: SyntaxNode) -> Option<Self> {
25443        if Self::can_cast(syntax.kind()) {
25444            Some(Self { syntax })
25445        } else {
25446            None
25447        }
25448    }
25449    #[inline]
25450    fn syntax(&self) -> &SyntaxNode {
25451        &self.syntax
25452    }
25453}
25454impl AstNode for Restart {
25455    #[inline]
25456    fn can_cast(kind: SyntaxKind) -> bool {
25457        kind == SyntaxKind::RESTART
25458    }
25459    #[inline]
25460    fn cast(syntax: SyntaxNode) -> Option<Self> {
25461        if Self::can_cast(syntax.kind()) {
25462            Some(Self { syntax })
25463        } else {
25464            None
25465        }
25466    }
25467    #[inline]
25468    fn syntax(&self) -> &SyntaxNode {
25469        &self.syntax
25470    }
25471}
25472impl AstNode for Restrict {
25473    #[inline]
25474    fn can_cast(kind: SyntaxKind) -> bool {
25475        kind == SyntaxKind::RESTRICT
25476    }
25477    #[inline]
25478    fn cast(syntax: SyntaxNode) -> Option<Self> {
25479        if Self::can_cast(syntax.kind()) {
25480            Some(Self { syntax })
25481        } else {
25482            None
25483        }
25484    }
25485    #[inline]
25486    fn syntax(&self) -> &SyntaxNode {
25487        &self.syntax
25488    }
25489}
25490impl AstNode for RetType {
25491    #[inline]
25492    fn can_cast(kind: SyntaxKind) -> bool {
25493        kind == SyntaxKind::RET_TYPE
25494    }
25495    #[inline]
25496    fn cast(syntax: SyntaxNode) -> Option<Self> {
25497        if Self::can_cast(syntax.kind()) {
25498            Some(Self { syntax })
25499        } else {
25500            None
25501        }
25502    }
25503    #[inline]
25504    fn syntax(&self) -> &SyntaxNode {
25505        &self.syntax
25506    }
25507}
25508impl AstNode for ReturnFuncOption {
25509    #[inline]
25510    fn can_cast(kind: SyntaxKind) -> bool {
25511        kind == SyntaxKind::RETURN_FUNC_OPTION
25512    }
25513    #[inline]
25514    fn cast(syntax: SyntaxNode) -> Option<Self> {
25515        if Self::can_cast(syntax.kind()) {
25516            Some(Self { syntax })
25517        } else {
25518            None
25519        }
25520    }
25521    #[inline]
25522    fn syntax(&self) -> &SyntaxNode {
25523        &self.syntax
25524    }
25525}
25526impl AstNode for ReturningClause {
25527    #[inline]
25528    fn can_cast(kind: SyntaxKind) -> bool {
25529        kind == SyntaxKind::RETURNING_CLAUSE
25530    }
25531    #[inline]
25532    fn cast(syntax: SyntaxNode) -> Option<Self> {
25533        if Self::can_cast(syntax.kind()) {
25534            Some(Self { syntax })
25535        } else {
25536            None
25537        }
25538    }
25539    #[inline]
25540    fn syntax(&self) -> &SyntaxNode {
25541        &self.syntax
25542    }
25543}
25544impl AstNode for ReturningOption {
25545    #[inline]
25546    fn can_cast(kind: SyntaxKind) -> bool {
25547        kind == SyntaxKind::RETURNING_OPTION
25548    }
25549    #[inline]
25550    fn cast(syntax: SyntaxNode) -> Option<Self> {
25551        if Self::can_cast(syntax.kind()) {
25552            Some(Self { syntax })
25553        } else {
25554            None
25555        }
25556    }
25557    #[inline]
25558    fn syntax(&self) -> &SyntaxNode {
25559        &self.syntax
25560    }
25561}
25562impl AstNode for ReturningOptionList {
25563    #[inline]
25564    fn can_cast(kind: SyntaxKind) -> bool {
25565        kind == SyntaxKind::RETURNING_OPTION_LIST
25566    }
25567    #[inline]
25568    fn cast(syntax: SyntaxNode) -> Option<Self> {
25569        if Self::can_cast(syntax.kind()) {
25570            Some(Self { syntax })
25571        } else {
25572            None
25573        }
25574    }
25575    #[inline]
25576    fn syntax(&self) -> &SyntaxNode {
25577        &self.syntax
25578    }
25579}
25580impl AstNode for Revoke {
25581    #[inline]
25582    fn can_cast(kind: SyntaxKind) -> bool {
25583        kind == SyntaxKind::REVOKE
25584    }
25585    #[inline]
25586    fn cast(syntax: SyntaxNode) -> Option<Self> {
25587        if Self::can_cast(syntax.kind()) {
25588            Some(Self { syntax })
25589        } else {
25590            None
25591        }
25592    }
25593    #[inline]
25594    fn syntax(&self) -> &SyntaxNode {
25595        &self.syntax
25596    }
25597}
25598impl AstNode for RevokeCommand {
25599    #[inline]
25600    fn can_cast(kind: SyntaxKind) -> bool {
25601        kind == SyntaxKind::REVOKE_COMMAND
25602    }
25603    #[inline]
25604    fn cast(syntax: SyntaxNode) -> Option<Self> {
25605        if Self::can_cast(syntax.kind()) {
25606            Some(Self { syntax })
25607        } else {
25608            None
25609        }
25610    }
25611    #[inline]
25612    fn syntax(&self) -> &SyntaxNode {
25613        &self.syntax
25614    }
25615}
25616impl AstNode for RevokeCommandList {
25617    #[inline]
25618    fn can_cast(kind: SyntaxKind) -> bool {
25619        kind == SyntaxKind::REVOKE_COMMAND_LIST
25620    }
25621    #[inline]
25622    fn cast(syntax: SyntaxNode) -> Option<Self> {
25623        if Self::can_cast(syntax.kind()) {
25624            Some(Self { syntax })
25625        } else {
25626            None
25627        }
25628    }
25629    #[inline]
25630    fn syntax(&self) -> &SyntaxNode {
25631        &self.syntax
25632    }
25633}
25634impl AstNode for RevokeDefaultPrivileges {
25635    #[inline]
25636    fn can_cast(kind: SyntaxKind) -> bool {
25637        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
25638    }
25639    #[inline]
25640    fn cast(syntax: SyntaxNode) -> Option<Self> {
25641        if Self::can_cast(syntax.kind()) {
25642            Some(Self { syntax })
25643        } else {
25644            None
25645        }
25646    }
25647    #[inline]
25648    fn syntax(&self) -> &SyntaxNode {
25649        &self.syntax
25650    }
25651}
25652impl AstNode for Role {
25653    #[inline]
25654    fn can_cast(kind: SyntaxKind) -> bool {
25655        kind == SyntaxKind::ROLE
25656    }
25657    #[inline]
25658    fn cast(syntax: SyntaxNode) -> Option<Self> {
25659        if Self::can_cast(syntax.kind()) {
25660            Some(Self { syntax })
25661        } else {
25662            None
25663        }
25664    }
25665    #[inline]
25666    fn syntax(&self) -> &SyntaxNode {
25667        &self.syntax
25668    }
25669}
25670impl AstNode for RoleList {
25671    #[inline]
25672    fn can_cast(kind: SyntaxKind) -> bool {
25673        kind == SyntaxKind::ROLE_LIST
25674    }
25675    #[inline]
25676    fn cast(syntax: SyntaxNode) -> Option<Self> {
25677        if Self::can_cast(syntax.kind()) {
25678            Some(Self { syntax })
25679        } else {
25680            None
25681        }
25682    }
25683    #[inline]
25684    fn syntax(&self) -> &SyntaxNode {
25685        &self.syntax
25686    }
25687}
25688impl AstNode for RoleOption {
25689    #[inline]
25690    fn can_cast(kind: SyntaxKind) -> bool {
25691        kind == SyntaxKind::ROLE_OPTION
25692    }
25693    #[inline]
25694    fn cast(syntax: SyntaxNode) -> Option<Self> {
25695        if Self::can_cast(syntax.kind()) {
25696            Some(Self { syntax })
25697        } else {
25698            None
25699        }
25700    }
25701    #[inline]
25702    fn syntax(&self) -> &SyntaxNode {
25703        &self.syntax
25704    }
25705}
25706impl AstNode for RoleOptionList {
25707    #[inline]
25708    fn can_cast(kind: SyntaxKind) -> bool {
25709        kind == SyntaxKind::ROLE_OPTION_LIST
25710    }
25711    #[inline]
25712    fn cast(syntax: SyntaxNode) -> Option<Self> {
25713        if Self::can_cast(syntax.kind()) {
25714            Some(Self { syntax })
25715        } else {
25716            None
25717        }
25718    }
25719    #[inline]
25720    fn syntax(&self) -> &SyntaxNode {
25721        &self.syntax
25722    }
25723}
25724impl AstNode for Rollback {
25725    #[inline]
25726    fn can_cast(kind: SyntaxKind) -> bool {
25727        kind == SyntaxKind::ROLLBACK
25728    }
25729    #[inline]
25730    fn cast(syntax: SyntaxNode) -> Option<Self> {
25731        if Self::can_cast(syntax.kind()) {
25732            Some(Self { syntax })
25733        } else {
25734            None
25735        }
25736    }
25737    #[inline]
25738    fn syntax(&self) -> &SyntaxNode {
25739        &self.syntax
25740    }
25741}
25742impl AstNode for Row {
25743    #[inline]
25744    fn can_cast(kind: SyntaxKind) -> bool {
25745        kind == SyntaxKind::ROW
25746    }
25747    #[inline]
25748    fn cast(syntax: SyntaxNode) -> Option<Self> {
25749        if Self::can_cast(syntax.kind()) {
25750            Some(Self { syntax })
25751        } else {
25752            None
25753        }
25754    }
25755    #[inline]
25756    fn syntax(&self) -> &SyntaxNode {
25757        &self.syntax
25758    }
25759}
25760impl AstNode for RowList {
25761    #[inline]
25762    fn can_cast(kind: SyntaxKind) -> bool {
25763        kind == SyntaxKind::ROW_LIST
25764    }
25765    #[inline]
25766    fn cast(syntax: SyntaxNode) -> Option<Self> {
25767        if Self::can_cast(syntax.kind()) {
25768            Some(Self { syntax })
25769        } else {
25770            None
25771        }
25772    }
25773    #[inline]
25774    fn syntax(&self) -> &SyntaxNode {
25775        &self.syntax
25776    }
25777}
25778impl AstNode for RowsFuncOption {
25779    #[inline]
25780    fn can_cast(kind: SyntaxKind) -> bool {
25781        kind == SyntaxKind::ROWS_FUNC_OPTION
25782    }
25783    #[inline]
25784    fn cast(syntax: SyntaxNode) -> Option<Self> {
25785        if Self::can_cast(syntax.kind()) {
25786            Some(Self { syntax })
25787        } else {
25788            None
25789        }
25790    }
25791    #[inline]
25792    fn syntax(&self) -> &SyntaxNode {
25793        &self.syntax
25794    }
25795}
25796impl AstNode for Savepoint {
25797    #[inline]
25798    fn can_cast(kind: SyntaxKind) -> bool {
25799        kind == SyntaxKind::SAVEPOINT
25800    }
25801    #[inline]
25802    fn cast(syntax: SyntaxNode) -> Option<Self> {
25803        if Self::can_cast(syntax.kind()) {
25804            Some(Self { syntax })
25805        } else {
25806            None
25807        }
25808    }
25809    #[inline]
25810    fn syntax(&self) -> &SyntaxNode {
25811        &self.syntax
25812    }
25813}
25814impl AstNode for SchemaAuthorization {
25815    #[inline]
25816    fn can_cast(kind: SyntaxKind) -> bool {
25817        kind == SyntaxKind::SCHEMA_AUTHORIZATION
25818    }
25819    #[inline]
25820    fn cast(syntax: SyntaxNode) -> Option<Self> {
25821        if Self::can_cast(syntax.kind()) {
25822            Some(Self { syntax })
25823        } else {
25824            None
25825        }
25826    }
25827    #[inline]
25828    fn syntax(&self) -> &SyntaxNode {
25829        &self.syntax
25830    }
25831}
25832impl AstNode for SecurityFuncOption {
25833    #[inline]
25834    fn can_cast(kind: SyntaxKind) -> bool {
25835        kind == SyntaxKind::SECURITY_FUNC_OPTION
25836    }
25837    #[inline]
25838    fn cast(syntax: SyntaxNode) -> Option<Self> {
25839        if Self::can_cast(syntax.kind()) {
25840            Some(Self { syntax })
25841        } else {
25842            None
25843        }
25844    }
25845    #[inline]
25846    fn syntax(&self) -> &SyntaxNode {
25847        &self.syntax
25848    }
25849}
25850impl AstNode for SecurityLabel {
25851    #[inline]
25852    fn can_cast(kind: SyntaxKind) -> bool {
25853        kind == SyntaxKind::SECURITY_LABEL
25854    }
25855    #[inline]
25856    fn cast(syntax: SyntaxNode) -> Option<Self> {
25857        if Self::can_cast(syntax.kind()) {
25858            Some(Self { syntax })
25859        } else {
25860            None
25861        }
25862    }
25863    #[inline]
25864    fn syntax(&self) -> &SyntaxNode {
25865        &self.syntax
25866    }
25867}
25868impl AstNode for Select {
25869    #[inline]
25870    fn can_cast(kind: SyntaxKind) -> bool {
25871        kind == SyntaxKind::SELECT
25872    }
25873    #[inline]
25874    fn cast(syntax: SyntaxNode) -> Option<Self> {
25875        if Self::can_cast(syntax.kind()) {
25876            Some(Self { syntax })
25877        } else {
25878            None
25879        }
25880    }
25881    #[inline]
25882    fn syntax(&self) -> &SyntaxNode {
25883        &self.syntax
25884    }
25885}
25886impl AstNode for SelectClause {
25887    #[inline]
25888    fn can_cast(kind: SyntaxKind) -> bool {
25889        kind == SyntaxKind::SELECT_CLAUSE
25890    }
25891    #[inline]
25892    fn cast(syntax: SyntaxNode) -> Option<Self> {
25893        if Self::can_cast(syntax.kind()) {
25894            Some(Self { syntax })
25895        } else {
25896            None
25897        }
25898    }
25899    #[inline]
25900    fn syntax(&self) -> &SyntaxNode {
25901        &self.syntax
25902    }
25903}
25904impl AstNode for SelectInto {
25905    #[inline]
25906    fn can_cast(kind: SyntaxKind) -> bool {
25907        kind == SyntaxKind::SELECT_INTO
25908    }
25909    #[inline]
25910    fn cast(syntax: SyntaxNode) -> Option<Self> {
25911        if Self::can_cast(syntax.kind()) {
25912            Some(Self { syntax })
25913        } else {
25914            None
25915        }
25916    }
25917    #[inline]
25918    fn syntax(&self) -> &SyntaxNode {
25919        &self.syntax
25920    }
25921}
25922impl AstNode for SequenceOption {
25923    #[inline]
25924    fn can_cast(kind: SyntaxKind) -> bool {
25925        kind == SyntaxKind::SEQUENCE_OPTION
25926    }
25927    #[inline]
25928    fn cast(syntax: SyntaxNode) -> Option<Self> {
25929        if Self::can_cast(syntax.kind()) {
25930            Some(Self { syntax })
25931        } else {
25932            None
25933        }
25934    }
25935    #[inline]
25936    fn syntax(&self) -> &SyntaxNode {
25937        &self.syntax
25938    }
25939}
25940impl AstNode for SequenceOptionList {
25941    #[inline]
25942    fn can_cast(kind: SyntaxKind) -> bool {
25943        kind == SyntaxKind::SEQUENCE_OPTION_LIST
25944    }
25945    #[inline]
25946    fn cast(syntax: SyntaxNode) -> Option<Self> {
25947        if Self::can_cast(syntax.kind()) {
25948            Some(Self { syntax })
25949        } else {
25950            None
25951        }
25952    }
25953    #[inline]
25954    fn syntax(&self) -> &SyntaxNode {
25955        &self.syntax
25956    }
25957}
25958impl AstNode for Serializable {
25959    #[inline]
25960    fn can_cast(kind: SyntaxKind) -> bool {
25961        kind == SyntaxKind::SERIALIZABLE
25962    }
25963    #[inline]
25964    fn cast(syntax: SyntaxNode) -> Option<Self> {
25965        if Self::can_cast(syntax.kind()) {
25966            Some(Self { syntax })
25967        } else {
25968            None
25969        }
25970    }
25971    #[inline]
25972    fn syntax(&self) -> &SyntaxNode {
25973        &self.syntax
25974    }
25975}
25976impl AstNode for Set {
25977    #[inline]
25978    fn can_cast(kind: SyntaxKind) -> bool {
25979        kind == SyntaxKind::SET
25980    }
25981    #[inline]
25982    fn cast(syntax: SyntaxNode) -> Option<Self> {
25983        if Self::can_cast(syntax.kind()) {
25984            Some(Self { syntax })
25985        } else {
25986            None
25987        }
25988    }
25989    #[inline]
25990    fn syntax(&self) -> &SyntaxNode {
25991        &self.syntax
25992    }
25993}
25994impl AstNode for SetAccessMethod {
25995    #[inline]
25996    fn can_cast(kind: SyntaxKind) -> bool {
25997        kind == SyntaxKind::SET_ACCESS_METHOD
25998    }
25999    #[inline]
26000    fn cast(syntax: SyntaxNode) -> Option<Self> {
26001        if Self::can_cast(syntax.kind()) {
26002            Some(Self { syntax })
26003        } else {
26004            None
26005        }
26006    }
26007    #[inline]
26008    fn syntax(&self) -> &SyntaxNode {
26009        &self.syntax
26010    }
26011}
26012impl AstNode for SetClause {
26013    #[inline]
26014    fn can_cast(kind: SyntaxKind) -> bool {
26015        kind == SyntaxKind::SET_CLAUSE
26016    }
26017    #[inline]
26018    fn cast(syntax: SyntaxNode) -> Option<Self> {
26019        if Self::can_cast(syntax.kind()) {
26020            Some(Self { syntax })
26021        } else {
26022            None
26023        }
26024    }
26025    #[inline]
26026    fn syntax(&self) -> &SyntaxNode {
26027        &self.syntax
26028    }
26029}
26030impl AstNode for SetColumnList {
26031    #[inline]
26032    fn can_cast(kind: SyntaxKind) -> bool {
26033        kind == SyntaxKind::SET_COLUMN_LIST
26034    }
26035    #[inline]
26036    fn cast(syntax: SyntaxNode) -> Option<Self> {
26037        if Self::can_cast(syntax.kind()) {
26038            Some(Self { syntax })
26039        } else {
26040            None
26041        }
26042    }
26043    #[inline]
26044    fn syntax(&self) -> &SyntaxNode {
26045        &self.syntax
26046    }
26047}
26048impl AstNode for SetCompression {
26049    #[inline]
26050    fn can_cast(kind: SyntaxKind) -> bool {
26051        kind == SyntaxKind::SET_COMPRESSION
26052    }
26053    #[inline]
26054    fn cast(syntax: SyntaxNode) -> Option<Self> {
26055        if Self::can_cast(syntax.kind()) {
26056            Some(Self { syntax })
26057        } else {
26058            None
26059        }
26060    }
26061    #[inline]
26062    fn syntax(&self) -> &SyntaxNode {
26063        &self.syntax
26064    }
26065}
26066impl AstNode for SetConfigParam {
26067    #[inline]
26068    fn can_cast(kind: SyntaxKind) -> bool {
26069        kind == SyntaxKind::SET_CONFIG_PARAM
26070    }
26071    #[inline]
26072    fn cast(syntax: SyntaxNode) -> Option<Self> {
26073        if Self::can_cast(syntax.kind()) {
26074            Some(Self { syntax })
26075        } else {
26076            None
26077        }
26078    }
26079    #[inline]
26080    fn syntax(&self) -> &SyntaxNode {
26081        &self.syntax
26082    }
26083}
26084impl AstNode for SetConstraints {
26085    #[inline]
26086    fn can_cast(kind: SyntaxKind) -> bool {
26087        kind == SyntaxKind::SET_CONSTRAINTS
26088    }
26089    #[inline]
26090    fn cast(syntax: SyntaxNode) -> Option<Self> {
26091        if Self::can_cast(syntax.kind()) {
26092            Some(Self { syntax })
26093        } else {
26094            None
26095        }
26096    }
26097    #[inline]
26098    fn syntax(&self) -> &SyntaxNode {
26099        &self.syntax
26100    }
26101}
26102impl AstNode for SetDefault {
26103    #[inline]
26104    fn can_cast(kind: SyntaxKind) -> bool {
26105        kind == SyntaxKind::SET_DEFAULT
26106    }
26107    #[inline]
26108    fn cast(syntax: SyntaxNode) -> Option<Self> {
26109        if Self::can_cast(syntax.kind()) {
26110            Some(Self { syntax })
26111        } else {
26112            None
26113        }
26114    }
26115    #[inline]
26116    fn syntax(&self) -> &SyntaxNode {
26117        &self.syntax
26118    }
26119}
26120impl AstNode for SetDefaultColumns {
26121    #[inline]
26122    fn can_cast(kind: SyntaxKind) -> bool {
26123        kind == SyntaxKind::SET_DEFAULT_COLUMNS
26124    }
26125    #[inline]
26126    fn cast(syntax: SyntaxNode) -> Option<Self> {
26127        if Self::can_cast(syntax.kind()) {
26128            Some(Self { syntax })
26129        } else {
26130            None
26131        }
26132    }
26133    #[inline]
26134    fn syntax(&self) -> &SyntaxNode {
26135        &self.syntax
26136    }
26137}
26138impl AstNode for SetExpr {
26139    #[inline]
26140    fn can_cast(kind: SyntaxKind) -> bool {
26141        kind == SyntaxKind::SET_EXPR
26142    }
26143    #[inline]
26144    fn cast(syntax: SyntaxNode) -> Option<Self> {
26145        if Self::can_cast(syntax.kind()) {
26146            Some(Self { syntax })
26147        } else {
26148            None
26149        }
26150    }
26151    #[inline]
26152    fn syntax(&self) -> &SyntaxNode {
26153        &self.syntax
26154    }
26155}
26156impl AstNode for SetExprList {
26157    #[inline]
26158    fn can_cast(kind: SyntaxKind) -> bool {
26159        kind == SyntaxKind::SET_EXPR_LIST
26160    }
26161    #[inline]
26162    fn cast(syntax: SyntaxNode) -> Option<Self> {
26163        if Self::can_cast(syntax.kind()) {
26164            Some(Self { syntax })
26165        } else {
26166            None
26167        }
26168    }
26169    #[inline]
26170    fn syntax(&self) -> &SyntaxNode {
26171        &self.syntax
26172    }
26173}
26174impl AstNode for SetExpression {
26175    #[inline]
26176    fn can_cast(kind: SyntaxKind) -> bool {
26177        kind == SyntaxKind::SET_EXPRESSION
26178    }
26179    #[inline]
26180    fn cast(syntax: SyntaxNode) -> Option<Self> {
26181        if Self::can_cast(syntax.kind()) {
26182            Some(Self { syntax })
26183        } else {
26184            None
26185        }
26186    }
26187    #[inline]
26188    fn syntax(&self) -> &SyntaxNode {
26189        &self.syntax
26190    }
26191}
26192impl AstNode for SetFuncOption {
26193    #[inline]
26194    fn can_cast(kind: SyntaxKind) -> bool {
26195        kind == SyntaxKind::SET_FUNC_OPTION
26196    }
26197    #[inline]
26198    fn cast(syntax: SyntaxNode) -> Option<Self> {
26199        if Self::can_cast(syntax.kind()) {
26200            Some(Self { syntax })
26201        } else {
26202            None
26203        }
26204    }
26205    #[inline]
26206    fn syntax(&self) -> &SyntaxNode {
26207        &self.syntax
26208    }
26209}
26210impl AstNode for SetGenerated {
26211    #[inline]
26212    fn can_cast(kind: SyntaxKind) -> bool {
26213        kind == SyntaxKind::SET_GENERATED
26214    }
26215    #[inline]
26216    fn cast(syntax: SyntaxNode) -> Option<Self> {
26217        if Self::can_cast(syntax.kind()) {
26218            Some(Self { syntax })
26219        } else {
26220            None
26221        }
26222    }
26223    #[inline]
26224    fn syntax(&self) -> &SyntaxNode {
26225        &self.syntax
26226    }
26227}
26228impl AstNode for SetGeneratedOptions {
26229    #[inline]
26230    fn can_cast(kind: SyntaxKind) -> bool {
26231        kind == SyntaxKind::SET_GENERATED_OPTIONS
26232    }
26233    #[inline]
26234    fn cast(syntax: SyntaxNode) -> Option<Self> {
26235        if Self::can_cast(syntax.kind()) {
26236            Some(Self { syntax })
26237        } else {
26238            None
26239        }
26240    }
26241    #[inline]
26242    fn syntax(&self) -> &SyntaxNode {
26243        &self.syntax
26244    }
26245}
26246impl AstNode for SetLogged {
26247    #[inline]
26248    fn can_cast(kind: SyntaxKind) -> bool {
26249        kind == SyntaxKind::SET_LOGGED
26250    }
26251    #[inline]
26252    fn cast(syntax: SyntaxNode) -> Option<Self> {
26253        if Self::can_cast(syntax.kind()) {
26254            Some(Self { syntax })
26255        } else {
26256            None
26257        }
26258    }
26259    #[inline]
26260    fn syntax(&self) -> &SyntaxNode {
26261        &self.syntax
26262    }
26263}
26264impl AstNode for SetMultipleColumns {
26265    #[inline]
26266    fn can_cast(kind: SyntaxKind) -> bool {
26267        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
26268    }
26269    #[inline]
26270    fn cast(syntax: SyntaxNode) -> Option<Self> {
26271        if Self::can_cast(syntax.kind()) {
26272            Some(Self { syntax })
26273        } else {
26274            None
26275        }
26276    }
26277    #[inline]
26278    fn syntax(&self) -> &SyntaxNode {
26279        &self.syntax
26280    }
26281}
26282impl AstNode for SetNotNull {
26283    #[inline]
26284    fn can_cast(kind: SyntaxKind) -> bool {
26285        kind == SyntaxKind::SET_NOT_NULL
26286    }
26287    #[inline]
26288    fn cast(syntax: SyntaxNode) -> Option<Self> {
26289        if Self::can_cast(syntax.kind()) {
26290            Some(Self { syntax })
26291        } else {
26292            None
26293        }
26294    }
26295    #[inline]
26296    fn syntax(&self) -> &SyntaxNode {
26297        &self.syntax
26298    }
26299}
26300impl AstNode for SetNullColumns {
26301    #[inline]
26302    fn can_cast(kind: SyntaxKind) -> bool {
26303        kind == SyntaxKind::SET_NULL_COLUMNS
26304    }
26305    #[inline]
26306    fn cast(syntax: SyntaxNode) -> Option<Self> {
26307        if Self::can_cast(syntax.kind()) {
26308            Some(Self { syntax })
26309        } else {
26310            None
26311        }
26312    }
26313    #[inline]
26314    fn syntax(&self) -> &SyntaxNode {
26315        &self.syntax
26316    }
26317}
26318impl AstNode for SetOptions {
26319    #[inline]
26320    fn can_cast(kind: SyntaxKind) -> bool {
26321        kind == SyntaxKind::SET_OPTIONS
26322    }
26323    #[inline]
26324    fn cast(syntax: SyntaxNode) -> Option<Self> {
26325        if Self::can_cast(syntax.kind()) {
26326            Some(Self { syntax })
26327        } else {
26328            None
26329        }
26330    }
26331    #[inline]
26332    fn syntax(&self) -> &SyntaxNode {
26333        &self.syntax
26334    }
26335}
26336impl AstNode for SetOptionsList {
26337    #[inline]
26338    fn can_cast(kind: SyntaxKind) -> bool {
26339        kind == SyntaxKind::SET_OPTIONS_LIST
26340    }
26341    #[inline]
26342    fn cast(syntax: SyntaxNode) -> Option<Self> {
26343        if Self::can_cast(syntax.kind()) {
26344            Some(Self { syntax })
26345        } else {
26346            None
26347        }
26348    }
26349    #[inline]
26350    fn syntax(&self) -> &SyntaxNode {
26351        &self.syntax
26352    }
26353}
26354impl AstNode for SetRole {
26355    #[inline]
26356    fn can_cast(kind: SyntaxKind) -> bool {
26357        kind == SyntaxKind::SET_ROLE
26358    }
26359    #[inline]
26360    fn cast(syntax: SyntaxNode) -> Option<Self> {
26361        if Self::can_cast(syntax.kind()) {
26362            Some(Self { syntax })
26363        } else {
26364            None
26365        }
26366    }
26367    #[inline]
26368    fn syntax(&self) -> &SyntaxNode {
26369        &self.syntax
26370    }
26371}
26372impl AstNode for SetSchema {
26373    #[inline]
26374    fn can_cast(kind: SyntaxKind) -> bool {
26375        kind == SyntaxKind::SET_SCHEMA
26376    }
26377    #[inline]
26378    fn cast(syntax: SyntaxNode) -> Option<Self> {
26379        if Self::can_cast(syntax.kind()) {
26380            Some(Self { syntax })
26381        } else {
26382            None
26383        }
26384    }
26385    #[inline]
26386    fn syntax(&self) -> &SyntaxNode {
26387        &self.syntax
26388    }
26389}
26390impl AstNode for SetSequenceOption {
26391    #[inline]
26392    fn can_cast(kind: SyntaxKind) -> bool {
26393        kind == SyntaxKind::SET_SEQUENCE_OPTION
26394    }
26395    #[inline]
26396    fn cast(syntax: SyntaxNode) -> Option<Self> {
26397        if Self::can_cast(syntax.kind()) {
26398            Some(Self { syntax })
26399        } else {
26400            None
26401        }
26402    }
26403    #[inline]
26404    fn syntax(&self) -> &SyntaxNode {
26405        &self.syntax
26406    }
26407}
26408impl AstNode for SetSessionAuth {
26409    #[inline]
26410    fn can_cast(kind: SyntaxKind) -> bool {
26411        kind == SyntaxKind::SET_SESSION_AUTH
26412    }
26413    #[inline]
26414    fn cast(syntax: SyntaxNode) -> Option<Self> {
26415        if Self::can_cast(syntax.kind()) {
26416            Some(Self { syntax })
26417        } else {
26418            None
26419        }
26420    }
26421    #[inline]
26422    fn syntax(&self) -> &SyntaxNode {
26423        &self.syntax
26424    }
26425}
26426impl AstNode for SetSingleColumn {
26427    #[inline]
26428    fn can_cast(kind: SyntaxKind) -> bool {
26429        kind == SyntaxKind::SET_SINGLE_COLUMN
26430    }
26431    #[inline]
26432    fn cast(syntax: SyntaxNode) -> Option<Self> {
26433        if Self::can_cast(syntax.kind()) {
26434            Some(Self { syntax })
26435        } else {
26436            None
26437        }
26438    }
26439    #[inline]
26440    fn syntax(&self) -> &SyntaxNode {
26441        &self.syntax
26442    }
26443}
26444impl AstNode for SetStatistics {
26445    #[inline]
26446    fn can_cast(kind: SyntaxKind) -> bool {
26447        kind == SyntaxKind::SET_STATISTICS
26448    }
26449    #[inline]
26450    fn cast(syntax: SyntaxNode) -> Option<Self> {
26451        if Self::can_cast(syntax.kind()) {
26452            Some(Self { syntax })
26453        } else {
26454            None
26455        }
26456    }
26457    #[inline]
26458    fn syntax(&self) -> &SyntaxNode {
26459        &self.syntax
26460    }
26461}
26462impl AstNode for SetStorage {
26463    #[inline]
26464    fn can_cast(kind: SyntaxKind) -> bool {
26465        kind == SyntaxKind::SET_STORAGE
26466    }
26467    #[inline]
26468    fn cast(syntax: SyntaxNode) -> Option<Self> {
26469        if Self::can_cast(syntax.kind()) {
26470            Some(Self { syntax })
26471        } else {
26472            None
26473        }
26474    }
26475    #[inline]
26476    fn syntax(&self) -> &SyntaxNode {
26477        &self.syntax
26478    }
26479}
26480impl AstNode for SetTablespace {
26481    #[inline]
26482    fn can_cast(kind: SyntaxKind) -> bool {
26483        kind == SyntaxKind::SET_TABLESPACE
26484    }
26485    #[inline]
26486    fn cast(syntax: SyntaxNode) -> Option<Self> {
26487        if Self::can_cast(syntax.kind()) {
26488            Some(Self { syntax })
26489        } else {
26490            None
26491        }
26492    }
26493    #[inline]
26494    fn syntax(&self) -> &SyntaxNode {
26495        &self.syntax
26496    }
26497}
26498impl AstNode for SetTransaction {
26499    #[inline]
26500    fn can_cast(kind: SyntaxKind) -> bool {
26501        kind == SyntaxKind::SET_TRANSACTION
26502    }
26503    #[inline]
26504    fn cast(syntax: SyntaxNode) -> Option<Self> {
26505        if Self::can_cast(syntax.kind()) {
26506            Some(Self { syntax })
26507        } else {
26508            None
26509        }
26510    }
26511    #[inline]
26512    fn syntax(&self) -> &SyntaxNode {
26513        &self.syntax
26514    }
26515}
26516impl AstNode for SetType {
26517    #[inline]
26518    fn can_cast(kind: SyntaxKind) -> bool {
26519        kind == SyntaxKind::SET_TYPE
26520    }
26521    #[inline]
26522    fn cast(syntax: SyntaxNode) -> Option<Self> {
26523        if Self::can_cast(syntax.kind()) {
26524            Some(Self { syntax })
26525        } else {
26526            None
26527        }
26528    }
26529    #[inline]
26530    fn syntax(&self) -> &SyntaxNode {
26531        &self.syntax
26532    }
26533}
26534impl AstNode for SetUnlogged {
26535    #[inline]
26536    fn can_cast(kind: SyntaxKind) -> bool {
26537        kind == SyntaxKind::SET_UNLOGGED
26538    }
26539    #[inline]
26540    fn cast(syntax: SyntaxNode) -> Option<Self> {
26541        if Self::can_cast(syntax.kind()) {
26542            Some(Self { syntax })
26543        } else {
26544            None
26545        }
26546    }
26547    #[inline]
26548    fn syntax(&self) -> &SyntaxNode {
26549        &self.syntax
26550    }
26551}
26552impl AstNode for SetWithoutCluster {
26553    #[inline]
26554    fn can_cast(kind: SyntaxKind) -> bool {
26555        kind == SyntaxKind::SET_WITHOUT_CLUSTER
26556    }
26557    #[inline]
26558    fn cast(syntax: SyntaxNode) -> Option<Self> {
26559        if Self::can_cast(syntax.kind()) {
26560            Some(Self { syntax })
26561        } else {
26562            None
26563        }
26564    }
26565    #[inline]
26566    fn syntax(&self) -> &SyntaxNode {
26567        &self.syntax
26568    }
26569}
26570impl AstNode for SetWithoutOids {
26571    #[inline]
26572    fn can_cast(kind: SyntaxKind) -> bool {
26573        kind == SyntaxKind::SET_WITHOUT_OIDS
26574    }
26575    #[inline]
26576    fn cast(syntax: SyntaxNode) -> Option<Self> {
26577        if Self::can_cast(syntax.kind()) {
26578            Some(Self { syntax })
26579        } else {
26580            None
26581        }
26582    }
26583    #[inline]
26584    fn syntax(&self) -> &SyntaxNode {
26585        &self.syntax
26586    }
26587}
26588impl AstNode for Show {
26589    #[inline]
26590    fn can_cast(kind: SyntaxKind) -> bool {
26591        kind == SyntaxKind::SHOW
26592    }
26593    #[inline]
26594    fn cast(syntax: SyntaxNode) -> Option<Self> {
26595        if Self::can_cast(syntax.kind()) {
26596            Some(Self { syntax })
26597        } else {
26598            None
26599        }
26600    }
26601    #[inline]
26602    fn syntax(&self) -> &SyntaxNode {
26603        &self.syntax
26604    }
26605}
26606impl AstNode for SimilarTo {
26607    #[inline]
26608    fn can_cast(kind: SyntaxKind) -> bool {
26609        kind == SyntaxKind::SIMILAR_TO
26610    }
26611    #[inline]
26612    fn cast(syntax: SyntaxNode) -> Option<Self> {
26613        if Self::can_cast(syntax.kind()) {
26614            Some(Self { syntax })
26615        } else {
26616            None
26617        }
26618    }
26619    #[inline]
26620    fn syntax(&self) -> &SyntaxNode {
26621        &self.syntax
26622    }
26623}
26624impl AstNode for SliceExpr {
26625    #[inline]
26626    fn can_cast(kind: SyntaxKind) -> bool {
26627        kind == SyntaxKind::SLICE_EXPR
26628    }
26629    #[inline]
26630    fn cast(syntax: SyntaxNode) -> Option<Self> {
26631        if Self::can_cast(syntax.kind()) {
26632            Some(Self { syntax })
26633        } else {
26634            None
26635        }
26636    }
26637    #[inline]
26638    fn syntax(&self) -> &SyntaxNode {
26639        &self.syntax
26640    }
26641}
26642impl AstNode for SomeFn {
26643    #[inline]
26644    fn can_cast(kind: SyntaxKind) -> bool {
26645        kind == SyntaxKind::SOME_FN
26646    }
26647    #[inline]
26648    fn cast(syntax: SyntaxNode) -> Option<Self> {
26649        if Self::can_cast(syntax.kind()) {
26650            Some(Self { syntax })
26651        } else {
26652            None
26653        }
26654    }
26655    #[inline]
26656    fn syntax(&self) -> &SyntaxNode {
26657        &self.syntax
26658    }
26659}
26660impl AstNode for SortAsc {
26661    #[inline]
26662    fn can_cast(kind: SyntaxKind) -> bool {
26663        kind == SyntaxKind::SORT_ASC
26664    }
26665    #[inline]
26666    fn cast(syntax: SyntaxNode) -> Option<Self> {
26667        if Self::can_cast(syntax.kind()) {
26668            Some(Self { syntax })
26669        } else {
26670            None
26671        }
26672    }
26673    #[inline]
26674    fn syntax(&self) -> &SyntaxNode {
26675        &self.syntax
26676    }
26677}
26678impl AstNode for SortBy {
26679    #[inline]
26680    fn can_cast(kind: SyntaxKind) -> bool {
26681        kind == SyntaxKind::SORT_BY
26682    }
26683    #[inline]
26684    fn cast(syntax: SyntaxNode) -> Option<Self> {
26685        if Self::can_cast(syntax.kind()) {
26686            Some(Self { syntax })
26687        } else {
26688            None
26689        }
26690    }
26691    #[inline]
26692    fn syntax(&self) -> &SyntaxNode {
26693        &self.syntax
26694    }
26695}
26696impl AstNode for SortByList {
26697    #[inline]
26698    fn can_cast(kind: SyntaxKind) -> bool {
26699        kind == SyntaxKind::SORT_BY_LIST
26700    }
26701    #[inline]
26702    fn cast(syntax: SyntaxNode) -> Option<Self> {
26703        if Self::can_cast(syntax.kind()) {
26704            Some(Self { syntax })
26705        } else {
26706            None
26707        }
26708    }
26709    #[inline]
26710    fn syntax(&self) -> &SyntaxNode {
26711        &self.syntax
26712    }
26713}
26714impl AstNode for SortDesc {
26715    #[inline]
26716    fn can_cast(kind: SyntaxKind) -> bool {
26717        kind == SyntaxKind::SORT_DESC
26718    }
26719    #[inline]
26720    fn cast(syntax: SyntaxNode) -> Option<Self> {
26721        if Self::can_cast(syntax.kind()) {
26722            Some(Self { syntax })
26723        } else {
26724            None
26725        }
26726    }
26727    #[inline]
26728    fn syntax(&self) -> &SyntaxNode {
26729        &self.syntax
26730    }
26731}
26732impl AstNode for SortUsing {
26733    #[inline]
26734    fn can_cast(kind: SyntaxKind) -> bool {
26735        kind == SyntaxKind::SORT_USING
26736    }
26737    #[inline]
26738    fn cast(syntax: SyntaxNode) -> Option<Self> {
26739        if Self::can_cast(syntax.kind()) {
26740            Some(Self { syntax })
26741        } else {
26742            None
26743        }
26744    }
26745    #[inline]
26746    fn syntax(&self) -> &SyntaxNode {
26747        &self.syntax
26748    }
26749}
26750impl AstNode for SourceFile {
26751    #[inline]
26752    fn can_cast(kind: SyntaxKind) -> bool {
26753        kind == SyntaxKind::SOURCE_FILE
26754    }
26755    #[inline]
26756    fn cast(syntax: SyntaxNode) -> Option<Self> {
26757        if Self::can_cast(syntax.kind()) {
26758            Some(Self { syntax })
26759        } else {
26760            None
26761        }
26762    }
26763    #[inline]
26764    fn syntax(&self) -> &SyntaxNode {
26765        &self.syntax
26766    }
26767}
26768impl AstNode for Storage {
26769    #[inline]
26770    fn can_cast(kind: SyntaxKind) -> bool {
26771        kind == SyntaxKind::STORAGE
26772    }
26773    #[inline]
26774    fn cast(syntax: SyntaxNode) -> Option<Self> {
26775        if Self::can_cast(syntax.kind()) {
26776            Some(Self { syntax })
26777        } else {
26778            None
26779        }
26780    }
26781    #[inline]
26782    fn syntax(&self) -> &SyntaxNode {
26783        &self.syntax
26784    }
26785}
26786impl AstNode for StrictFuncOption {
26787    #[inline]
26788    fn can_cast(kind: SyntaxKind) -> bool {
26789        kind == SyntaxKind::STRICT_FUNC_OPTION
26790    }
26791    #[inline]
26792    fn cast(syntax: SyntaxNode) -> Option<Self> {
26793        if Self::can_cast(syntax.kind()) {
26794            Some(Self { syntax })
26795        } else {
26796            None
26797        }
26798    }
26799    #[inline]
26800    fn syntax(&self) -> &SyntaxNode {
26801        &self.syntax
26802    }
26803}
26804impl AstNode for SubstringFn {
26805    #[inline]
26806    fn can_cast(kind: SyntaxKind) -> bool {
26807        kind == SyntaxKind::SUBSTRING_FN
26808    }
26809    #[inline]
26810    fn cast(syntax: SyntaxNode) -> Option<Self> {
26811        if Self::can_cast(syntax.kind()) {
26812            Some(Self { syntax })
26813        } else {
26814            None
26815        }
26816    }
26817    #[inline]
26818    fn syntax(&self) -> &SyntaxNode {
26819        &self.syntax
26820    }
26821}
26822impl AstNode for SupportFuncOption {
26823    #[inline]
26824    fn can_cast(kind: SyntaxKind) -> bool {
26825        kind == SyntaxKind::SUPPORT_FUNC_OPTION
26826    }
26827    #[inline]
26828    fn cast(syntax: SyntaxNode) -> Option<Self> {
26829        if Self::can_cast(syntax.kind()) {
26830            Some(Self { syntax })
26831        } else {
26832            None
26833        }
26834    }
26835    #[inline]
26836    fn syntax(&self) -> &SyntaxNode {
26837        &self.syntax
26838    }
26839}
26840impl AstNode for Table {
26841    #[inline]
26842    fn can_cast(kind: SyntaxKind) -> bool {
26843        kind == SyntaxKind::TABLE
26844    }
26845    #[inline]
26846    fn cast(syntax: SyntaxNode) -> Option<Self> {
26847        if Self::can_cast(syntax.kind()) {
26848            Some(Self { syntax })
26849        } else {
26850            None
26851        }
26852    }
26853    #[inline]
26854    fn syntax(&self) -> &SyntaxNode {
26855        &self.syntax
26856    }
26857}
26858impl AstNode for TableAndColumns {
26859    #[inline]
26860    fn can_cast(kind: SyntaxKind) -> bool {
26861        kind == SyntaxKind::TABLE_AND_COLUMNS
26862    }
26863    #[inline]
26864    fn cast(syntax: SyntaxNode) -> Option<Self> {
26865        if Self::can_cast(syntax.kind()) {
26866            Some(Self { syntax })
26867        } else {
26868            None
26869        }
26870    }
26871    #[inline]
26872    fn syntax(&self) -> &SyntaxNode {
26873        &self.syntax
26874    }
26875}
26876impl AstNode for TableAndColumnsList {
26877    #[inline]
26878    fn can_cast(kind: SyntaxKind) -> bool {
26879        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
26880    }
26881    #[inline]
26882    fn cast(syntax: SyntaxNode) -> Option<Self> {
26883        if Self::can_cast(syntax.kind()) {
26884            Some(Self { syntax })
26885        } else {
26886            None
26887        }
26888    }
26889    #[inline]
26890    fn syntax(&self) -> &SyntaxNode {
26891        &self.syntax
26892    }
26893}
26894impl AstNode for TableArgList {
26895    #[inline]
26896    fn can_cast(kind: SyntaxKind) -> bool {
26897        kind == SyntaxKind::TABLE_ARG_LIST
26898    }
26899    #[inline]
26900    fn cast(syntax: SyntaxNode) -> Option<Self> {
26901        if Self::can_cast(syntax.kind()) {
26902            Some(Self { syntax })
26903        } else {
26904            None
26905        }
26906    }
26907    #[inline]
26908    fn syntax(&self) -> &SyntaxNode {
26909        &self.syntax
26910    }
26911}
26912impl AstNode for TableList {
26913    #[inline]
26914    fn can_cast(kind: SyntaxKind) -> bool {
26915        kind == SyntaxKind::TABLE_LIST
26916    }
26917    #[inline]
26918    fn cast(syntax: SyntaxNode) -> Option<Self> {
26919        if Self::can_cast(syntax.kind()) {
26920            Some(Self { syntax })
26921        } else {
26922            None
26923        }
26924    }
26925    #[inline]
26926    fn syntax(&self) -> &SyntaxNode {
26927        &self.syntax
26928    }
26929}
26930impl AstNode for TablesampleClause {
26931    #[inline]
26932    fn can_cast(kind: SyntaxKind) -> bool {
26933        kind == SyntaxKind::TABLESAMPLE_CLAUSE
26934    }
26935    #[inline]
26936    fn cast(syntax: SyntaxNode) -> Option<Self> {
26937        if Self::can_cast(syntax.kind()) {
26938            Some(Self { syntax })
26939        } else {
26940            None
26941        }
26942    }
26943    #[inline]
26944    fn syntax(&self) -> &SyntaxNode {
26945        &self.syntax
26946    }
26947}
26948impl AstNode for Tablespace {
26949    #[inline]
26950    fn can_cast(kind: SyntaxKind) -> bool {
26951        kind == SyntaxKind::TABLESPACE
26952    }
26953    #[inline]
26954    fn cast(syntax: SyntaxNode) -> Option<Self> {
26955        if Self::can_cast(syntax.kind()) {
26956            Some(Self { syntax })
26957        } else {
26958            None
26959        }
26960    }
26961    #[inline]
26962    fn syntax(&self) -> &SyntaxNode {
26963        &self.syntax
26964    }
26965}
26966impl AstNode for Target {
26967    #[inline]
26968    fn can_cast(kind: SyntaxKind) -> bool {
26969        kind == SyntaxKind::TARGET
26970    }
26971    #[inline]
26972    fn cast(syntax: SyntaxNode) -> Option<Self> {
26973        if Self::can_cast(syntax.kind()) {
26974            Some(Self { syntax })
26975        } else {
26976            None
26977        }
26978    }
26979    #[inline]
26980    fn syntax(&self) -> &SyntaxNode {
26981        &self.syntax
26982    }
26983}
26984impl AstNode for TargetList {
26985    #[inline]
26986    fn can_cast(kind: SyntaxKind) -> bool {
26987        kind == SyntaxKind::TARGET_LIST
26988    }
26989    #[inline]
26990    fn cast(syntax: SyntaxNode) -> Option<Self> {
26991        if Self::can_cast(syntax.kind()) {
26992            Some(Self { syntax })
26993        } else {
26994            None
26995        }
26996    }
26997    #[inline]
26998    fn syntax(&self) -> &SyntaxNode {
26999        &self.syntax
27000    }
27001}
27002impl AstNode for TimeType {
27003    #[inline]
27004    fn can_cast(kind: SyntaxKind) -> bool {
27005        kind == SyntaxKind::TIME_TYPE
27006    }
27007    #[inline]
27008    fn cast(syntax: SyntaxNode) -> Option<Self> {
27009        if Self::can_cast(syntax.kind()) {
27010            Some(Self { syntax })
27011        } else {
27012            None
27013        }
27014    }
27015    #[inline]
27016    fn syntax(&self) -> &SyntaxNode {
27017        &self.syntax
27018    }
27019}
27020impl AstNode for Timing {
27021    #[inline]
27022    fn can_cast(kind: SyntaxKind) -> bool {
27023        kind == SyntaxKind::TIMING
27024    }
27025    #[inline]
27026    fn cast(syntax: SyntaxNode) -> Option<Self> {
27027        if Self::can_cast(syntax.kind()) {
27028            Some(Self { syntax })
27029        } else {
27030            None
27031        }
27032    }
27033    #[inline]
27034    fn syntax(&self) -> &SyntaxNode {
27035        &self.syntax
27036    }
27037}
27038impl AstNode for TransactionModeList {
27039    #[inline]
27040    fn can_cast(kind: SyntaxKind) -> bool {
27041        kind == SyntaxKind::TRANSACTION_MODE_LIST
27042    }
27043    #[inline]
27044    fn cast(syntax: SyntaxNode) -> Option<Self> {
27045        if Self::can_cast(syntax.kind()) {
27046            Some(Self { syntax })
27047        } else {
27048            None
27049        }
27050    }
27051    #[inline]
27052    fn syntax(&self) -> &SyntaxNode {
27053        &self.syntax
27054    }
27055}
27056impl AstNode for TransformFromFunc {
27057    #[inline]
27058    fn can_cast(kind: SyntaxKind) -> bool {
27059        kind == SyntaxKind::TRANSFORM_FROM_FUNC
27060    }
27061    #[inline]
27062    fn cast(syntax: SyntaxNode) -> Option<Self> {
27063        if Self::can_cast(syntax.kind()) {
27064            Some(Self { syntax })
27065        } else {
27066            None
27067        }
27068    }
27069    #[inline]
27070    fn syntax(&self) -> &SyntaxNode {
27071        &self.syntax
27072    }
27073}
27074impl AstNode for TransformFuncOption {
27075    #[inline]
27076    fn can_cast(kind: SyntaxKind) -> bool {
27077        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
27078    }
27079    #[inline]
27080    fn cast(syntax: SyntaxNode) -> Option<Self> {
27081        if Self::can_cast(syntax.kind()) {
27082            Some(Self { syntax })
27083        } else {
27084            None
27085        }
27086    }
27087    #[inline]
27088    fn syntax(&self) -> &SyntaxNode {
27089        &self.syntax
27090    }
27091}
27092impl AstNode for TransformToFunc {
27093    #[inline]
27094    fn can_cast(kind: SyntaxKind) -> bool {
27095        kind == SyntaxKind::TRANSFORM_TO_FUNC
27096    }
27097    #[inline]
27098    fn cast(syntax: SyntaxNode) -> Option<Self> {
27099        if Self::can_cast(syntax.kind()) {
27100            Some(Self { syntax })
27101        } else {
27102            None
27103        }
27104    }
27105    #[inline]
27106    fn syntax(&self) -> &SyntaxNode {
27107        &self.syntax
27108    }
27109}
27110impl AstNode for TriggerEvent {
27111    #[inline]
27112    fn can_cast(kind: SyntaxKind) -> bool {
27113        kind == SyntaxKind::TRIGGER_EVENT
27114    }
27115    #[inline]
27116    fn cast(syntax: SyntaxNode) -> Option<Self> {
27117        if Self::can_cast(syntax.kind()) {
27118            Some(Self { syntax })
27119        } else {
27120            None
27121        }
27122    }
27123    #[inline]
27124    fn syntax(&self) -> &SyntaxNode {
27125        &self.syntax
27126    }
27127}
27128impl AstNode for TriggerEventList {
27129    #[inline]
27130    fn can_cast(kind: SyntaxKind) -> bool {
27131        kind == SyntaxKind::TRIGGER_EVENT_LIST
27132    }
27133    #[inline]
27134    fn cast(syntax: SyntaxNode) -> Option<Self> {
27135        if Self::can_cast(syntax.kind()) {
27136            Some(Self { syntax })
27137        } else {
27138            None
27139        }
27140    }
27141    #[inline]
27142    fn syntax(&self) -> &SyntaxNode {
27143        &self.syntax
27144    }
27145}
27146impl AstNode for TriggerEventUpdate {
27147    #[inline]
27148    fn can_cast(kind: SyntaxKind) -> bool {
27149        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
27150    }
27151    #[inline]
27152    fn cast(syntax: SyntaxNode) -> Option<Self> {
27153        if Self::can_cast(syntax.kind()) {
27154            Some(Self { syntax })
27155        } else {
27156            None
27157        }
27158    }
27159    #[inline]
27160    fn syntax(&self) -> &SyntaxNode {
27161        &self.syntax
27162    }
27163}
27164impl AstNode for TrimFn {
27165    #[inline]
27166    fn can_cast(kind: SyntaxKind) -> bool {
27167        kind == SyntaxKind::TRIM_FN
27168    }
27169    #[inline]
27170    fn cast(syntax: SyntaxNode) -> Option<Self> {
27171        if Self::can_cast(syntax.kind()) {
27172            Some(Self { syntax })
27173        } else {
27174            None
27175        }
27176    }
27177    #[inline]
27178    fn syntax(&self) -> &SyntaxNode {
27179        &self.syntax
27180    }
27181}
27182impl AstNode for Truncate {
27183    #[inline]
27184    fn can_cast(kind: SyntaxKind) -> bool {
27185        kind == SyntaxKind::TRUNCATE
27186    }
27187    #[inline]
27188    fn cast(syntax: SyntaxNode) -> Option<Self> {
27189        if Self::can_cast(syntax.kind()) {
27190            Some(Self { syntax })
27191        } else {
27192            None
27193        }
27194    }
27195    #[inline]
27196    fn syntax(&self) -> &SyntaxNode {
27197        &self.syntax
27198    }
27199}
27200impl AstNode for TupleExpr {
27201    #[inline]
27202    fn can_cast(kind: SyntaxKind) -> bool {
27203        kind == SyntaxKind::TUPLE_EXPR
27204    }
27205    #[inline]
27206    fn cast(syntax: SyntaxNode) -> Option<Self> {
27207        if Self::can_cast(syntax.kind()) {
27208            Some(Self { syntax })
27209        } else {
27210            None
27211        }
27212    }
27213    #[inline]
27214    fn syntax(&self) -> &SyntaxNode {
27215        &self.syntax
27216    }
27217}
27218impl AstNode for UnicodeNormalForm {
27219    #[inline]
27220    fn can_cast(kind: SyntaxKind) -> bool {
27221        kind == SyntaxKind::UNICODE_NORMAL_FORM
27222    }
27223    #[inline]
27224    fn cast(syntax: SyntaxNode) -> Option<Self> {
27225        if Self::can_cast(syntax.kind()) {
27226            Some(Self { syntax })
27227        } else {
27228            None
27229        }
27230    }
27231    #[inline]
27232    fn syntax(&self) -> &SyntaxNode {
27233        &self.syntax
27234    }
27235}
27236impl AstNode for UniqueConstraint {
27237    #[inline]
27238    fn can_cast(kind: SyntaxKind) -> bool {
27239        kind == SyntaxKind::UNIQUE_CONSTRAINT
27240    }
27241    #[inline]
27242    fn cast(syntax: SyntaxNode) -> Option<Self> {
27243        if Self::can_cast(syntax.kind()) {
27244            Some(Self { syntax })
27245        } else {
27246            None
27247        }
27248    }
27249    #[inline]
27250    fn syntax(&self) -> &SyntaxNode {
27251        &self.syntax
27252    }
27253}
27254impl AstNode for Unlisten {
27255    #[inline]
27256    fn can_cast(kind: SyntaxKind) -> bool {
27257        kind == SyntaxKind::UNLISTEN
27258    }
27259    #[inline]
27260    fn cast(syntax: SyntaxNode) -> Option<Self> {
27261        if Self::can_cast(syntax.kind()) {
27262            Some(Self { syntax })
27263        } else {
27264            None
27265        }
27266    }
27267    #[inline]
27268    fn syntax(&self) -> &SyntaxNode {
27269        &self.syntax
27270    }
27271}
27272impl AstNode for Update {
27273    #[inline]
27274    fn can_cast(kind: SyntaxKind) -> bool {
27275        kind == SyntaxKind::UPDATE
27276    }
27277    #[inline]
27278    fn cast(syntax: SyntaxNode) -> Option<Self> {
27279        if Self::can_cast(syntax.kind()) {
27280            Some(Self { syntax })
27281        } else {
27282            None
27283        }
27284    }
27285    #[inline]
27286    fn syntax(&self) -> &SyntaxNode {
27287        &self.syntax
27288    }
27289}
27290impl AstNode for UsingClause {
27291    #[inline]
27292    fn can_cast(kind: SyntaxKind) -> bool {
27293        kind == SyntaxKind::USING_CLAUSE
27294    }
27295    #[inline]
27296    fn cast(syntax: SyntaxNode) -> Option<Self> {
27297        if Self::can_cast(syntax.kind()) {
27298            Some(Self { syntax })
27299        } else {
27300            None
27301        }
27302    }
27303    #[inline]
27304    fn syntax(&self) -> &SyntaxNode {
27305        &self.syntax
27306    }
27307}
27308impl AstNode for UsingIndex {
27309    #[inline]
27310    fn can_cast(kind: SyntaxKind) -> bool {
27311        kind == SyntaxKind::USING_INDEX
27312    }
27313    #[inline]
27314    fn cast(syntax: SyntaxNode) -> Option<Self> {
27315        if Self::can_cast(syntax.kind()) {
27316            Some(Self { syntax })
27317        } else {
27318            None
27319        }
27320    }
27321    #[inline]
27322    fn syntax(&self) -> &SyntaxNode {
27323        &self.syntax
27324    }
27325}
27326impl AstNode for UsingMethod {
27327    #[inline]
27328    fn can_cast(kind: SyntaxKind) -> bool {
27329        kind == SyntaxKind::USING_METHOD
27330    }
27331    #[inline]
27332    fn cast(syntax: SyntaxNode) -> Option<Self> {
27333        if Self::can_cast(syntax.kind()) {
27334            Some(Self { syntax })
27335        } else {
27336            None
27337        }
27338    }
27339    #[inline]
27340    fn syntax(&self) -> &SyntaxNode {
27341        &self.syntax
27342    }
27343}
27344impl AstNode for UsingOnClause {
27345    #[inline]
27346    fn can_cast(kind: SyntaxKind) -> bool {
27347        kind == SyntaxKind::USING_ON_CLAUSE
27348    }
27349    #[inline]
27350    fn cast(syntax: SyntaxNode) -> Option<Self> {
27351        if Self::can_cast(syntax.kind()) {
27352            Some(Self { syntax })
27353        } else {
27354            None
27355        }
27356    }
27357    #[inline]
27358    fn syntax(&self) -> &SyntaxNode {
27359        &self.syntax
27360    }
27361}
27362impl AstNode for Vacuum {
27363    #[inline]
27364    fn can_cast(kind: SyntaxKind) -> bool {
27365        kind == SyntaxKind::VACUUM
27366    }
27367    #[inline]
27368    fn cast(syntax: SyntaxNode) -> Option<Self> {
27369        if Self::can_cast(syntax.kind()) {
27370            Some(Self { syntax })
27371        } else {
27372            None
27373        }
27374    }
27375    #[inline]
27376    fn syntax(&self) -> &SyntaxNode {
27377        &self.syntax
27378    }
27379}
27380impl AstNode for VacuumOption {
27381    #[inline]
27382    fn can_cast(kind: SyntaxKind) -> bool {
27383        kind == SyntaxKind::VACUUM_OPTION
27384    }
27385    #[inline]
27386    fn cast(syntax: SyntaxNode) -> Option<Self> {
27387        if Self::can_cast(syntax.kind()) {
27388            Some(Self { syntax })
27389        } else {
27390            None
27391        }
27392    }
27393    #[inline]
27394    fn syntax(&self) -> &SyntaxNode {
27395        &self.syntax
27396    }
27397}
27398impl AstNode for VacuumOptionList {
27399    #[inline]
27400    fn can_cast(kind: SyntaxKind) -> bool {
27401        kind == SyntaxKind::VACUUM_OPTION_LIST
27402    }
27403    #[inline]
27404    fn cast(syntax: SyntaxNode) -> Option<Self> {
27405        if Self::can_cast(syntax.kind()) {
27406            Some(Self { syntax })
27407        } else {
27408            None
27409        }
27410    }
27411    #[inline]
27412    fn syntax(&self) -> &SyntaxNode {
27413        &self.syntax
27414    }
27415}
27416impl AstNode for ValidateConstraint {
27417    #[inline]
27418    fn can_cast(kind: SyntaxKind) -> bool {
27419        kind == SyntaxKind::VALIDATE_CONSTRAINT
27420    }
27421    #[inline]
27422    fn cast(syntax: SyntaxNode) -> Option<Self> {
27423        if Self::can_cast(syntax.kind()) {
27424            Some(Self { syntax })
27425        } else {
27426            None
27427        }
27428    }
27429    #[inline]
27430    fn syntax(&self) -> &SyntaxNode {
27431        &self.syntax
27432    }
27433}
27434impl AstNode for Values {
27435    #[inline]
27436    fn can_cast(kind: SyntaxKind) -> bool {
27437        kind == SyntaxKind::VALUES
27438    }
27439    #[inline]
27440    fn cast(syntax: SyntaxNode) -> Option<Self> {
27441        if Self::can_cast(syntax.kind()) {
27442            Some(Self { syntax })
27443        } else {
27444            None
27445        }
27446    }
27447    #[inline]
27448    fn syntax(&self) -> &SyntaxNode {
27449        &self.syntax
27450    }
27451}
27452impl AstNode for Variant {
27453    #[inline]
27454    fn can_cast(kind: SyntaxKind) -> bool {
27455        kind == SyntaxKind::VARIANT
27456    }
27457    #[inline]
27458    fn cast(syntax: SyntaxNode) -> Option<Self> {
27459        if Self::can_cast(syntax.kind()) {
27460            Some(Self { syntax })
27461        } else {
27462            None
27463        }
27464    }
27465    #[inline]
27466    fn syntax(&self) -> &SyntaxNode {
27467        &self.syntax
27468    }
27469}
27470impl AstNode for VariantList {
27471    #[inline]
27472    fn can_cast(kind: SyntaxKind) -> bool {
27473        kind == SyntaxKind::VARIANT_LIST
27474    }
27475    #[inline]
27476    fn cast(syntax: SyntaxNode) -> Option<Self> {
27477        if Self::can_cast(syntax.kind()) {
27478            Some(Self { syntax })
27479        } else {
27480            None
27481        }
27482    }
27483    #[inline]
27484    fn syntax(&self) -> &SyntaxNode {
27485        &self.syntax
27486    }
27487}
27488impl AstNode for VolatilityFuncOption {
27489    #[inline]
27490    fn can_cast(kind: SyntaxKind) -> bool {
27491        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
27492    }
27493    #[inline]
27494    fn cast(syntax: SyntaxNode) -> Option<Self> {
27495        if Self::can_cast(syntax.kind()) {
27496            Some(Self { syntax })
27497        } else {
27498            None
27499        }
27500    }
27501    #[inline]
27502    fn syntax(&self) -> &SyntaxNode {
27503        &self.syntax
27504    }
27505}
27506impl AstNode for WhenClause {
27507    #[inline]
27508    fn can_cast(kind: SyntaxKind) -> bool {
27509        kind == SyntaxKind::WHEN_CLAUSE
27510    }
27511    #[inline]
27512    fn cast(syntax: SyntaxNode) -> Option<Self> {
27513        if Self::can_cast(syntax.kind()) {
27514            Some(Self { syntax })
27515        } else {
27516            None
27517        }
27518    }
27519    #[inline]
27520    fn syntax(&self) -> &SyntaxNode {
27521        &self.syntax
27522    }
27523}
27524impl AstNode for WhenClauseList {
27525    #[inline]
27526    fn can_cast(kind: SyntaxKind) -> bool {
27527        kind == SyntaxKind::WHEN_CLAUSE_LIST
27528    }
27529    #[inline]
27530    fn cast(syntax: SyntaxNode) -> Option<Self> {
27531        if Self::can_cast(syntax.kind()) {
27532            Some(Self { syntax })
27533        } else {
27534            None
27535        }
27536    }
27537    #[inline]
27538    fn syntax(&self) -> &SyntaxNode {
27539        &self.syntax
27540    }
27541}
27542impl AstNode for WhenCondition {
27543    #[inline]
27544    fn can_cast(kind: SyntaxKind) -> bool {
27545        kind == SyntaxKind::WHEN_CONDITION
27546    }
27547    #[inline]
27548    fn cast(syntax: SyntaxNode) -> Option<Self> {
27549        if Self::can_cast(syntax.kind()) {
27550            Some(Self { syntax })
27551        } else {
27552            None
27553        }
27554    }
27555    #[inline]
27556    fn syntax(&self) -> &SyntaxNode {
27557        &self.syntax
27558    }
27559}
27560impl AstNode for WhereClause {
27561    #[inline]
27562    fn can_cast(kind: SyntaxKind) -> bool {
27563        kind == SyntaxKind::WHERE_CLAUSE
27564    }
27565    #[inline]
27566    fn cast(syntax: SyntaxNode) -> Option<Self> {
27567        if Self::can_cast(syntax.kind()) {
27568            Some(Self { syntax })
27569        } else {
27570            None
27571        }
27572    }
27573    #[inline]
27574    fn syntax(&self) -> &SyntaxNode {
27575        &self.syntax
27576    }
27577}
27578impl AstNode for WhereConditionClause {
27579    #[inline]
27580    fn can_cast(kind: SyntaxKind) -> bool {
27581        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
27582    }
27583    #[inline]
27584    fn cast(syntax: SyntaxNode) -> Option<Self> {
27585        if Self::can_cast(syntax.kind()) {
27586            Some(Self { syntax })
27587        } else {
27588            None
27589        }
27590    }
27591    #[inline]
27592    fn syntax(&self) -> &SyntaxNode {
27593        &self.syntax
27594    }
27595}
27596impl AstNode for WhereCurrentOf {
27597    #[inline]
27598    fn can_cast(kind: SyntaxKind) -> bool {
27599        kind == SyntaxKind::WHERE_CURRENT_OF
27600    }
27601    #[inline]
27602    fn cast(syntax: SyntaxNode) -> Option<Self> {
27603        if Self::can_cast(syntax.kind()) {
27604            Some(Self { syntax })
27605        } else {
27606            None
27607        }
27608    }
27609    #[inline]
27610    fn syntax(&self) -> &SyntaxNode {
27611        &self.syntax
27612    }
27613}
27614impl AstNode for WindowClause {
27615    #[inline]
27616    fn can_cast(kind: SyntaxKind) -> bool {
27617        kind == SyntaxKind::WINDOW_CLAUSE
27618    }
27619    #[inline]
27620    fn cast(syntax: SyntaxNode) -> Option<Self> {
27621        if Self::can_cast(syntax.kind()) {
27622            Some(Self { syntax })
27623        } else {
27624            None
27625        }
27626    }
27627    #[inline]
27628    fn syntax(&self) -> &SyntaxNode {
27629        &self.syntax
27630    }
27631}
27632impl AstNode for WindowDef {
27633    #[inline]
27634    fn can_cast(kind: SyntaxKind) -> bool {
27635        kind == SyntaxKind::WINDOW_DEF
27636    }
27637    #[inline]
27638    fn cast(syntax: SyntaxNode) -> Option<Self> {
27639        if Self::can_cast(syntax.kind()) {
27640            Some(Self { syntax })
27641        } else {
27642            None
27643        }
27644    }
27645    #[inline]
27646    fn syntax(&self) -> &SyntaxNode {
27647        &self.syntax
27648    }
27649}
27650impl AstNode for WindowFuncOption {
27651    #[inline]
27652    fn can_cast(kind: SyntaxKind) -> bool {
27653        kind == SyntaxKind::WINDOW_FUNC_OPTION
27654    }
27655    #[inline]
27656    fn cast(syntax: SyntaxNode) -> Option<Self> {
27657        if Self::can_cast(syntax.kind()) {
27658            Some(Self { syntax })
27659        } else {
27660            None
27661        }
27662    }
27663    #[inline]
27664    fn syntax(&self) -> &SyntaxNode {
27665        &self.syntax
27666    }
27667}
27668impl AstNode for WindowSpec {
27669    #[inline]
27670    fn can_cast(kind: SyntaxKind) -> bool {
27671        kind == SyntaxKind::WINDOW_SPEC
27672    }
27673    #[inline]
27674    fn cast(syntax: SyntaxNode) -> Option<Self> {
27675        if Self::can_cast(syntax.kind()) {
27676            Some(Self { syntax })
27677        } else {
27678            None
27679        }
27680    }
27681    #[inline]
27682    fn syntax(&self) -> &SyntaxNode {
27683        &self.syntax
27684    }
27685}
27686impl AstNode for WithClause {
27687    #[inline]
27688    fn can_cast(kind: SyntaxKind) -> bool {
27689        kind == SyntaxKind::WITH_CLAUSE
27690    }
27691    #[inline]
27692    fn cast(syntax: SyntaxNode) -> Option<Self> {
27693        if Self::can_cast(syntax.kind()) {
27694            Some(Self { syntax })
27695        } else {
27696            None
27697        }
27698    }
27699    #[inline]
27700    fn syntax(&self) -> &SyntaxNode {
27701        &self.syntax
27702    }
27703}
27704impl AstNode for WithData {
27705    #[inline]
27706    fn can_cast(kind: SyntaxKind) -> bool {
27707        kind == SyntaxKind::WITH_DATA
27708    }
27709    #[inline]
27710    fn cast(syntax: SyntaxNode) -> Option<Self> {
27711        if Self::can_cast(syntax.kind()) {
27712            Some(Self { syntax })
27713        } else {
27714            None
27715        }
27716    }
27717    #[inline]
27718    fn syntax(&self) -> &SyntaxNode {
27719        &self.syntax
27720    }
27721}
27722impl AstNode for WithNoData {
27723    #[inline]
27724    fn can_cast(kind: SyntaxKind) -> bool {
27725        kind == SyntaxKind::WITH_NO_DATA
27726    }
27727    #[inline]
27728    fn cast(syntax: SyntaxNode) -> Option<Self> {
27729        if Self::can_cast(syntax.kind()) {
27730            Some(Self { syntax })
27731        } else {
27732            None
27733        }
27734    }
27735    #[inline]
27736    fn syntax(&self) -> &SyntaxNode {
27737        &self.syntax
27738    }
27739}
27740impl AstNode for WithOptions {
27741    #[inline]
27742    fn can_cast(kind: SyntaxKind) -> bool {
27743        kind == SyntaxKind::WITH_OPTIONS
27744    }
27745    #[inline]
27746    fn cast(syntax: SyntaxNode) -> Option<Self> {
27747        if Self::can_cast(syntax.kind()) {
27748            Some(Self { syntax })
27749        } else {
27750            None
27751        }
27752    }
27753    #[inline]
27754    fn syntax(&self) -> &SyntaxNode {
27755        &self.syntax
27756    }
27757}
27758impl AstNode for WithParams {
27759    #[inline]
27760    fn can_cast(kind: SyntaxKind) -> bool {
27761        kind == SyntaxKind::WITH_PARAMS
27762    }
27763    #[inline]
27764    fn cast(syntax: SyntaxNode) -> Option<Self> {
27765        if Self::can_cast(syntax.kind()) {
27766            Some(Self { syntax })
27767        } else {
27768            None
27769        }
27770    }
27771    #[inline]
27772    fn syntax(&self) -> &SyntaxNode {
27773        &self.syntax
27774    }
27775}
27776impl AstNode for WithTable {
27777    #[inline]
27778    fn can_cast(kind: SyntaxKind) -> bool {
27779        kind == SyntaxKind::WITH_TABLE
27780    }
27781    #[inline]
27782    fn cast(syntax: SyntaxNode) -> Option<Self> {
27783        if Self::can_cast(syntax.kind()) {
27784            Some(Self { syntax })
27785        } else {
27786            None
27787        }
27788    }
27789    #[inline]
27790    fn syntax(&self) -> &SyntaxNode {
27791        &self.syntax
27792    }
27793}
27794impl AstNode for WithTimezone {
27795    #[inline]
27796    fn can_cast(kind: SyntaxKind) -> bool {
27797        kind == SyntaxKind::WITH_TIMEZONE
27798    }
27799    #[inline]
27800    fn cast(syntax: SyntaxNode) -> Option<Self> {
27801        if Self::can_cast(syntax.kind()) {
27802            Some(Self { syntax })
27803        } else {
27804            None
27805        }
27806    }
27807    #[inline]
27808    fn syntax(&self) -> &SyntaxNode {
27809        &self.syntax
27810    }
27811}
27812impl AstNode for WithinClause {
27813    #[inline]
27814    fn can_cast(kind: SyntaxKind) -> bool {
27815        kind == SyntaxKind::WITHIN_CLAUSE
27816    }
27817    #[inline]
27818    fn cast(syntax: SyntaxNode) -> Option<Self> {
27819        if Self::can_cast(syntax.kind()) {
27820            Some(Self { syntax })
27821        } else {
27822            None
27823        }
27824    }
27825    #[inline]
27826    fn syntax(&self) -> &SyntaxNode {
27827        &self.syntax
27828    }
27829}
27830impl AstNode for WithoutOids {
27831    #[inline]
27832    fn can_cast(kind: SyntaxKind) -> bool {
27833        kind == SyntaxKind::WITHOUT_OIDS
27834    }
27835    #[inline]
27836    fn cast(syntax: SyntaxNode) -> Option<Self> {
27837        if Self::can_cast(syntax.kind()) {
27838            Some(Self { syntax })
27839        } else {
27840            None
27841        }
27842    }
27843    #[inline]
27844    fn syntax(&self) -> &SyntaxNode {
27845        &self.syntax
27846    }
27847}
27848impl AstNode for WithoutTimezone {
27849    #[inline]
27850    fn can_cast(kind: SyntaxKind) -> bool {
27851        kind == SyntaxKind::WITHOUT_TIMEZONE
27852    }
27853    #[inline]
27854    fn cast(syntax: SyntaxNode) -> Option<Self> {
27855        if Self::can_cast(syntax.kind()) {
27856            Some(Self { syntax })
27857        } else {
27858            None
27859        }
27860    }
27861    #[inline]
27862    fn syntax(&self) -> &SyntaxNode {
27863        &self.syntax
27864    }
27865}
27866impl AstNode for XmlAttributeList {
27867    #[inline]
27868    fn can_cast(kind: SyntaxKind) -> bool {
27869        kind == SyntaxKind::XML_ATTRIBUTE_LIST
27870    }
27871    #[inline]
27872    fn cast(syntax: SyntaxNode) -> Option<Self> {
27873        if Self::can_cast(syntax.kind()) {
27874            Some(Self { syntax })
27875        } else {
27876            None
27877        }
27878    }
27879    #[inline]
27880    fn syntax(&self) -> &SyntaxNode {
27881        &self.syntax
27882    }
27883}
27884impl AstNode for XmlColumnOption {
27885    #[inline]
27886    fn can_cast(kind: SyntaxKind) -> bool {
27887        kind == SyntaxKind::XML_COLUMN_OPTION
27888    }
27889    #[inline]
27890    fn cast(syntax: SyntaxNode) -> Option<Self> {
27891        if Self::can_cast(syntax.kind()) {
27892            Some(Self { syntax })
27893        } else {
27894            None
27895        }
27896    }
27897    #[inline]
27898    fn syntax(&self) -> &SyntaxNode {
27899        &self.syntax
27900    }
27901}
27902impl AstNode for XmlColumnOptionList {
27903    #[inline]
27904    fn can_cast(kind: SyntaxKind) -> bool {
27905        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
27906    }
27907    #[inline]
27908    fn cast(syntax: SyntaxNode) -> Option<Self> {
27909        if Self::can_cast(syntax.kind()) {
27910            Some(Self { syntax })
27911        } else {
27912            None
27913        }
27914    }
27915    #[inline]
27916    fn syntax(&self) -> &SyntaxNode {
27917        &self.syntax
27918    }
27919}
27920impl AstNode for XmlElementFn {
27921    #[inline]
27922    fn can_cast(kind: SyntaxKind) -> bool {
27923        kind == SyntaxKind::XML_ELEMENT_FN
27924    }
27925    #[inline]
27926    fn cast(syntax: SyntaxNode) -> Option<Self> {
27927        if Self::can_cast(syntax.kind()) {
27928            Some(Self { syntax })
27929        } else {
27930            None
27931        }
27932    }
27933    #[inline]
27934    fn syntax(&self) -> &SyntaxNode {
27935        &self.syntax
27936    }
27937}
27938impl AstNode for XmlExistsFn {
27939    #[inline]
27940    fn can_cast(kind: SyntaxKind) -> bool {
27941        kind == SyntaxKind::XML_EXISTS_FN
27942    }
27943    #[inline]
27944    fn cast(syntax: SyntaxNode) -> Option<Self> {
27945        if Self::can_cast(syntax.kind()) {
27946            Some(Self { syntax })
27947        } else {
27948            None
27949        }
27950    }
27951    #[inline]
27952    fn syntax(&self) -> &SyntaxNode {
27953        &self.syntax
27954    }
27955}
27956impl AstNode for XmlForestFn {
27957    #[inline]
27958    fn can_cast(kind: SyntaxKind) -> bool {
27959        kind == SyntaxKind::XML_FOREST_FN
27960    }
27961    #[inline]
27962    fn cast(syntax: SyntaxNode) -> Option<Self> {
27963        if Self::can_cast(syntax.kind()) {
27964            Some(Self { syntax })
27965        } else {
27966            None
27967        }
27968    }
27969    #[inline]
27970    fn syntax(&self) -> &SyntaxNode {
27971        &self.syntax
27972    }
27973}
27974impl AstNode for XmlNamespace {
27975    #[inline]
27976    fn can_cast(kind: SyntaxKind) -> bool {
27977        kind == SyntaxKind::XML_NAMESPACE
27978    }
27979    #[inline]
27980    fn cast(syntax: SyntaxNode) -> Option<Self> {
27981        if Self::can_cast(syntax.kind()) {
27982            Some(Self { syntax })
27983        } else {
27984            None
27985        }
27986    }
27987    #[inline]
27988    fn syntax(&self) -> &SyntaxNode {
27989        &self.syntax
27990    }
27991}
27992impl AstNode for XmlNamespaceList {
27993    #[inline]
27994    fn can_cast(kind: SyntaxKind) -> bool {
27995        kind == SyntaxKind::XML_NAMESPACE_LIST
27996    }
27997    #[inline]
27998    fn cast(syntax: SyntaxNode) -> Option<Self> {
27999        if Self::can_cast(syntax.kind()) {
28000            Some(Self { syntax })
28001        } else {
28002            None
28003        }
28004    }
28005    #[inline]
28006    fn syntax(&self) -> &SyntaxNode {
28007        &self.syntax
28008    }
28009}
28010impl AstNode for XmlParseFn {
28011    #[inline]
28012    fn can_cast(kind: SyntaxKind) -> bool {
28013        kind == SyntaxKind::XML_PARSE_FN
28014    }
28015    #[inline]
28016    fn cast(syntax: SyntaxNode) -> Option<Self> {
28017        if Self::can_cast(syntax.kind()) {
28018            Some(Self { syntax })
28019        } else {
28020            None
28021        }
28022    }
28023    #[inline]
28024    fn syntax(&self) -> &SyntaxNode {
28025        &self.syntax
28026    }
28027}
28028impl AstNode for XmlPassingMech {
28029    #[inline]
28030    fn can_cast(kind: SyntaxKind) -> bool {
28031        kind == SyntaxKind::XML_PASSING_MECH
28032    }
28033    #[inline]
28034    fn cast(syntax: SyntaxNode) -> Option<Self> {
28035        if Self::can_cast(syntax.kind()) {
28036            Some(Self { syntax })
28037        } else {
28038            None
28039        }
28040    }
28041    #[inline]
28042    fn syntax(&self) -> &SyntaxNode {
28043        &self.syntax
28044    }
28045}
28046impl AstNode for XmlPiFn {
28047    #[inline]
28048    fn can_cast(kind: SyntaxKind) -> bool {
28049        kind == SyntaxKind::XML_PI_FN
28050    }
28051    #[inline]
28052    fn cast(syntax: SyntaxNode) -> Option<Self> {
28053        if Self::can_cast(syntax.kind()) {
28054            Some(Self { syntax })
28055        } else {
28056            None
28057        }
28058    }
28059    #[inline]
28060    fn syntax(&self) -> &SyntaxNode {
28061        &self.syntax
28062    }
28063}
28064impl AstNode for XmlRootFn {
28065    #[inline]
28066    fn can_cast(kind: SyntaxKind) -> bool {
28067        kind == SyntaxKind::XML_ROOT_FN
28068    }
28069    #[inline]
28070    fn cast(syntax: SyntaxNode) -> Option<Self> {
28071        if Self::can_cast(syntax.kind()) {
28072            Some(Self { syntax })
28073        } else {
28074            None
28075        }
28076    }
28077    #[inline]
28078    fn syntax(&self) -> &SyntaxNode {
28079        &self.syntax
28080    }
28081}
28082impl AstNode for XmlRowPassingClause {
28083    #[inline]
28084    fn can_cast(kind: SyntaxKind) -> bool {
28085        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
28086    }
28087    #[inline]
28088    fn cast(syntax: SyntaxNode) -> Option<Self> {
28089        if Self::can_cast(syntax.kind()) {
28090            Some(Self { syntax })
28091        } else {
28092            None
28093        }
28094    }
28095    #[inline]
28096    fn syntax(&self) -> &SyntaxNode {
28097        &self.syntax
28098    }
28099}
28100impl AstNode for XmlSerializeFn {
28101    #[inline]
28102    fn can_cast(kind: SyntaxKind) -> bool {
28103        kind == SyntaxKind::XML_SERIALIZE_FN
28104    }
28105    #[inline]
28106    fn cast(syntax: SyntaxNode) -> Option<Self> {
28107        if Self::can_cast(syntax.kind()) {
28108            Some(Self { syntax })
28109        } else {
28110            None
28111        }
28112    }
28113    #[inline]
28114    fn syntax(&self) -> &SyntaxNode {
28115        &self.syntax
28116    }
28117}
28118impl AstNode for XmlTable {
28119    #[inline]
28120    fn can_cast(kind: SyntaxKind) -> bool {
28121        kind == SyntaxKind::XML_TABLE
28122    }
28123    #[inline]
28124    fn cast(syntax: SyntaxNode) -> Option<Self> {
28125        if Self::can_cast(syntax.kind()) {
28126            Some(Self { syntax })
28127        } else {
28128            None
28129        }
28130    }
28131    #[inline]
28132    fn syntax(&self) -> &SyntaxNode {
28133        &self.syntax
28134    }
28135}
28136impl AstNode for XmlTableColumn {
28137    #[inline]
28138    fn can_cast(kind: SyntaxKind) -> bool {
28139        kind == SyntaxKind::XML_TABLE_COLUMN
28140    }
28141    #[inline]
28142    fn cast(syntax: SyntaxNode) -> Option<Self> {
28143        if Self::can_cast(syntax.kind()) {
28144            Some(Self { syntax })
28145        } else {
28146            None
28147        }
28148    }
28149    #[inline]
28150    fn syntax(&self) -> &SyntaxNode {
28151        &self.syntax
28152    }
28153}
28154impl AstNode for XmlTableColumnList {
28155    #[inline]
28156    fn can_cast(kind: SyntaxKind) -> bool {
28157        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
28158    }
28159    #[inline]
28160    fn cast(syntax: SyntaxNode) -> Option<Self> {
28161        if Self::can_cast(syntax.kind()) {
28162            Some(Self { syntax })
28163        } else {
28164            None
28165        }
28166    }
28167    #[inline]
28168    fn syntax(&self) -> &SyntaxNode {
28169        &self.syntax
28170    }
28171}
28172impl AstNode for AlterColumnOption {
28173    #[inline]
28174    fn can_cast(kind: SyntaxKind) -> bool {
28175        matches!(
28176            kind,
28177            SyntaxKind::ADD_GENERATED
28178                | SyntaxKind::DROP_DEFAULT
28179                | SyntaxKind::DROP_EXPRESSION
28180                | SyntaxKind::DROP_IDENTITY
28181                | SyntaxKind::DROP_NOT_NULL
28182                | SyntaxKind::RESET_OPTIONS
28183                | SyntaxKind::RESTART
28184                | SyntaxKind::SET_COMPRESSION
28185                | SyntaxKind::SET_DEFAULT
28186                | SyntaxKind::SET_EXPRESSION
28187                | SyntaxKind::SET_GENERATED
28188                | SyntaxKind::SET_GENERATED_OPTIONS
28189                | SyntaxKind::SET_NOT_NULL
28190                | SyntaxKind::SET_OPTIONS
28191                | SyntaxKind::SET_OPTIONS_LIST
28192                | SyntaxKind::SET_SEQUENCE_OPTION
28193                | SyntaxKind::SET_STATISTICS
28194                | SyntaxKind::SET_STORAGE
28195                | SyntaxKind::SET_TYPE
28196        )
28197    }
28198    #[inline]
28199    fn cast(syntax: SyntaxNode) -> Option<Self> {
28200        let res = match syntax.kind() {
28201            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
28202            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
28203            SyntaxKind::DROP_EXPRESSION => {
28204                AlterColumnOption::DropExpression(DropExpression { syntax })
28205            }
28206            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
28207            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
28208            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
28209            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
28210            SyntaxKind::SET_COMPRESSION => {
28211                AlterColumnOption::SetCompression(SetCompression { syntax })
28212            }
28213            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
28214            SyntaxKind::SET_EXPRESSION => {
28215                AlterColumnOption::SetExpression(SetExpression { syntax })
28216            }
28217            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
28218            SyntaxKind::SET_GENERATED_OPTIONS => {
28219                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
28220            }
28221            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
28222            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
28223            SyntaxKind::SET_OPTIONS_LIST => {
28224                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
28225            }
28226            SyntaxKind::SET_SEQUENCE_OPTION => {
28227                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
28228            }
28229            SyntaxKind::SET_STATISTICS => {
28230                AlterColumnOption::SetStatistics(SetStatistics { syntax })
28231            }
28232            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
28233            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
28234            _ => {
28235                return None;
28236            }
28237        };
28238        Some(res)
28239    }
28240    #[inline]
28241    fn syntax(&self) -> &SyntaxNode {
28242        match self {
28243            AlterColumnOption::AddGenerated(it) => &it.syntax,
28244            AlterColumnOption::DropDefault(it) => &it.syntax,
28245            AlterColumnOption::DropExpression(it) => &it.syntax,
28246            AlterColumnOption::DropIdentity(it) => &it.syntax,
28247            AlterColumnOption::DropNotNull(it) => &it.syntax,
28248            AlterColumnOption::ResetOptions(it) => &it.syntax,
28249            AlterColumnOption::Restart(it) => &it.syntax,
28250            AlterColumnOption::SetCompression(it) => &it.syntax,
28251            AlterColumnOption::SetDefault(it) => &it.syntax,
28252            AlterColumnOption::SetExpression(it) => &it.syntax,
28253            AlterColumnOption::SetGenerated(it) => &it.syntax,
28254            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
28255            AlterColumnOption::SetNotNull(it) => &it.syntax,
28256            AlterColumnOption::SetOptions(it) => &it.syntax,
28257            AlterColumnOption::SetOptionsList(it) => &it.syntax,
28258            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
28259            AlterColumnOption::SetStatistics(it) => &it.syntax,
28260            AlterColumnOption::SetStorage(it) => &it.syntax,
28261            AlterColumnOption::SetType(it) => &it.syntax,
28262        }
28263    }
28264}
28265impl From<AddGenerated> for AlterColumnOption {
28266    #[inline]
28267    fn from(node: AddGenerated) -> AlterColumnOption {
28268        AlterColumnOption::AddGenerated(node)
28269    }
28270}
28271impl From<DropDefault> for AlterColumnOption {
28272    #[inline]
28273    fn from(node: DropDefault) -> AlterColumnOption {
28274        AlterColumnOption::DropDefault(node)
28275    }
28276}
28277impl From<DropExpression> for AlterColumnOption {
28278    #[inline]
28279    fn from(node: DropExpression) -> AlterColumnOption {
28280        AlterColumnOption::DropExpression(node)
28281    }
28282}
28283impl From<DropIdentity> for AlterColumnOption {
28284    #[inline]
28285    fn from(node: DropIdentity) -> AlterColumnOption {
28286        AlterColumnOption::DropIdentity(node)
28287    }
28288}
28289impl From<DropNotNull> for AlterColumnOption {
28290    #[inline]
28291    fn from(node: DropNotNull) -> AlterColumnOption {
28292        AlterColumnOption::DropNotNull(node)
28293    }
28294}
28295impl From<ResetOptions> for AlterColumnOption {
28296    #[inline]
28297    fn from(node: ResetOptions) -> AlterColumnOption {
28298        AlterColumnOption::ResetOptions(node)
28299    }
28300}
28301impl From<Restart> for AlterColumnOption {
28302    #[inline]
28303    fn from(node: Restart) -> AlterColumnOption {
28304        AlterColumnOption::Restart(node)
28305    }
28306}
28307impl From<SetCompression> for AlterColumnOption {
28308    #[inline]
28309    fn from(node: SetCompression) -> AlterColumnOption {
28310        AlterColumnOption::SetCompression(node)
28311    }
28312}
28313impl From<SetDefault> for AlterColumnOption {
28314    #[inline]
28315    fn from(node: SetDefault) -> AlterColumnOption {
28316        AlterColumnOption::SetDefault(node)
28317    }
28318}
28319impl From<SetExpression> for AlterColumnOption {
28320    #[inline]
28321    fn from(node: SetExpression) -> AlterColumnOption {
28322        AlterColumnOption::SetExpression(node)
28323    }
28324}
28325impl From<SetGenerated> for AlterColumnOption {
28326    #[inline]
28327    fn from(node: SetGenerated) -> AlterColumnOption {
28328        AlterColumnOption::SetGenerated(node)
28329    }
28330}
28331impl From<SetGeneratedOptions> for AlterColumnOption {
28332    #[inline]
28333    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
28334        AlterColumnOption::SetGeneratedOptions(node)
28335    }
28336}
28337impl From<SetNotNull> for AlterColumnOption {
28338    #[inline]
28339    fn from(node: SetNotNull) -> AlterColumnOption {
28340        AlterColumnOption::SetNotNull(node)
28341    }
28342}
28343impl From<SetOptions> for AlterColumnOption {
28344    #[inline]
28345    fn from(node: SetOptions) -> AlterColumnOption {
28346        AlterColumnOption::SetOptions(node)
28347    }
28348}
28349impl From<SetOptionsList> for AlterColumnOption {
28350    #[inline]
28351    fn from(node: SetOptionsList) -> AlterColumnOption {
28352        AlterColumnOption::SetOptionsList(node)
28353    }
28354}
28355impl From<SetSequenceOption> for AlterColumnOption {
28356    #[inline]
28357    fn from(node: SetSequenceOption) -> AlterColumnOption {
28358        AlterColumnOption::SetSequenceOption(node)
28359    }
28360}
28361impl From<SetStatistics> for AlterColumnOption {
28362    #[inline]
28363    fn from(node: SetStatistics) -> AlterColumnOption {
28364        AlterColumnOption::SetStatistics(node)
28365    }
28366}
28367impl From<SetStorage> for AlterColumnOption {
28368    #[inline]
28369    fn from(node: SetStorage) -> AlterColumnOption {
28370        AlterColumnOption::SetStorage(node)
28371    }
28372}
28373impl From<SetType> for AlterColumnOption {
28374    #[inline]
28375    fn from(node: SetType) -> AlterColumnOption {
28376        AlterColumnOption::SetType(node)
28377    }
28378}
28379impl AstNode for AlterDomainAction {
28380    #[inline]
28381    fn can_cast(kind: SyntaxKind) -> bool {
28382        matches!(
28383            kind,
28384            SyntaxKind::ADD_CONSTRAINT
28385                | SyntaxKind::DROP_CONSTRAINT
28386                | SyntaxKind::DROP_DEFAULT
28387                | SyntaxKind::DROP_NOT_NULL
28388                | SyntaxKind::OWNER_TO
28389                | SyntaxKind::RENAME_CONSTRAINT
28390                | SyntaxKind::RENAME_TO
28391                | SyntaxKind::SET_DEFAULT
28392                | SyntaxKind::SET_NOT_NULL
28393                | SyntaxKind::SET_SCHEMA
28394                | SyntaxKind::VALIDATE_CONSTRAINT
28395        )
28396    }
28397    #[inline]
28398    fn cast(syntax: SyntaxNode) -> Option<Self> {
28399        let res = match syntax.kind() {
28400            SyntaxKind::ADD_CONSTRAINT => {
28401                AlterDomainAction::AddConstraint(AddConstraint { syntax })
28402            }
28403            SyntaxKind::DROP_CONSTRAINT => {
28404                AlterDomainAction::DropConstraint(DropConstraint { syntax })
28405            }
28406            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
28407            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
28408            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
28409            SyntaxKind::RENAME_CONSTRAINT => {
28410                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
28411            }
28412            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
28413            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
28414            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
28415            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
28416            SyntaxKind::VALIDATE_CONSTRAINT => {
28417                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
28418            }
28419            _ => {
28420                return None;
28421            }
28422        };
28423        Some(res)
28424    }
28425    #[inline]
28426    fn syntax(&self) -> &SyntaxNode {
28427        match self {
28428            AlterDomainAction::AddConstraint(it) => &it.syntax,
28429            AlterDomainAction::DropConstraint(it) => &it.syntax,
28430            AlterDomainAction::DropDefault(it) => &it.syntax,
28431            AlterDomainAction::DropNotNull(it) => &it.syntax,
28432            AlterDomainAction::OwnerTo(it) => &it.syntax,
28433            AlterDomainAction::RenameConstraint(it) => &it.syntax,
28434            AlterDomainAction::RenameTo(it) => &it.syntax,
28435            AlterDomainAction::SetDefault(it) => &it.syntax,
28436            AlterDomainAction::SetNotNull(it) => &it.syntax,
28437            AlterDomainAction::SetSchema(it) => &it.syntax,
28438            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
28439        }
28440    }
28441}
28442impl From<AddConstraint> for AlterDomainAction {
28443    #[inline]
28444    fn from(node: AddConstraint) -> AlterDomainAction {
28445        AlterDomainAction::AddConstraint(node)
28446    }
28447}
28448impl From<DropConstraint> for AlterDomainAction {
28449    #[inline]
28450    fn from(node: DropConstraint) -> AlterDomainAction {
28451        AlterDomainAction::DropConstraint(node)
28452    }
28453}
28454impl From<DropDefault> for AlterDomainAction {
28455    #[inline]
28456    fn from(node: DropDefault) -> AlterDomainAction {
28457        AlterDomainAction::DropDefault(node)
28458    }
28459}
28460impl From<DropNotNull> for AlterDomainAction {
28461    #[inline]
28462    fn from(node: DropNotNull) -> AlterDomainAction {
28463        AlterDomainAction::DropNotNull(node)
28464    }
28465}
28466impl From<OwnerTo> for AlterDomainAction {
28467    #[inline]
28468    fn from(node: OwnerTo) -> AlterDomainAction {
28469        AlterDomainAction::OwnerTo(node)
28470    }
28471}
28472impl From<RenameConstraint> for AlterDomainAction {
28473    #[inline]
28474    fn from(node: RenameConstraint) -> AlterDomainAction {
28475        AlterDomainAction::RenameConstraint(node)
28476    }
28477}
28478impl From<RenameTo> for AlterDomainAction {
28479    #[inline]
28480    fn from(node: RenameTo) -> AlterDomainAction {
28481        AlterDomainAction::RenameTo(node)
28482    }
28483}
28484impl From<SetDefault> for AlterDomainAction {
28485    #[inline]
28486    fn from(node: SetDefault) -> AlterDomainAction {
28487        AlterDomainAction::SetDefault(node)
28488    }
28489}
28490impl From<SetNotNull> for AlterDomainAction {
28491    #[inline]
28492    fn from(node: SetNotNull) -> AlterDomainAction {
28493        AlterDomainAction::SetNotNull(node)
28494    }
28495}
28496impl From<SetSchema> for AlterDomainAction {
28497    #[inline]
28498    fn from(node: SetSchema) -> AlterDomainAction {
28499        AlterDomainAction::SetSchema(node)
28500    }
28501}
28502impl From<ValidateConstraint> for AlterDomainAction {
28503    #[inline]
28504    fn from(node: ValidateConstraint) -> AlterDomainAction {
28505        AlterDomainAction::ValidateConstraint(node)
28506    }
28507}
28508impl AstNode for AlterMaterializedViewAction {
28509    #[inline]
28510    fn can_cast(kind: SyntaxKind) -> bool {
28511        matches!(
28512            kind,
28513            SyntaxKind::DEPENDS_ON_EXTENSION
28514                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
28515                | SyntaxKind::RENAME_COLUMN
28516                | SyntaxKind::RENAME_TO
28517                | SyntaxKind::SET_SCHEMA
28518        )
28519    }
28520    #[inline]
28521    fn cast(syntax: SyntaxNode) -> Option<Self> {
28522        let res = match syntax.kind() {
28523            SyntaxKind::DEPENDS_ON_EXTENSION => {
28524                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
28525            }
28526            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
28527                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
28528            }
28529            SyntaxKind::RENAME_COLUMN => {
28530                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
28531            }
28532            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
28533            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
28534            _ => {
28535                if let Some(result) = AlterTableAction::cast(syntax) {
28536                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
28537                }
28538                return None;
28539            }
28540        };
28541        Some(res)
28542    }
28543    #[inline]
28544    fn syntax(&self) -> &SyntaxNode {
28545        match self {
28546            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
28547            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
28548            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
28549            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
28550            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
28551            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
28552        }
28553    }
28554}
28555impl From<DependsOnExtension> for AlterMaterializedViewAction {
28556    #[inline]
28557    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
28558        AlterMaterializedViewAction::DependsOnExtension(node)
28559    }
28560}
28561impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
28562    #[inline]
28563    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
28564        AlterMaterializedViewAction::NoDependsOnExtension(node)
28565    }
28566}
28567impl From<RenameColumn> for AlterMaterializedViewAction {
28568    #[inline]
28569    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
28570        AlterMaterializedViewAction::RenameColumn(node)
28571    }
28572}
28573impl From<RenameTo> for AlterMaterializedViewAction {
28574    #[inline]
28575    fn from(node: RenameTo) -> AlterMaterializedViewAction {
28576        AlterMaterializedViewAction::RenameTo(node)
28577    }
28578}
28579impl From<SetSchema> for AlterMaterializedViewAction {
28580    #[inline]
28581    fn from(node: SetSchema) -> AlterMaterializedViewAction {
28582        AlterMaterializedViewAction::SetSchema(node)
28583    }
28584}
28585impl AstNode for AlterTableAction {
28586    #[inline]
28587    fn can_cast(kind: SyntaxKind) -> bool {
28588        matches!(
28589            kind,
28590            SyntaxKind::ADD_COLUMN
28591                | SyntaxKind::ADD_CONSTRAINT
28592                | SyntaxKind::ALTER_COLUMN
28593                | SyntaxKind::ALTER_CONSTRAINT
28594                | SyntaxKind::ATTACH_PARTITION
28595                | SyntaxKind::CLUSTER_ON
28596                | SyntaxKind::DETACH_PARTITION
28597                | SyntaxKind::DISABLE_RLS
28598                | SyntaxKind::DISABLE_RULE
28599                | SyntaxKind::DISABLE_TRIGGER
28600                | SyntaxKind::DROP_COLUMN
28601                | SyntaxKind::DROP_CONSTRAINT
28602                | SyntaxKind::ENABLE_ALWAYS_RULE
28603                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
28604                | SyntaxKind::ENABLE_REPLICA_RULE
28605                | SyntaxKind::ENABLE_REPLICA_TRIGGER
28606                | SyntaxKind::ENABLE_RLS
28607                | SyntaxKind::ENABLE_RULE
28608                | SyntaxKind::ENABLE_TRIGGER
28609                | SyntaxKind::FORCE_RLS
28610                | SyntaxKind::INHERIT_TABLE
28611                | SyntaxKind::NO_FORCE_RLS
28612                | SyntaxKind::NO_INHERIT_TABLE
28613                | SyntaxKind::NOT_OF
28614                | SyntaxKind::OF_TYPE
28615                | SyntaxKind::OPTION_ITEM_LIST
28616                | SyntaxKind::OWNER_TO
28617                | SyntaxKind::RENAME_COLUMN
28618                | SyntaxKind::RENAME_CONSTRAINT
28619                | SyntaxKind::RENAME_TO
28620                | SyntaxKind::REPLICA_IDENTITY
28621                | SyntaxKind::RESET_OPTIONS
28622                | SyntaxKind::SET_ACCESS_METHOD
28623                | SyntaxKind::SET_LOGGED
28624                | SyntaxKind::SET_OPTIONS
28625                | SyntaxKind::SET_SCHEMA
28626                | SyntaxKind::SET_TABLESPACE
28627                | SyntaxKind::SET_UNLOGGED
28628                | SyntaxKind::SET_WITHOUT_CLUSTER
28629                | SyntaxKind::SET_WITHOUT_OIDS
28630                | SyntaxKind::VALIDATE_CONSTRAINT
28631        )
28632    }
28633    #[inline]
28634    fn cast(syntax: SyntaxNode) -> Option<Self> {
28635        let res = match syntax.kind() {
28636            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
28637            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
28638            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
28639            SyntaxKind::ALTER_CONSTRAINT => {
28640                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
28641            }
28642            SyntaxKind::ATTACH_PARTITION => {
28643                AlterTableAction::AttachPartition(AttachPartition { syntax })
28644            }
28645            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
28646            SyntaxKind::DETACH_PARTITION => {
28647                AlterTableAction::DetachPartition(DetachPartition { syntax })
28648            }
28649            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
28650            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
28651            SyntaxKind::DISABLE_TRIGGER => {
28652                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
28653            }
28654            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
28655            SyntaxKind::DROP_CONSTRAINT => {
28656                AlterTableAction::DropConstraint(DropConstraint { syntax })
28657            }
28658            SyntaxKind::ENABLE_ALWAYS_RULE => {
28659                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
28660            }
28661            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
28662                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
28663            }
28664            SyntaxKind::ENABLE_REPLICA_RULE => {
28665                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
28666            }
28667            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
28668                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
28669            }
28670            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
28671            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
28672            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
28673            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
28674            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
28675            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
28676            SyntaxKind::NO_INHERIT_TABLE => {
28677                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
28678            }
28679            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
28680            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
28681            SyntaxKind::OPTION_ITEM_LIST => {
28682                AlterTableAction::OptionItemList(OptionItemList { syntax })
28683            }
28684            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
28685            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
28686            SyntaxKind::RENAME_CONSTRAINT => {
28687                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
28688            }
28689            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
28690            SyntaxKind::REPLICA_IDENTITY => {
28691                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
28692            }
28693            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
28694            SyntaxKind::SET_ACCESS_METHOD => {
28695                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
28696            }
28697            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
28698            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
28699            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
28700            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
28701            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
28702            SyntaxKind::SET_WITHOUT_CLUSTER => {
28703                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
28704            }
28705            SyntaxKind::SET_WITHOUT_OIDS => {
28706                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
28707            }
28708            SyntaxKind::VALIDATE_CONSTRAINT => {
28709                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
28710            }
28711            _ => {
28712                return None;
28713            }
28714        };
28715        Some(res)
28716    }
28717    #[inline]
28718    fn syntax(&self) -> &SyntaxNode {
28719        match self {
28720            AlterTableAction::AddColumn(it) => &it.syntax,
28721            AlterTableAction::AddConstraint(it) => &it.syntax,
28722            AlterTableAction::AlterColumn(it) => &it.syntax,
28723            AlterTableAction::AlterConstraint(it) => &it.syntax,
28724            AlterTableAction::AttachPartition(it) => &it.syntax,
28725            AlterTableAction::ClusterOn(it) => &it.syntax,
28726            AlterTableAction::DetachPartition(it) => &it.syntax,
28727            AlterTableAction::DisableRls(it) => &it.syntax,
28728            AlterTableAction::DisableRule(it) => &it.syntax,
28729            AlterTableAction::DisableTrigger(it) => &it.syntax,
28730            AlterTableAction::DropColumn(it) => &it.syntax,
28731            AlterTableAction::DropConstraint(it) => &it.syntax,
28732            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
28733            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
28734            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
28735            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
28736            AlterTableAction::EnableRls(it) => &it.syntax,
28737            AlterTableAction::EnableRule(it) => &it.syntax,
28738            AlterTableAction::EnableTrigger(it) => &it.syntax,
28739            AlterTableAction::ForceRls(it) => &it.syntax,
28740            AlterTableAction::InheritTable(it) => &it.syntax,
28741            AlterTableAction::NoForceRls(it) => &it.syntax,
28742            AlterTableAction::NoInheritTable(it) => &it.syntax,
28743            AlterTableAction::NotOf(it) => &it.syntax,
28744            AlterTableAction::OfType(it) => &it.syntax,
28745            AlterTableAction::OptionItemList(it) => &it.syntax,
28746            AlterTableAction::OwnerTo(it) => &it.syntax,
28747            AlterTableAction::RenameColumn(it) => &it.syntax,
28748            AlterTableAction::RenameConstraint(it) => &it.syntax,
28749            AlterTableAction::RenameTo(it) => &it.syntax,
28750            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
28751            AlterTableAction::ResetOptions(it) => &it.syntax,
28752            AlterTableAction::SetAccessMethod(it) => &it.syntax,
28753            AlterTableAction::SetLogged(it) => &it.syntax,
28754            AlterTableAction::SetOptions(it) => &it.syntax,
28755            AlterTableAction::SetSchema(it) => &it.syntax,
28756            AlterTableAction::SetTablespace(it) => &it.syntax,
28757            AlterTableAction::SetUnlogged(it) => &it.syntax,
28758            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
28759            AlterTableAction::SetWithoutOids(it) => &it.syntax,
28760            AlterTableAction::ValidateConstraint(it) => &it.syntax,
28761        }
28762    }
28763}
28764impl From<AddColumn> for AlterTableAction {
28765    #[inline]
28766    fn from(node: AddColumn) -> AlterTableAction {
28767        AlterTableAction::AddColumn(node)
28768    }
28769}
28770impl From<AddConstraint> for AlterTableAction {
28771    #[inline]
28772    fn from(node: AddConstraint) -> AlterTableAction {
28773        AlterTableAction::AddConstraint(node)
28774    }
28775}
28776impl From<AlterColumn> for AlterTableAction {
28777    #[inline]
28778    fn from(node: AlterColumn) -> AlterTableAction {
28779        AlterTableAction::AlterColumn(node)
28780    }
28781}
28782impl From<AlterConstraint> for AlterTableAction {
28783    #[inline]
28784    fn from(node: AlterConstraint) -> AlterTableAction {
28785        AlterTableAction::AlterConstraint(node)
28786    }
28787}
28788impl From<AttachPartition> for AlterTableAction {
28789    #[inline]
28790    fn from(node: AttachPartition) -> AlterTableAction {
28791        AlterTableAction::AttachPartition(node)
28792    }
28793}
28794impl From<ClusterOn> for AlterTableAction {
28795    #[inline]
28796    fn from(node: ClusterOn) -> AlterTableAction {
28797        AlterTableAction::ClusterOn(node)
28798    }
28799}
28800impl From<DetachPartition> for AlterTableAction {
28801    #[inline]
28802    fn from(node: DetachPartition) -> AlterTableAction {
28803        AlterTableAction::DetachPartition(node)
28804    }
28805}
28806impl From<DisableRls> for AlterTableAction {
28807    #[inline]
28808    fn from(node: DisableRls) -> AlterTableAction {
28809        AlterTableAction::DisableRls(node)
28810    }
28811}
28812impl From<DisableRule> for AlterTableAction {
28813    #[inline]
28814    fn from(node: DisableRule) -> AlterTableAction {
28815        AlterTableAction::DisableRule(node)
28816    }
28817}
28818impl From<DisableTrigger> for AlterTableAction {
28819    #[inline]
28820    fn from(node: DisableTrigger) -> AlterTableAction {
28821        AlterTableAction::DisableTrigger(node)
28822    }
28823}
28824impl From<DropColumn> for AlterTableAction {
28825    #[inline]
28826    fn from(node: DropColumn) -> AlterTableAction {
28827        AlterTableAction::DropColumn(node)
28828    }
28829}
28830impl From<DropConstraint> for AlterTableAction {
28831    #[inline]
28832    fn from(node: DropConstraint) -> AlterTableAction {
28833        AlterTableAction::DropConstraint(node)
28834    }
28835}
28836impl From<EnableAlwaysRule> for AlterTableAction {
28837    #[inline]
28838    fn from(node: EnableAlwaysRule) -> AlterTableAction {
28839        AlterTableAction::EnableAlwaysRule(node)
28840    }
28841}
28842impl From<EnableAlwaysTrigger> for AlterTableAction {
28843    #[inline]
28844    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
28845        AlterTableAction::EnableAlwaysTrigger(node)
28846    }
28847}
28848impl From<EnableReplicaRule> for AlterTableAction {
28849    #[inline]
28850    fn from(node: EnableReplicaRule) -> AlterTableAction {
28851        AlterTableAction::EnableReplicaRule(node)
28852    }
28853}
28854impl From<EnableReplicaTrigger> for AlterTableAction {
28855    #[inline]
28856    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
28857        AlterTableAction::EnableReplicaTrigger(node)
28858    }
28859}
28860impl From<EnableRls> for AlterTableAction {
28861    #[inline]
28862    fn from(node: EnableRls) -> AlterTableAction {
28863        AlterTableAction::EnableRls(node)
28864    }
28865}
28866impl From<EnableRule> for AlterTableAction {
28867    #[inline]
28868    fn from(node: EnableRule) -> AlterTableAction {
28869        AlterTableAction::EnableRule(node)
28870    }
28871}
28872impl From<EnableTrigger> for AlterTableAction {
28873    #[inline]
28874    fn from(node: EnableTrigger) -> AlterTableAction {
28875        AlterTableAction::EnableTrigger(node)
28876    }
28877}
28878impl From<ForceRls> for AlterTableAction {
28879    #[inline]
28880    fn from(node: ForceRls) -> AlterTableAction {
28881        AlterTableAction::ForceRls(node)
28882    }
28883}
28884impl From<InheritTable> for AlterTableAction {
28885    #[inline]
28886    fn from(node: InheritTable) -> AlterTableAction {
28887        AlterTableAction::InheritTable(node)
28888    }
28889}
28890impl From<NoForceRls> for AlterTableAction {
28891    #[inline]
28892    fn from(node: NoForceRls) -> AlterTableAction {
28893        AlterTableAction::NoForceRls(node)
28894    }
28895}
28896impl From<NoInheritTable> for AlterTableAction {
28897    #[inline]
28898    fn from(node: NoInheritTable) -> AlterTableAction {
28899        AlterTableAction::NoInheritTable(node)
28900    }
28901}
28902impl From<NotOf> for AlterTableAction {
28903    #[inline]
28904    fn from(node: NotOf) -> AlterTableAction {
28905        AlterTableAction::NotOf(node)
28906    }
28907}
28908impl From<OfType> for AlterTableAction {
28909    #[inline]
28910    fn from(node: OfType) -> AlterTableAction {
28911        AlterTableAction::OfType(node)
28912    }
28913}
28914impl From<OptionItemList> for AlterTableAction {
28915    #[inline]
28916    fn from(node: OptionItemList) -> AlterTableAction {
28917        AlterTableAction::OptionItemList(node)
28918    }
28919}
28920impl From<OwnerTo> for AlterTableAction {
28921    #[inline]
28922    fn from(node: OwnerTo) -> AlterTableAction {
28923        AlterTableAction::OwnerTo(node)
28924    }
28925}
28926impl From<RenameColumn> for AlterTableAction {
28927    #[inline]
28928    fn from(node: RenameColumn) -> AlterTableAction {
28929        AlterTableAction::RenameColumn(node)
28930    }
28931}
28932impl From<RenameConstraint> for AlterTableAction {
28933    #[inline]
28934    fn from(node: RenameConstraint) -> AlterTableAction {
28935        AlterTableAction::RenameConstraint(node)
28936    }
28937}
28938impl From<RenameTo> for AlterTableAction {
28939    #[inline]
28940    fn from(node: RenameTo) -> AlterTableAction {
28941        AlterTableAction::RenameTo(node)
28942    }
28943}
28944impl From<ReplicaIdentity> for AlterTableAction {
28945    #[inline]
28946    fn from(node: ReplicaIdentity) -> AlterTableAction {
28947        AlterTableAction::ReplicaIdentity(node)
28948    }
28949}
28950impl From<ResetOptions> for AlterTableAction {
28951    #[inline]
28952    fn from(node: ResetOptions) -> AlterTableAction {
28953        AlterTableAction::ResetOptions(node)
28954    }
28955}
28956impl From<SetAccessMethod> for AlterTableAction {
28957    #[inline]
28958    fn from(node: SetAccessMethod) -> AlterTableAction {
28959        AlterTableAction::SetAccessMethod(node)
28960    }
28961}
28962impl From<SetLogged> for AlterTableAction {
28963    #[inline]
28964    fn from(node: SetLogged) -> AlterTableAction {
28965        AlterTableAction::SetLogged(node)
28966    }
28967}
28968impl From<SetOptions> for AlterTableAction {
28969    #[inline]
28970    fn from(node: SetOptions) -> AlterTableAction {
28971        AlterTableAction::SetOptions(node)
28972    }
28973}
28974impl From<SetSchema> for AlterTableAction {
28975    #[inline]
28976    fn from(node: SetSchema) -> AlterTableAction {
28977        AlterTableAction::SetSchema(node)
28978    }
28979}
28980impl From<SetTablespace> for AlterTableAction {
28981    #[inline]
28982    fn from(node: SetTablespace) -> AlterTableAction {
28983        AlterTableAction::SetTablespace(node)
28984    }
28985}
28986impl From<SetUnlogged> for AlterTableAction {
28987    #[inline]
28988    fn from(node: SetUnlogged) -> AlterTableAction {
28989        AlterTableAction::SetUnlogged(node)
28990    }
28991}
28992impl From<SetWithoutCluster> for AlterTableAction {
28993    #[inline]
28994    fn from(node: SetWithoutCluster) -> AlterTableAction {
28995        AlterTableAction::SetWithoutCluster(node)
28996    }
28997}
28998impl From<SetWithoutOids> for AlterTableAction {
28999    #[inline]
29000    fn from(node: SetWithoutOids) -> AlterTableAction {
29001        AlterTableAction::SetWithoutOids(node)
29002    }
29003}
29004impl From<ValidateConstraint> for AlterTableAction {
29005    #[inline]
29006    fn from(node: ValidateConstraint) -> AlterTableAction {
29007        AlterTableAction::ValidateConstraint(node)
29008    }
29009}
29010impl AstNode for ColumnConstraint {
29011    #[inline]
29012    fn can_cast(kind: SyntaxKind) -> bool {
29013        matches!(
29014            kind,
29015            SyntaxKind::CHECK_CONSTRAINT
29016                | SyntaxKind::DEFAULT_CONSTRAINT
29017                | SyntaxKind::EXCLUDE_CONSTRAINT
29018                | SyntaxKind::NOT_NULL_CONSTRAINT
29019                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
29020                | SyntaxKind::REFERENCES_CONSTRAINT
29021                | SyntaxKind::UNIQUE_CONSTRAINT
29022        )
29023    }
29024    #[inline]
29025    fn cast(syntax: SyntaxNode) -> Option<Self> {
29026        let res = match syntax.kind() {
29027            SyntaxKind::CHECK_CONSTRAINT => {
29028                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
29029            }
29030            SyntaxKind::DEFAULT_CONSTRAINT => {
29031                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
29032            }
29033            SyntaxKind::EXCLUDE_CONSTRAINT => {
29034                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
29035            }
29036            SyntaxKind::NOT_NULL_CONSTRAINT => {
29037                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
29038            }
29039            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
29040                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
29041            }
29042            SyntaxKind::REFERENCES_CONSTRAINT => {
29043                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
29044            }
29045            SyntaxKind::UNIQUE_CONSTRAINT => {
29046                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
29047            }
29048            _ => {
29049                return None;
29050            }
29051        };
29052        Some(res)
29053    }
29054    #[inline]
29055    fn syntax(&self) -> &SyntaxNode {
29056        match self {
29057            ColumnConstraint::CheckConstraint(it) => &it.syntax,
29058            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
29059            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
29060            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
29061            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
29062            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
29063            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
29064        }
29065    }
29066}
29067impl From<CheckConstraint> for ColumnConstraint {
29068    #[inline]
29069    fn from(node: CheckConstraint) -> ColumnConstraint {
29070        ColumnConstraint::CheckConstraint(node)
29071    }
29072}
29073impl From<DefaultConstraint> for ColumnConstraint {
29074    #[inline]
29075    fn from(node: DefaultConstraint) -> ColumnConstraint {
29076        ColumnConstraint::DefaultConstraint(node)
29077    }
29078}
29079impl From<ExcludeConstraint> for ColumnConstraint {
29080    #[inline]
29081    fn from(node: ExcludeConstraint) -> ColumnConstraint {
29082        ColumnConstraint::ExcludeConstraint(node)
29083    }
29084}
29085impl From<NotNullConstraint> for ColumnConstraint {
29086    #[inline]
29087    fn from(node: NotNullConstraint) -> ColumnConstraint {
29088        ColumnConstraint::NotNullConstraint(node)
29089    }
29090}
29091impl From<PrimaryKeyConstraint> for ColumnConstraint {
29092    #[inline]
29093    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
29094        ColumnConstraint::PrimaryKeyConstraint(node)
29095    }
29096}
29097impl From<ReferencesConstraint> for ColumnConstraint {
29098    #[inline]
29099    fn from(node: ReferencesConstraint) -> ColumnConstraint {
29100        ColumnConstraint::ReferencesConstraint(node)
29101    }
29102}
29103impl From<UniqueConstraint> for ColumnConstraint {
29104    #[inline]
29105    fn from(node: UniqueConstraint) -> ColumnConstraint {
29106        ColumnConstraint::UniqueConstraint(node)
29107    }
29108}
29109impl AstNode for ConflictAction {
29110    #[inline]
29111    fn can_cast(kind: SyntaxKind) -> bool {
29112        matches!(
29113            kind,
29114            SyntaxKind::CONFLICT_DO_NOTHING | SyntaxKind::CONFLICT_DO_UPDATE_SET
29115        )
29116    }
29117    #[inline]
29118    fn cast(syntax: SyntaxNode) -> Option<Self> {
29119        let res = match syntax.kind() {
29120            SyntaxKind::CONFLICT_DO_NOTHING => {
29121                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
29122            }
29123            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
29124                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
29125            }
29126            _ => {
29127                return None;
29128            }
29129        };
29130        Some(res)
29131    }
29132    #[inline]
29133    fn syntax(&self) -> &SyntaxNode {
29134        match self {
29135            ConflictAction::ConflictDoNothing(it) => &it.syntax,
29136            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
29137        }
29138    }
29139}
29140impl From<ConflictDoNothing> for ConflictAction {
29141    #[inline]
29142    fn from(node: ConflictDoNothing) -> ConflictAction {
29143        ConflictAction::ConflictDoNothing(node)
29144    }
29145}
29146impl From<ConflictDoUpdateSet> for ConflictAction {
29147    #[inline]
29148    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
29149        ConflictAction::ConflictDoUpdateSet(node)
29150    }
29151}
29152impl AstNode for ConflictTarget {
29153    #[inline]
29154    fn can_cast(kind: SyntaxKind) -> bool {
29155        matches!(
29156            kind,
29157            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
29158        )
29159    }
29160    #[inline]
29161    fn cast(syntax: SyntaxNode) -> Option<Self> {
29162        let res = match syntax.kind() {
29163            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
29164                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
29165            }
29166            SyntaxKind::CONFLICT_ON_INDEX => {
29167                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
29168            }
29169            _ => {
29170                return None;
29171            }
29172        };
29173        Some(res)
29174    }
29175    #[inline]
29176    fn syntax(&self) -> &SyntaxNode {
29177        match self {
29178            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
29179            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
29180        }
29181    }
29182}
29183impl From<ConflictOnConstraint> for ConflictTarget {
29184    #[inline]
29185    fn from(node: ConflictOnConstraint) -> ConflictTarget {
29186        ConflictTarget::ConflictOnConstraint(node)
29187    }
29188}
29189impl From<ConflictOnIndex> for ConflictTarget {
29190    #[inline]
29191    fn from(node: ConflictOnIndex) -> ConflictTarget {
29192        ConflictTarget::ConflictOnIndex(node)
29193    }
29194}
29195impl AstNode for Constraint {
29196    #[inline]
29197    fn can_cast(kind: SyntaxKind) -> bool {
29198        matches!(
29199            kind,
29200            SyntaxKind::CHECK_CONSTRAINT
29201                | SyntaxKind::DEFAULT_CONSTRAINT
29202                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
29203                | SyntaxKind::GENERATED_CONSTRAINT
29204                | SyntaxKind::NOT_NULL_CONSTRAINT
29205                | SyntaxKind::NULL_CONSTRAINT
29206                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
29207                | SyntaxKind::REFERENCES_CONSTRAINT
29208                | SyntaxKind::UNIQUE_CONSTRAINT
29209        )
29210    }
29211    #[inline]
29212    fn cast(syntax: SyntaxNode) -> Option<Self> {
29213        let res = match syntax.kind() {
29214            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
29215            SyntaxKind::DEFAULT_CONSTRAINT => {
29216                Constraint::DefaultConstraint(DefaultConstraint { syntax })
29217            }
29218            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
29219                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
29220            }
29221            SyntaxKind::GENERATED_CONSTRAINT => {
29222                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
29223            }
29224            SyntaxKind::NOT_NULL_CONSTRAINT => {
29225                Constraint::NotNullConstraint(NotNullConstraint { syntax })
29226            }
29227            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
29228            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
29229                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
29230            }
29231            SyntaxKind::REFERENCES_CONSTRAINT => {
29232                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
29233            }
29234            SyntaxKind::UNIQUE_CONSTRAINT => {
29235                Constraint::UniqueConstraint(UniqueConstraint { syntax })
29236            }
29237            _ => {
29238                return None;
29239            }
29240        };
29241        Some(res)
29242    }
29243    #[inline]
29244    fn syntax(&self) -> &SyntaxNode {
29245        match self {
29246            Constraint::CheckConstraint(it) => &it.syntax,
29247            Constraint::DefaultConstraint(it) => &it.syntax,
29248            Constraint::ForeignKeyConstraint(it) => &it.syntax,
29249            Constraint::GeneratedConstraint(it) => &it.syntax,
29250            Constraint::NotNullConstraint(it) => &it.syntax,
29251            Constraint::NullConstraint(it) => &it.syntax,
29252            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
29253            Constraint::ReferencesConstraint(it) => &it.syntax,
29254            Constraint::UniqueConstraint(it) => &it.syntax,
29255        }
29256    }
29257}
29258impl From<CheckConstraint> for Constraint {
29259    #[inline]
29260    fn from(node: CheckConstraint) -> Constraint {
29261        Constraint::CheckConstraint(node)
29262    }
29263}
29264impl From<DefaultConstraint> for Constraint {
29265    #[inline]
29266    fn from(node: DefaultConstraint) -> Constraint {
29267        Constraint::DefaultConstraint(node)
29268    }
29269}
29270impl From<ForeignKeyConstraint> for Constraint {
29271    #[inline]
29272    fn from(node: ForeignKeyConstraint) -> Constraint {
29273        Constraint::ForeignKeyConstraint(node)
29274    }
29275}
29276impl From<GeneratedConstraint> for Constraint {
29277    #[inline]
29278    fn from(node: GeneratedConstraint) -> Constraint {
29279        Constraint::GeneratedConstraint(node)
29280    }
29281}
29282impl From<NotNullConstraint> for Constraint {
29283    #[inline]
29284    fn from(node: NotNullConstraint) -> Constraint {
29285        Constraint::NotNullConstraint(node)
29286    }
29287}
29288impl From<NullConstraint> for Constraint {
29289    #[inline]
29290    fn from(node: NullConstraint) -> Constraint {
29291        Constraint::NullConstraint(node)
29292    }
29293}
29294impl From<PrimaryKeyConstraint> for Constraint {
29295    #[inline]
29296    fn from(node: PrimaryKeyConstraint) -> Constraint {
29297        Constraint::PrimaryKeyConstraint(node)
29298    }
29299}
29300impl From<ReferencesConstraint> for Constraint {
29301    #[inline]
29302    fn from(node: ReferencesConstraint) -> Constraint {
29303        Constraint::ReferencesConstraint(node)
29304    }
29305}
29306impl From<UniqueConstraint> for Constraint {
29307    #[inline]
29308    fn from(node: UniqueConstraint) -> Constraint {
29309        Constraint::UniqueConstraint(node)
29310    }
29311}
29312impl AstNode for ExplainStmt {
29313    #[inline]
29314    fn can_cast(kind: SyntaxKind) -> bool {
29315        matches!(
29316            kind,
29317            SyntaxKind::COMPOUND_SELECT
29318                | SyntaxKind::CREATE_MATERIALIZED_VIEW
29319                | SyntaxKind::CREATE_TABLE_AS
29320                | SyntaxKind::DECLARE
29321                | SyntaxKind::DELETE
29322                | SyntaxKind::EXECUTE
29323                | SyntaxKind::INSERT
29324                | SyntaxKind::MERGE
29325                | SyntaxKind::PAREN_SELECT
29326                | SyntaxKind::SELECT
29327                | SyntaxKind::SELECT_INTO
29328                | SyntaxKind::TABLE
29329                | SyntaxKind::UPDATE
29330                | SyntaxKind::VALUES
29331        )
29332    }
29333    #[inline]
29334    fn cast(syntax: SyntaxNode) -> Option<Self> {
29335        let res = match syntax.kind() {
29336            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
29337            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
29338                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
29339            }
29340            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
29341            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
29342            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
29343            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
29344            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
29345            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
29346            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
29347            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
29348            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
29349            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
29350            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
29351            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
29352            _ => {
29353                return None;
29354            }
29355        };
29356        Some(res)
29357    }
29358    #[inline]
29359    fn syntax(&self) -> &SyntaxNode {
29360        match self {
29361            ExplainStmt::CompoundSelect(it) => &it.syntax,
29362            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
29363            ExplainStmt::CreateTableAs(it) => &it.syntax,
29364            ExplainStmt::Declare(it) => &it.syntax,
29365            ExplainStmt::Delete(it) => &it.syntax,
29366            ExplainStmt::Execute(it) => &it.syntax,
29367            ExplainStmt::Insert(it) => &it.syntax,
29368            ExplainStmt::Merge(it) => &it.syntax,
29369            ExplainStmt::ParenSelect(it) => &it.syntax,
29370            ExplainStmt::Select(it) => &it.syntax,
29371            ExplainStmt::SelectInto(it) => &it.syntax,
29372            ExplainStmt::Table(it) => &it.syntax,
29373            ExplainStmt::Update(it) => &it.syntax,
29374            ExplainStmt::Values(it) => &it.syntax,
29375        }
29376    }
29377}
29378impl From<CompoundSelect> for ExplainStmt {
29379    #[inline]
29380    fn from(node: CompoundSelect) -> ExplainStmt {
29381        ExplainStmt::CompoundSelect(node)
29382    }
29383}
29384impl From<CreateMaterializedView> for ExplainStmt {
29385    #[inline]
29386    fn from(node: CreateMaterializedView) -> ExplainStmt {
29387        ExplainStmt::CreateMaterializedView(node)
29388    }
29389}
29390impl From<CreateTableAs> for ExplainStmt {
29391    #[inline]
29392    fn from(node: CreateTableAs) -> ExplainStmt {
29393        ExplainStmt::CreateTableAs(node)
29394    }
29395}
29396impl From<Declare> for ExplainStmt {
29397    #[inline]
29398    fn from(node: Declare) -> ExplainStmt {
29399        ExplainStmt::Declare(node)
29400    }
29401}
29402impl From<Delete> for ExplainStmt {
29403    #[inline]
29404    fn from(node: Delete) -> ExplainStmt {
29405        ExplainStmt::Delete(node)
29406    }
29407}
29408impl From<Execute> for ExplainStmt {
29409    #[inline]
29410    fn from(node: Execute) -> ExplainStmt {
29411        ExplainStmt::Execute(node)
29412    }
29413}
29414impl From<Insert> for ExplainStmt {
29415    #[inline]
29416    fn from(node: Insert) -> ExplainStmt {
29417        ExplainStmt::Insert(node)
29418    }
29419}
29420impl From<Merge> for ExplainStmt {
29421    #[inline]
29422    fn from(node: Merge) -> ExplainStmt {
29423        ExplainStmt::Merge(node)
29424    }
29425}
29426impl From<ParenSelect> for ExplainStmt {
29427    #[inline]
29428    fn from(node: ParenSelect) -> ExplainStmt {
29429        ExplainStmt::ParenSelect(node)
29430    }
29431}
29432impl From<Select> for ExplainStmt {
29433    #[inline]
29434    fn from(node: Select) -> ExplainStmt {
29435        ExplainStmt::Select(node)
29436    }
29437}
29438impl From<SelectInto> for ExplainStmt {
29439    #[inline]
29440    fn from(node: SelectInto) -> ExplainStmt {
29441        ExplainStmt::SelectInto(node)
29442    }
29443}
29444impl From<Table> for ExplainStmt {
29445    #[inline]
29446    fn from(node: Table) -> ExplainStmt {
29447        ExplainStmt::Table(node)
29448    }
29449}
29450impl From<Update> for ExplainStmt {
29451    #[inline]
29452    fn from(node: Update) -> ExplainStmt {
29453        ExplainStmt::Update(node)
29454    }
29455}
29456impl From<Values> for ExplainStmt {
29457    #[inline]
29458    fn from(node: Values) -> ExplainStmt {
29459        ExplainStmt::Values(node)
29460    }
29461}
29462impl AstNode for Expr {
29463    #[inline]
29464    fn can_cast(kind: SyntaxKind) -> bool {
29465        matches!(
29466            kind,
29467            SyntaxKind::ARRAY_EXPR
29468                | SyntaxKind::BETWEEN_EXPR
29469                | SyntaxKind::BIN_EXPR
29470                | SyntaxKind::CALL_EXPR
29471                | SyntaxKind::CASE_EXPR
29472                | SyntaxKind::CAST_EXPR
29473                | SyntaxKind::FIELD_EXPR
29474                | SyntaxKind::INDEX_EXPR
29475                | SyntaxKind::LITERAL
29476                | SyntaxKind::NAME_REF
29477                | SyntaxKind::PAREN_EXPR
29478                | SyntaxKind::POSTFIX_EXPR
29479                | SyntaxKind::PREFIX_EXPR
29480                | SyntaxKind::SLICE_EXPR
29481                | SyntaxKind::TUPLE_EXPR
29482        )
29483    }
29484    #[inline]
29485    fn cast(syntax: SyntaxNode) -> Option<Self> {
29486        let res = match syntax.kind() {
29487            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
29488            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
29489            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
29490            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
29491            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
29492            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
29493            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
29494            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
29495            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
29496            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
29497            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
29498            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
29499            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
29500            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
29501            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
29502            _ => {
29503                return None;
29504            }
29505        };
29506        Some(res)
29507    }
29508    #[inline]
29509    fn syntax(&self) -> &SyntaxNode {
29510        match self {
29511            Expr::ArrayExpr(it) => &it.syntax,
29512            Expr::BetweenExpr(it) => &it.syntax,
29513            Expr::BinExpr(it) => &it.syntax,
29514            Expr::CallExpr(it) => &it.syntax,
29515            Expr::CaseExpr(it) => &it.syntax,
29516            Expr::CastExpr(it) => &it.syntax,
29517            Expr::FieldExpr(it) => &it.syntax,
29518            Expr::IndexExpr(it) => &it.syntax,
29519            Expr::Literal(it) => &it.syntax,
29520            Expr::NameRef(it) => &it.syntax,
29521            Expr::ParenExpr(it) => &it.syntax,
29522            Expr::PostfixExpr(it) => &it.syntax,
29523            Expr::PrefixExpr(it) => &it.syntax,
29524            Expr::SliceExpr(it) => &it.syntax,
29525            Expr::TupleExpr(it) => &it.syntax,
29526        }
29527    }
29528}
29529impl From<ArrayExpr> for Expr {
29530    #[inline]
29531    fn from(node: ArrayExpr) -> Expr {
29532        Expr::ArrayExpr(node)
29533    }
29534}
29535impl From<BetweenExpr> for Expr {
29536    #[inline]
29537    fn from(node: BetweenExpr) -> Expr {
29538        Expr::BetweenExpr(node)
29539    }
29540}
29541impl From<BinExpr> for Expr {
29542    #[inline]
29543    fn from(node: BinExpr) -> Expr {
29544        Expr::BinExpr(node)
29545    }
29546}
29547impl From<CallExpr> for Expr {
29548    #[inline]
29549    fn from(node: CallExpr) -> Expr {
29550        Expr::CallExpr(node)
29551    }
29552}
29553impl From<CaseExpr> for Expr {
29554    #[inline]
29555    fn from(node: CaseExpr) -> Expr {
29556        Expr::CaseExpr(node)
29557    }
29558}
29559impl From<CastExpr> for Expr {
29560    #[inline]
29561    fn from(node: CastExpr) -> Expr {
29562        Expr::CastExpr(node)
29563    }
29564}
29565impl From<FieldExpr> for Expr {
29566    #[inline]
29567    fn from(node: FieldExpr) -> Expr {
29568        Expr::FieldExpr(node)
29569    }
29570}
29571impl From<IndexExpr> for Expr {
29572    #[inline]
29573    fn from(node: IndexExpr) -> Expr {
29574        Expr::IndexExpr(node)
29575    }
29576}
29577impl From<Literal> for Expr {
29578    #[inline]
29579    fn from(node: Literal) -> Expr {
29580        Expr::Literal(node)
29581    }
29582}
29583impl From<NameRef> for Expr {
29584    #[inline]
29585    fn from(node: NameRef) -> Expr {
29586        Expr::NameRef(node)
29587    }
29588}
29589impl From<ParenExpr> for Expr {
29590    #[inline]
29591    fn from(node: ParenExpr) -> Expr {
29592        Expr::ParenExpr(node)
29593    }
29594}
29595impl From<PostfixExpr> for Expr {
29596    #[inline]
29597    fn from(node: PostfixExpr) -> Expr {
29598        Expr::PostfixExpr(node)
29599    }
29600}
29601impl From<PrefixExpr> for Expr {
29602    #[inline]
29603    fn from(node: PrefixExpr) -> Expr {
29604        Expr::PrefixExpr(node)
29605    }
29606}
29607impl From<SliceExpr> for Expr {
29608    #[inline]
29609    fn from(node: SliceExpr) -> Expr {
29610        Expr::SliceExpr(node)
29611    }
29612}
29613impl From<TupleExpr> for Expr {
29614    #[inline]
29615    fn from(node: TupleExpr) -> Expr {
29616        Expr::TupleExpr(node)
29617    }
29618}
29619impl AstNode for FuncOption {
29620    #[inline]
29621    fn can_cast(kind: SyntaxKind) -> bool {
29622        matches!(
29623            kind,
29624            SyntaxKind::AS_FUNC_OPTION
29625                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
29626                | SyntaxKind::COST_FUNC_OPTION
29627                | SyntaxKind::LANGUAGE_FUNC_OPTION
29628                | SyntaxKind::LEAKPROOF_FUNC_OPTION
29629                | SyntaxKind::PARALLEL_FUNC_OPTION
29630                | SyntaxKind::RESET_FUNC_OPTION
29631                | SyntaxKind::RETURN_FUNC_OPTION
29632                | SyntaxKind::ROWS_FUNC_OPTION
29633                | SyntaxKind::SECURITY_FUNC_OPTION
29634                | SyntaxKind::SET_FUNC_OPTION
29635                | SyntaxKind::STRICT_FUNC_OPTION
29636                | SyntaxKind::SUPPORT_FUNC_OPTION
29637                | SyntaxKind::TRANSFORM_FUNC_OPTION
29638                | SyntaxKind::VOLATILITY_FUNC_OPTION
29639                | SyntaxKind::WINDOW_FUNC_OPTION
29640        )
29641    }
29642    #[inline]
29643    fn cast(syntax: SyntaxNode) -> Option<Self> {
29644        let res = match syntax.kind() {
29645            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
29646            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
29647                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
29648            }
29649            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
29650            SyntaxKind::LANGUAGE_FUNC_OPTION => {
29651                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
29652            }
29653            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
29654                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
29655            }
29656            SyntaxKind::PARALLEL_FUNC_OPTION => {
29657                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
29658            }
29659            SyntaxKind::RESET_FUNC_OPTION => {
29660                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
29661            }
29662            SyntaxKind::RETURN_FUNC_OPTION => {
29663                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
29664            }
29665            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
29666            SyntaxKind::SECURITY_FUNC_OPTION => {
29667                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
29668            }
29669            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
29670            SyntaxKind::STRICT_FUNC_OPTION => {
29671                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
29672            }
29673            SyntaxKind::SUPPORT_FUNC_OPTION => {
29674                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
29675            }
29676            SyntaxKind::TRANSFORM_FUNC_OPTION => {
29677                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
29678            }
29679            SyntaxKind::VOLATILITY_FUNC_OPTION => {
29680                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
29681            }
29682            SyntaxKind::WINDOW_FUNC_OPTION => {
29683                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
29684            }
29685            _ => {
29686                return None;
29687            }
29688        };
29689        Some(res)
29690    }
29691    #[inline]
29692    fn syntax(&self) -> &SyntaxNode {
29693        match self {
29694            FuncOption::AsFuncOption(it) => &it.syntax,
29695            FuncOption::BeginFuncOptionList(it) => &it.syntax,
29696            FuncOption::CostFuncOption(it) => &it.syntax,
29697            FuncOption::LanguageFuncOption(it) => &it.syntax,
29698            FuncOption::LeakproofFuncOption(it) => &it.syntax,
29699            FuncOption::ParallelFuncOption(it) => &it.syntax,
29700            FuncOption::ResetFuncOption(it) => &it.syntax,
29701            FuncOption::ReturnFuncOption(it) => &it.syntax,
29702            FuncOption::RowsFuncOption(it) => &it.syntax,
29703            FuncOption::SecurityFuncOption(it) => &it.syntax,
29704            FuncOption::SetFuncOption(it) => &it.syntax,
29705            FuncOption::StrictFuncOption(it) => &it.syntax,
29706            FuncOption::SupportFuncOption(it) => &it.syntax,
29707            FuncOption::TransformFuncOption(it) => &it.syntax,
29708            FuncOption::VolatilityFuncOption(it) => &it.syntax,
29709            FuncOption::WindowFuncOption(it) => &it.syntax,
29710        }
29711    }
29712}
29713impl From<AsFuncOption> for FuncOption {
29714    #[inline]
29715    fn from(node: AsFuncOption) -> FuncOption {
29716        FuncOption::AsFuncOption(node)
29717    }
29718}
29719impl From<BeginFuncOptionList> for FuncOption {
29720    #[inline]
29721    fn from(node: BeginFuncOptionList) -> FuncOption {
29722        FuncOption::BeginFuncOptionList(node)
29723    }
29724}
29725impl From<CostFuncOption> for FuncOption {
29726    #[inline]
29727    fn from(node: CostFuncOption) -> FuncOption {
29728        FuncOption::CostFuncOption(node)
29729    }
29730}
29731impl From<LanguageFuncOption> for FuncOption {
29732    #[inline]
29733    fn from(node: LanguageFuncOption) -> FuncOption {
29734        FuncOption::LanguageFuncOption(node)
29735    }
29736}
29737impl From<LeakproofFuncOption> for FuncOption {
29738    #[inline]
29739    fn from(node: LeakproofFuncOption) -> FuncOption {
29740        FuncOption::LeakproofFuncOption(node)
29741    }
29742}
29743impl From<ParallelFuncOption> for FuncOption {
29744    #[inline]
29745    fn from(node: ParallelFuncOption) -> FuncOption {
29746        FuncOption::ParallelFuncOption(node)
29747    }
29748}
29749impl From<ResetFuncOption> for FuncOption {
29750    #[inline]
29751    fn from(node: ResetFuncOption) -> FuncOption {
29752        FuncOption::ResetFuncOption(node)
29753    }
29754}
29755impl From<ReturnFuncOption> for FuncOption {
29756    #[inline]
29757    fn from(node: ReturnFuncOption) -> FuncOption {
29758        FuncOption::ReturnFuncOption(node)
29759    }
29760}
29761impl From<RowsFuncOption> for FuncOption {
29762    #[inline]
29763    fn from(node: RowsFuncOption) -> FuncOption {
29764        FuncOption::RowsFuncOption(node)
29765    }
29766}
29767impl From<SecurityFuncOption> for FuncOption {
29768    #[inline]
29769    fn from(node: SecurityFuncOption) -> FuncOption {
29770        FuncOption::SecurityFuncOption(node)
29771    }
29772}
29773impl From<SetFuncOption> for FuncOption {
29774    #[inline]
29775    fn from(node: SetFuncOption) -> FuncOption {
29776        FuncOption::SetFuncOption(node)
29777    }
29778}
29779impl From<StrictFuncOption> for FuncOption {
29780    #[inline]
29781    fn from(node: StrictFuncOption) -> FuncOption {
29782        FuncOption::StrictFuncOption(node)
29783    }
29784}
29785impl From<SupportFuncOption> for FuncOption {
29786    #[inline]
29787    fn from(node: SupportFuncOption) -> FuncOption {
29788        FuncOption::SupportFuncOption(node)
29789    }
29790}
29791impl From<TransformFuncOption> for FuncOption {
29792    #[inline]
29793    fn from(node: TransformFuncOption) -> FuncOption {
29794        FuncOption::TransformFuncOption(node)
29795    }
29796}
29797impl From<VolatilityFuncOption> for FuncOption {
29798    #[inline]
29799    fn from(node: VolatilityFuncOption) -> FuncOption {
29800        FuncOption::VolatilityFuncOption(node)
29801    }
29802}
29803impl From<WindowFuncOption> for FuncOption {
29804    #[inline]
29805    fn from(node: WindowFuncOption) -> FuncOption {
29806        FuncOption::WindowFuncOption(node)
29807    }
29808}
29809impl AstNode for GroupBy {
29810    #[inline]
29811    fn can_cast(kind: SyntaxKind) -> bool {
29812        matches!(
29813            kind,
29814            SyntaxKind::GROUPING_CUBE
29815                | SyntaxKind::GROUPING_EXPR
29816                | SyntaxKind::GROUPING_ROLLUP
29817                | SyntaxKind::GROUPING_SETS
29818        )
29819    }
29820    #[inline]
29821    fn cast(syntax: SyntaxNode) -> Option<Self> {
29822        let res = match syntax.kind() {
29823            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
29824            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
29825            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
29826            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
29827            _ => {
29828                return None;
29829            }
29830        };
29831        Some(res)
29832    }
29833    #[inline]
29834    fn syntax(&self) -> &SyntaxNode {
29835        match self {
29836            GroupBy::GroupingCube(it) => &it.syntax,
29837            GroupBy::GroupingExpr(it) => &it.syntax,
29838            GroupBy::GroupingRollup(it) => &it.syntax,
29839            GroupBy::GroupingSets(it) => &it.syntax,
29840        }
29841    }
29842}
29843impl From<GroupingCube> for GroupBy {
29844    #[inline]
29845    fn from(node: GroupingCube) -> GroupBy {
29846        GroupBy::GroupingCube(node)
29847    }
29848}
29849impl From<GroupingExpr> for GroupBy {
29850    #[inline]
29851    fn from(node: GroupingExpr) -> GroupBy {
29852        GroupBy::GroupingExpr(node)
29853    }
29854}
29855impl From<GroupingRollup> for GroupBy {
29856    #[inline]
29857    fn from(node: GroupingRollup) -> GroupBy {
29858        GroupBy::GroupingRollup(node)
29859    }
29860}
29861impl From<GroupingSets> for GroupBy {
29862    #[inline]
29863    fn from(node: GroupingSets) -> GroupBy {
29864        GroupBy::GroupingSets(node)
29865    }
29866}
29867impl AstNode for JoinType {
29868    #[inline]
29869    fn can_cast(kind: SyntaxKind) -> bool {
29870        matches!(
29871            kind,
29872            SyntaxKind::JOIN_CROSS
29873                | SyntaxKind::JOIN_FULL
29874                | SyntaxKind::JOIN_INNER
29875                | SyntaxKind::JOIN_LEFT
29876                | SyntaxKind::JOIN_RIGHT
29877        )
29878    }
29879    #[inline]
29880    fn cast(syntax: SyntaxNode) -> Option<Self> {
29881        let res = match syntax.kind() {
29882            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
29883            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
29884            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
29885            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
29886            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
29887            _ => {
29888                return None;
29889            }
29890        };
29891        Some(res)
29892    }
29893    #[inline]
29894    fn syntax(&self) -> &SyntaxNode {
29895        match self {
29896            JoinType::JoinCross(it) => &it.syntax,
29897            JoinType::JoinFull(it) => &it.syntax,
29898            JoinType::JoinInner(it) => &it.syntax,
29899            JoinType::JoinLeft(it) => &it.syntax,
29900            JoinType::JoinRight(it) => &it.syntax,
29901        }
29902    }
29903}
29904impl From<JoinCross> for JoinType {
29905    #[inline]
29906    fn from(node: JoinCross) -> JoinType {
29907        JoinType::JoinCross(node)
29908    }
29909}
29910impl From<JoinFull> for JoinType {
29911    #[inline]
29912    fn from(node: JoinFull) -> JoinType {
29913        JoinType::JoinFull(node)
29914    }
29915}
29916impl From<JoinInner> for JoinType {
29917    #[inline]
29918    fn from(node: JoinInner) -> JoinType {
29919        JoinType::JoinInner(node)
29920    }
29921}
29922impl From<JoinLeft> for JoinType {
29923    #[inline]
29924    fn from(node: JoinLeft) -> JoinType {
29925        JoinType::JoinLeft(node)
29926    }
29927}
29928impl From<JoinRight> for JoinType {
29929    #[inline]
29930    fn from(node: JoinRight) -> JoinType {
29931        JoinType::JoinRight(node)
29932    }
29933}
29934impl AstNode for JsonBehavior {
29935    #[inline]
29936    fn can_cast(kind: SyntaxKind) -> bool {
29937        matches!(
29938            kind,
29939            SyntaxKind::JSON_BEHAVIOR_DEFAULT
29940                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
29941                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
29942                | SyntaxKind::JSON_BEHAVIOR_ERROR
29943                | SyntaxKind::JSON_BEHAVIOR_FALSE
29944                | SyntaxKind::JSON_BEHAVIOR_NULL
29945                | SyntaxKind::JSON_BEHAVIOR_TRUE
29946                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
29947        )
29948    }
29949    #[inline]
29950    fn cast(syntax: SyntaxNode) -> Option<Self> {
29951        let res = match syntax.kind() {
29952            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
29953                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
29954            }
29955            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
29956                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
29957            }
29958            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
29959                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
29960            }
29961            SyntaxKind::JSON_BEHAVIOR_ERROR => {
29962                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
29963            }
29964            SyntaxKind::JSON_BEHAVIOR_FALSE => {
29965                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
29966            }
29967            SyntaxKind::JSON_BEHAVIOR_NULL => {
29968                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
29969            }
29970            SyntaxKind::JSON_BEHAVIOR_TRUE => {
29971                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
29972            }
29973            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
29974                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
29975            }
29976            _ => {
29977                return None;
29978            }
29979        };
29980        Some(res)
29981    }
29982    #[inline]
29983    fn syntax(&self) -> &SyntaxNode {
29984        match self {
29985            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
29986            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
29987            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
29988            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
29989            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
29990            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
29991            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
29992            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
29993        }
29994    }
29995}
29996impl From<JsonBehaviorDefault> for JsonBehavior {
29997    #[inline]
29998    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
29999        JsonBehavior::JsonBehaviorDefault(node)
30000    }
30001}
30002impl From<JsonBehaviorEmptyArray> for JsonBehavior {
30003    #[inline]
30004    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
30005        JsonBehavior::JsonBehaviorEmptyArray(node)
30006    }
30007}
30008impl From<JsonBehaviorEmptyObject> for JsonBehavior {
30009    #[inline]
30010    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
30011        JsonBehavior::JsonBehaviorEmptyObject(node)
30012    }
30013}
30014impl From<JsonBehaviorError> for JsonBehavior {
30015    #[inline]
30016    fn from(node: JsonBehaviorError) -> JsonBehavior {
30017        JsonBehavior::JsonBehaviorError(node)
30018    }
30019}
30020impl From<JsonBehaviorFalse> for JsonBehavior {
30021    #[inline]
30022    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
30023        JsonBehavior::JsonBehaviorFalse(node)
30024    }
30025}
30026impl From<JsonBehaviorNull> for JsonBehavior {
30027    #[inline]
30028    fn from(node: JsonBehaviorNull) -> JsonBehavior {
30029        JsonBehavior::JsonBehaviorNull(node)
30030    }
30031}
30032impl From<JsonBehaviorTrue> for JsonBehavior {
30033    #[inline]
30034    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
30035        JsonBehavior::JsonBehaviorTrue(node)
30036    }
30037}
30038impl From<JsonBehaviorUnknown> for JsonBehavior {
30039    #[inline]
30040    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
30041        JsonBehavior::JsonBehaviorUnknown(node)
30042    }
30043}
30044impl AstNode for MatchType {
30045    #[inline]
30046    fn can_cast(kind: SyntaxKind) -> bool {
30047        matches!(
30048            kind,
30049            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
30050        )
30051    }
30052    #[inline]
30053    fn cast(syntax: SyntaxNode) -> Option<Self> {
30054        let res = match syntax.kind() {
30055            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
30056            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
30057            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
30058            _ => {
30059                return None;
30060            }
30061        };
30062        Some(res)
30063    }
30064    #[inline]
30065    fn syntax(&self) -> &SyntaxNode {
30066        match self {
30067            MatchType::MatchFull(it) => &it.syntax,
30068            MatchType::MatchPartial(it) => &it.syntax,
30069            MatchType::MatchSimple(it) => &it.syntax,
30070        }
30071    }
30072}
30073impl From<MatchFull> for MatchType {
30074    #[inline]
30075    fn from(node: MatchFull) -> MatchType {
30076        MatchType::MatchFull(node)
30077    }
30078}
30079impl From<MatchPartial> for MatchType {
30080    #[inline]
30081    fn from(node: MatchPartial) -> MatchType {
30082        MatchType::MatchPartial(node)
30083    }
30084}
30085impl From<MatchSimple> for MatchType {
30086    #[inline]
30087    fn from(node: MatchSimple) -> MatchType {
30088        MatchType::MatchSimple(node)
30089    }
30090}
30091impl AstNode for MergeAction {
30092    #[inline]
30093    fn can_cast(kind: SyntaxKind) -> bool {
30094        matches!(
30095            kind,
30096            SyntaxKind::MERGE_DELETE
30097                | SyntaxKind::MERGE_DO_NOTHING
30098                | SyntaxKind::MERGE_INSERT
30099                | SyntaxKind::MERGE_UPDATE
30100        )
30101    }
30102    #[inline]
30103    fn cast(syntax: SyntaxNode) -> Option<Self> {
30104        let res = match syntax.kind() {
30105            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
30106            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
30107            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
30108            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
30109            _ => {
30110                return None;
30111            }
30112        };
30113        Some(res)
30114    }
30115    #[inline]
30116    fn syntax(&self) -> &SyntaxNode {
30117        match self {
30118            MergeAction::MergeDelete(it) => &it.syntax,
30119            MergeAction::MergeDoNothing(it) => &it.syntax,
30120            MergeAction::MergeInsert(it) => &it.syntax,
30121            MergeAction::MergeUpdate(it) => &it.syntax,
30122        }
30123    }
30124}
30125impl From<MergeDelete> for MergeAction {
30126    #[inline]
30127    fn from(node: MergeDelete) -> MergeAction {
30128        MergeAction::MergeDelete(node)
30129    }
30130}
30131impl From<MergeDoNothing> for MergeAction {
30132    #[inline]
30133    fn from(node: MergeDoNothing) -> MergeAction {
30134        MergeAction::MergeDoNothing(node)
30135    }
30136}
30137impl From<MergeInsert> for MergeAction {
30138    #[inline]
30139    fn from(node: MergeInsert) -> MergeAction {
30140        MergeAction::MergeInsert(node)
30141    }
30142}
30143impl From<MergeUpdate> for MergeAction {
30144    #[inline]
30145    fn from(node: MergeUpdate) -> MergeAction {
30146        MergeAction::MergeUpdate(node)
30147    }
30148}
30149impl AstNode for MergeWhenClause {
30150    #[inline]
30151    fn can_cast(kind: SyntaxKind) -> bool {
30152        matches!(
30153            kind,
30154            SyntaxKind::MERGE_WHEN_MATCHED
30155                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
30156                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
30157        )
30158    }
30159    #[inline]
30160    fn cast(syntax: SyntaxNode) -> Option<Self> {
30161        let res = match syntax.kind() {
30162            SyntaxKind::MERGE_WHEN_MATCHED => {
30163                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
30164            }
30165            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
30166                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
30167            }
30168            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
30169                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
30170            }
30171            _ => {
30172                return None;
30173            }
30174        };
30175        Some(res)
30176    }
30177    #[inline]
30178    fn syntax(&self) -> &SyntaxNode {
30179        match self {
30180            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
30181            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
30182            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
30183        }
30184    }
30185}
30186impl From<MergeWhenMatched> for MergeWhenClause {
30187    #[inline]
30188    fn from(node: MergeWhenMatched) -> MergeWhenClause {
30189        MergeWhenClause::MergeWhenMatched(node)
30190    }
30191}
30192impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
30193    #[inline]
30194    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
30195        MergeWhenClause::MergeWhenNotMatchedSource(node)
30196    }
30197}
30198impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
30199    #[inline]
30200    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
30201        MergeWhenClause::MergeWhenNotMatchedTarget(node)
30202    }
30203}
30204impl AstNode for OnCommitAction {
30205    #[inline]
30206    fn can_cast(kind: SyntaxKind) -> bool {
30207        matches!(
30208            kind,
30209            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
30210        )
30211    }
30212    #[inline]
30213    fn cast(syntax: SyntaxNode) -> Option<Self> {
30214        let res = match syntax.kind() {
30215            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
30216            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
30217            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
30218            _ => {
30219                return None;
30220            }
30221        };
30222        Some(res)
30223    }
30224    #[inline]
30225    fn syntax(&self) -> &SyntaxNode {
30226        match self {
30227            OnCommitAction::DeleteRows(it) => &it.syntax,
30228            OnCommitAction::Drop(it) => &it.syntax,
30229            OnCommitAction::PreserveRows(it) => &it.syntax,
30230        }
30231    }
30232}
30233impl From<DeleteRows> for OnCommitAction {
30234    #[inline]
30235    fn from(node: DeleteRows) -> OnCommitAction {
30236        OnCommitAction::DeleteRows(node)
30237    }
30238}
30239impl From<Drop> for OnCommitAction {
30240    #[inline]
30241    fn from(node: Drop) -> OnCommitAction {
30242        OnCommitAction::Drop(node)
30243    }
30244}
30245impl From<PreserveRows> for OnCommitAction {
30246    #[inline]
30247    fn from(node: PreserveRows) -> OnCommitAction {
30248        OnCommitAction::PreserveRows(node)
30249    }
30250}
30251impl AstNode for ParamMode {
30252    #[inline]
30253    fn can_cast(kind: SyntaxKind) -> bool {
30254        matches!(
30255            kind,
30256            SyntaxKind::PARAM_IN
30257                | SyntaxKind::PARAM_IN_OUT
30258                | SyntaxKind::PARAM_OUT
30259                | SyntaxKind::PARAM_VARIADIC
30260        )
30261    }
30262    #[inline]
30263    fn cast(syntax: SyntaxNode) -> Option<Self> {
30264        let res = match syntax.kind() {
30265            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
30266            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
30267            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
30268            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
30269            _ => {
30270                return None;
30271            }
30272        };
30273        Some(res)
30274    }
30275    #[inline]
30276    fn syntax(&self) -> &SyntaxNode {
30277        match self {
30278            ParamMode::ParamIn(it) => &it.syntax,
30279            ParamMode::ParamInOut(it) => &it.syntax,
30280            ParamMode::ParamOut(it) => &it.syntax,
30281            ParamMode::ParamVariadic(it) => &it.syntax,
30282        }
30283    }
30284}
30285impl From<ParamIn> for ParamMode {
30286    #[inline]
30287    fn from(node: ParamIn) -> ParamMode {
30288        ParamMode::ParamIn(node)
30289    }
30290}
30291impl From<ParamInOut> for ParamMode {
30292    #[inline]
30293    fn from(node: ParamInOut) -> ParamMode {
30294        ParamMode::ParamInOut(node)
30295    }
30296}
30297impl From<ParamOut> for ParamMode {
30298    #[inline]
30299    fn from(node: ParamOut) -> ParamMode {
30300        ParamMode::ParamOut(node)
30301    }
30302}
30303impl From<ParamVariadic> for ParamMode {
30304    #[inline]
30305    fn from(node: ParamVariadic) -> ParamMode {
30306        ParamMode::ParamVariadic(node)
30307    }
30308}
30309impl AstNode for PartitionType {
30310    #[inline]
30311    fn can_cast(kind: SyntaxKind) -> bool {
30312        matches!(
30313            kind,
30314            SyntaxKind::PARTITION_DEFAULT
30315                | SyntaxKind::PARTITION_FOR_VALUES_FROM
30316                | SyntaxKind::PARTITION_FOR_VALUES_IN
30317                | SyntaxKind::PARTITION_FOR_VALUES_WITH
30318        )
30319    }
30320    #[inline]
30321    fn cast(syntax: SyntaxNode) -> Option<Self> {
30322        let res = match syntax.kind() {
30323            SyntaxKind::PARTITION_DEFAULT => {
30324                PartitionType::PartitionDefault(PartitionDefault { syntax })
30325            }
30326            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
30327                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
30328            }
30329            SyntaxKind::PARTITION_FOR_VALUES_IN => {
30330                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
30331            }
30332            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
30333                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
30334            }
30335            _ => {
30336                return None;
30337            }
30338        };
30339        Some(res)
30340    }
30341    #[inline]
30342    fn syntax(&self) -> &SyntaxNode {
30343        match self {
30344            PartitionType::PartitionDefault(it) => &it.syntax,
30345            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
30346            PartitionType::PartitionForValuesIn(it) => &it.syntax,
30347            PartitionType::PartitionForValuesWith(it) => &it.syntax,
30348        }
30349    }
30350}
30351impl From<PartitionDefault> for PartitionType {
30352    #[inline]
30353    fn from(node: PartitionDefault) -> PartitionType {
30354        PartitionType::PartitionDefault(node)
30355    }
30356}
30357impl From<PartitionForValuesFrom> for PartitionType {
30358    #[inline]
30359    fn from(node: PartitionForValuesFrom) -> PartitionType {
30360        PartitionType::PartitionForValuesFrom(node)
30361    }
30362}
30363impl From<PartitionForValuesIn> for PartitionType {
30364    #[inline]
30365    fn from(node: PartitionForValuesIn) -> PartitionType {
30366        PartitionType::PartitionForValuesIn(node)
30367    }
30368}
30369impl From<PartitionForValuesWith> for PartitionType {
30370    #[inline]
30371    fn from(node: PartitionForValuesWith) -> PartitionType {
30372        PartitionType::PartitionForValuesWith(node)
30373    }
30374}
30375impl AstNode for PreparableStmt {
30376    #[inline]
30377    fn can_cast(kind: SyntaxKind) -> bool {
30378        matches!(
30379            kind,
30380            SyntaxKind::COMPOUND_SELECT
30381                | SyntaxKind::DELETE
30382                | SyntaxKind::INSERT
30383                | SyntaxKind::MERGE
30384                | SyntaxKind::SELECT
30385                | SyntaxKind::SELECT_INTO
30386                | SyntaxKind::TABLE
30387                | SyntaxKind::UPDATE
30388                | SyntaxKind::VALUES
30389        )
30390    }
30391    #[inline]
30392    fn cast(syntax: SyntaxNode) -> Option<Self> {
30393        let res = match syntax.kind() {
30394            SyntaxKind::COMPOUND_SELECT => {
30395                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
30396            }
30397            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
30398            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
30399            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
30400            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
30401            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
30402            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
30403            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
30404            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
30405            _ => {
30406                return None;
30407            }
30408        };
30409        Some(res)
30410    }
30411    #[inline]
30412    fn syntax(&self) -> &SyntaxNode {
30413        match self {
30414            PreparableStmt::CompoundSelect(it) => &it.syntax,
30415            PreparableStmt::Delete(it) => &it.syntax,
30416            PreparableStmt::Insert(it) => &it.syntax,
30417            PreparableStmt::Merge(it) => &it.syntax,
30418            PreparableStmt::Select(it) => &it.syntax,
30419            PreparableStmt::SelectInto(it) => &it.syntax,
30420            PreparableStmt::Table(it) => &it.syntax,
30421            PreparableStmt::Update(it) => &it.syntax,
30422            PreparableStmt::Values(it) => &it.syntax,
30423        }
30424    }
30425}
30426impl From<CompoundSelect> for PreparableStmt {
30427    #[inline]
30428    fn from(node: CompoundSelect) -> PreparableStmt {
30429        PreparableStmt::CompoundSelect(node)
30430    }
30431}
30432impl From<Delete> for PreparableStmt {
30433    #[inline]
30434    fn from(node: Delete) -> PreparableStmt {
30435        PreparableStmt::Delete(node)
30436    }
30437}
30438impl From<Insert> for PreparableStmt {
30439    #[inline]
30440    fn from(node: Insert) -> PreparableStmt {
30441        PreparableStmt::Insert(node)
30442    }
30443}
30444impl From<Merge> for PreparableStmt {
30445    #[inline]
30446    fn from(node: Merge) -> PreparableStmt {
30447        PreparableStmt::Merge(node)
30448    }
30449}
30450impl From<Select> for PreparableStmt {
30451    #[inline]
30452    fn from(node: Select) -> PreparableStmt {
30453        PreparableStmt::Select(node)
30454    }
30455}
30456impl From<SelectInto> for PreparableStmt {
30457    #[inline]
30458    fn from(node: SelectInto) -> PreparableStmt {
30459        PreparableStmt::SelectInto(node)
30460    }
30461}
30462impl From<Table> for PreparableStmt {
30463    #[inline]
30464    fn from(node: Table) -> PreparableStmt {
30465        PreparableStmt::Table(node)
30466    }
30467}
30468impl From<Update> for PreparableStmt {
30469    #[inline]
30470    fn from(node: Update) -> PreparableStmt {
30471        PreparableStmt::Update(node)
30472    }
30473}
30474impl From<Values> for PreparableStmt {
30475    #[inline]
30476    fn from(node: Values) -> PreparableStmt {
30477        PreparableStmt::Values(node)
30478    }
30479}
30480impl AstNode for RefAction {
30481    #[inline]
30482    fn can_cast(kind: SyntaxKind) -> bool {
30483        matches!(
30484            kind,
30485            SyntaxKind::CASCADE
30486                | SyntaxKind::NO_ACTION
30487                | SyntaxKind::RESTRICT
30488                | SyntaxKind::SET_DEFAULT_COLUMNS
30489                | SyntaxKind::SET_NULL_COLUMNS
30490        )
30491    }
30492    #[inline]
30493    fn cast(syntax: SyntaxNode) -> Option<Self> {
30494        let res = match syntax.kind() {
30495            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
30496            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
30497            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
30498            SyntaxKind::SET_DEFAULT_COLUMNS => {
30499                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
30500            }
30501            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
30502            _ => {
30503                return None;
30504            }
30505        };
30506        Some(res)
30507    }
30508    #[inline]
30509    fn syntax(&self) -> &SyntaxNode {
30510        match self {
30511            RefAction::Cascade(it) => &it.syntax,
30512            RefAction::NoAction(it) => &it.syntax,
30513            RefAction::Restrict(it) => &it.syntax,
30514            RefAction::SetDefaultColumns(it) => &it.syntax,
30515            RefAction::SetNullColumns(it) => &it.syntax,
30516        }
30517    }
30518}
30519impl From<Cascade> for RefAction {
30520    #[inline]
30521    fn from(node: Cascade) -> RefAction {
30522        RefAction::Cascade(node)
30523    }
30524}
30525impl From<NoAction> for RefAction {
30526    #[inline]
30527    fn from(node: NoAction) -> RefAction {
30528        RefAction::NoAction(node)
30529    }
30530}
30531impl From<Restrict> for RefAction {
30532    #[inline]
30533    fn from(node: Restrict) -> RefAction {
30534        RefAction::Restrict(node)
30535    }
30536}
30537impl From<SetDefaultColumns> for RefAction {
30538    #[inline]
30539    fn from(node: SetDefaultColumns) -> RefAction {
30540        RefAction::SetDefaultColumns(node)
30541    }
30542}
30543impl From<SetNullColumns> for RefAction {
30544    #[inline]
30545    fn from(node: SetNullColumns) -> RefAction {
30546        RefAction::SetNullColumns(node)
30547    }
30548}
30549impl AstNode for SchemaElement {
30550    #[inline]
30551    fn can_cast(kind: SyntaxKind) -> bool {
30552        matches!(
30553            kind,
30554            SyntaxKind::CREATE_INDEX
30555                | SyntaxKind::CREATE_SEQUENCE
30556                | SyntaxKind::CREATE_TABLE
30557                | SyntaxKind::CREATE_TRIGGER
30558                | SyntaxKind::CREATE_VIEW
30559                | SyntaxKind::GRANT
30560        )
30561    }
30562    #[inline]
30563    fn cast(syntax: SyntaxNode) -> Option<Self> {
30564        let res = match syntax.kind() {
30565            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
30566            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
30567            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
30568            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
30569            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
30570            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
30571            _ => {
30572                return None;
30573            }
30574        };
30575        Some(res)
30576    }
30577    #[inline]
30578    fn syntax(&self) -> &SyntaxNode {
30579        match self {
30580            SchemaElement::CreateIndex(it) => &it.syntax,
30581            SchemaElement::CreateSequence(it) => &it.syntax,
30582            SchemaElement::CreateTable(it) => &it.syntax,
30583            SchemaElement::CreateTrigger(it) => &it.syntax,
30584            SchemaElement::CreateView(it) => &it.syntax,
30585            SchemaElement::Grant(it) => &it.syntax,
30586        }
30587    }
30588}
30589impl From<CreateIndex> for SchemaElement {
30590    #[inline]
30591    fn from(node: CreateIndex) -> SchemaElement {
30592        SchemaElement::CreateIndex(node)
30593    }
30594}
30595impl From<CreateSequence> for SchemaElement {
30596    #[inline]
30597    fn from(node: CreateSequence) -> SchemaElement {
30598        SchemaElement::CreateSequence(node)
30599    }
30600}
30601impl From<CreateTable> for SchemaElement {
30602    #[inline]
30603    fn from(node: CreateTable) -> SchemaElement {
30604        SchemaElement::CreateTable(node)
30605    }
30606}
30607impl From<CreateTrigger> for SchemaElement {
30608    #[inline]
30609    fn from(node: CreateTrigger) -> SchemaElement {
30610        SchemaElement::CreateTrigger(node)
30611    }
30612}
30613impl From<CreateView> for SchemaElement {
30614    #[inline]
30615    fn from(node: CreateView) -> SchemaElement {
30616        SchemaElement::CreateView(node)
30617    }
30618}
30619impl From<Grant> for SchemaElement {
30620    #[inline]
30621    fn from(node: Grant) -> SchemaElement {
30622        SchemaElement::Grant(node)
30623    }
30624}
30625impl AstNode for SelectVariant {
30626    #[inline]
30627    fn can_cast(kind: SyntaxKind) -> bool {
30628        matches!(
30629            kind,
30630            SyntaxKind::COMPOUND_SELECT
30631                | SyntaxKind::PAREN_SELECT
30632                | SyntaxKind::SELECT
30633                | SyntaxKind::SELECT_INTO
30634                | SyntaxKind::TABLE
30635                | SyntaxKind::VALUES
30636        )
30637    }
30638    #[inline]
30639    fn cast(syntax: SyntaxNode) -> Option<Self> {
30640        let res = match syntax.kind() {
30641            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
30642            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
30643            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
30644            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
30645            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
30646            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
30647            _ => {
30648                return None;
30649            }
30650        };
30651        Some(res)
30652    }
30653    #[inline]
30654    fn syntax(&self) -> &SyntaxNode {
30655        match self {
30656            SelectVariant::CompoundSelect(it) => &it.syntax,
30657            SelectVariant::ParenSelect(it) => &it.syntax,
30658            SelectVariant::Select(it) => &it.syntax,
30659            SelectVariant::SelectInto(it) => &it.syntax,
30660            SelectVariant::Table(it) => &it.syntax,
30661            SelectVariant::Values(it) => &it.syntax,
30662        }
30663    }
30664}
30665impl From<CompoundSelect> for SelectVariant {
30666    #[inline]
30667    fn from(node: CompoundSelect) -> SelectVariant {
30668        SelectVariant::CompoundSelect(node)
30669    }
30670}
30671impl From<ParenSelect> for SelectVariant {
30672    #[inline]
30673    fn from(node: ParenSelect) -> SelectVariant {
30674        SelectVariant::ParenSelect(node)
30675    }
30676}
30677impl From<Select> for SelectVariant {
30678    #[inline]
30679    fn from(node: Select) -> SelectVariant {
30680        SelectVariant::Select(node)
30681    }
30682}
30683impl From<SelectInto> for SelectVariant {
30684    #[inline]
30685    fn from(node: SelectInto) -> SelectVariant {
30686        SelectVariant::SelectInto(node)
30687    }
30688}
30689impl From<Table> for SelectVariant {
30690    #[inline]
30691    fn from(node: Table) -> SelectVariant {
30692        SelectVariant::Table(node)
30693    }
30694}
30695impl From<Values> for SelectVariant {
30696    #[inline]
30697    fn from(node: Values) -> SelectVariant {
30698        SelectVariant::Values(node)
30699    }
30700}
30701impl AstNode for SetColumn {
30702    #[inline]
30703    fn can_cast(kind: SyntaxKind) -> bool {
30704        matches!(
30705            kind,
30706            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
30707        )
30708    }
30709    #[inline]
30710    fn cast(syntax: SyntaxNode) -> Option<Self> {
30711        let res = match syntax.kind() {
30712            SyntaxKind::SET_MULTIPLE_COLUMNS => {
30713                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
30714            }
30715            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
30716            _ => {
30717                return None;
30718            }
30719        };
30720        Some(res)
30721    }
30722    #[inline]
30723    fn syntax(&self) -> &SyntaxNode {
30724        match self {
30725            SetColumn::SetMultipleColumns(it) => &it.syntax,
30726            SetColumn::SetSingleColumn(it) => &it.syntax,
30727        }
30728    }
30729}
30730impl From<SetMultipleColumns> for SetColumn {
30731    #[inline]
30732    fn from(node: SetMultipleColumns) -> SetColumn {
30733        SetColumn::SetMultipleColumns(node)
30734    }
30735}
30736impl From<SetSingleColumn> for SetColumn {
30737    #[inline]
30738    fn from(node: SetSingleColumn) -> SetColumn {
30739        SetColumn::SetSingleColumn(node)
30740    }
30741}
30742impl AstNode for Stmt {
30743    #[inline]
30744    fn can_cast(kind: SyntaxKind) -> bool {
30745        matches!(
30746            kind,
30747            SyntaxKind::ALTER_AGGREGATE
30748                | SyntaxKind::ALTER_COLLATION
30749                | SyntaxKind::ALTER_CONVERSION
30750                | SyntaxKind::ALTER_DATABASE
30751                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
30752                | SyntaxKind::ALTER_DOMAIN
30753                | SyntaxKind::ALTER_EVENT_TRIGGER
30754                | SyntaxKind::ALTER_EXTENSION
30755                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
30756                | SyntaxKind::ALTER_FOREIGN_TABLE
30757                | SyntaxKind::ALTER_FUNCTION
30758                | SyntaxKind::ALTER_GROUP
30759                | SyntaxKind::ALTER_INDEX
30760                | SyntaxKind::ALTER_LANGUAGE
30761                | SyntaxKind::ALTER_LARGE_OBJECT
30762                | SyntaxKind::ALTER_MATERIALIZED_VIEW
30763                | SyntaxKind::ALTER_OPERATOR
30764                | SyntaxKind::ALTER_OPERATOR_CLASS
30765                | SyntaxKind::ALTER_OPERATOR_FAMILY
30766                | SyntaxKind::ALTER_POLICY
30767                | SyntaxKind::ALTER_PROCEDURE
30768                | SyntaxKind::ALTER_PUBLICATION
30769                | SyntaxKind::ALTER_ROLE
30770                | SyntaxKind::ALTER_ROUTINE
30771                | SyntaxKind::ALTER_RULE
30772                | SyntaxKind::ALTER_SCHEMA
30773                | SyntaxKind::ALTER_SEQUENCE
30774                | SyntaxKind::ALTER_SERVER
30775                | SyntaxKind::ALTER_STATISTICS
30776                | SyntaxKind::ALTER_SUBSCRIPTION
30777                | SyntaxKind::ALTER_SYSTEM
30778                | SyntaxKind::ALTER_TABLE
30779                | SyntaxKind::ALTER_TABLESPACE
30780                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
30781                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
30782                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
30783                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
30784                | SyntaxKind::ALTER_TRIGGER
30785                | SyntaxKind::ALTER_TYPE
30786                | SyntaxKind::ALTER_USER
30787                | SyntaxKind::ALTER_USER_MAPPING
30788                | SyntaxKind::ALTER_VIEW
30789                | SyntaxKind::ANALYZE
30790                | SyntaxKind::BEGIN
30791                | SyntaxKind::CALL
30792                | SyntaxKind::CHECKPOINT
30793                | SyntaxKind::CLOSE
30794                | SyntaxKind::CLUSTER
30795                | SyntaxKind::COMMENT_ON
30796                | SyntaxKind::COMMIT
30797                | SyntaxKind::COPY
30798                | SyntaxKind::CREATE_ACCESS_METHOD
30799                | SyntaxKind::CREATE_AGGREGATE
30800                | SyntaxKind::CREATE_CAST
30801                | SyntaxKind::CREATE_COLLATION
30802                | SyntaxKind::CREATE_CONVERSION
30803                | SyntaxKind::CREATE_DATABASE
30804                | SyntaxKind::CREATE_DOMAIN
30805                | SyntaxKind::CREATE_EVENT_TRIGGER
30806                | SyntaxKind::CREATE_EXTENSION
30807                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
30808                | SyntaxKind::CREATE_FOREIGN_TABLE
30809                | SyntaxKind::CREATE_FUNCTION
30810                | SyntaxKind::CREATE_GROUP
30811                | SyntaxKind::CREATE_INDEX
30812                | SyntaxKind::CREATE_LANGUAGE
30813                | SyntaxKind::CREATE_MATERIALIZED_VIEW
30814                | SyntaxKind::CREATE_OPERATOR
30815                | SyntaxKind::CREATE_OPERATOR_CLASS
30816                | SyntaxKind::CREATE_OPERATOR_FAMILY
30817                | SyntaxKind::CREATE_POLICY
30818                | SyntaxKind::CREATE_PROCEDURE
30819                | SyntaxKind::CREATE_PUBLICATION
30820                | SyntaxKind::CREATE_ROLE
30821                | SyntaxKind::CREATE_RULE
30822                | SyntaxKind::CREATE_SCHEMA
30823                | SyntaxKind::CREATE_SEQUENCE
30824                | SyntaxKind::CREATE_SERVER
30825                | SyntaxKind::CREATE_STATISTICS
30826                | SyntaxKind::CREATE_SUBSCRIPTION
30827                | SyntaxKind::CREATE_TABLE
30828                | SyntaxKind::CREATE_TABLE_AS
30829                | SyntaxKind::CREATE_TABLESPACE
30830                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
30831                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
30832                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
30833                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
30834                | SyntaxKind::CREATE_TRANSFORM
30835                | SyntaxKind::CREATE_TRIGGER
30836                | SyntaxKind::CREATE_TYPE
30837                | SyntaxKind::CREATE_USER
30838                | SyntaxKind::CREATE_USER_MAPPING
30839                | SyntaxKind::CREATE_VIEW
30840                | SyntaxKind::DEALLOCATE
30841                | SyntaxKind::DECLARE
30842                | SyntaxKind::DELETE
30843                | SyntaxKind::DISCARD
30844                | SyntaxKind::DO
30845                | SyntaxKind::DROP_ACCESS_METHOD
30846                | SyntaxKind::DROP_AGGREGATE
30847                | SyntaxKind::DROP_CAST
30848                | SyntaxKind::DROP_COLLATION
30849                | SyntaxKind::DROP_CONVERSION
30850                | SyntaxKind::DROP_DATABASE
30851                | SyntaxKind::DROP_DOMAIN
30852                | SyntaxKind::DROP_EVENT_TRIGGER
30853                | SyntaxKind::DROP_EXTENSION
30854                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
30855                | SyntaxKind::DROP_FOREIGN_TABLE
30856                | SyntaxKind::DROP_FUNCTION
30857                | SyntaxKind::DROP_GROUP
30858                | SyntaxKind::DROP_INDEX
30859                | SyntaxKind::DROP_LANGUAGE
30860                | SyntaxKind::DROP_MATERIALIZED_VIEW
30861                | SyntaxKind::DROP_OPERATOR
30862                | SyntaxKind::DROP_OPERATOR_CLASS
30863                | SyntaxKind::DROP_OPERATOR_FAMILY
30864                | SyntaxKind::DROP_OWNED
30865                | SyntaxKind::DROP_POLICY
30866                | SyntaxKind::DROP_PROCEDURE
30867                | SyntaxKind::DROP_PUBLICATION
30868                | SyntaxKind::DROP_ROLE
30869                | SyntaxKind::DROP_ROUTINE
30870                | SyntaxKind::DROP_RULE
30871                | SyntaxKind::DROP_SCHEMA
30872                | SyntaxKind::DROP_SEQUENCE
30873                | SyntaxKind::DROP_SERVER
30874                | SyntaxKind::DROP_STATISTICS
30875                | SyntaxKind::DROP_SUBSCRIPTION
30876                | SyntaxKind::DROP_TABLE
30877                | SyntaxKind::DROP_TABLESPACE
30878                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
30879                | SyntaxKind::DROP_TEXT_SEARCH_DICT
30880                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
30881                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
30882                | SyntaxKind::DROP_TRANSFORM
30883                | SyntaxKind::DROP_TRIGGER
30884                | SyntaxKind::DROP_TYPE
30885                | SyntaxKind::DROP_USER
30886                | SyntaxKind::DROP_USER_MAPPING
30887                | SyntaxKind::DROP_VIEW
30888                | SyntaxKind::EXECUTE
30889                | SyntaxKind::EXPLAIN
30890                | SyntaxKind::FETCH
30891                | SyntaxKind::GRANT
30892                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
30893                | SyntaxKind::INSERT
30894                | SyntaxKind::LISTEN
30895                | SyntaxKind::LOAD
30896                | SyntaxKind::LOCK
30897                | SyntaxKind::MERGE
30898                | SyntaxKind::MOVE
30899                | SyntaxKind::NOTIFY
30900                | SyntaxKind::PAREN_SELECT
30901                | SyntaxKind::PREPARE
30902                | SyntaxKind::PREPARE_TRANSACTION
30903                | SyntaxKind::REASSIGN
30904                | SyntaxKind::REFRESH
30905                | SyntaxKind::REINDEX
30906                | SyntaxKind::RELEASE_SAVEPOINT
30907                | SyntaxKind::RESET
30908                | SyntaxKind::RESET_SESSION_AUTH
30909                | SyntaxKind::REVOKE
30910                | SyntaxKind::ROLLBACK
30911                | SyntaxKind::SAVEPOINT
30912                | SyntaxKind::SECURITY_LABEL
30913                | SyntaxKind::SELECT
30914                | SyntaxKind::SELECT_INTO
30915                | SyntaxKind::SET
30916                | SyntaxKind::SET_CONSTRAINTS
30917                | SyntaxKind::SET_ROLE
30918                | SyntaxKind::SET_SESSION_AUTH
30919                | SyntaxKind::SET_TRANSACTION
30920                | SyntaxKind::SHOW
30921                | SyntaxKind::TABLE
30922                | SyntaxKind::TRUNCATE
30923                | SyntaxKind::UNLISTEN
30924                | SyntaxKind::UPDATE
30925                | SyntaxKind::VACUUM
30926                | SyntaxKind::VALUES
30927        )
30928    }
30929    #[inline]
30930    fn cast(syntax: SyntaxNode) -> Option<Self> {
30931        let res = match syntax.kind() {
30932            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
30933            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
30934            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
30935            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
30936            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
30937                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
30938            }
30939            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
30940            SyntaxKind::ALTER_EVENT_TRIGGER => {
30941                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
30942            }
30943            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
30944            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
30945                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
30946            }
30947            SyntaxKind::ALTER_FOREIGN_TABLE => {
30948                Stmt::AlterForeignTable(AlterForeignTable { syntax })
30949            }
30950            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
30951            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
30952            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
30953            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
30954            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
30955            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
30956                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
30957            }
30958            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
30959            SyntaxKind::ALTER_OPERATOR_CLASS => {
30960                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
30961            }
30962            SyntaxKind::ALTER_OPERATOR_FAMILY => {
30963                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
30964            }
30965            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
30966            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
30967            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
30968            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
30969            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
30970            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
30971            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
30972            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
30973            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
30974            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
30975            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
30976            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
30977            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
30978            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
30979            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
30980                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
30981            }
30982            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
30983                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
30984            }
30985            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
30986                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
30987            }
30988            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
30989                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
30990            }
30991            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
30992            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
30993            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
30994            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
30995            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
30996            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
30997            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
30998            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
30999            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
31000            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
31001            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
31002            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
31003            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
31004            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
31005            SyntaxKind::CREATE_ACCESS_METHOD => {
31006                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
31007            }
31008            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
31009            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
31010            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
31011            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
31012            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
31013            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
31014            SyntaxKind::CREATE_EVENT_TRIGGER => {
31015                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
31016            }
31017            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
31018            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
31019                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
31020            }
31021            SyntaxKind::CREATE_FOREIGN_TABLE => {
31022                Stmt::CreateForeignTable(CreateForeignTable { syntax })
31023            }
31024            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
31025            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
31026            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
31027            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
31028            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
31029                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
31030            }
31031            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
31032            SyntaxKind::CREATE_OPERATOR_CLASS => {
31033                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
31034            }
31035            SyntaxKind::CREATE_OPERATOR_FAMILY => {
31036                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
31037            }
31038            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
31039            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
31040            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
31041            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
31042            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
31043            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
31044            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
31045            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
31046            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
31047            SyntaxKind::CREATE_SUBSCRIPTION => {
31048                Stmt::CreateSubscription(CreateSubscription { syntax })
31049            }
31050            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
31051            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
31052            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
31053            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
31054                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
31055            }
31056            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
31057                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
31058            }
31059            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
31060                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
31061            }
31062            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
31063                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
31064            }
31065            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
31066            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
31067            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
31068            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
31069            SyntaxKind::CREATE_USER_MAPPING => {
31070                Stmt::CreateUserMapping(CreateUserMapping { syntax })
31071            }
31072            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
31073            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
31074            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
31075            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
31076            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
31077            SyntaxKind::DO => Stmt::Do(Do { syntax }),
31078            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
31079            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
31080            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
31081            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
31082            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
31083            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
31084            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
31085            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
31086            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
31087            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
31088                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
31089            }
31090            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
31091            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
31092            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
31093            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
31094            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
31095            SyntaxKind::DROP_MATERIALIZED_VIEW => {
31096                Stmt::DropMaterializedView(DropMaterializedView { syntax })
31097            }
31098            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
31099            SyntaxKind::DROP_OPERATOR_CLASS => {
31100                Stmt::DropOperatorClass(DropOperatorClass { syntax })
31101            }
31102            SyntaxKind::DROP_OPERATOR_FAMILY => {
31103                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
31104            }
31105            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
31106            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
31107            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
31108            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
31109            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
31110            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
31111            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
31112            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
31113            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
31114            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
31115            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
31116            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
31117            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
31118            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
31119            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
31120                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
31121            }
31122            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
31123                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
31124            }
31125            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
31126                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
31127            }
31128            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
31129                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
31130            }
31131            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
31132            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
31133            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
31134            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
31135            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
31136            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
31137            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
31138            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
31139            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
31140            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
31141            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
31142                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
31143            }
31144            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
31145            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
31146            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
31147            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
31148            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
31149            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
31150            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
31151            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
31152            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
31153            SyntaxKind::PREPARE_TRANSACTION => {
31154                Stmt::PrepareTransaction(PrepareTransaction { syntax })
31155            }
31156            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
31157            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
31158            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
31159            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
31160            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
31161            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
31162            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
31163            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
31164            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
31165            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
31166            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
31167            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
31168            SyntaxKind::SET => Stmt::Set(Set { syntax }),
31169            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
31170            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
31171            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
31172            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
31173            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
31174            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
31175            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
31176            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
31177            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
31178            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
31179            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
31180            _ => {
31181                return None;
31182            }
31183        };
31184        Some(res)
31185    }
31186    #[inline]
31187    fn syntax(&self) -> &SyntaxNode {
31188        match self {
31189            Stmt::AlterAggregate(it) => &it.syntax,
31190            Stmt::AlterCollation(it) => &it.syntax,
31191            Stmt::AlterConversion(it) => &it.syntax,
31192            Stmt::AlterDatabase(it) => &it.syntax,
31193            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
31194            Stmt::AlterDomain(it) => &it.syntax,
31195            Stmt::AlterEventTrigger(it) => &it.syntax,
31196            Stmt::AlterExtension(it) => &it.syntax,
31197            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
31198            Stmt::AlterForeignTable(it) => &it.syntax,
31199            Stmt::AlterFunction(it) => &it.syntax,
31200            Stmt::AlterGroup(it) => &it.syntax,
31201            Stmt::AlterIndex(it) => &it.syntax,
31202            Stmt::AlterLanguage(it) => &it.syntax,
31203            Stmt::AlterLargeObject(it) => &it.syntax,
31204            Stmt::AlterMaterializedView(it) => &it.syntax,
31205            Stmt::AlterOperator(it) => &it.syntax,
31206            Stmt::AlterOperatorClass(it) => &it.syntax,
31207            Stmt::AlterOperatorFamily(it) => &it.syntax,
31208            Stmt::AlterPolicy(it) => &it.syntax,
31209            Stmt::AlterProcedure(it) => &it.syntax,
31210            Stmt::AlterPublication(it) => &it.syntax,
31211            Stmt::AlterRole(it) => &it.syntax,
31212            Stmt::AlterRoutine(it) => &it.syntax,
31213            Stmt::AlterRule(it) => &it.syntax,
31214            Stmt::AlterSchema(it) => &it.syntax,
31215            Stmt::AlterSequence(it) => &it.syntax,
31216            Stmt::AlterServer(it) => &it.syntax,
31217            Stmt::AlterStatistics(it) => &it.syntax,
31218            Stmt::AlterSubscription(it) => &it.syntax,
31219            Stmt::AlterSystem(it) => &it.syntax,
31220            Stmt::AlterTable(it) => &it.syntax,
31221            Stmt::AlterTablespace(it) => &it.syntax,
31222            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
31223            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
31224            Stmt::AlterTextSearchParser(it) => &it.syntax,
31225            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
31226            Stmt::AlterTrigger(it) => &it.syntax,
31227            Stmt::AlterType(it) => &it.syntax,
31228            Stmt::AlterUser(it) => &it.syntax,
31229            Stmt::AlterUserMapping(it) => &it.syntax,
31230            Stmt::AlterView(it) => &it.syntax,
31231            Stmt::Analyze(it) => &it.syntax,
31232            Stmt::Begin(it) => &it.syntax,
31233            Stmt::Call(it) => &it.syntax,
31234            Stmt::Checkpoint(it) => &it.syntax,
31235            Stmt::Close(it) => &it.syntax,
31236            Stmt::Cluster(it) => &it.syntax,
31237            Stmt::CommentOn(it) => &it.syntax,
31238            Stmt::Commit(it) => &it.syntax,
31239            Stmt::Copy(it) => &it.syntax,
31240            Stmt::CreateAccessMethod(it) => &it.syntax,
31241            Stmt::CreateAggregate(it) => &it.syntax,
31242            Stmt::CreateCast(it) => &it.syntax,
31243            Stmt::CreateCollation(it) => &it.syntax,
31244            Stmt::CreateConversion(it) => &it.syntax,
31245            Stmt::CreateDatabase(it) => &it.syntax,
31246            Stmt::CreateDomain(it) => &it.syntax,
31247            Stmt::CreateEventTrigger(it) => &it.syntax,
31248            Stmt::CreateExtension(it) => &it.syntax,
31249            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
31250            Stmt::CreateForeignTable(it) => &it.syntax,
31251            Stmt::CreateFunction(it) => &it.syntax,
31252            Stmt::CreateGroup(it) => &it.syntax,
31253            Stmt::CreateIndex(it) => &it.syntax,
31254            Stmt::CreateLanguage(it) => &it.syntax,
31255            Stmt::CreateMaterializedView(it) => &it.syntax,
31256            Stmt::CreateOperator(it) => &it.syntax,
31257            Stmt::CreateOperatorClass(it) => &it.syntax,
31258            Stmt::CreateOperatorFamily(it) => &it.syntax,
31259            Stmt::CreatePolicy(it) => &it.syntax,
31260            Stmt::CreateProcedure(it) => &it.syntax,
31261            Stmt::CreatePublication(it) => &it.syntax,
31262            Stmt::CreateRole(it) => &it.syntax,
31263            Stmt::CreateRule(it) => &it.syntax,
31264            Stmt::CreateSchema(it) => &it.syntax,
31265            Stmt::CreateSequence(it) => &it.syntax,
31266            Stmt::CreateServer(it) => &it.syntax,
31267            Stmt::CreateStatistics(it) => &it.syntax,
31268            Stmt::CreateSubscription(it) => &it.syntax,
31269            Stmt::CreateTable(it) => &it.syntax,
31270            Stmt::CreateTableAs(it) => &it.syntax,
31271            Stmt::CreateTablespace(it) => &it.syntax,
31272            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
31273            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
31274            Stmt::CreateTextSearchParser(it) => &it.syntax,
31275            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
31276            Stmt::CreateTransform(it) => &it.syntax,
31277            Stmt::CreateTrigger(it) => &it.syntax,
31278            Stmt::CreateType(it) => &it.syntax,
31279            Stmt::CreateUser(it) => &it.syntax,
31280            Stmt::CreateUserMapping(it) => &it.syntax,
31281            Stmt::CreateView(it) => &it.syntax,
31282            Stmt::Deallocate(it) => &it.syntax,
31283            Stmt::Declare(it) => &it.syntax,
31284            Stmt::Delete(it) => &it.syntax,
31285            Stmt::Discard(it) => &it.syntax,
31286            Stmt::Do(it) => &it.syntax,
31287            Stmt::DropAccessMethod(it) => &it.syntax,
31288            Stmt::DropAggregate(it) => &it.syntax,
31289            Stmt::DropCast(it) => &it.syntax,
31290            Stmt::DropCollation(it) => &it.syntax,
31291            Stmt::DropConversion(it) => &it.syntax,
31292            Stmt::DropDatabase(it) => &it.syntax,
31293            Stmt::DropDomain(it) => &it.syntax,
31294            Stmt::DropEventTrigger(it) => &it.syntax,
31295            Stmt::DropExtension(it) => &it.syntax,
31296            Stmt::DropForeignDataWrapper(it) => &it.syntax,
31297            Stmt::DropForeignTable(it) => &it.syntax,
31298            Stmt::DropFunction(it) => &it.syntax,
31299            Stmt::DropGroup(it) => &it.syntax,
31300            Stmt::DropIndex(it) => &it.syntax,
31301            Stmt::DropLanguage(it) => &it.syntax,
31302            Stmt::DropMaterializedView(it) => &it.syntax,
31303            Stmt::DropOperator(it) => &it.syntax,
31304            Stmt::DropOperatorClass(it) => &it.syntax,
31305            Stmt::DropOperatorFamily(it) => &it.syntax,
31306            Stmt::DropOwned(it) => &it.syntax,
31307            Stmt::DropPolicy(it) => &it.syntax,
31308            Stmt::DropProcedure(it) => &it.syntax,
31309            Stmt::DropPublication(it) => &it.syntax,
31310            Stmt::DropRole(it) => &it.syntax,
31311            Stmt::DropRoutine(it) => &it.syntax,
31312            Stmt::DropRule(it) => &it.syntax,
31313            Stmt::DropSchema(it) => &it.syntax,
31314            Stmt::DropSequence(it) => &it.syntax,
31315            Stmt::DropServer(it) => &it.syntax,
31316            Stmt::DropStatistics(it) => &it.syntax,
31317            Stmt::DropSubscription(it) => &it.syntax,
31318            Stmt::DropTable(it) => &it.syntax,
31319            Stmt::DropTablespace(it) => &it.syntax,
31320            Stmt::DropTextSearchConfig(it) => &it.syntax,
31321            Stmt::DropTextSearchDict(it) => &it.syntax,
31322            Stmt::DropTextSearchParser(it) => &it.syntax,
31323            Stmt::DropTextSearchTemplate(it) => &it.syntax,
31324            Stmt::DropTransform(it) => &it.syntax,
31325            Stmt::DropTrigger(it) => &it.syntax,
31326            Stmt::DropType(it) => &it.syntax,
31327            Stmt::DropUser(it) => &it.syntax,
31328            Stmt::DropUserMapping(it) => &it.syntax,
31329            Stmt::DropView(it) => &it.syntax,
31330            Stmt::Execute(it) => &it.syntax,
31331            Stmt::Explain(it) => &it.syntax,
31332            Stmt::Fetch(it) => &it.syntax,
31333            Stmt::Grant(it) => &it.syntax,
31334            Stmt::ImportForeignSchema(it) => &it.syntax,
31335            Stmt::Insert(it) => &it.syntax,
31336            Stmt::Listen(it) => &it.syntax,
31337            Stmt::Load(it) => &it.syntax,
31338            Stmt::Lock(it) => &it.syntax,
31339            Stmt::Merge(it) => &it.syntax,
31340            Stmt::Move(it) => &it.syntax,
31341            Stmt::Notify(it) => &it.syntax,
31342            Stmt::ParenSelect(it) => &it.syntax,
31343            Stmt::Prepare(it) => &it.syntax,
31344            Stmt::PrepareTransaction(it) => &it.syntax,
31345            Stmt::Reassign(it) => &it.syntax,
31346            Stmt::Refresh(it) => &it.syntax,
31347            Stmt::Reindex(it) => &it.syntax,
31348            Stmt::ReleaseSavepoint(it) => &it.syntax,
31349            Stmt::Reset(it) => &it.syntax,
31350            Stmt::ResetSessionAuth(it) => &it.syntax,
31351            Stmt::Revoke(it) => &it.syntax,
31352            Stmt::Rollback(it) => &it.syntax,
31353            Stmt::Savepoint(it) => &it.syntax,
31354            Stmt::SecurityLabel(it) => &it.syntax,
31355            Stmt::Select(it) => &it.syntax,
31356            Stmt::SelectInto(it) => &it.syntax,
31357            Stmt::Set(it) => &it.syntax,
31358            Stmt::SetConstraints(it) => &it.syntax,
31359            Stmt::SetRole(it) => &it.syntax,
31360            Stmt::SetSessionAuth(it) => &it.syntax,
31361            Stmt::SetTransaction(it) => &it.syntax,
31362            Stmt::Show(it) => &it.syntax,
31363            Stmt::Table(it) => &it.syntax,
31364            Stmt::Truncate(it) => &it.syntax,
31365            Stmt::Unlisten(it) => &it.syntax,
31366            Stmt::Update(it) => &it.syntax,
31367            Stmt::Vacuum(it) => &it.syntax,
31368            Stmt::Values(it) => &it.syntax,
31369        }
31370    }
31371}
31372impl From<AlterAggregate> for Stmt {
31373    #[inline]
31374    fn from(node: AlterAggregate) -> Stmt {
31375        Stmt::AlterAggregate(node)
31376    }
31377}
31378impl From<AlterCollation> for Stmt {
31379    #[inline]
31380    fn from(node: AlterCollation) -> Stmt {
31381        Stmt::AlterCollation(node)
31382    }
31383}
31384impl From<AlterConversion> for Stmt {
31385    #[inline]
31386    fn from(node: AlterConversion) -> Stmt {
31387        Stmt::AlterConversion(node)
31388    }
31389}
31390impl From<AlterDatabase> for Stmt {
31391    #[inline]
31392    fn from(node: AlterDatabase) -> Stmt {
31393        Stmt::AlterDatabase(node)
31394    }
31395}
31396impl From<AlterDefaultPrivileges> for Stmt {
31397    #[inline]
31398    fn from(node: AlterDefaultPrivileges) -> Stmt {
31399        Stmt::AlterDefaultPrivileges(node)
31400    }
31401}
31402impl From<AlterDomain> for Stmt {
31403    #[inline]
31404    fn from(node: AlterDomain) -> Stmt {
31405        Stmt::AlterDomain(node)
31406    }
31407}
31408impl From<AlterEventTrigger> for Stmt {
31409    #[inline]
31410    fn from(node: AlterEventTrigger) -> Stmt {
31411        Stmt::AlterEventTrigger(node)
31412    }
31413}
31414impl From<AlterExtension> for Stmt {
31415    #[inline]
31416    fn from(node: AlterExtension) -> Stmt {
31417        Stmt::AlterExtension(node)
31418    }
31419}
31420impl From<AlterForeignDataWrapper> for Stmt {
31421    #[inline]
31422    fn from(node: AlterForeignDataWrapper) -> Stmt {
31423        Stmt::AlterForeignDataWrapper(node)
31424    }
31425}
31426impl From<AlterForeignTable> for Stmt {
31427    #[inline]
31428    fn from(node: AlterForeignTable) -> Stmt {
31429        Stmt::AlterForeignTable(node)
31430    }
31431}
31432impl From<AlterFunction> for Stmt {
31433    #[inline]
31434    fn from(node: AlterFunction) -> Stmt {
31435        Stmt::AlterFunction(node)
31436    }
31437}
31438impl From<AlterGroup> for Stmt {
31439    #[inline]
31440    fn from(node: AlterGroup) -> Stmt {
31441        Stmt::AlterGroup(node)
31442    }
31443}
31444impl From<AlterIndex> for Stmt {
31445    #[inline]
31446    fn from(node: AlterIndex) -> Stmt {
31447        Stmt::AlterIndex(node)
31448    }
31449}
31450impl From<AlterLanguage> for Stmt {
31451    #[inline]
31452    fn from(node: AlterLanguage) -> Stmt {
31453        Stmt::AlterLanguage(node)
31454    }
31455}
31456impl From<AlterLargeObject> for Stmt {
31457    #[inline]
31458    fn from(node: AlterLargeObject) -> Stmt {
31459        Stmt::AlterLargeObject(node)
31460    }
31461}
31462impl From<AlterMaterializedView> for Stmt {
31463    #[inline]
31464    fn from(node: AlterMaterializedView) -> Stmt {
31465        Stmt::AlterMaterializedView(node)
31466    }
31467}
31468impl From<AlterOperator> for Stmt {
31469    #[inline]
31470    fn from(node: AlterOperator) -> Stmt {
31471        Stmt::AlterOperator(node)
31472    }
31473}
31474impl From<AlterOperatorClass> for Stmt {
31475    #[inline]
31476    fn from(node: AlterOperatorClass) -> Stmt {
31477        Stmt::AlterOperatorClass(node)
31478    }
31479}
31480impl From<AlterOperatorFamily> for Stmt {
31481    #[inline]
31482    fn from(node: AlterOperatorFamily) -> Stmt {
31483        Stmt::AlterOperatorFamily(node)
31484    }
31485}
31486impl From<AlterPolicy> for Stmt {
31487    #[inline]
31488    fn from(node: AlterPolicy) -> Stmt {
31489        Stmt::AlterPolicy(node)
31490    }
31491}
31492impl From<AlterProcedure> for Stmt {
31493    #[inline]
31494    fn from(node: AlterProcedure) -> Stmt {
31495        Stmt::AlterProcedure(node)
31496    }
31497}
31498impl From<AlterPublication> for Stmt {
31499    #[inline]
31500    fn from(node: AlterPublication) -> Stmt {
31501        Stmt::AlterPublication(node)
31502    }
31503}
31504impl From<AlterRole> for Stmt {
31505    #[inline]
31506    fn from(node: AlterRole) -> Stmt {
31507        Stmt::AlterRole(node)
31508    }
31509}
31510impl From<AlterRoutine> for Stmt {
31511    #[inline]
31512    fn from(node: AlterRoutine) -> Stmt {
31513        Stmt::AlterRoutine(node)
31514    }
31515}
31516impl From<AlterRule> for Stmt {
31517    #[inline]
31518    fn from(node: AlterRule) -> Stmt {
31519        Stmt::AlterRule(node)
31520    }
31521}
31522impl From<AlterSchema> for Stmt {
31523    #[inline]
31524    fn from(node: AlterSchema) -> Stmt {
31525        Stmt::AlterSchema(node)
31526    }
31527}
31528impl From<AlterSequence> for Stmt {
31529    #[inline]
31530    fn from(node: AlterSequence) -> Stmt {
31531        Stmt::AlterSequence(node)
31532    }
31533}
31534impl From<AlterServer> for Stmt {
31535    #[inline]
31536    fn from(node: AlterServer) -> Stmt {
31537        Stmt::AlterServer(node)
31538    }
31539}
31540impl From<AlterStatistics> for Stmt {
31541    #[inline]
31542    fn from(node: AlterStatistics) -> Stmt {
31543        Stmt::AlterStatistics(node)
31544    }
31545}
31546impl From<AlterSubscription> for Stmt {
31547    #[inline]
31548    fn from(node: AlterSubscription) -> Stmt {
31549        Stmt::AlterSubscription(node)
31550    }
31551}
31552impl From<AlterSystem> for Stmt {
31553    #[inline]
31554    fn from(node: AlterSystem) -> Stmt {
31555        Stmt::AlterSystem(node)
31556    }
31557}
31558impl From<AlterTable> for Stmt {
31559    #[inline]
31560    fn from(node: AlterTable) -> Stmt {
31561        Stmt::AlterTable(node)
31562    }
31563}
31564impl From<AlterTablespace> for Stmt {
31565    #[inline]
31566    fn from(node: AlterTablespace) -> Stmt {
31567        Stmt::AlterTablespace(node)
31568    }
31569}
31570impl From<AlterTextSearchConfiguration> for Stmt {
31571    #[inline]
31572    fn from(node: AlterTextSearchConfiguration) -> Stmt {
31573        Stmt::AlterTextSearchConfiguration(node)
31574    }
31575}
31576impl From<AlterTextSearchDictionary> for Stmt {
31577    #[inline]
31578    fn from(node: AlterTextSearchDictionary) -> Stmt {
31579        Stmt::AlterTextSearchDictionary(node)
31580    }
31581}
31582impl From<AlterTextSearchParser> for Stmt {
31583    #[inline]
31584    fn from(node: AlterTextSearchParser) -> Stmt {
31585        Stmt::AlterTextSearchParser(node)
31586    }
31587}
31588impl From<AlterTextSearchTemplate> for Stmt {
31589    #[inline]
31590    fn from(node: AlterTextSearchTemplate) -> Stmt {
31591        Stmt::AlterTextSearchTemplate(node)
31592    }
31593}
31594impl From<AlterTrigger> for Stmt {
31595    #[inline]
31596    fn from(node: AlterTrigger) -> Stmt {
31597        Stmt::AlterTrigger(node)
31598    }
31599}
31600impl From<AlterType> for Stmt {
31601    #[inline]
31602    fn from(node: AlterType) -> Stmt {
31603        Stmt::AlterType(node)
31604    }
31605}
31606impl From<AlterUser> for Stmt {
31607    #[inline]
31608    fn from(node: AlterUser) -> Stmt {
31609        Stmt::AlterUser(node)
31610    }
31611}
31612impl From<AlterUserMapping> for Stmt {
31613    #[inline]
31614    fn from(node: AlterUserMapping) -> Stmt {
31615        Stmt::AlterUserMapping(node)
31616    }
31617}
31618impl From<AlterView> for Stmt {
31619    #[inline]
31620    fn from(node: AlterView) -> Stmt {
31621        Stmt::AlterView(node)
31622    }
31623}
31624impl From<Analyze> for Stmt {
31625    #[inline]
31626    fn from(node: Analyze) -> Stmt {
31627        Stmt::Analyze(node)
31628    }
31629}
31630impl From<Begin> for Stmt {
31631    #[inline]
31632    fn from(node: Begin) -> Stmt {
31633        Stmt::Begin(node)
31634    }
31635}
31636impl From<Call> for Stmt {
31637    #[inline]
31638    fn from(node: Call) -> Stmt {
31639        Stmt::Call(node)
31640    }
31641}
31642impl From<Checkpoint> for Stmt {
31643    #[inline]
31644    fn from(node: Checkpoint) -> Stmt {
31645        Stmt::Checkpoint(node)
31646    }
31647}
31648impl From<Close> for Stmt {
31649    #[inline]
31650    fn from(node: Close) -> Stmt {
31651        Stmt::Close(node)
31652    }
31653}
31654impl From<Cluster> for Stmt {
31655    #[inline]
31656    fn from(node: Cluster) -> Stmt {
31657        Stmt::Cluster(node)
31658    }
31659}
31660impl From<CommentOn> for Stmt {
31661    #[inline]
31662    fn from(node: CommentOn) -> Stmt {
31663        Stmt::CommentOn(node)
31664    }
31665}
31666impl From<Commit> for Stmt {
31667    #[inline]
31668    fn from(node: Commit) -> Stmt {
31669        Stmt::Commit(node)
31670    }
31671}
31672impl From<Copy> for Stmt {
31673    #[inline]
31674    fn from(node: Copy) -> Stmt {
31675        Stmt::Copy(node)
31676    }
31677}
31678impl From<CreateAccessMethod> for Stmt {
31679    #[inline]
31680    fn from(node: CreateAccessMethod) -> Stmt {
31681        Stmt::CreateAccessMethod(node)
31682    }
31683}
31684impl From<CreateAggregate> for Stmt {
31685    #[inline]
31686    fn from(node: CreateAggregate) -> Stmt {
31687        Stmt::CreateAggregate(node)
31688    }
31689}
31690impl From<CreateCast> for Stmt {
31691    #[inline]
31692    fn from(node: CreateCast) -> Stmt {
31693        Stmt::CreateCast(node)
31694    }
31695}
31696impl From<CreateCollation> for Stmt {
31697    #[inline]
31698    fn from(node: CreateCollation) -> Stmt {
31699        Stmt::CreateCollation(node)
31700    }
31701}
31702impl From<CreateConversion> for Stmt {
31703    #[inline]
31704    fn from(node: CreateConversion) -> Stmt {
31705        Stmt::CreateConversion(node)
31706    }
31707}
31708impl From<CreateDatabase> for Stmt {
31709    #[inline]
31710    fn from(node: CreateDatabase) -> Stmt {
31711        Stmt::CreateDatabase(node)
31712    }
31713}
31714impl From<CreateDomain> for Stmt {
31715    #[inline]
31716    fn from(node: CreateDomain) -> Stmt {
31717        Stmt::CreateDomain(node)
31718    }
31719}
31720impl From<CreateEventTrigger> for Stmt {
31721    #[inline]
31722    fn from(node: CreateEventTrigger) -> Stmt {
31723        Stmt::CreateEventTrigger(node)
31724    }
31725}
31726impl From<CreateExtension> for Stmt {
31727    #[inline]
31728    fn from(node: CreateExtension) -> Stmt {
31729        Stmt::CreateExtension(node)
31730    }
31731}
31732impl From<CreateForeignDataWrapper> for Stmt {
31733    #[inline]
31734    fn from(node: CreateForeignDataWrapper) -> Stmt {
31735        Stmt::CreateForeignDataWrapper(node)
31736    }
31737}
31738impl From<CreateForeignTable> for Stmt {
31739    #[inline]
31740    fn from(node: CreateForeignTable) -> Stmt {
31741        Stmt::CreateForeignTable(node)
31742    }
31743}
31744impl From<CreateFunction> for Stmt {
31745    #[inline]
31746    fn from(node: CreateFunction) -> Stmt {
31747        Stmt::CreateFunction(node)
31748    }
31749}
31750impl From<CreateGroup> for Stmt {
31751    #[inline]
31752    fn from(node: CreateGroup) -> Stmt {
31753        Stmt::CreateGroup(node)
31754    }
31755}
31756impl From<CreateIndex> for Stmt {
31757    #[inline]
31758    fn from(node: CreateIndex) -> Stmt {
31759        Stmt::CreateIndex(node)
31760    }
31761}
31762impl From<CreateLanguage> for Stmt {
31763    #[inline]
31764    fn from(node: CreateLanguage) -> Stmt {
31765        Stmt::CreateLanguage(node)
31766    }
31767}
31768impl From<CreateMaterializedView> for Stmt {
31769    #[inline]
31770    fn from(node: CreateMaterializedView) -> Stmt {
31771        Stmt::CreateMaterializedView(node)
31772    }
31773}
31774impl From<CreateOperator> for Stmt {
31775    #[inline]
31776    fn from(node: CreateOperator) -> Stmt {
31777        Stmt::CreateOperator(node)
31778    }
31779}
31780impl From<CreateOperatorClass> for Stmt {
31781    #[inline]
31782    fn from(node: CreateOperatorClass) -> Stmt {
31783        Stmt::CreateOperatorClass(node)
31784    }
31785}
31786impl From<CreateOperatorFamily> for Stmt {
31787    #[inline]
31788    fn from(node: CreateOperatorFamily) -> Stmt {
31789        Stmt::CreateOperatorFamily(node)
31790    }
31791}
31792impl From<CreatePolicy> for Stmt {
31793    #[inline]
31794    fn from(node: CreatePolicy) -> Stmt {
31795        Stmt::CreatePolicy(node)
31796    }
31797}
31798impl From<CreateProcedure> for Stmt {
31799    #[inline]
31800    fn from(node: CreateProcedure) -> Stmt {
31801        Stmt::CreateProcedure(node)
31802    }
31803}
31804impl From<CreatePublication> for Stmt {
31805    #[inline]
31806    fn from(node: CreatePublication) -> Stmt {
31807        Stmt::CreatePublication(node)
31808    }
31809}
31810impl From<CreateRole> for Stmt {
31811    #[inline]
31812    fn from(node: CreateRole) -> Stmt {
31813        Stmt::CreateRole(node)
31814    }
31815}
31816impl From<CreateRule> for Stmt {
31817    #[inline]
31818    fn from(node: CreateRule) -> Stmt {
31819        Stmt::CreateRule(node)
31820    }
31821}
31822impl From<CreateSchema> for Stmt {
31823    #[inline]
31824    fn from(node: CreateSchema) -> Stmt {
31825        Stmt::CreateSchema(node)
31826    }
31827}
31828impl From<CreateSequence> for Stmt {
31829    #[inline]
31830    fn from(node: CreateSequence) -> Stmt {
31831        Stmt::CreateSequence(node)
31832    }
31833}
31834impl From<CreateServer> for Stmt {
31835    #[inline]
31836    fn from(node: CreateServer) -> Stmt {
31837        Stmt::CreateServer(node)
31838    }
31839}
31840impl From<CreateStatistics> for Stmt {
31841    #[inline]
31842    fn from(node: CreateStatistics) -> Stmt {
31843        Stmt::CreateStatistics(node)
31844    }
31845}
31846impl From<CreateSubscription> for Stmt {
31847    #[inline]
31848    fn from(node: CreateSubscription) -> Stmt {
31849        Stmt::CreateSubscription(node)
31850    }
31851}
31852impl From<CreateTable> for Stmt {
31853    #[inline]
31854    fn from(node: CreateTable) -> Stmt {
31855        Stmt::CreateTable(node)
31856    }
31857}
31858impl From<CreateTableAs> for Stmt {
31859    #[inline]
31860    fn from(node: CreateTableAs) -> Stmt {
31861        Stmt::CreateTableAs(node)
31862    }
31863}
31864impl From<CreateTablespace> for Stmt {
31865    #[inline]
31866    fn from(node: CreateTablespace) -> Stmt {
31867        Stmt::CreateTablespace(node)
31868    }
31869}
31870impl From<CreateTextSearchConfiguration> for Stmt {
31871    #[inline]
31872    fn from(node: CreateTextSearchConfiguration) -> Stmt {
31873        Stmt::CreateTextSearchConfiguration(node)
31874    }
31875}
31876impl From<CreateTextSearchDictionary> for Stmt {
31877    #[inline]
31878    fn from(node: CreateTextSearchDictionary) -> Stmt {
31879        Stmt::CreateTextSearchDictionary(node)
31880    }
31881}
31882impl From<CreateTextSearchParser> for Stmt {
31883    #[inline]
31884    fn from(node: CreateTextSearchParser) -> Stmt {
31885        Stmt::CreateTextSearchParser(node)
31886    }
31887}
31888impl From<CreateTextSearchTemplate> for Stmt {
31889    #[inline]
31890    fn from(node: CreateTextSearchTemplate) -> Stmt {
31891        Stmt::CreateTextSearchTemplate(node)
31892    }
31893}
31894impl From<CreateTransform> for Stmt {
31895    #[inline]
31896    fn from(node: CreateTransform) -> Stmt {
31897        Stmt::CreateTransform(node)
31898    }
31899}
31900impl From<CreateTrigger> for Stmt {
31901    #[inline]
31902    fn from(node: CreateTrigger) -> Stmt {
31903        Stmt::CreateTrigger(node)
31904    }
31905}
31906impl From<CreateType> for Stmt {
31907    #[inline]
31908    fn from(node: CreateType) -> Stmt {
31909        Stmt::CreateType(node)
31910    }
31911}
31912impl From<CreateUser> for Stmt {
31913    #[inline]
31914    fn from(node: CreateUser) -> Stmt {
31915        Stmt::CreateUser(node)
31916    }
31917}
31918impl From<CreateUserMapping> for Stmt {
31919    #[inline]
31920    fn from(node: CreateUserMapping) -> Stmt {
31921        Stmt::CreateUserMapping(node)
31922    }
31923}
31924impl From<CreateView> for Stmt {
31925    #[inline]
31926    fn from(node: CreateView) -> Stmt {
31927        Stmt::CreateView(node)
31928    }
31929}
31930impl From<Deallocate> for Stmt {
31931    #[inline]
31932    fn from(node: Deallocate) -> Stmt {
31933        Stmt::Deallocate(node)
31934    }
31935}
31936impl From<Declare> for Stmt {
31937    #[inline]
31938    fn from(node: Declare) -> Stmt {
31939        Stmt::Declare(node)
31940    }
31941}
31942impl From<Delete> for Stmt {
31943    #[inline]
31944    fn from(node: Delete) -> Stmt {
31945        Stmt::Delete(node)
31946    }
31947}
31948impl From<Discard> for Stmt {
31949    #[inline]
31950    fn from(node: Discard) -> Stmt {
31951        Stmt::Discard(node)
31952    }
31953}
31954impl From<Do> for Stmt {
31955    #[inline]
31956    fn from(node: Do) -> Stmt {
31957        Stmt::Do(node)
31958    }
31959}
31960impl From<DropAccessMethod> for Stmt {
31961    #[inline]
31962    fn from(node: DropAccessMethod) -> Stmt {
31963        Stmt::DropAccessMethod(node)
31964    }
31965}
31966impl From<DropAggregate> for Stmt {
31967    #[inline]
31968    fn from(node: DropAggregate) -> Stmt {
31969        Stmt::DropAggregate(node)
31970    }
31971}
31972impl From<DropCast> for Stmt {
31973    #[inline]
31974    fn from(node: DropCast) -> Stmt {
31975        Stmt::DropCast(node)
31976    }
31977}
31978impl From<DropCollation> for Stmt {
31979    #[inline]
31980    fn from(node: DropCollation) -> Stmt {
31981        Stmt::DropCollation(node)
31982    }
31983}
31984impl From<DropConversion> for Stmt {
31985    #[inline]
31986    fn from(node: DropConversion) -> Stmt {
31987        Stmt::DropConversion(node)
31988    }
31989}
31990impl From<DropDatabase> for Stmt {
31991    #[inline]
31992    fn from(node: DropDatabase) -> Stmt {
31993        Stmt::DropDatabase(node)
31994    }
31995}
31996impl From<DropDomain> for Stmt {
31997    #[inline]
31998    fn from(node: DropDomain) -> Stmt {
31999        Stmt::DropDomain(node)
32000    }
32001}
32002impl From<DropEventTrigger> for Stmt {
32003    #[inline]
32004    fn from(node: DropEventTrigger) -> Stmt {
32005        Stmt::DropEventTrigger(node)
32006    }
32007}
32008impl From<DropExtension> for Stmt {
32009    #[inline]
32010    fn from(node: DropExtension) -> Stmt {
32011        Stmt::DropExtension(node)
32012    }
32013}
32014impl From<DropForeignDataWrapper> for Stmt {
32015    #[inline]
32016    fn from(node: DropForeignDataWrapper) -> Stmt {
32017        Stmt::DropForeignDataWrapper(node)
32018    }
32019}
32020impl From<DropForeignTable> for Stmt {
32021    #[inline]
32022    fn from(node: DropForeignTable) -> Stmt {
32023        Stmt::DropForeignTable(node)
32024    }
32025}
32026impl From<DropFunction> for Stmt {
32027    #[inline]
32028    fn from(node: DropFunction) -> Stmt {
32029        Stmt::DropFunction(node)
32030    }
32031}
32032impl From<DropGroup> for Stmt {
32033    #[inline]
32034    fn from(node: DropGroup) -> Stmt {
32035        Stmt::DropGroup(node)
32036    }
32037}
32038impl From<DropIndex> for Stmt {
32039    #[inline]
32040    fn from(node: DropIndex) -> Stmt {
32041        Stmt::DropIndex(node)
32042    }
32043}
32044impl From<DropLanguage> for Stmt {
32045    #[inline]
32046    fn from(node: DropLanguage) -> Stmt {
32047        Stmt::DropLanguage(node)
32048    }
32049}
32050impl From<DropMaterializedView> for Stmt {
32051    #[inline]
32052    fn from(node: DropMaterializedView) -> Stmt {
32053        Stmt::DropMaterializedView(node)
32054    }
32055}
32056impl From<DropOperator> for Stmt {
32057    #[inline]
32058    fn from(node: DropOperator) -> Stmt {
32059        Stmt::DropOperator(node)
32060    }
32061}
32062impl From<DropOperatorClass> for Stmt {
32063    #[inline]
32064    fn from(node: DropOperatorClass) -> Stmt {
32065        Stmt::DropOperatorClass(node)
32066    }
32067}
32068impl From<DropOperatorFamily> for Stmt {
32069    #[inline]
32070    fn from(node: DropOperatorFamily) -> Stmt {
32071        Stmt::DropOperatorFamily(node)
32072    }
32073}
32074impl From<DropOwned> for Stmt {
32075    #[inline]
32076    fn from(node: DropOwned) -> Stmt {
32077        Stmt::DropOwned(node)
32078    }
32079}
32080impl From<DropPolicy> for Stmt {
32081    #[inline]
32082    fn from(node: DropPolicy) -> Stmt {
32083        Stmt::DropPolicy(node)
32084    }
32085}
32086impl From<DropProcedure> for Stmt {
32087    #[inline]
32088    fn from(node: DropProcedure) -> Stmt {
32089        Stmt::DropProcedure(node)
32090    }
32091}
32092impl From<DropPublication> for Stmt {
32093    #[inline]
32094    fn from(node: DropPublication) -> Stmt {
32095        Stmt::DropPublication(node)
32096    }
32097}
32098impl From<DropRole> for Stmt {
32099    #[inline]
32100    fn from(node: DropRole) -> Stmt {
32101        Stmt::DropRole(node)
32102    }
32103}
32104impl From<DropRoutine> for Stmt {
32105    #[inline]
32106    fn from(node: DropRoutine) -> Stmt {
32107        Stmt::DropRoutine(node)
32108    }
32109}
32110impl From<DropRule> for Stmt {
32111    #[inline]
32112    fn from(node: DropRule) -> Stmt {
32113        Stmt::DropRule(node)
32114    }
32115}
32116impl From<DropSchema> for Stmt {
32117    #[inline]
32118    fn from(node: DropSchema) -> Stmt {
32119        Stmt::DropSchema(node)
32120    }
32121}
32122impl From<DropSequence> for Stmt {
32123    #[inline]
32124    fn from(node: DropSequence) -> Stmt {
32125        Stmt::DropSequence(node)
32126    }
32127}
32128impl From<DropServer> for Stmt {
32129    #[inline]
32130    fn from(node: DropServer) -> Stmt {
32131        Stmt::DropServer(node)
32132    }
32133}
32134impl From<DropStatistics> for Stmt {
32135    #[inline]
32136    fn from(node: DropStatistics) -> Stmt {
32137        Stmt::DropStatistics(node)
32138    }
32139}
32140impl From<DropSubscription> for Stmt {
32141    #[inline]
32142    fn from(node: DropSubscription) -> Stmt {
32143        Stmt::DropSubscription(node)
32144    }
32145}
32146impl From<DropTable> for Stmt {
32147    #[inline]
32148    fn from(node: DropTable) -> Stmt {
32149        Stmt::DropTable(node)
32150    }
32151}
32152impl From<DropTablespace> for Stmt {
32153    #[inline]
32154    fn from(node: DropTablespace) -> Stmt {
32155        Stmt::DropTablespace(node)
32156    }
32157}
32158impl From<DropTextSearchConfig> for Stmt {
32159    #[inline]
32160    fn from(node: DropTextSearchConfig) -> Stmt {
32161        Stmt::DropTextSearchConfig(node)
32162    }
32163}
32164impl From<DropTextSearchDict> for Stmt {
32165    #[inline]
32166    fn from(node: DropTextSearchDict) -> Stmt {
32167        Stmt::DropTextSearchDict(node)
32168    }
32169}
32170impl From<DropTextSearchParser> for Stmt {
32171    #[inline]
32172    fn from(node: DropTextSearchParser) -> Stmt {
32173        Stmt::DropTextSearchParser(node)
32174    }
32175}
32176impl From<DropTextSearchTemplate> for Stmt {
32177    #[inline]
32178    fn from(node: DropTextSearchTemplate) -> Stmt {
32179        Stmt::DropTextSearchTemplate(node)
32180    }
32181}
32182impl From<DropTransform> for Stmt {
32183    #[inline]
32184    fn from(node: DropTransform) -> Stmt {
32185        Stmt::DropTransform(node)
32186    }
32187}
32188impl From<DropTrigger> for Stmt {
32189    #[inline]
32190    fn from(node: DropTrigger) -> Stmt {
32191        Stmt::DropTrigger(node)
32192    }
32193}
32194impl From<DropType> for Stmt {
32195    #[inline]
32196    fn from(node: DropType) -> Stmt {
32197        Stmt::DropType(node)
32198    }
32199}
32200impl From<DropUser> for Stmt {
32201    #[inline]
32202    fn from(node: DropUser) -> Stmt {
32203        Stmt::DropUser(node)
32204    }
32205}
32206impl From<DropUserMapping> for Stmt {
32207    #[inline]
32208    fn from(node: DropUserMapping) -> Stmt {
32209        Stmt::DropUserMapping(node)
32210    }
32211}
32212impl From<DropView> for Stmt {
32213    #[inline]
32214    fn from(node: DropView) -> Stmt {
32215        Stmt::DropView(node)
32216    }
32217}
32218impl From<Execute> for Stmt {
32219    #[inline]
32220    fn from(node: Execute) -> Stmt {
32221        Stmt::Execute(node)
32222    }
32223}
32224impl From<Explain> for Stmt {
32225    #[inline]
32226    fn from(node: Explain) -> Stmt {
32227        Stmt::Explain(node)
32228    }
32229}
32230impl From<Fetch> for Stmt {
32231    #[inline]
32232    fn from(node: Fetch) -> Stmt {
32233        Stmt::Fetch(node)
32234    }
32235}
32236impl From<Grant> for Stmt {
32237    #[inline]
32238    fn from(node: Grant) -> Stmt {
32239        Stmt::Grant(node)
32240    }
32241}
32242impl From<ImportForeignSchema> for Stmt {
32243    #[inline]
32244    fn from(node: ImportForeignSchema) -> Stmt {
32245        Stmt::ImportForeignSchema(node)
32246    }
32247}
32248impl From<Insert> for Stmt {
32249    #[inline]
32250    fn from(node: Insert) -> Stmt {
32251        Stmt::Insert(node)
32252    }
32253}
32254impl From<Listen> for Stmt {
32255    #[inline]
32256    fn from(node: Listen) -> Stmt {
32257        Stmt::Listen(node)
32258    }
32259}
32260impl From<Load> for Stmt {
32261    #[inline]
32262    fn from(node: Load) -> Stmt {
32263        Stmt::Load(node)
32264    }
32265}
32266impl From<Lock> for Stmt {
32267    #[inline]
32268    fn from(node: Lock) -> Stmt {
32269        Stmt::Lock(node)
32270    }
32271}
32272impl From<Merge> for Stmt {
32273    #[inline]
32274    fn from(node: Merge) -> Stmt {
32275        Stmt::Merge(node)
32276    }
32277}
32278impl From<Move> for Stmt {
32279    #[inline]
32280    fn from(node: Move) -> Stmt {
32281        Stmt::Move(node)
32282    }
32283}
32284impl From<Notify> for Stmt {
32285    #[inline]
32286    fn from(node: Notify) -> Stmt {
32287        Stmt::Notify(node)
32288    }
32289}
32290impl From<ParenSelect> for Stmt {
32291    #[inline]
32292    fn from(node: ParenSelect) -> Stmt {
32293        Stmt::ParenSelect(node)
32294    }
32295}
32296impl From<Prepare> for Stmt {
32297    #[inline]
32298    fn from(node: Prepare) -> Stmt {
32299        Stmt::Prepare(node)
32300    }
32301}
32302impl From<PrepareTransaction> for Stmt {
32303    #[inline]
32304    fn from(node: PrepareTransaction) -> Stmt {
32305        Stmt::PrepareTransaction(node)
32306    }
32307}
32308impl From<Reassign> for Stmt {
32309    #[inline]
32310    fn from(node: Reassign) -> Stmt {
32311        Stmt::Reassign(node)
32312    }
32313}
32314impl From<Refresh> for Stmt {
32315    #[inline]
32316    fn from(node: Refresh) -> Stmt {
32317        Stmt::Refresh(node)
32318    }
32319}
32320impl From<Reindex> for Stmt {
32321    #[inline]
32322    fn from(node: Reindex) -> Stmt {
32323        Stmt::Reindex(node)
32324    }
32325}
32326impl From<ReleaseSavepoint> for Stmt {
32327    #[inline]
32328    fn from(node: ReleaseSavepoint) -> Stmt {
32329        Stmt::ReleaseSavepoint(node)
32330    }
32331}
32332impl From<Reset> for Stmt {
32333    #[inline]
32334    fn from(node: Reset) -> Stmt {
32335        Stmt::Reset(node)
32336    }
32337}
32338impl From<ResetSessionAuth> for Stmt {
32339    #[inline]
32340    fn from(node: ResetSessionAuth) -> Stmt {
32341        Stmt::ResetSessionAuth(node)
32342    }
32343}
32344impl From<Revoke> for Stmt {
32345    #[inline]
32346    fn from(node: Revoke) -> Stmt {
32347        Stmt::Revoke(node)
32348    }
32349}
32350impl From<Rollback> for Stmt {
32351    #[inline]
32352    fn from(node: Rollback) -> Stmt {
32353        Stmt::Rollback(node)
32354    }
32355}
32356impl From<Savepoint> for Stmt {
32357    #[inline]
32358    fn from(node: Savepoint) -> Stmt {
32359        Stmt::Savepoint(node)
32360    }
32361}
32362impl From<SecurityLabel> for Stmt {
32363    #[inline]
32364    fn from(node: SecurityLabel) -> Stmt {
32365        Stmt::SecurityLabel(node)
32366    }
32367}
32368impl From<Select> for Stmt {
32369    #[inline]
32370    fn from(node: Select) -> Stmt {
32371        Stmt::Select(node)
32372    }
32373}
32374impl From<SelectInto> for Stmt {
32375    #[inline]
32376    fn from(node: SelectInto) -> Stmt {
32377        Stmt::SelectInto(node)
32378    }
32379}
32380impl From<Set> for Stmt {
32381    #[inline]
32382    fn from(node: Set) -> Stmt {
32383        Stmt::Set(node)
32384    }
32385}
32386impl From<SetConstraints> for Stmt {
32387    #[inline]
32388    fn from(node: SetConstraints) -> Stmt {
32389        Stmt::SetConstraints(node)
32390    }
32391}
32392impl From<SetRole> for Stmt {
32393    #[inline]
32394    fn from(node: SetRole) -> Stmt {
32395        Stmt::SetRole(node)
32396    }
32397}
32398impl From<SetSessionAuth> for Stmt {
32399    #[inline]
32400    fn from(node: SetSessionAuth) -> Stmt {
32401        Stmt::SetSessionAuth(node)
32402    }
32403}
32404impl From<SetTransaction> for Stmt {
32405    #[inline]
32406    fn from(node: SetTransaction) -> Stmt {
32407        Stmt::SetTransaction(node)
32408    }
32409}
32410impl From<Show> for Stmt {
32411    #[inline]
32412    fn from(node: Show) -> Stmt {
32413        Stmt::Show(node)
32414    }
32415}
32416impl From<Table> for Stmt {
32417    #[inline]
32418    fn from(node: Table) -> Stmt {
32419        Stmt::Table(node)
32420    }
32421}
32422impl From<Truncate> for Stmt {
32423    #[inline]
32424    fn from(node: Truncate) -> Stmt {
32425        Stmt::Truncate(node)
32426    }
32427}
32428impl From<Unlisten> for Stmt {
32429    #[inline]
32430    fn from(node: Unlisten) -> Stmt {
32431        Stmt::Unlisten(node)
32432    }
32433}
32434impl From<Update> for Stmt {
32435    #[inline]
32436    fn from(node: Update) -> Stmt {
32437        Stmt::Update(node)
32438    }
32439}
32440impl From<Vacuum> for Stmt {
32441    #[inline]
32442    fn from(node: Vacuum) -> Stmt {
32443        Stmt::Vacuum(node)
32444    }
32445}
32446impl From<Values> for Stmt {
32447    #[inline]
32448    fn from(node: Values) -> Stmt {
32449        Stmt::Values(node)
32450    }
32451}
32452impl AstNode for TableArg {
32453    #[inline]
32454    fn can_cast(kind: SyntaxKind) -> bool {
32455        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
32456    }
32457    #[inline]
32458    fn cast(syntax: SyntaxNode) -> Option<Self> {
32459        let res = match syntax.kind() {
32460            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
32461            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
32462            _ => {
32463                if let Some(result) = TableConstraint::cast(syntax) {
32464                    return Some(TableArg::TableConstraint(result));
32465                }
32466                return None;
32467            }
32468        };
32469        Some(res)
32470    }
32471    #[inline]
32472    fn syntax(&self) -> &SyntaxNode {
32473        match self {
32474            TableArg::Column(it) => &it.syntax,
32475            TableArg::LikeClause(it) => &it.syntax,
32476            TableArg::TableConstraint(it) => it.syntax(),
32477        }
32478    }
32479}
32480impl From<Column> for TableArg {
32481    #[inline]
32482    fn from(node: Column) -> TableArg {
32483        TableArg::Column(node)
32484    }
32485}
32486impl From<LikeClause> for TableArg {
32487    #[inline]
32488    fn from(node: LikeClause) -> TableArg {
32489        TableArg::LikeClause(node)
32490    }
32491}
32492impl AstNode for TableConstraint {
32493    #[inline]
32494    fn can_cast(kind: SyntaxKind) -> bool {
32495        matches!(
32496            kind,
32497            SyntaxKind::CHECK_CONSTRAINT
32498                | SyntaxKind::EXCLUDE_CONSTRAINT
32499                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
32500                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32501                | SyntaxKind::UNIQUE_CONSTRAINT
32502        )
32503    }
32504    #[inline]
32505    fn cast(syntax: SyntaxNode) -> Option<Self> {
32506        let res = match syntax.kind() {
32507            SyntaxKind::CHECK_CONSTRAINT => {
32508                TableConstraint::CheckConstraint(CheckConstraint { syntax })
32509            }
32510            SyntaxKind::EXCLUDE_CONSTRAINT => {
32511                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
32512            }
32513            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
32514                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
32515            }
32516            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32517                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32518            }
32519            SyntaxKind::UNIQUE_CONSTRAINT => {
32520                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
32521            }
32522            _ => {
32523                return None;
32524            }
32525        };
32526        Some(res)
32527    }
32528    #[inline]
32529    fn syntax(&self) -> &SyntaxNode {
32530        match self {
32531            TableConstraint::CheckConstraint(it) => &it.syntax,
32532            TableConstraint::ExcludeConstraint(it) => &it.syntax,
32533            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
32534            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
32535            TableConstraint::UniqueConstraint(it) => &it.syntax,
32536        }
32537    }
32538}
32539impl From<CheckConstraint> for TableConstraint {
32540    #[inline]
32541    fn from(node: CheckConstraint) -> TableConstraint {
32542        TableConstraint::CheckConstraint(node)
32543    }
32544}
32545impl From<ExcludeConstraint> for TableConstraint {
32546    #[inline]
32547    fn from(node: ExcludeConstraint) -> TableConstraint {
32548        TableConstraint::ExcludeConstraint(node)
32549    }
32550}
32551impl From<ForeignKeyConstraint> for TableConstraint {
32552    #[inline]
32553    fn from(node: ForeignKeyConstraint) -> TableConstraint {
32554        TableConstraint::ForeignKeyConstraint(node)
32555    }
32556}
32557impl From<PrimaryKeyConstraint> for TableConstraint {
32558    #[inline]
32559    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
32560        TableConstraint::PrimaryKeyConstraint(node)
32561    }
32562}
32563impl From<UniqueConstraint> for TableConstraint {
32564    #[inline]
32565    fn from(node: UniqueConstraint) -> TableConstraint {
32566        TableConstraint::UniqueConstraint(node)
32567    }
32568}
32569impl AstNode for Timezone {
32570    #[inline]
32571    fn can_cast(kind: SyntaxKind) -> bool {
32572        matches!(
32573            kind,
32574            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
32575        )
32576    }
32577    #[inline]
32578    fn cast(syntax: SyntaxNode) -> Option<Self> {
32579        let res = match syntax.kind() {
32580            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
32581            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
32582            _ => {
32583                return None;
32584            }
32585        };
32586        Some(res)
32587    }
32588    #[inline]
32589    fn syntax(&self) -> &SyntaxNode {
32590        match self {
32591            Timezone::WithTimezone(it) => &it.syntax,
32592            Timezone::WithoutTimezone(it) => &it.syntax,
32593        }
32594    }
32595}
32596impl From<WithTimezone> for Timezone {
32597    #[inline]
32598    fn from(node: WithTimezone) -> Timezone {
32599        Timezone::WithTimezone(node)
32600    }
32601}
32602impl From<WithoutTimezone> for Timezone {
32603    #[inline]
32604    fn from(node: WithoutTimezone) -> Timezone {
32605        Timezone::WithoutTimezone(node)
32606    }
32607}
32608impl AstNode for TransactionMode {
32609    #[inline]
32610    fn can_cast(kind: SyntaxKind) -> bool {
32611        matches!(
32612            kind,
32613            SyntaxKind::DEFERRABLE
32614                | SyntaxKind::NOT_DEFERRABLE
32615                | SyntaxKind::READ_COMMITTED
32616                | SyntaxKind::READ_ONLY
32617                | SyntaxKind::READ_UNCOMMITTED
32618                | SyntaxKind::READ_WRITE
32619                | SyntaxKind::REPEATABLE_READ
32620                | SyntaxKind::SERIALIZABLE
32621        )
32622    }
32623    #[inline]
32624    fn cast(syntax: SyntaxNode) -> Option<Self> {
32625        let res = match syntax.kind() {
32626            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
32627            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
32628            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
32629            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
32630            SyntaxKind::READ_UNCOMMITTED => {
32631                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
32632            }
32633            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
32634            SyntaxKind::REPEATABLE_READ => {
32635                TransactionMode::RepeatableRead(RepeatableRead { syntax })
32636            }
32637            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
32638            _ => {
32639                return None;
32640            }
32641        };
32642        Some(res)
32643    }
32644    #[inline]
32645    fn syntax(&self) -> &SyntaxNode {
32646        match self {
32647            TransactionMode::Deferrable(it) => &it.syntax,
32648            TransactionMode::NotDeferrable(it) => &it.syntax,
32649            TransactionMode::ReadCommitted(it) => &it.syntax,
32650            TransactionMode::ReadOnly(it) => &it.syntax,
32651            TransactionMode::ReadUncommitted(it) => &it.syntax,
32652            TransactionMode::ReadWrite(it) => &it.syntax,
32653            TransactionMode::RepeatableRead(it) => &it.syntax,
32654            TransactionMode::Serializable(it) => &it.syntax,
32655        }
32656    }
32657}
32658impl From<Deferrable> for TransactionMode {
32659    #[inline]
32660    fn from(node: Deferrable) -> TransactionMode {
32661        TransactionMode::Deferrable(node)
32662    }
32663}
32664impl From<NotDeferrable> for TransactionMode {
32665    #[inline]
32666    fn from(node: NotDeferrable) -> TransactionMode {
32667        TransactionMode::NotDeferrable(node)
32668    }
32669}
32670impl From<ReadCommitted> for TransactionMode {
32671    #[inline]
32672    fn from(node: ReadCommitted) -> TransactionMode {
32673        TransactionMode::ReadCommitted(node)
32674    }
32675}
32676impl From<ReadOnly> for TransactionMode {
32677    #[inline]
32678    fn from(node: ReadOnly) -> TransactionMode {
32679        TransactionMode::ReadOnly(node)
32680    }
32681}
32682impl From<ReadUncommitted> for TransactionMode {
32683    #[inline]
32684    fn from(node: ReadUncommitted) -> TransactionMode {
32685        TransactionMode::ReadUncommitted(node)
32686    }
32687}
32688impl From<ReadWrite> for TransactionMode {
32689    #[inline]
32690    fn from(node: ReadWrite) -> TransactionMode {
32691        TransactionMode::ReadWrite(node)
32692    }
32693}
32694impl From<RepeatableRead> for TransactionMode {
32695    #[inline]
32696    fn from(node: RepeatableRead) -> TransactionMode {
32697        TransactionMode::RepeatableRead(node)
32698    }
32699}
32700impl From<Serializable> for TransactionMode {
32701    #[inline]
32702    fn from(node: Serializable) -> TransactionMode {
32703        TransactionMode::Serializable(node)
32704    }
32705}
32706impl AstNode for Type {
32707    #[inline]
32708    fn can_cast(kind: SyntaxKind) -> bool {
32709        matches!(
32710            kind,
32711            SyntaxKind::ARRAY_TYPE
32712                | SyntaxKind::BIT_TYPE
32713                | SyntaxKind::CHAR_TYPE
32714                | SyntaxKind::DOUBLE_TYPE
32715                | SyntaxKind::EXPR_TYPE
32716                | SyntaxKind::INTERVAL_TYPE
32717                | SyntaxKind::PATH_TYPE
32718                | SyntaxKind::PERCENT_TYPE
32719                | SyntaxKind::TIME_TYPE
32720        )
32721    }
32722    #[inline]
32723    fn cast(syntax: SyntaxNode) -> Option<Self> {
32724        let res = match syntax.kind() {
32725            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
32726            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
32727            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
32728            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
32729            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
32730            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
32731            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
32732            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
32733            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
32734            _ => {
32735                return None;
32736            }
32737        };
32738        Some(res)
32739    }
32740    #[inline]
32741    fn syntax(&self) -> &SyntaxNode {
32742        match self {
32743            Type::ArrayType(it) => &it.syntax,
32744            Type::BitType(it) => &it.syntax,
32745            Type::CharType(it) => &it.syntax,
32746            Type::DoubleType(it) => &it.syntax,
32747            Type::ExprType(it) => &it.syntax,
32748            Type::IntervalType(it) => &it.syntax,
32749            Type::PathType(it) => &it.syntax,
32750            Type::PercentType(it) => &it.syntax,
32751            Type::TimeType(it) => &it.syntax,
32752        }
32753    }
32754}
32755impl From<ArrayType> for Type {
32756    #[inline]
32757    fn from(node: ArrayType) -> Type {
32758        Type::ArrayType(node)
32759    }
32760}
32761impl From<BitType> for Type {
32762    #[inline]
32763    fn from(node: BitType) -> Type {
32764        Type::BitType(node)
32765    }
32766}
32767impl From<CharType> for Type {
32768    #[inline]
32769    fn from(node: CharType) -> Type {
32770        Type::CharType(node)
32771    }
32772}
32773impl From<DoubleType> for Type {
32774    #[inline]
32775    fn from(node: DoubleType) -> Type {
32776        Type::DoubleType(node)
32777    }
32778}
32779impl From<ExprType> for Type {
32780    #[inline]
32781    fn from(node: ExprType) -> Type {
32782        Type::ExprType(node)
32783    }
32784}
32785impl From<IntervalType> for Type {
32786    #[inline]
32787    fn from(node: IntervalType) -> Type {
32788        Type::IntervalType(node)
32789    }
32790}
32791impl From<PathType> for Type {
32792    #[inline]
32793    fn from(node: PathType) -> Type {
32794        Type::PathType(node)
32795    }
32796}
32797impl From<PercentType> for Type {
32798    #[inline]
32799    fn from(node: PercentType) -> Type {
32800        Type::PercentType(node)
32801    }
32802}
32803impl From<TimeType> for Type {
32804    #[inline]
32805    fn from(node: TimeType) -> Type {
32806        Type::TimeType(node)
32807    }
32808}
32809impl AstNode for WithQuery {
32810    #[inline]
32811    fn can_cast(kind: SyntaxKind) -> bool {
32812        matches!(
32813            kind,
32814            SyntaxKind::COMPOUND_SELECT
32815                | SyntaxKind::DELETE
32816                | SyntaxKind::INSERT
32817                | SyntaxKind::MERGE
32818                | SyntaxKind::PAREN_SELECT
32819                | SyntaxKind::SELECT
32820                | SyntaxKind::TABLE
32821                | SyntaxKind::UPDATE
32822                | SyntaxKind::VALUES
32823        )
32824    }
32825    #[inline]
32826    fn cast(syntax: SyntaxNode) -> Option<Self> {
32827        let res = match syntax.kind() {
32828            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
32829            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
32830            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
32831            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
32832            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
32833            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
32834            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
32835            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
32836            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
32837            _ => {
32838                return None;
32839            }
32840        };
32841        Some(res)
32842    }
32843    #[inline]
32844    fn syntax(&self) -> &SyntaxNode {
32845        match self {
32846            WithQuery::CompoundSelect(it) => &it.syntax,
32847            WithQuery::Delete(it) => &it.syntax,
32848            WithQuery::Insert(it) => &it.syntax,
32849            WithQuery::Merge(it) => &it.syntax,
32850            WithQuery::ParenSelect(it) => &it.syntax,
32851            WithQuery::Select(it) => &it.syntax,
32852            WithQuery::Table(it) => &it.syntax,
32853            WithQuery::Update(it) => &it.syntax,
32854            WithQuery::Values(it) => &it.syntax,
32855        }
32856    }
32857}
32858impl From<CompoundSelect> for WithQuery {
32859    #[inline]
32860    fn from(node: CompoundSelect) -> WithQuery {
32861        WithQuery::CompoundSelect(node)
32862    }
32863}
32864impl From<Delete> for WithQuery {
32865    #[inline]
32866    fn from(node: Delete) -> WithQuery {
32867        WithQuery::Delete(node)
32868    }
32869}
32870impl From<Insert> for WithQuery {
32871    #[inline]
32872    fn from(node: Insert) -> WithQuery {
32873        WithQuery::Insert(node)
32874    }
32875}
32876impl From<Merge> for WithQuery {
32877    #[inline]
32878    fn from(node: Merge) -> WithQuery {
32879        WithQuery::Merge(node)
32880    }
32881}
32882impl From<ParenSelect> for WithQuery {
32883    #[inline]
32884    fn from(node: ParenSelect) -> WithQuery {
32885        WithQuery::ParenSelect(node)
32886    }
32887}
32888impl From<Select> for WithQuery {
32889    #[inline]
32890    fn from(node: Select) -> WithQuery {
32891        WithQuery::Select(node)
32892    }
32893}
32894impl From<Table> for WithQuery {
32895    #[inline]
32896    fn from(node: Table) -> WithQuery {
32897        WithQuery::Table(node)
32898    }
32899}
32900impl From<Update> for WithQuery {
32901    #[inline]
32902    fn from(node: Update) -> WithQuery {
32903        WithQuery::Update(node)
32904    }
32905}
32906impl From<Values> for WithQuery {
32907    #[inline]
32908    fn from(node: Values) -> WithQuery {
32909        WithQuery::Values(node)
32910    }
32911}