Skip to main content

squawk_syntax/ast/generated/
nodes.rs

1// Generated via:
2//   cargo xtask codegen
3
4use crate::SyntaxKind;
5use crate::ast::AstNode;
6use crate::ast::{AstChildren, support};
7use crate::syntax_node::SyntaxNode;
8use crate::syntax_node::SyntaxToken;
9
10#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11pub struct AddColumn {
12    pub(crate) syntax: SyntaxNode,
13}
14impl AddColumn {
15    #[inline]
16    pub fn collate(&self) -> Option<Collate> {
17        support::child(&self.syntax)
18    }
19    #[inline]
20    pub fn constraints(&self) -> AstChildren<Constraint> {
21        support::children(&self.syntax)
22    }
23    #[inline]
24    pub fn if_not_exists(&self) -> Option<IfNotExists> {
25        support::child(&self.syntax)
26    }
27    #[inline]
28    pub fn name(&self) -> Option<Name> {
29        support::child(&self.syntax)
30    }
31    #[inline]
32    pub fn ty(&self) -> Option<Type> {
33        support::child(&self.syntax)
34    }
35    #[inline]
36    pub fn add_token(&self) -> Option<SyntaxToken> {
37        support::token(&self.syntax, SyntaxKind::ADD_KW)
38    }
39    #[inline]
40    pub fn column_token(&self) -> Option<SyntaxToken> {
41        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
42    }
43}
44
45#[derive(Debug, Clone, PartialEq, Eq, Hash)]
46pub struct AddConstraint {
47    pub(crate) syntax: SyntaxNode,
48}
49impl AddConstraint {
50    #[inline]
51    pub fn constraint(&self) -> Option<Constraint> {
52        support::child(&self.syntax)
53    }
54    #[inline]
55    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
56        support::child(&self.syntax)
57    }
58    #[inline]
59    pub fn enforced(&self) -> Option<Enforced> {
60        support::child(&self.syntax)
61    }
62    #[inline]
63    pub fn initially_deferred_constraint_option(
64        &self,
65    ) -> Option<InitiallyDeferredConstraintOption> {
66        support::child(&self.syntax)
67    }
68    #[inline]
69    pub fn initially_immediate_constraint_option(
70        &self,
71    ) -> Option<InitiallyImmediateConstraintOption> {
72        support::child(&self.syntax)
73    }
74    #[inline]
75    pub fn no_inherit(&self) -> Option<NoInherit> {
76        support::child(&self.syntax)
77    }
78    #[inline]
79    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
80        support::child(&self.syntax)
81    }
82    #[inline]
83    pub fn not_enforced(&self) -> Option<NotEnforced> {
84        support::child(&self.syntax)
85    }
86    #[inline]
87    pub fn not_valid(&self) -> Option<NotValid> {
88        support::child(&self.syntax)
89    }
90    #[inline]
91    pub fn add_token(&self) -> Option<SyntaxToken> {
92        support::token(&self.syntax, SyntaxKind::ADD_KW)
93    }
94}
95
96#[derive(Debug, Clone, PartialEq, Eq, Hash)]
97pub struct AddGenerated {
98    pub(crate) syntax: SyntaxNode,
99}
100impl AddGenerated {
101    #[inline]
102    pub fn add_token(&self) -> Option<SyntaxToken> {
103        support::token(&self.syntax, SyntaxKind::ADD_KW)
104    }
105}
106
107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
108pub struct AddOpClassOptions {
109    pub(crate) syntax: SyntaxNode,
110}
111impl AddOpClassOptions {
112    #[inline]
113    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
114        support::child(&self.syntax)
115    }
116    #[inline]
117    pub fn add_token(&self) -> Option<SyntaxToken> {
118        support::token(&self.syntax, SyntaxKind::ADD_KW)
119    }
120}
121
122#[derive(Debug, Clone, PartialEq, Eq, Hash)]
123pub struct Aggregate {
124    pub(crate) syntax: SyntaxNode,
125}
126impl Aggregate {
127    #[inline]
128    pub fn param_list(&self) -> Option<ParamList> {
129        support::child(&self.syntax)
130    }
131    #[inline]
132    pub fn path(&self) -> Option<Path> {
133        support::child(&self.syntax)
134    }
135}
136
137#[derive(Debug, Clone, PartialEq, Eq, Hash)]
138pub struct Alias {
139    pub(crate) syntax: SyntaxNode,
140}
141impl Alias {
142    #[inline]
143    pub fn column_list(&self) -> Option<ColumnList> {
144        support::child(&self.syntax)
145    }
146    #[inline]
147    pub fn name(&self) -> Option<Name> {
148        support::child(&self.syntax)
149    }
150    #[inline]
151    pub fn as_token(&self) -> Option<SyntaxToken> {
152        support::token(&self.syntax, SyntaxKind::AS_KW)
153    }
154}
155
156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
157pub struct AllFn {
158    pub(crate) syntax: SyntaxNode,
159}
160impl AllFn {
161    #[inline]
162    pub fn expr(&self) -> Option<Expr> {
163        support::child(&self.syntax)
164    }
165    #[inline]
166    pub fn select_variant(&self) -> Option<SelectVariant> {
167        support::child(&self.syntax)
168    }
169    #[inline]
170    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
171        support::token(&self.syntax, SyntaxKind::L_PAREN)
172    }
173    #[inline]
174    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
175        support::token(&self.syntax, SyntaxKind::R_PAREN)
176    }
177    #[inline]
178    pub fn all_token(&self) -> Option<SyntaxToken> {
179        support::token(&self.syntax, SyntaxKind::ALL_KW)
180    }
181}
182
183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
184pub struct AlterAggregate {
185    pub(crate) syntax: SyntaxNode,
186}
187impl AlterAggregate {
188    #[inline]
189    pub fn aggregate(&self) -> Option<Aggregate> {
190        support::child(&self.syntax)
191    }
192    #[inline]
193    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
194        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
195    }
196    #[inline]
197    pub fn alter_token(&self) -> Option<SyntaxToken> {
198        support::token(&self.syntax, SyntaxKind::ALTER_KW)
199    }
200}
201
202#[derive(Debug, Clone, PartialEq, Eq, Hash)]
203pub struct AlterCollation {
204    pub(crate) syntax: SyntaxNode,
205}
206impl AlterCollation {
207    #[inline]
208    pub fn owner_to(&self) -> Option<OwnerTo> {
209        support::child(&self.syntax)
210    }
211    #[inline]
212    pub fn path(&self) -> Option<Path> {
213        support::child(&self.syntax)
214    }
215    #[inline]
216    pub fn refresh_version(&self) -> Option<RefreshVersion> {
217        support::child(&self.syntax)
218    }
219    #[inline]
220    pub fn rename_to(&self) -> Option<RenameTo> {
221        support::child(&self.syntax)
222    }
223    #[inline]
224    pub fn set_schema(&self) -> Option<SetSchema> {
225        support::child(&self.syntax)
226    }
227    #[inline]
228    pub fn alter_token(&self) -> Option<SyntaxToken> {
229        support::token(&self.syntax, SyntaxKind::ALTER_KW)
230    }
231    #[inline]
232    pub fn collation_token(&self) -> Option<SyntaxToken> {
233        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
234    }
235}
236
237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
238pub struct AlterColumn {
239    pub(crate) syntax: SyntaxNode,
240}
241impl AlterColumn {
242    #[inline]
243    pub fn name_ref(&self) -> Option<NameRef> {
244        support::child(&self.syntax)
245    }
246    #[inline]
247    pub fn option(&self) -> Option<AlterColumnOption> {
248        support::child(&self.syntax)
249    }
250    #[inline]
251    pub fn alter_token(&self) -> Option<SyntaxToken> {
252        support::token(&self.syntax, SyntaxKind::ALTER_KW)
253    }
254    #[inline]
255    pub fn column_token(&self) -> Option<SyntaxToken> {
256        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
257    }
258}
259
260#[derive(Debug, Clone, PartialEq, Eq, Hash)]
261pub struct AlterConstraint {
262    pub(crate) syntax: SyntaxNode,
263}
264impl AlterConstraint {
265    #[inline]
266    pub fn option(&self) -> Option<AlterColumnOption> {
267        support::child(&self.syntax)
268    }
269    #[inline]
270    pub fn alter_token(&self) -> Option<SyntaxToken> {
271        support::token(&self.syntax, SyntaxKind::ALTER_KW)
272    }
273    #[inline]
274    pub fn constraint_token(&self) -> Option<SyntaxToken> {
275        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
276    }
277}
278
279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
280pub struct AlterConversion {
281    pub(crate) syntax: SyntaxNode,
282}
283impl AlterConversion {
284    #[inline]
285    pub fn owner_to(&self) -> Option<OwnerTo> {
286        support::child(&self.syntax)
287    }
288    #[inline]
289    pub fn path(&self) -> Option<Path> {
290        support::child(&self.syntax)
291    }
292    #[inline]
293    pub fn rename_to(&self) -> Option<RenameTo> {
294        support::child(&self.syntax)
295    }
296    #[inline]
297    pub fn set_schema(&self) -> Option<SetSchema> {
298        support::child(&self.syntax)
299    }
300    #[inline]
301    pub fn alter_token(&self) -> Option<SyntaxToken> {
302        support::token(&self.syntax, SyntaxKind::ALTER_KW)
303    }
304    #[inline]
305    pub fn conversion_token(&self) -> Option<SyntaxToken> {
306        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
307    }
308}
309
310#[derive(Debug, Clone, PartialEq, Eq, Hash)]
311pub struct AlterDatabase {
312    pub(crate) syntax: SyntaxNode,
313}
314impl AlterDatabase {
315    #[inline]
316    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
317        support::child(&self.syntax)
318    }
319    #[inline]
320    pub fn name_ref(&self) -> Option<NameRef> {
321        support::child(&self.syntax)
322    }
323    #[inline]
324    pub fn owner_to(&self) -> Option<OwnerTo> {
325        support::child(&self.syntax)
326    }
327    #[inline]
328    pub fn refresh_collation_version(&self) -> Option<RefreshCollationVersion> {
329        support::child(&self.syntax)
330    }
331    #[inline]
332    pub fn rename_to(&self) -> Option<RenameTo> {
333        support::child(&self.syntax)
334    }
335    #[inline]
336    pub fn reset_config_param(&self) -> Option<ResetConfigParam> {
337        support::child(&self.syntax)
338    }
339    #[inline]
340    pub fn set_config_param(&self) -> Option<SetConfigParam> {
341        support::child(&self.syntax)
342    }
343    #[inline]
344    pub fn set_tablespace(&self) -> Option<SetTablespace> {
345        support::child(&self.syntax)
346    }
347    #[inline]
348    pub fn alter_token(&self) -> Option<SyntaxToken> {
349        support::token(&self.syntax, SyntaxKind::ALTER_KW)
350    }
351    #[inline]
352    pub fn database_token(&self) -> Option<SyntaxToken> {
353        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
354    }
355}
356
357#[derive(Debug, Clone, PartialEq, Eq, Hash)]
358pub struct AlterDefaultPrivileges {
359    pub(crate) syntax: SyntaxNode,
360}
361impl AlterDefaultPrivileges {
362    #[inline]
363    pub fn grant_default_privileges(&self) -> Option<GrantDefaultPrivileges> {
364        support::child(&self.syntax)
365    }
366    #[inline]
367    pub fn name_refs(&self) -> AstChildren<NameRef> {
368        support::children(&self.syntax)
369    }
370    #[inline]
371    pub fn revoke_default_privileges(&self) -> Option<RevokeDefaultPrivileges> {
372        support::child(&self.syntax)
373    }
374    #[inline]
375    pub fn role_ref_list(&self) -> Option<RoleRefList> {
376        support::child(&self.syntax)
377    }
378    #[inline]
379    pub fn alter_token(&self) -> Option<SyntaxToken> {
380        support::token(&self.syntax, SyntaxKind::ALTER_KW)
381    }
382    #[inline]
383    pub fn default_token(&self) -> Option<SyntaxToken> {
384        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
385    }
386    #[inline]
387    pub fn for_token(&self) -> Option<SyntaxToken> {
388        support::token(&self.syntax, SyntaxKind::FOR_KW)
389    }
390    #[inline]
391    pub fn in_token(&self) -> Option<SyntaxToken> {
392        support::token(&self.syntax, SyntaxKind::IN_KW)
393    }
394    #[inline]
395    pub fn privileges_token(&self) -> Option<SyntaxToken> {
396        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
397    }
398    #[inline]
399    pub fn role_token(&self) -> Option<SyntaxToken> {
400        support::token(&self.syntax, SyntaxKind::ROLE_KW)
401    }
402    #[inline]
403    pub fn schema_token(&self) -> Option<SyntaxToken> {
404        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
405    }
406    #[inline]
407    pub fn user_token(&self) -> Option<SyntaxToken> {
408        support::token(&self.syntax, SyntaxKind::USER_KW)
409    }
410}
411
412#[derive(Debug, Clone, PartialEq, Eq, Hash)]
413pub struct AlterDomain {
414    pub(crate) syntax: SyntaxNode,
415}
416impl AlterDomain {
417    #[inline]
418    pub fn action(&self) -> Option<AlterDomainAction> {
419        support::child(&self.syntax)
420    }
421    #[inline]
422    pub fn path(&self) -> Option<Path> {
423        support::child(&self.syntax)
424    }
425    #[inline]
426    pub fn alter_token(&self) -> Option<SyntaxToken> {
427        support::token(&self.syntax, SyntaxKind::ALTER_KW)
428    }
429    #[inline]
430    pub fn domain_token(&self) -> Option<SyntaxToken> {
431        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
432    }
433}
434
435#[derive(Debug, Clone, PartialEq, Eq, Hash)]
436pub struct AlterEventTrigger {
437    pub(crate) syntax: SyntaxNode,
438}
439impl AlterEventTrigger {
440    #[inline]
441    pub fn name_ref(&self) -> Option<NameRef> {
442        support::child(&self.syntax)
443    }
444    #[inline]
445    pub fn owner_to(&self) -> Option<OwnerTo> {
446        support::child(&self.syntax)
447    }
448    #[inline]
449    pub fn rename_to(&self) -> Option<RenameTo> {
450        support::child(&self.syntax)
451    }
452    #[inline]
453    pub fn alter_token(&self) -> Option<SyntaxToken> {
454        support::token(&self.syntax, SyntaxKind::ALTER_KW)
455    }
456    #[inline]
457    pub fn always_token(&self) -> Option<SyntaxToken> {
458        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
459    }
460    #[inline]
461    pub fn disable_token(&self) -> Option<SyntaxToken> {
462        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
463    }
464    #[inline]
465    pub fn enable_token(&self) -> Option<SyntaxToken> {
466        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
467    }
468    #[inline]
469    pub fn event_token(&self) -> Option<SyntaxToken> {
470        support::token(&self.syntax, SyntaxKind::EVENT_KW)
471    }
472    #[inline]
473    pub fn replica_token(&self) -> Option<SyntaxToken> {
474        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
475    }
476    #[inline]
477    pub fn trigger_token(&self) -> Option<SyntaxToken> {
478        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
479    }
480}
481
482#[derive(Debug, Clone, PartialEq, Eq, Hash)]
483pub struct AlterExtension {
484    pub(crate) syntax: SyntaxNode,
485}
486impl AlterExtension {
487    #[inline]
488    pub fn name_ref(&self) -> Option<NameRef> {
489        support::child(&self.syntax)
490    }
491    #[inline]
492    pub fn alter_token(&self) -> Option<SyntaxToken> {
493        support::token(&self.syntax, SyntaxKind::ALTER_KW)
494    }
495    #[inline]
496    pub fn extension_token(&self) -> Option<SyntaxToken> {
497        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
498    }
499}
500
501#[derive(Debug, Clone, PartialEq, Eq, Hash)]
502pub struct AlterForeignDataWrapper {
503    pub(crate) syntax: SyntaxNode,
504}
505impl AlterForeignDataWrapper {
506    #[inline]
507    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
508        support::child(&self.syntax)
509    }
510    #[inline]
511    pub fn name_ref(&self) -> Option<NameRef> {
512        support::child(&self.syntax)
513    }
514    #[inline]
515    pub fn owner_to(&self) -> Option<OwnerTo> {
516        support::child(&self.syntax)
517    }
518    #[inline]
519    pub fn rename_to(&self) -> Option<RenameTo> {
520        support::child(&self.syntax)
521    }
522    #[inline]
523    pub fn alter_token(&self) -> Option<SyntaxToken> {
524        support::token(&self.syntax, SyntaxKind::ALTER_KW)
525    }
526    #[inline]
527    pub fn data_token(&self) -> Option<SyntaxToken> {
528        support::token(&self.syntax, SyntaxKind::DATA_KW)
529    }
530    #[inline]
531    pub fn foreign_token(&self) -> Option<SyntaxToken> {
532        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
533    }
534    #[inline]
535    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
536        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
537    }
538}
539
540#[derive(Debug, Clone, PartialEq, Eq, Hash)]
541pub struct AlterForeignTable {
542    pub(crate) syntax: SyntaxNode,
543}
544impl AlterForeignTable {
545    #[inline]
546    pub fn alter_table_actions(&self) -> AstChildren<AlterTableAction> {
547        support::children(&self.syntax)
548    }
549    #[inline]
550    pub fn if_exists(&self) -> Option<IfExists> {
551        support::child(&self.syntax)
552    }
553    #[inline]
554    pub fn relation_name(&self) -> Option<RelationName> {
555        support::child(&self.syntax)
556    }
557    #[inline]
558    pub fn rename_column(&self) -> Option<RenameColumn> {
559        support::child(&self.syntax)
560    }
561    #[inline]
562    pub fn rename_to(&self) -> Option<RenameTo> {
563        support::child(&self.syntax)
564    }
565    #[inline]
566    pub fn set_schema(&self) -> Option<SetSchema> {
567        support::child(&self.syntax)
568    }
569    #[inline]
570    pub fn alter_token(&self) -> Option<SyntaxToken> {
571        support::token(&self.syntax, SyntaxKind::ALTER_KW)
572    }
573    #[inline]
574    pub fn foreign_token(&self) -> Option<SyntaxToken> {
575        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
576    }
577    #[inline]
578    pub fn table_token(&self) -> Option<SyntaxToken> {
579        support::token(&self.syntax, SyntaxKind::TABLE_KW)
580    }
581}
582
583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
584pub struct AlterFunction {
585    pub(crate) syntax: SyntaxNode,
586}
587impl AlterFunction {
588    #[inline]
589    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
590        support::child(&self.syntax)
591    }
592    #[inline]
593    pub fn func_option_list(&self) -> Option<FuncOptionList> {
594        support::child(&self.syntax)
595    }
596    #[inline]
597    pub fn function_sig(&self) -> Option<FunctionSig> {
598        support::child(&self.syntax)
599    }
600    #[inline]
601    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
602        support::child(&self.syntax)
603    }
604    #[inline]
605    pub fn owner_to(&self) -> Option<OwnerTo> {
606        support::child(&self.syntax)
607    }
608    #[inline]
609    pub fn rename_to(&self) -> Option<RenameTo> {
610        support::child(&self.syntax)
611    }
612    #[inline]
613    pub fn set_schema(&self) -> Option<SetSchema> {
614        support::child(&self.syntax)
615    }
616    #[inline]
617    pub fn alter_token(&self) -> Option<SyntaxToken> {
618        support::token(&self.syntax, SyntaxKind::ALTER_KW)
619    }
620    #[inline]
621    pub fn function_token(&self) -> Option<SyntaxToken> {
622        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
623    }
624    #[inline]
625    pub fn restrict_token(&self) -> Option<SyntaxToken> {
626        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
627    }
628}
629
630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
631pub struct AlterGroup {
632    pub(crate) syntax: SyntaxNode,
633}
634impl AlterGroup {
635    #[inline]
636    pub fn name_refs(&self) -> AstChildren<NameRef> {
637        support::children(&self.syntax)
638    }
639    #[inline]
640    pub fn rename_to(&self) -> Option<RenameTo> {
641        support::child(&self.syntax)
642    }
643    #[inline]
644    pub fn role_ref(&self) -> Option<RoleRef> {
645        support::child(&self.syntax)
646    }
647    #[inline]
648    pub fn add_token(&self) -> Option<SyntaxToken> {
649        support::token(&self.syntax, SyntaxKind::ADD_KW)
650    }
651    #[inline]
652    pub fn alter_token(&self) -> Option<SyntaxToken> {
653        support::token(&self.syntax, SyntaxKind::ALTER_KW)
654    }
655    #[inline]
656    pub fn drop_token(&self) -> Option<SyntaxToken> {
657        support::token(&self.syntax, SyntaxKind::DROP_KW)
658    }
659    #[inline]
660    pub fn group_token(&self) -> Option<SyntaxToken> {
661        support::token(&self.syntax, SyntaxKind::GROUP_KW)
662    }
663    #[inline]
664    pub fn user_token(&self) -> Option<SyntaxToken> {
665        support::token(&self.syntax, SyntaxKind::USER_KW)
666    }
667}
668
669#[derive(Debug, Clone, PartialEq, Eq, Hash)]
670pub struct AlterIndex {
671    pub(crate) syntax: SyntaxNode,
672}
673impl AlterIndex {
674    #[inline]
675    pub fn alter_index_action(&self) -> Option<AlterIndexAction> {
676        support::child(&self.syntax)
677    }
678    #[inline]
679    pub fn if_exists(&self) -> Option<IfExists> {
680        support::child(&self.syntax)
681    }
682    #[inline]
683    pub fn name_ref(&self) -> Option<NameRef> {
684        support::child(&self.syntax)
685    }
686    #[inline]
687    pub fn owned_by_roles(&self) -> Option<OwnedByRoles> {
688        support::child(&self.syntax)
689    }
690    #[inline]
691    pub fn path(&self) -> Option<Path> {
692        support::child(&self.syntax)
693    }
694    #[inline]
695    pub fn all_token(&self) -> Option<SyntaxToken> {
696        support::token(&self.syntax, SyntaxKind::ALL_KW)
697    }
698    #[inline]
699    pub fn alter_token(&self) -> Option<SyntaxToken> {
700        support::token(&self.syntax, SyntaxKind::ALTER_KW)
701    }
702    #[inline]
703    pub fn in_token(&self) -> Option<SyntaxToken> {
704        support::token(&self.syntax, SyntaxKind::IN_KW)
705    }
706    #[inline]
707    pub fn index_token(&self) -> Option<SyntaxToken> {
708        support::token(&self.syntax, SyntaxKind::INDEX_KW)
709    }
710    #[inline]
711    pub fn nowait_token(&self) -> Option<SyntaxToken> {
712        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
713    }
714    #[inline]
715    pub fn set_token(&self) -> Option<SyntaxToken> {
716        support::token(&self.syntax, SyntaxKind::SET_KW)
717    }
718    #[inline]
719    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
720        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
721    }
722}
723
724#[derive(Debug, Clone, PartialEq, Eq, Hash)]
725pub struct AlterLanguage {
726    pub(crate) syntax: SyntaxNode,
727}
728impl AlterLanguage {
729    #[inline]
730    pub fn name_ref(&self) -> Option<NameRef> {
731        support::child(&self.syntax)
732    }
733    #[inline]
734    pub fn owner_to(&self) -> Option<OwnerTo> {
735        support::child(&self.syntax)
736    }
737    #[inline]
738    pub fn rename_to(&self) -> Option<RenameTo> {
739        support::child(&self.syntax)
740    }
741    #[inline]
742    pub fn alter_token(&self) -> Option<SyntaxToken> {
743        support::token(&self.syntax, SyntaxKind::ALTER_KW)
744    }
745    #[inline]
746    pub fn language_token(&self) -> Option<SyntaxToken> {
747        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
748    }
749}
750
751#[derive(Debug, Clone, PartialEq, Eq, Hash)]
752pub struct AlterLargeObject {
753    pub(crate) syntax: SyntaxNode,
754}
755impl AlterLargeObject {
756    #[inline]
757    pub fn alter_token(&self) -> Option<SyntaxToken> {
758        support::token(&self.syntax, SyntaxKind::ALTER_KW)
759    }
760    #[inline]
761    pub fn large_token(&self) -> Option<SyntaxToken> {
762        support::token(&self.syntax, SyntaxKind::LARGE_KW)
763    }
764    #[inline]
765    pub fn object_token(&self) -> Option<SyntaxToken> {
766        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
767    }
768}
769
770#[derive(Debug, Clone, PartialEq, Eq, Hash)]
771pub struct AlterMaterializedView {
772    pub(crate) syntax: SyntaxNode,
773}
774impl AlterMaterializedView {
775    #[inline]
776    pub fn action(&self) -> AstChildren<AlterMaterializedViewAction> {
777        support::children(&self.syntax)
778    }
779    #[inline]
780    pub fn if_exists(&self) -> Option<IfExists> {
781        support::child(&self.syntax)
782    }
783    #[inline]
784    pub fn name(&self) -> Option<Name> {
785        support::child(&self.syntax)
786    }
787    #[inline]
788    pub fn name_ref(&self) -> Option<NameRef> {
789        support::child(&self.syntax)
790    }
791    #[inline]
792    pub fn owned_by_roles(&self) -> Option<OwnedByRoles> {
793        support::child(&self.syntax)
794    }
795    #[inline]
796    pub fn path(&self) -> Option<Path> {
797        support::child(&self.syntax)
798    }
799    #[inline]
800    pub fn all_token(&self) -> Option<SyntaxToken> {
801        support::token(&self.syntax, SyntaxKind::ALL_KW)
802    }
803    #[inline]
804    pub fn alter_token(&self) -> Option<SyntaxToken> {
805        support::token(&self.syntax, SyntaxKind::ALTER_KW)
806    }
807    #[inline]
808    pub fn in_token(&self) -> Option<SyntaxToken> {
809        support::token(&self.syntax, SyntaxKind::IN_KW)
810    }
811    #[inline]
812    pub fn materialized_token(&self) -> Option<SyntaxToken> {
813        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
814    }
815    #[inline]
816    pub fn nowait_token(&self) -> Option<SyntaxToken> {
817        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
818    }
819    #[inline]
820    pub fn set_token(&self) -> Option<SyntaxToken> {
821        support::token(&self.syntax, SyntaxKind::SET_KW)
822    }
823    #[inline]
824    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
825        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
826    }
827    #[inline]
828    pub fn view_token(&self) -> Option<SyntaxToken> {
829        support::token(&self.syntax, SyntaxKind::VIEW_KW)
830    }
831}
832
833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
834pub struct AlterOperator {
835    pub(crate) syntax: SyntaxNode,
836}
837impl AlterOperator {
838    #[inline]
839    pub fn op_sig(&self) -> Option<OpSig> {
840        support::child(&self.syntax)
841    }
842    #[inline]
843    pub fn owner_to(&self) -> Option<OwnerTo> {
844        support::child(&self.syntax)
845    }
846    #[inline]
847    pub fn set_options(&self) -> Option<SetOptions> {
848        support::child(&self.syntax)
849    }
850    #[inline]
851    pub fn set_schema(&self) -> Option<SetSchema> {
852        support::child(&self.syntax)
853    }
854    #[inline]
855    pub fn alter_token(&self) -> Option<SyntaxToken> {
856        support::token(&self.syntax, SyntaxKind::ALTER_KW)
857    }
858    #[inline]
859    pub fn operator_token(&self) -> Option<SyntaxToken> {
860        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
861    }
862}
863
864#[derive(Debug, Clone, PartialEq, Eq, Hash)]
865pub struct AlterOperatorClass {
866    pub(crate) syntax: SyntaxNode,
867}
868impl AlterOperatorClass {
869    #[inline]
870    pub fn name_ref(&self) -> Option<NameRef> {
871        support::child(&self.syntax)
872    }
873    #[inline]
874    pub fn owner_to(&self) -> Option<OwnerTo> {
875        support::child(&self.syntax)
876    }
877    #[inline]
878    pub fn path(&self) -> Option<Path> {
879        support::child(&self.syntax)
880    }
881    #[inline]
882    pub fn rename_to(&self) -> Option<RenameTo> {
883        support::child(&self.syntax)
884    }
885    #[inline]
886    pub fn set_schema(&self) -> Option<SetSchema> {
887        support::child(&self.syntax)
888    }
889    #[inline]
890    pub fn alter_token(&self) -> Option<SyntaxToken> {
891        support::token(&self.syntax, SyntaxKind::ALTER_KW)
892    }
893    #[inline]
894    pub fn class_token(&self) -> Option<SyntaxToken> {
895        support::token(&self.syntax, SyntaxKind::CLASS_KW)
896    }
897    #[inline]
898    pub fn operator_token(&self) -> Option<SyntaxToken> {
899        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
900    }
901    #[inline]
902    pub fn using_token(&self) -> Option<SyntaxToken> {
903        support::token(&self.syntax, SyntaxKind::USING_KW)
904    }
905}
906
907#[derive(Debug, Clone, PartialEq, Eq, Hash)]
908pub struct AlterOperatorFamily {
909    pub(crate) syntax: SyntaxNode,
910}
911impl AlterOperatorFamily {
912    #[inline]
913    pub fn add_op_class_options(&self) -> Option<AddOpClassOptions> {
914        support::child(&self.syntax)
915    }
916    #[inline]
917    pub fn drop_op_class_options(&self) -> Option<DropOpClassOptions> {
918        support::child(&self.syntax)
919    }
920    #[inline]
921    pub fn name_ref(&self) -> Option<NameRef> {
922        support::child(&self.syntax)
923    }
924    #[inline]
925    pub fn owner_to(&self) -> Option<OwnerTo> {
926        support::child(&self.syntax)
927    }
928    #[inline]
929    pub fn path(&self) -> Option<Path> {
930        support::child(&self.syntax)
931    }
932    #[inline]
933    pub fn rename_to(&self) -> Option<RenameTo> {
934        support::child(&self.syntax)
935    }
936    #[inline]
937    pub fn set_schema(&self) -> Option<SetSchema> {
938        support::child(&self.syntax)
939    }
940    #[inline]
941    pub fn alter_token(&self) -> Option<SyntaxToken> {
942        support::token(&self.syntax, SyntaxKind::ALTER_KW)
943    }
944    #[inline]
945    pub fn family_token(&self) -> Option<SyntaxToken> {
946        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
947    }
948    #[inline]
949    pub fn operator_token(&self) -> Option<SyntaxToken> {
950        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
951    }
952    #[inline]
953    pub fn using_token(&self) -> Option<SyntaxToken> {
954        support::token(&self.syntax, SyntaxKind::USING_KW)
955    }
956}
957
958#[derive(Debug, Clone, PartialEq, Eq, Hash)]
959pub struct AlterOption {
960    pub(crate) syntax: SyntaxNode,
961}
962impl AlterOption {
963    #[inline]
964    pub fn literal(&self) -> Option<Literal> {
965        support::child(&self.syntax)
966    }
967    #[inline]
968    pub fn name_ref(&self) -> Option<NameRef> {
969        support::child(&self.syntax)
970    }
971    #[inline]
972    pub fn add_token(&self) -> Option<SyntaxToken> {
973        support::token(&self.syntax, SyntaxKind::ADD_KW)
974    }
975    #[inline]
976    pub fn drop_token(&self) -> Option<SyntaxToken> {
977        support::token(&self.syntax, SyntaxKind::DROP_KW)
978    }
979    #[inline]
980    pub fn set_token(&self) -> Option<SyntaxToken> {
981        support::token(&self.syntax, SyntaxKind::SET_KW)
982    }
983}
984
985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
986pub struct AlterOptionList {
987    pub(crate) syntax: SyntaxNode,
988}
989impl AlterOptionList {
990    #[inline]
991    pub fn alter_options(&self) -> AstChildren<AlterOption> {
992        support::children(&self.syntax)
993    }
994}
995
996#[derive(Debug, Clone, PartialEq, Eq, Hash)]
997pub struct AlterPolicy {
998    pub(crate) syntax: SyntaxNode,
999}
1000impl AlterPolicy {
1001    #[inline]
1002    pub fn name_ref(&self) -> Option<NameRef> {
1003        support::child(&self.syntax)
1004    }
1005    #[inline]
1006    pub fn on_table(&self) -> Option<OnTable> {
1007        support::child(&self.syntax)
1008    }
1009    #[inline]
1010    pub fn rename_to(&self) -> Option<RenameTo> {
1011        support::child(&self.syntax)
1012    }
1013    #[inline]
1014    pub fn role_ref_list(&self) -> Option<RoleRefList> {
1015        support::child(&self.syntax)
1016    }
1017    #[inline]
1018    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
1019        support::child(&self.syntax)
1020    }
1021    #[inline]
1022    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
1023        support::child(&self.syntax)
1024    }
1025    #[inline]
1026    pub fn alter_token(&self) -> Option<SyntaxToken> {
1027        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1028    }
1029    #[inline]
1030    pub fn policy_token(&self) -> Option<SyntaxToken> {
1031        support::token(&self.syntax, SyntaxKind::POLICY_KW)
1032    }
1033    #[inline]
1034    pub fn to_token(&self) -> Option<SyntaxToken> {
1035        support::token(&self.syntax, SyntaxKind::TO_KW)
1036    }
1037}
1038
1039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1040pub struct AlterProcedure {
1041    pub(crate) syntax: SyntaxNode,
1042}
1043impl AlterProcedure {
1044    #[inline]
1045    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1046        support::child(&self.syntax)
1047    }
1048    #[inline]
1049    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1050        support::child(&self.syntax)
1051    }
1052    #[inline]
1053    pub fn function_sig(&self) -> Option<FunctionSig> {
1054        support::child(&self.syntax)
1055    }
1056    #[inline]
1057    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1058        support::child(&self.syntax)
1059    }
1060    #[inline]
1061    pub fn owner_to(&self) -> Option<OwnerTo> {
1062        support::child(&self.syntax)
1063    }
1064    #[inline]
1065    pub fn rename_to(&self) -> Option<RenameTo> {
1066        support::child(&self.syntax)
1067    }
1068    #[inline]
1069    pub fn set_schema(&self) -> Option<SetSchema> {
1070        support::child(&self.syntax)
1071    }
1072    #[inline]
1073    pub fn alter_token(&self) -> Option<SyntaxToken> {
1074        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1075    }
1076    #[inline]
1077    pub fn procedure_token(&self) -> Option<SyntaxToken> {
1078        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
1079    }
1080    #[inline]
1081    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1082        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1083    }
1084}
1085
1086#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1087pub struct AlterPublication {
1088    pub(crate) syntax: SyntaxNode,
1089}
1090impl AlterPublication {
1091    #[inline]
1092    pub fn name_ref(&self) -> Option<NameRef> {
1093        support::child(&self.syntax)
1094    }
1095    #[inline]
1096    pub fn alter_token(&self) -> Option<SyntaxToken> {
1097        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1098    }
1099    #[inline]
1100    pub fn publication_token(&self) -> Option<SyntaxToken> {
1101        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
1102    }
1103}
1104
1105#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1106pub struct AlterRole {
1107    pub(crate) syntax: SyntaxNode,
1108}
1109impl AlterRole {
1110    #[inline]
1111    pub fn role_ref(&self) -> Option<RoleRef> {
1112        support::child(&self.syntax)
1113    }
1114    #[inline]
1115    pub fn alter_token(&self) -> Option<SyntaxToken> {
1116        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1117    }
1118    #[inline]
1119    pub fn role_token(&self) -> Option<SyntaxToken> {
1120        support::token(&self.syntax, SyntaxKind::ROLE_KW)
1121    }
1122}
1123
1124#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1125pub struct AlterRoutine {
1126    pub(crate) syntax: SyntaxNode,
1127}
1128impl AlterRoutine {
1129    #[inline]
1130    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1131        support::child(&self.syntax)
1132    }
1133    #[inline]
1134    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1135        support::child(&self.syntax)
1136    }
1137    #[inline]
1138    pub fn function_sig(&self) -> Option<FunctionSig> {
1139        support::child(&self.syntax)
1140    }
1141    #[inline]
1142    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1143        support::child(&self.syntax)
1144    }
1145    #[inline]
1146    pub fn owner_to(&self) -> Option<OwnerTo> {
1147        support::child(&self.syntax)
1148    }
1149    #[inline]
1150    pub fn rename_to(&self) -> Option<RenameTo> {
1151        support::child(&self.syntax)
1152    }
1153    #[inline]
1154    pub fn set_schema(&self) -> Option<SetSchema> {
1155        support::child(&self.syntax)
1156    }
1157    #[inline]
1158    pub fn alter_token(&self) -> Option<SyntaxToken> {
1159        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1160    }
1161    #[inline]
1162    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1163        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1164    }
1165    #[inline]
1166    pub fn routine_token(&self) -> Option<SyntaxToken> {
1167        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
1168    }
1169}
1170
1171#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1172pub struct AlterRule {
1173    pub(crate) syntax: SyntaxNode,
1174}
1175impl AlterRule {
1176    #[inline]
1177    pub fn name_ref(&self) -> Option<NameRef> {
1178        support::child(&self.syntax)
1179    }
1180    #[inline]
1181    pub fn on_table(&self) -> Option<OnTable> {
1182        support::child(&self.syntax)
1183    }
1184    #[inline]
1185    pub fn rename_to(&self) -> Option<RenameTo> {
1186        support::child(&self.syntax)
1187    }
1188    #[inline]
1189    pub fn alter_token(&self) -> Option<SyntaxToken> {
1190        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1191    }
1192    #[inline]
1193    pub fn on_token(&self) -> Option<SyntaxToken> {
1194        support::token(&self.syntax, SyntaxKind::ON_KW)
1195    }
1196    #[inline]
1197    pub fn rule_token(&self) -> Option<SyntaxToken> {
1198        support::token(&self.syntax, SyntaxKind::RULE_KW)
1199    }
1200}
1201
1202#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1203pub struct AlterSchema {
1204    pub(crate) syntax: SyntaxNode,
1205}
1206impl AlterSchema {
1207    #[inline]
1208    pub fn name_ref(&self) -> Option<NameRef> {
1209        support::child(&self.syntax)
1210    }
1211    #[inline]
1212    pub fn owner_to(&self) -> Option<OwnerTo> {
1213        support::child(&self.syntax)
1214    }
1215    #[inline]
1216    pub fn rename_to(&self) -> Option<RenameTo> {
1217        support::child(&self.syntax)
1218    }
1219    #[inline]
1220    pub fn alter_token(&self) -> Option<SyntaxToken> {
1221        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1222    }
1223    #[inline]
1224    pub fn schema_token(&self) -> Option<SyntaxToken> {
1225        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
1226    }
1227}
1228
1229#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1230pub struct AlterSequence {
1231    pub(crate) syntax: SyntaxNode,
1232}
1233impl AlterSequence {
1234    #[inline]
1235    pub fn if_exists(&self) -> Option<IfExists> {
1236        support::child(&self.syntax)
1237    }
1238    #[inline]
1239    pub fn path(&self) -> Option<Path> {
1240        support::child(&self.syntax)
1241    }
1242    #[inline]
1243    pub fn alter_token(&self) -> Option<SyntaxToken> {
1244        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1245    }
1246    #[inline]
1247    pub fn sequence_token(&self) -> Option<SyntaxToken> {
1248        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
1249    }
1250}
1251
1252#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1253pub struct AlterServer {
1254    pub(crate) syntax: SyntaxNode,
1255}
1256impl AlterServer {
1257    #[inline]
1258    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1259        support::child(&self.syntax)
1260    }
1261    #[inline]
1262    pub fn name_ref(&self) -> Option<NameRef> {
1263        support::child(&self.syntax)
1264    }
1265    #[inline]
1266    pub fn alter_token(&self) -> Option<SyntaxToken> {
1267        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1268    }
1269    #[inline]
1270    pub fn server_token(&self) -> Option<SyntaxToken> {
1271        support::token(&self.syntax, SyntaxKind::SERVER_KW)
1272    }
1273}
1274
1275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1276pub struct AlterSetStatistics {
1277    pub(crate) syntax: SyntaxNode,
1278}
1279impl AlterSetStatistics {
1280    #[inline]
1281    pub fn literal(&self) -> Option<Literal> {
1282        support::child(&self.syntax)
1283    }
1284    #[inline]
1285    pub fn name_ref(&self) -> Option<NameRef> {
1286        support::child(&self.syntax)
1287    }
1288    #[inline]
1289    pub fn column_token(&self) -> Option<SyntaxToken> {
1290        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
1291    }
1292    #[inline]
1293    pub fn set_token(&self) -> Option<SyntaxToken> {
1294        support::token(&self.syntax, SyntaxKind::SET_KW)
1295    }
1296    #[inline]
1297    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1298        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1299    }
1300}
1301
1302#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1303pub struct AlterStatistics {
1304    pub(crate) syntax: SyntaxNode,
1305}
1306impl AlterStatistics {
1307    #[inline]
1308    pub fn path(&self) -> Option<Path> {
1309        support::child(&self.syntax)
1310    }
1311    #[inline]
1312    pub fn alter_token(&self) -> Option<SyntaxToken> {
1313        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1314    }
1315    #[inline]
1316    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1317        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1318    }
1319}
1320
1321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1322pub struct AlterSubscription {
1323    pub(crate) syntax: SyntaxNode,
1324}
1325impl AlterSubscription {
1326    #[inline]
1327    pub fn name_ref(&self) -> Option<NameRef> {
1328        support::child(&self.syntax)
1329    }
1330    #[inline]
1331    pub fn alter_token(&self) -> Option<SyntaxToken> {
1332        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1333    }
1334    #[inline]
1335    pub fn subscription_token(&self) -> Option<SyntaxToken> {
1336        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
1337    }
1338}
1339
1340#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1341pub struct AlterSystem {
1342    pub(crate) syntax: SyntaxNode,
1343}
1344impl AlterSystem {
1345    #[inline]
1346    pub fn alter_token(&self) -> Option<SyntaxToken> {
1347        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1348    }
1349    #[inline]
1350    pub fn set_token(&self) -> Option<SyntaxToken> {
1351        support::token(&self.syntax, SyntaxKind::SET_KW)
1352    }
1353    #[inline]
1354    pub fn system_token(&self) -> Option<SyntaxToken> {
1355        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
1356    }
1357}
1358
1359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1360pub struct AlterTable {
1361    pub(crate) syntax: SyntaxNode,
1362}
1363impl AlterTable {
1364    #[inline]
1365    pub fn actions(&self) -> AstChildren<AlterTableAction> {
1366        support::children(&self.syntax)
1367    }
1368    #[inline]
1369    pub fn relation_name(&self) -> Option<RelationName> {
1370        support::child(&self.syntax)
1371    }
1372    #[inline]
1373    pub fn alter_token(&self) -> Option<SyntaxToken> {
1374        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1375    }
1376    #[inline]
1377    pub fn table_token(&self) -> Option<SyntaxToken> {
1378        support::token(&self.syntax, SyntaxKind::TABLE_KW)
1379    }
1380}
1381
1382#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1383pub struct AlterTablespace {
1384    pub(crate) syntax: SyntaxNode,
1385}
1386impl AlterTablespace {
1387    #[inline]
1388    pub fn owner_to(&self) -> Option<OwnerTo> {
1389        support::child(&self.syntax)
1390    }
1391    #[inline]
1392    pub fn path(&self) -> Option<Path> {
1393        support::child(&self.syntax)
1394    }
1395    #[inline]
1396    pub fn rename_to(&self) -> Option<RenameTo> {
1397        support::child(&self.syntax)
1398    }
1399    #[inline]
1400    pub fn reset_options(&self) -> Option<ResetOptions> {
1401        support::child(&self.syntax)
1402    }
1403    #[inline]
1404    pub fn set_options(&self) -> Option<SetOptions> {
1405        support::child(&self.syntax)
1406    }
1407    #[inline]
1408    pub fn alter_token(&self) -> Option<SyntaxToken> {
1409        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1410    }
1411    #[inline]
1412    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1413        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1414    }
1415}
1416
1417#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1418pub struct AlterTextSearchConfiguration {
1419    pub(crate) syntax: SyntaxNode,
1420}
1421impl AlterTextSearchConfiguration {
1422    #[inline]
1423    pub fn owner_to(&self) -> Option<OwnerTo> {
1424        support::child(&self.syntax)
1425    }
1426    #[inline]
1427    pub fn path(&self) -> Option<Path> {
1428        support::child(&self.syntax)
1429    }
1430    #[inline]
1431    pub fn rename_to(&self) -> Option<RenameTo> {
1432        support::child(&self.syntax)
1433    }
1434    #[inline]
1435    pub fn set_schema(&self) -> Option<SetSchema> {
1436        support::child(&self.syntax)
1437    }
1438    #[inline]
1439    pub fn alter_token(&self) -> Option<SyntaxToken> {
1440        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1441    }
1442    #[inline]
1443    pub fn configuration_token(&self) -> Option<SyntaxToken> {
1444        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
1445    }
1446    #[inline]
1447    pub fn search_token(&self) -> Option<SyntaxToken> {
1448        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1449    }
1450    #[inline]
1451    pub fn text_token(&self) -> Option<SyntaxToken> {
1452        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1453    }
1454}
1455
1456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1457pub struct AlterTextSearchDictionary {
1458    pub(crate) syntax: SyntaxNode,
1459}
1460impl AlterTextSearchDictionary {
1461    #[inline]
1462    pub fn attribute_list(&self) -> Option<AttributeList> {
1463        support::child(&self.syntax)
1464    }
1465    #[inline]
1466    pub fn owner_to(&self) -> Option<OwnerTo> {
1467        support::child(&self.syntax)
1468    }
1469    #[inline]
1470    pub fn path(&self) -> Option<Path> {
1471        support::child(&self.syntax)
1472    }
1473    #[inline]
1474    pub fn rename_to(&self) -> Option<RenameTo> {
1475        support::child(&self.syntax)
1476    }
1477    #[inline]
1478    pub fn set_schema(&self) -> Option<SetSchema> {
1479        support::child(&self.syntax)
1480    }
1481    #[inline]
1482    pub fn alter_token(&self) -> Option<SyntaxToken> {
1483        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1484    }
1485    #[inline]
1486    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
1487        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
1488    }
1489    #[inline]
1490    pub fn search_token(&self) -> Option<SyntaxToken> {
1491        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1492    }
1493    #[inline]
1494    pub fn text_token(&self) -> Option<SyntaxToken> {
1495        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1496    }
1497}
1498
1499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1500pub struct AlterTextSearchParser {
1501    pub(crate) syntax: SyntaxNode,
1502}
1503impl AlterTextSearchParser {
1504    #[inline]
1505    pub fn path(&self) -> Option<Path> {
1506        support::child(&self.syntax)
1507    }
1508    #[inline]
1509    pub fn rename_to(&self) -> Option<RenameTo> {
1510        support::child(&self.syntax)
1511    }
1512    #[inline]
1513    pub fn set_schema(&self) -> Option<SetSchema> {
1514        support::child(&self.syntax)
1515    }
1516    #[inline]
1517    pub fn alter_token(&self) -> Option<SyntaxToken> {
1518        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1519    }
1520    #[inline]
1521    pub fn parser_token(&self) -> Option<SyntaxToken> {
1522        support::token(&self.syntax, SyntaxKind::PARSER_KW)
1523    }
1524    #[inline]
1525    pub fn search_token(&self) -> Option<SyntaxToken> {
1526        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1527    }
1528    #[inline]
1529    pub fn text_token(&self) -> Option<SyntaxToken> {
1530        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1531    }
1532}
1533
1534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1535pub struct AlterTextSearchTemplate {
1536    pub(crate) syntax: SyntaxNode,
1537}
1538impl AlterTextSearchTemplate {
1539    #[inline]
1540    pub fn path(&self) -> Option<Path> {
1541        support::child(&self.syntax)
1542    }
1543    #[inline]
1544    pub fn rename_to(&self) -> Option<RenameTo> {
1545        support::child(&self.syntax)
1546    }
1547    #[inline]
1548    pub fn set_schema(&self) -> Option<SetSchema> {
1549        support::child(&self.syntax)
1550    }
1551    #[inline]
1552    pub fn alter_token(&self) -> Option<SyntaxToken> {
1553        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1554    }
1555    #[inline]
1556    pub fn search_token(&self) -> Option<SyntaxToken> {
1557        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1558    }
1559    #[inline]
1560    pub fn template_token(&self) -> Option<SyntaxToken> {
1561        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
1562    }
1563    #[inline]
1564    pub fn text_token(&self) -> Option<SyntaxToken> {
1565        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1566    }
1567}
1568
1569#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1570pub struct AlterTrigger {
1571    pub(crate) syntax: SyntaxNode,
1572}
1573impl AlterTrigger {
1574    #[inline]
1575    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1576        support::child(&self.syntax)
1577    }
1578    #[inline]
1579    pub fn name_ref(&self) -> Option<NameRef> {
1580        support::child(&self.syntax)
1581    }
1582    #[inline]
1583    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1584        support::child(&self.syntax)
1585    }
1586    #[inline]
1587    pub fn on_table(&self) -> Option<OnTable> {
1588        support::child(&self.syntax)
1589    }
1590    #[inline]
1591    pub fn rename_to(&self) -> Option<RenameTo> {
1592        support::child(&self.syntax)
1593    }
1594    #[inline]
1595    pub fn alter_token(&self) -> Option<SyntaxToken> {
1596        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1597    }
1598    #[inline]
1599    pub fn trigger_token(&self) -> Option<SyntaxToken> {
1600        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
1601    }
1602}
1603
1604#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1605pub struct AlterType {
1606    pub(crate) syntax: SyntaxNode,
1607}
1608impl AlterType {
1609    #[inline]
1610    pub fn path(&self) -> Option<Path> {
1611        support::child(&self.syntax)
1612    }
1613    #[inline]
1614    pub fn alter_token(&self) -> Option<SyntaxToken> {
1615        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1616    }
1617    #[inline]
1618    pub fn type_token(&self) -> Option<SyntaxToken> {
1619        support::token(&self.syntax, SyntaxKind::TYPE_KW)
1620    }
1621}
1622
1623#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1624pub struct AlterUser {
1625    pub(crate) syntax: SyntaxNode,
1626}
1627impl AlterUser {
1628    #[inline]
1629    pub fn role_ref(&self) -> Option<RoleRef> {
1630        support::child(&self.syntax)
1631    }
1632    #[inline]
1633    pub fn alter_token(&self) -> Option<SyntaxToken> {
1634        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1635    }
1636    #[inline]
1637    pub fn user_token(&self) -> Option<SyntaxToken> {
1638        support::token(&self.syntax, SyntaxKind::USER_KW)
1639    }
1640}
1641
1642#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1643pub struct AlterUserMapping {
1644    pub(crate) syntax: SyntaxNode,
1645}
1646impl AlterUserMapping {
1647    #[inline]
1648    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1649        support::child(&self.syntax)
1650    }
1651    #[inline]
1652    pub fn role_ref(&self) -> Option<RoleRef> {
1653        support::child(&self.syntax)
1654    }
1655    #[inline]
1656    pub fn server_name(&self) -> Option<ServerName> {
1657        support::child(&self.syntax)
1658    }
1659    #[inline]
1660    pub fn alter_token(&self) -> Option<SyntaxToken> {
1661        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1662    }
1663    #[inline]
1664    pub fn for_token(&self) -> Option<SyntaxToken> {
1665        support::token(&self.syntax, SyntaxKind::FOR_KW)
1666    }
1667    #[inline]
1668    pub fn mapping_token(&self) -> Option<SyntaxToken> {
1669        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
1670    }
1671    #[inline]
1672    pub fn user_token(&self) -> Option<SyntaxToken> {
1673        support::token(&self.syntax, SyntaxKind::USER_KW)
1674    }
1675}
1676
1677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1678pub struct AlterView {
1679    pub(crate) syntax: SyntaxNode,
1680}
1681impl AlterView {
1682    #[inline]
1683    pub fn path(&self) -> Option<Path> {
1684        support::child(&self.syntax)
1685    }
1686    #[inline]
1687    pub fn alter_token(&self) -> Option<SyntaxToken> {
1688        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1689    }
1690    #[inline]
1691    pub fn view_token(&self) -> Option<SyntaxToken> {
1692        support::token(&self.syntax, SyntaxKind::VIEW_KW)
1693    }
1694}
1695
1696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1697pub struct Analyze {
1698    pub(crate) syntax: SyntaxNode,
1699}
1700impl Analyze {
1701    #[inline]
1702    pub fn option_item_list(&self) -> Option<OptionItemList> {
1703        support::child(&self.syntax)
1704    }
1705    #[inline]
1706    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
1707        support::child(&self.syntax)
1708    }
1709    #[inline]
1710    pub fn analyse_token(&self) -> Option<SyntaxToken> {
1711        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
1712    }
1713    #[inline]
1714    pub fn analyze_token(&self) -> Option<SyntaxToken> {
1715        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
1716    }
1717    #[inline]
1718    pub fn verbose_token(&self) -> Option<SyntaxToken> {
1719        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
1720    }
1721}
1722
1723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1724pub struct AnyFn {
1725    pub(crate) syntax: SyntaxNode,
1726}
1727impl AnyFn {
1728    #[inline]
1729    pub fn expr(&self) -> Option<Expr> {
1730        support::child(&self.syntax)
1731    }
1732    #[inline]
1733    pub fn select_variant(&self) -> Option<SelectVariant> {
1734        support::child(&self.syntax)
1735    }
1736    #[inline]
1737    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1738        support::token(&self.syntax, SyntaxKind::L_PAREN)
1739    }
1740    #[inline]
1741    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1742        support::token(&self.syntax, SyntaxKind::R_PAREN)
1743    }
1744    #[inline]
1745    pub fn any_token(&self) -> Option<SyntaxToken> {
1746        support::token(&self.syntax, SyntaxKind::ANY_KW)
1747    }
1748}
1749
1750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1751pub struct Arg {
1752    pub(crate) syntax: SyntaxNode,
1753}
1754impl Arg {
1755    #[inline]
1756    pub fn expr(&self) -> Option<Expr> {
1757        support::child(&self.syntax)
1758    }
1759}
1760
1761#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1762pub struct ArgList {
1763    pub(crate) syntax: SyntaxNode,
1764}
1765impl ArgList {
1766    #[inline]
1767    pub fn args(&self) -> AstChildren<Expr> {
1768        support::children(&self.syntax)
1769    }
1770    #[inline]
1771    pub fn expr(&self) -> Option<Expr> {
1772        support::child(&self.syntax)
1773    }
1774    #[inline]
1775    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1776        support::token(&self.syntax, SyntaxKind::L_PAREN)
1777    }
1778    #[inline]
1779    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1780        support::token(&self.syntax, SyntaxKind::R_PAREN)
1781    }
1782    #[inline]
1783    pub fn star_token(&self) -> Option<SyntaxToken> {
1784        support::token(&self.syntax, SyntaxKind::STAR)
1785    }
1786    #[inline]
1787    pub fn all_token(&self) -> Option<SyntaxToken> {
1788        support::token(&self.syntax, SyntaxKind::ALL_KW)
1789    }
1790    #[inline]
1791    pub fn distinct_token(&self) -> Option<SyntaxToken> {
1792        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
1793    }
1794    #[inline]
1795    pub fn variadic_token(&self) -> Option<SyntaxToken> {
1796        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
1797    }
1798}
1799
1800#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1801pub struct ArrayExpr {
1802    pub(crate) syntax: SyntaxNode,
1803}
1804impl ArrayExpr {
1805    #[inline]
1806    pub fn exprs(&self) -> AstChildren<Expr> {
1807        support::children(&self.syntax)
1808    }
1809    #[inline]
1810    pub fn select(&self) -> Option<Select> {
1811        support::child(&self.syntax)
1812    }
1813    #[inline]
1814    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1815        support::token(&self.syntax, SyntaxKind::L_PAREN)
1816    }
1817    #[inline]
1818    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1819        support::token(&self.syntax, SyntaxKind::R_PAREN)
1820    }
1821    #[inline]
1822    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1823        support::token(&self.syntax, SyntaxKind::L_BRACK)
1824    }
1825    #[inline]
1826    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1827        support::token(&self.syntax, SyntaxKind::R_BRACK)
1828    }
1829    #[inline]
1830    pub fn array_token(&self) -> Option<SyntaxToken> {
1831        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1832    }
1833}
1834
1835#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1836pub struct ArrayType {
1837    pub(crate) syntax: SyntaxNode,
1838}
1839impl ArrayType {
1840    #[inline]
1841    pub fn expr(&self) -> Option<Expr> {
1842        support::child(&self.syntax)
1843    }
1844    #[inline]
1845    pub fn name_ref(&self) -> Option<NameRef> {
1846        support::child(&self.syntax)
1847    }
1848    #[inline]
1849    pub fn ty(&self) -> Option<Type> {
1850        support::child(&self.syntax)
1851    }
1852    #[inline]
1853    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1854        support::token(&self.syntax, SyntaxKind::L_BRACK)
1855    }
1856    #[inline]
1857    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1858        support::token(&self.syntax, SyntaxKind::R_BRACK)
1859    }
1860    #[inline]
1861    pub fn array_token(&self) -> Option<SyntaxToken> {
1862        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1863    }
1864}
1865
1866#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1867pub struct AsFuncOption {
1868    pub(crate) syntax: SyntaxNode,
1869}
1870impl AsFuncOption {
1871    #[inline]
1872    pub fn definition(&self) -> Option<Literal> {
1873        support::child(&self.syntax)
1874    }
1875    #[inline]
1876    pub fn link_symbol(&self) -> Option<Literal> {
1877        support::child(&self.syntax)
1878    }
1879    #[inline]
1880    pub fn obj_file(&self) -> Option<Literal> {
1881        support::child(&self.syntax)
1882    }
1883    #[inline]
1884    pub fn comma_token(&self) -> Option<SyntaxToken> {
1885        support::token(&self.syntax, SyntaxKind::COMMA)
1886    }
1887    #[inline]
1888    pub fn as_token(&self) -> Option<SyntaxToken> {
1889        support::token(&self.syntax, SyntaxKind::AS_KW)
1890    }
1891}
1892
1893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1894pub struct AsName {
1895    pub(crate) syntax: SyntaxNode,
1896}
1897impl AsName {
1898    #[inline]
1899    pub fn name(&self) -> Option<Name> {
1900        support::child(&self.syntax)
1901    }
1902    #[inline]
1903    pub fn as_token(&self) -> Option<SyntaxToken> {
1904        support::token(&self.syntax, SyntaxKind::AS_KW)
1905    }
1906}
1907
1908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1909pub struct AsPolicyType {
1910    pub(crate) syntax: SyntaxNode,
1911}
1912impl AsPolicyType {
1913    #[inline]
1914    pub fn as_token(&self) -> Option<SyntaxToken> {
1915        support::token(&self.syntax, SyntaxKind::AS_KW)
1916    }
1917    #[inline]
1918    pub fn ident_token(&self) -> Option<SyntaxToken> {
1919        support::token(&self.syntax, SyntaxKind::IDENT)
1920    }
1921}
1922
1923#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1924pub struct AtTimeZone {
1925    pub(crate) syntax: SyntaxNode,
1926}
1927impl AtTimeZone {
1928    #[inline]
1929    pub fn at_token(&self) -> Option<SyntaxToken> {
1930        support::token(&self.syntax, SyntaxKind::AT_KW)
1931    }
1932    #[inline]
1933    pub fn time_token(&self) -> Option<SyntaxToken> {
1934        support::token(&self.syntax, SyntaxKind::TIME_KW)
1935    }
1936    #[inline]
1937    pub fn zone_token(&self) -> Option<SyntaxToken> {
1938        support::token(&self.syntax, SyntaxKind::ZONE_KW)
1939    }
1940}
1941
1942#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1943pub struct AttachPartition {
1944    pub(crate) syntax: SyntaxNode,
1945}
1946impl AttachPartition {
1947    #[inline]
1948    pub fn partition_type(&self) -> Option<PartitionType> {
1949        support::child(&self.syntax)
1950    }
1951    #[inline]
1952    pub fn path(&self) -> Option<Path> {
1953        support::child(&self.syntax)
1954    }
1955    #[inline]
1956    pub fn attach_token(&self) -> Option<SyntaxToken> {
1957        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
1958    }
1959    #[inline]
1960    pub fn partition_token(&self) -> Option<SyntaxToken> {
1961        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
1962    }
1963}
1964
1965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1966pub struct AttributeList {
1967    pub(crate) syntax: SyntaxNode,
1968}
1969impl AttributeList {
1970    #[inline]
1971    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
1972        support::children(&self.syntax)
1973    }
1974    #[inline]
1975    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1976        support::token(&self.syntax, SyntaxKind::L_PAREN)
1977    }
1978    #[inline]
1979    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1980        support::token(&self.syntax, SyntaxKind::R_PAREN)
1981    }
1982}
1983
1984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1985pub struct AttributeOption {
1986    pub(crate) syntax: SyntaxNode,
1987}
1988impl AttributeOption {
1989    #[inline]
1990    pub fn attribute_value(&self) -> Option<AttributeValue> {
1991        support::child(&self.syntax)
1992    }
1993    #[inline]
1994    pub fn name(&self) -> Option<Name> {
1995        support::child(&self.syntax)
1996    }
1997    #[inline]
1998    pub fn dot_token(&self) -> Option<SyntaxToken> {
1999        support::token(&self.syntax, SyntaxKind::DOT)
2000    }
2001    #[inline]
2002    pub fn eq_token(&self) -> Option<SyntaxToken> {
2003        support::token(&self.syntax, SyntaxKind::EQ)
2004    }
2005}
2006
2007#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2008pub struct AttributeValue {
2009    pub(crate) syntax: SyntaxNode,
2010}
2011impl AttributeValue {
2012    #[inline]
2013    pub fn literal(&self) -> Option<Literal> {
2014        support::child(&self.syntax)
2015    }
2016    #[inline]
2017    pub fn op(&self) -> Option<Op> {
2018        support::child(&self.syntax)
2019    }
2020    #[inline]
2021    pub fn ty(&self) -> Option<Type> {
2022        support::child(&self.syntax)
2023    }
2024    #[inline]
2025    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2026        support::token(&self.syntax, SyntaxKind::L_PAREN)
2027    }
2028    #[inline]
2029    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2030        support::token(&self.syntax, SyntaxKind::R_PAREN)
2031    }
2032    #[inline]
2033    pub fn none_token(&self) -> Option<SyntaxToken> {
2034        support::token(&self.syntax, SyntaxKind::NONE_KW)
2035    }
2036    #[inline]
2037    pub fn operator_token(&self) -> Option<SyntaxToken> {
2038        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2039    }
2040}
2041
2042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2043pub struct Begin {
2044    pub(crate) syntax: SyntaxNode,
2045}
2046impl Begin {
2047    #[inline]
2048    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
2049        support::child(&self.syntax)
2050    }
2051    #[inline]
2052    pub fn begin_token(&self) -> Option<SyntaxToken> {
2053        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2054    }
2055    #[inline]
2056    pub fn start_token(&self) -> Option<SyntaxToken> {
2057        support::token(&self.syntax, SyntaxKind::START_KW)
2058    }
2059    #[inline]
2060    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2061        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2062    }
2063    #[inline]
2064    pub fn work_token(&self) -> Option<SyntaxToken> {
2065        support::token(&self.syntax, SyntaxKind::WORK_KW)
2066    }
2067}
2068
2069#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2070pub struct BeginFuncOption {
2071    pub(crate) syntax: SyntaxNode,
2072}
2073impl BeginFuncOption {
2074    #[inline]
2075    pub fn return_func_option(&self) -> Option<ReturnFuncOption> {
2076        support::child(&self.syntax)
2077    }
2078    #[inline]
2079    pub fn stmt(&self) -> Option<Stmt> {
2080        support::child(&self.syntax)
2081    }
2082    #[inline]
2083    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2084        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2085    }
2086}
2087
2088#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2089pub struct BeginFuncOptionList {
2090    pub(crate) syntax: SyntaxNode,
2091}
2092impl BeginFuncOptionList {
2093    #[inline]
2094    pub fn begin_func_options(&self) -> AstChildren<BeginFuncOption> {
2095        support::children(&self.syntax)
2096    }
2097    #[inline]
2098    pub fn atomic_token(&self) -> Option<SyntaxToken> {
2099        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
2100    }
2101    #[inline]
2102    pub fn begin_token(&self) -> Option<SyntaxToken> {
2103        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2104    }
2105    #[inline]
2106    pub fn end_token(&self) -> Option<SyntaxToken> {
2107        support::token(&self.syntax, SyntaxKind::END_KW)
2108    }
2109}
2110
2111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2112pub struct BetweenExpr {
2113    pub(crate) syntax: SyntaxNode,
2114}
2115impl BetweenExpr {
2116    #[inline]
2117    pub fn and_token(&self) -> Option<SyntaxToken> {
2118        support::token(&self.syntax, SyntaxKind::AND_KW)
2119    }
2120    #[inline]
2121    pub fn between_token(&self) -> Option<SyntaxToken> {
2122        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
2123    }
2124}
2125
2126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2127pub struct BinExpr {
2128    pub(crate) syntax: SyntaxNode,
2129}
2130impl BinExpr {
2131    #[inline]
2132    pub fn op(&self) -> Option<Op> {
2133        support::child(&self.syntax)
2134    }
2135}
2136
2137#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2138pub struct BitType {
2139    pub(crate) syntax: SyntaxNode,
2140}
2141impl BitType {
2142    #[inline]
2143    pub fn arg_list(&self) -> Option<ArgList> {
2144        support::child(&self.syntax)
2145    }
2146    #[inline]
2147    pub fn bit_token(&self) -> Option<SyntaxToken> {
2148        support::token(&self.syntax, SyntaxKind::BIT_KW)
2149    }
2150    #[inline]
2151    pub fn varying_token(&self) -> Option<SyntaxToken> {
2152        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2153    }
2154}
2155
2156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2157pub struct Call {
2158    pub(crate) syntax: SyntaxNode,
2159}
2160impl Call {
2161    #[inline]
2162    pub fn arg_list(&self) -> Option<ArgList> {
2163        support::child(&self.syntax)
2164    }
2165    #[inline]
2166    pub fn path(&self) -> Option<Path> {
2167        support::child(&self.syntax)
2168    }
2169    #[inline]
2170    pub fn call_token(&self) -> Option<SyntaxToken> {
2171        support::token(&self.syntax, SyntaxKind::CALL_KW)
2172    }
2173}
2174
2175#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2176pub struct CallExpr {
2177    pub(crate) syntax: SyntaxNode,
2178}
2179impl CallExpr {
2180    #[inline]
2181    pub fn all_fn(&self) -> Option<AllFn> {
2182        support::child(&self.syntax)
2183    }
2184    #[inline]
2185    pub fn any_fn(&self) -> Option<AnyFn> {
2186        support::child(&self.syntax)
2187    }
2188    #[inline]
2189    pub fn arg_list(&self) -> Option<ArgList> {
2190        support::child(&self.syntax)
2191    }
2192    #[inline]
2193    pub fn exists_fn(&self) -> Option<ExistsFn> {
2194        support::child(&self.syntax)
2195    }
2196    #[inline]
2197    pub fn expr(&self) -> Option<Expr> {
2198        support::child(&self.syntax)
2199    }
2200    #[inline]
2201    pub fn extract_fn(&self) -> Option<ExtractFn> {
2202        support::child(&self.syntax)
2203    }
2204    #[inline]
2205    pub fn filter_clause(&self) -> Option<FilterClause> {
2206        support::child(&self.syntax)
2207    }
2208    #[inline]
2209    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
2210        support::child(&self.syntax)
2211    }
2212    #[inline]
2213    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
2214        support::child(&self.syntax)
2215    }
2216    #[inline]
2217    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
2218        support::child(&self.syntax)
2219    }
2220    #[inline]
2221    pub fn json_fn(&self) -> Option<JsonFn> {
2222        support::child(&self.syntax)
2223    }
2224    #[inline]
2225    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
2226        support::child(&self.syntax)
2227    }
2228    #[inline]
2229    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
2230        support::child(&self.syntax)
2231    }
2232    #[inline]
2233    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
2234        support::child(&self.syntax)
2235    }
2236    #[inline]
2237    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
2238        support::child(&self.syntax)
2239    }
2240    #[inline]
2241    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
2242        support::child(&self.syntax)
2243    }
2244    #[inline]
2245    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
2246        support::child(&self.syntax)
2247    }
2248    #[inline]
2249    pub fn over_clause(&self) -> Option<OverClause> {
2250        support::child(&self.syntax)
2251    }
2252    #[inline]
2253    pub fn overlay_fn(&self) -> Option<OverlayFn> {
2254        support::child(&self.syntax)
2255    }
2256    #[inline]
2257    pub fn position_fn(&self) -> Option<PositionFn> {
2258        support::child(&self.syntax)
2259    }
2260    #[inline]
2261    pub fn some_fn(&self) -> Option<SomeFn> {
2262        support::child(&self.syntax)
2263    }
2264    #[inline]
2265    pub fn substring_fn(&self) -> Option<SubstringFn> {
2266        support::child(&self.syntax)
2267    }
2268    #[inline]
2269    pub fn trim_fn(&self) -> Option<TrimFn> {
2270        support::child(&self.syntax)
2271    }
2272    #[inline]
2273    pub fn within_clause(&self) -> Option<WithinClause> {
2274        support::child(&self.syntax)
2275    }
2276    #[inline]
2277    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
2278        support::child(&self.syntax)
2279    }
2280    #[inline]
2281    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
2282        support::child(&self.syntax)
2283    }
2284    #[inline]
2285    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
2286        support::child(&self.syntax)
2287    }
2288    #[inline]
2289    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
2290        support::child(&self.syntax)
2291    }
2292    #[inline]
2293    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
2294        support::child(&self.syntax)
2295    }
2296    #[inline]
2297    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
2298        support::child(&self.syntax)
2299    }
2300    #[inline]
2301    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
2302        support::child(&self.syntax)
2303    }
2304}
2305
2306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2307pub struct Cascade {
2308    pub(crate) syntax: SyntaxNode,
2309}
2310impl Cascade {
2311    #[inline]
2312    pub fn cascade_token(&self) -> Option<SyntaxToken> {
2313        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
2314    }
2315}
2316
2317#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2318pub struct CaseExpr {
2319    pub(crate) syntax: SyntaxNode,
2320}
2321impl CaseExpr {
2322    #[inline]
2323    pub fn else_clause(&self) -> Option<ElseClause> {
2324        support::child(&self.syntax)
2325    }
2326    #[inline]
2327    pub fn expr(&self) -> Option<Expr> {
2328        support::child(&self.syntax)
2329    }
2330    #[inline]
2331    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
2332        support::child(&self.syntax)
2333    }
2334    #[inline]
2335    pub fn case_token(&self) -> Option<SyntaxToken> {
2336        support::token(&self.syntax, SyntaxKind::CASE_KW)
2337    }
2338}
2339
2340#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2341pub struct CastExpr {
2342    pub(crate) syntax: SyntaxNode,
2343}
2344impl CastExpr {
2345    #[inline]
2346    pub fn colon_colon(&self) -> Option<ColonColon> {
2347        support::child(&self.syntax)
2348    }
2349    #[inline]
2350    pub fn expr(&self) -> Option<Expr> {
2351        support::child(&self.syntax)
2352    }
2353    #[inline]
2354    pub fn literal(&self) -> Option<Literal> {
2355        support::child(&self.syntax)
2356    }
2357    #[inline]
2358    pub fn ty(&self) -> Option<Type> {
2359        support::child(&self.syntax)
2360    }
2361    #[inline]
2362    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2363        support::token(&self.syntax, SyntaxKind::L_PAREN)
2364    }
2365    #[inline]
2366    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2367        support::token(&self.syntax, SyntaxKind::R_PAREN)
2368    }
2369    #[inline]
2370    pub fn as_token(&self) -> Option<SyntaxToken> {
2371        support::token(&self.syntax, SyntaxKind::AS_KW)
2372    }
2373    #[inline]
2374    pub fn cast_token(&self) -> Option<SyntaxToken> {
2375        support::token(&self.syntax, SyntaxKind::CAST_KW)
2376    }
2377    #[inline]
2378    pub fn treat_token(&self) -> Option<SyntaxToken> {
2379        support::token(&self.syntax, SyntaxKind::TREAT_KW)
2380    }
2381}
2382
2383#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2384pub struct CastSig {
2385    pub(crate) syntax: SyntaxNode,
2386}
2387impl CastSig {
2388    #[inline]
2389    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2390        support::token(&self.syntax, SyntaxKind::L_PAREN)
2391    }
2392    #[inline]
2393    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2394        support::token(&self.syntax, SyntaxKind::R_PAREN)
2395    }
2396    #[inline]
2397    pub fn as_token(&self) -> Option<SyntaxToken> {
2398        support::token(&self.syntax, SyntaxKind::AS_KW)
2399    }
2400}
2401
2402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2403pub struct CharType {
2404    pub(crate) syntax: SyntaxNode,
2405}
2406impl CharType {
2407    #[inline]
2408    pub fn arg_list(&self) -> Option<ArgList> {
2409        support::child(&self.syntax)
2410    }
2411    #[inline]
2412    pub fn char_token(&self) -> Option<SyntaxToken> {
2413        support::token(&self.syntax, SyntaxKind::CHAR_KW)
2414    }
2415    #[inline]
2416    pub fn character_token(&self) -> Option<SyntaxToken> {
2417        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
2418    }
2419    #[inline]
2420    pub fn nchar_token(&self) -> Option<SyntaxToken> {
2421        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2422    }
2423    #[inline]
2424    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2425        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2426    }
2427    #[inline]
2428    pub fn varying_token(&self) -> Option<SyntaxToken> {
2429        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2430    }
2431}
2432
2433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2434pub struct CheckConstraint {
2435    pub(crate) syntax: SyntaxNode,
2436}
2437impl CheckConstraint {
2438    #[inline]
2439    pub fn constraint_name(&self) -> Option<ConstraintName> {
2440        support::child(&self.syntax)
2441    }
2442    #[inline]
2443    pub fn expr(&self) -> Option<Expr> {
2444        support::child(&self.syntax)
2445    }
2446    #[inline]
2447    pub fn no_inherit(&self) -> Option<NoInherit> {
2448        support::child(&self.syntax)
2449    }
2450    #[inline]
2451    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2452        support::token(&self.syntax, SyntaxKind::L_PAREN)
2453    }
2454    #[inline]
2455    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2456        support::token(&self.syntax, SyntaxKind::R_PAREN)
2457    }
2458    #[inline]
2459    pub fn check_token(&self) -> Option<SyntaxToken> {
2460        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2461    }
2462}
2463
2464#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2465pub struct Checkpoint {
2466    pub(crate) syntax: SyntaxNode,
2467}
2468impl Checkpoint {
2469    #[inline]
2470    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
2471        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
2472    }
2473}
2474
2475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2476pub struct Close {
2477    pub(crate) syntax: SyntaxNode,
2478}
2479impl Close {
2480    #[inline]
2481    pub fn name_ref(&self) -> Option<NameRef> {
2482        support::child(&self.syntax)
2483    }
2484    #[inline]
2485    pub fn close_token(&self) -> Option<SyntaxToken> {
2486        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
2487    }
2488}
2489
2490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2491pub struct Cluster {
2492    pub(crate) syntax: SyntaxNode,
2493}
2494impl Cluster {
2495    #[inline]
2496    pub fn option_item_list(&self) -> Option<OptionItemList> {
2497        support::child(&self.syntax)
2498    }
2499    #[inline]
2500    pub fn path(&self) -> Option<Path> {
2501        support::child(&self.syntax)
2502    }
2503    #[inline]
2504    pub fn using_method(&self) -> Option<UsingMethod> {
2505        support::child(&self.syntax)
2506    }
2507    #[inline]
2508    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2509        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2510    }
2511    #[inline]
2512    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2513        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2514    }
2515}
2516
2517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2518pub struct ClusterOn {
2519    pub(crate) syntax: SyntaxNode,
2520}
2521impl ClusterOn {
2522    #[inline]
2523    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2524        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2525    }
2526    #[inline]
2527    pub fn on_token(&self) -> Option<SyntaxToken> {
2528        support::token(&self.syntax, SyntaxKind::ON_KW)
2529    }
2530}
2531
2532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2533pub struct Collate {
2534    pub(crate) syntax: SyntaxNode,
2535}
2536impl Collate {
2537    #[inline]
2538    pub fn path(&self) -> Option<Path> {
2539        support::child(&self.syntax)
2540    }
2541    #[inline]
2542    pub fn collate_token(&self) -> Option<SyntaxToken> {
2543        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
2544    }
2545}
2546
2547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2548pub struct ColonColon {
2549    pub(crate) syntax: SyntaxNode,
2550}
2551impl ColonColon {
2552    #[inline]
2553    pub fn colon_token(&self) -> Option<SyntaxToken> {
2554        support::token(&self.syntax, SyntaxKind::COLON)
2555    }
2556}
2557
2558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2559pub struct ColonEq {
2560    pub(crate) syntax: SyntaxNode,
2561}
2562impl ColonEq {
2563    #[inline]
2564    pub fn colon_token(&self) -> Option<SyntaxToken> {
2565        support::token(&self.syntax, SyntaxKind::COLON)
2566    }
2567    #[inline]
2568    pub fn eq_token(&self) -> Option<SyntaxToken> {
2569        support::token(&self.syntax, SyntaxKind::EQ)
2570    }
2571}
2572
2573#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2574pub struct Column {
2575    pub(crate) syntax: SyntaxNode,
2576}
2577impl Column {
2578    #[inline]
2579    pub fn collate(&self) -> Option<Collate> {
2580        support::child(&self.syntax)
2581    }
2582    #[inline]
2583    pub fn compression_method(&self) -> Option<CompressionMethod> {
2584        support::child(&self.syntax)
2585    }
2586    #[inline]
2587    pub fn constraint(&self) -> Option<ColumnConstraint> {
2588        support::child(&self.syntax)
2589    }
2590    #[inline]
2591    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
2592        support::child(&self.syntax)
2593    }
2594    #[inline]
2595    pub fn enforced(&self) -> Option<Enforced> {
2596        support::child(&self.syntax)
2597    }
2598    #[inline]
2599    pub fn index_expr(&self) -> Option<IndexExpr> {
2600        support::child(&self.syntax)
2601    }
2602    #[inline]
2603    pub fn initially_deferred_constraint_option(
2604        &self,
2605    ) -> Option<InitiallyDeferredConstraintOption> {
2606        support::child(&self.syntax)
2607    }
2608    #[inline]
2609    pub fn initially_immediate_constraint_option(
2610        &self,
2611    ) -> Option<InitiallyImmediateConstraintOption> {
2612        support::child(&self.syntax)
2613    }
2614    #[inline]
2615    pub fn name(&self) -> Option<Name> {
2616        support::child(&self.syntax)
2617    }
2618    #[inline]
2619    pub fn name_ref(&self) -> Option<NameRef> {
2620        support::child(&self.syntax)
2621    }
2622    #[inline]
2623    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
2624        support::child(&self.syntax)
2625    }
2626    #[inline]
2627    pub fn not_enforced(&self) -> Option<NotEnforced> {
2628        support::child(&self.syntax)
2629    }
2630    #[inline]
2631    pub fn storage(&self) -> Option<Storage> {
2632        support::child(&self.syntax)
2633    }
2634    #[inline]
2635    pub fn ty(&self) -> Option<Type> {
2636        support::child(&self.syntax)
2637    }
2638    #[inline]
2639    pub fn with_options(&self) -> Option<WithOptions> {
2640        support::child(&self.syntax)
2641    }
2642    #[inline]
2643    pub fn period_token(&self) -> Option<SyntaxToken> {
2644        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
2645    }
2646}
2647
2648#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2649pub struct ColumnList {
2650    pub(crate) syntax: SyntaxNode,
2651}
2652impl ColumnList {
2653    #[inline]
2654    pub fn columns(&self) -> AstChildren<Column> {
2655        support::children(&self.syntax)
2656    }
2657    #[inline]
2658    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2659        support::token(&self.syntax, SyntaxKind::L_PAREN)
2660    }
2661    #[inline]
2662    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2663        support::token(&self.syntax, SyntaxKind::R_PAREN)
2664    }
2665}
2666
2667#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2668pub struct CommentOn {
2669    pub(crate) syntax: SyntaxNode,
2670}
2671impl CommentOn {
2672    #[inline]
2673    pub fn aggregate(&self) -> Option<Aggregate> {
2674        support::child(&self.syntax)
2675    }
2676    #[inline]
2677    pub fn cast_sig(&self) -> Option<CastSig> {
2678        support::child(&self.syntax)
2679    }
2680    #[inline]
2681    pub fn function_sig(&self) -> Option<FunctionSig> {
2682        support::child(&self.syntax)
2683    }
2684    #[inline]
2685    pub fn literal(&self) -> Option<Literal> {
2686        support::child(&self.syntax)
2687    }
2688    #[inline]
2689    pub fn name_ref(&self) -> Option<NameRef> {
2690        support::child(&self.syntax)
2691    }
2692    #[inline]
2693    pub fn op(&self) -> Option<Op> {
2694        support::child(&self.syntax)
2695    }
2696    #[inline]
2697    pub fn path(&self) -> Option<Path> {
2698        support::child(&self.syntax)
2699    }
2700    #[inline]
2701    pub fn ty(&self) -> Option<Type> {
2702        support::child(&self.syntax)
2703    }
2704    #[inline]
2705    pub fn using_method(&self) -> Option<UsingMethod> {
2706        support::child(&self.syntax)
2707    }
2708    #[inline]
2709    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2710        support::token(&self.syntax, SyntaxKind::L_PAREN)
2711    }
2712    #[inline]
2713    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2714        support::token(&self.syntax, SyntaxKind::R_PAREN)
2715    }
2716    #[inline]
2717    pub fn comma_token(&self) -> Option<SyntaxToken> {
2718        support::token(&self.syntax, SyntaxKind::COMMA)
2719    }
2720    #[inline]
2721    pub fn access_token(&self) -> Option<SyntaxToken> {
2722        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
2723    }
2724    #[inline]
2725    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
2726        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
2727    }
2728    #[inline]
2729    pub fn cast_token(&self) -> Option<SyntaxToken> {
2730        support::token(&self.syntax, SyntaxKind::CAST_KW)
2731    }
2732    #[inline]
2733    pub fn class_token(&self) -> Option<SyntaxToken> {
2734        support::token(&self.syntax, SyntaxKind::CLASS_KW)
2735    }
2736    #[inline]
2737    pub fn collation_token(&self) -> Option<SyntaxToken> {
2738        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
2739    }
2740    #[inline]
2741    pub fn column_token(&self) -> Option<SyntaxToken> {
2742        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
2743    }
2744    #[inline]
2745    pub fn comment_token(&self) -> Option<SyntaxToken> {
2746        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
2747    }
2748    #[inline]
2749    pub fn configuration_token(&self) -> Option<SyntaxToken> {
2750        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
2751    }
2752    #[inline]
2753    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2754        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2755    }
2756    #[inline]
2757    pub fn conversion_token(&self) -> Option<SyntaxToken> {
2758        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
2759    }
2760    #[inline]
2761    pub fn data_token(&self) -> Option<SyntaxToken> {
2762        support::token(&self.syntax, SyntaxKind::DATA_KW)
2763    }
2764    #[inline]
2765    pub fn database_token(&self) -> Option<SyntaxToken> {
2766        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
2767    }
2768    #[inline]
2769    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
2770        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
2771    }
2772    #[inline]
2773    pub fn domain_token(&self) -> Option<SyntaxToken> {
2774        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
2775    }
2776    #[inline]
2777    pub fn event_token(&self) -> Option<SyntaxToken> {
2778        support::token(&self.syntax, SyntaxKind::EVENT_KW)
2779    }
2780    #[inline]
2781    pub fn extension_token(&self) -> Option<SyntaxToken> {
2782        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
2783    }
2784    #[inline]
2785    pub fn family_token(&self) -> Option<SyntaxToken> {
2786        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
2787    }
2788    #[inline]
2789    pub fn for_token(&self) -> Option<SyntaxToken> {
2790        support::token(&self.syntax, SyntaxKind::FOR_KW)
2791    }
2792    #[inline]
2793    pub fn foreign_token(&self) -> Option<SyntaxToken> {
2794        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
2795    }
2796    #[inline]
2797    pub fn function_token(&self) -> Option<SyntaxToken> {
2798        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
2799    }
2800    #[inline]
2801    pub fn index_token(&self) -> Option<SyntaxToken> {
2802        support::token(&self.syntax, SyntaxKind::INDEX_KW)
2803    }
2804    #[inline]
2805    pub fn is_token(&self) -> Option<SyntaxToken> {
2806        support::token(&self.syntax, SyntaxKind::IS_KW)
2807    }
2808    #[inline]
2809    pub fn language_token(&self) -> Option<SyntaxToken> {
2810        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
2811    }
2812    #[inline]
2813    pub fn large_token(&self) -> Option<SyntaxToken> {
2814        support::token(&self.syntax, SyntaxKind::LARGE_KW)
2815    }
2816    #[inline]
2817    pub fn materialized_token(&self) -> Option<SyntaxToken> {
2818        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
2819    }
2820    #[inline]
2821    pub fn method_token(&self) -> Option<SyntaxToken> {
2822        support::token(&self.syntax, SyntaxKind::METHOD_KW)
2823    }
2824    #[inline]
2825    pub fn null_token(&self) -> Option<SyntaxToken> {
2826        support::token(&self.syntax, SyntaxKind::NULL_KW)
2827    }
2828    #[inline]
2829    pub fn object_token(&self) -> Option<SyntaxToken> {
2830        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
2831    }
2832    #[inline]
2833    pub fn on_token(&self) -> Option<SyntaxToken> {
2834        support::token(&self.syntax, SyntaxKind::ON_KW)
2835    }
2836    #[inline]
2837    pub fn operator_token(&self) -> Option<SyntaxToken> {
2838        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2839    }
2840    #[inline]
2841    pub fn parser_token(&self) -> Option<SyntaxToken> {
2842        support::token(&self.syntax, SyntaxKind::PARSER_KW)
2843    }
2844    #[inline]
2845    pub fn policy_token(&self) -> Option<SyntaxToken> {
2846        support::token(&self.syntax, SyntaxKind::POLICY_KW)
2847    }
2848    #[inline]
2849    pub fn procedural_token(&self) -> Option<SyntaxToken> {
2850        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
2851    }
2852    #[inline]
2853    pub fn procedure_token(&self) -> Option<SyntaxToken> {
2854        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
2855    }
2856    #[inline]
2857    pub fn publication_token(&self) -> Option<SyntaxToken> {
2858        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
2859    }
2860    #[inline]
2861    pub fn role_token(&self) -> Option<SyntaxToken> {
2862        support::token(&self.syntax, SyntaxKind::ROLE_KW)
2863    }
2864    #[inline]
2865    pub fn routine_token(&self) -> Option<SyntaxToken> {
2866        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
2867    }
2868    #[inline]
2869    pub fn rule_token(&self) -> Option<SyntaxToken> {
2870        support::token(&self.syntax, SyntaxKind::RULE_KW)
2871    }
2872    #[inline]
2873    pub fn schema_token(&self) -> Option<SyntaxToken> {
2874        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
2875    }
2876    #[inline]
2877    pub fn search_token(&self) -> Option<SyntaxToken> {
2878        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2879    }
2880    #[inline]
2881    pub fn sequence_token(&self) -> Option<SyntaxToken> {
2882        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
2883    }
2884    #[inline]
2885    pub fn server_token(&self) -> Option<SyntaxToken> {
2886        support::token(&self.syntax, SyntaxKind::SERVER_KW)
2887    }
2888    #[inline]
2889    pub fn statistics_token(&self) -> Option<SyntaxToken> {
2890        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
2891    }
2892    #[inline]
2893    pub fn subscription_token(&self) -> Option<SyntaxToken> {
2894        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
2895    }
2896    #[inline]
2897    pub fn table_token(&self) -> Option<SyntaxToken> {
2898        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2899    }
2900    #[inline]
2901    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
2902        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
2903    }
2904    #[inline]
2905    pub fn template_token(&self) -> Option<SyntaxToken> {
2906        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
2907    }
2908    #[inline]
2909    pub fn text_token(&self) -> Option<SyntaxToken> {
2910        support::token(&self.syntax, SyntaxKind::TEXT_KW)
2911    }
2912    #[inline]
2913    pub fn transform_token(&self) -> Option<SyntaxToken> {
2914        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
2915    }
2916    #[inline]
2917    pub fn trigger_token(&self) -> Option<SyntaxToken> {
2918        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
2919    }
2920    #[inline]
2921    pub fn type_token(&self) -> Option<SyntaxToken> {
2922        support::token(&self.syntax, SyntaxKind::TYPE_KW)
2923    }
2924    #[inline]
2925    pub fn view_token(&self) -> Option<SyntaxToken> {
2926        support::token(&self.syntax, SyntaxKind::VIEW_KW)
2927    }
2928    #[inline]
2929    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
2930        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
2931    }
2932}
2933
2934#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2935pub struct Commit {
2936    pub(crate) syntax: SyntaxNode,
2937}
2938impl Commit {
2939    #[inline]
2940    pub fn literal(&self) -> Option<Literal> {
2941        support::child(&self.syntax)
2942    }
2943    #[inline]
2944    pub fn and_token(&self) -> Option<SyntaxToken> {
2945        support::token(&self.syntax, SyntaxKind::AND_KW)
2946    }
2947    #[inline]
2948    pub fn chain_token(&self) -> Option<SyntaxToken> {
2949        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
2950    }
2951    #[inline]
2952    pub fn commit_token(&self) -> Option<SyntaxToken> {
2953        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
2954    }
2955    #[inline]
2956    pub fn no_token(&self) -> Option<SyntaxToken> {
2957        support::token(&self.syntax, SyntaxKind::NO_KW)
2958    }
2959    #[inline]
2960    pub fn prepared_token(&self) -> Option<SyntaxToken> {
2961        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
2962    }
2963    #[inline]
2964    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2965        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2966    }
2967    #[inline]
2968    pub fn work_token(&self) -> Option<SyntaxToken> {
2969        support::token(&self.syntax, SyntaxKind::WORK_KW)
2970    }
2971}
2972
2973#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2974pub struct CompoundSelect {
2975    pub(crate) syntax: SyntaxNode,
2976}
2977impl CompoundSelect {
2978    #[inline]
2979    pub fn all_token(&self) -> Option<SyntaxToken> {
2980        support::token(&self.syntax, SyntaxKind::ALL_KW)
2981    }
2982    #[inline]
2983    pub fn except_token(&self) -> Option<SyntaxToken> {
2984        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
2985    }
2986    #[inline]
2987    pub fn intersect_token(&self) -> Option<SyntaxToken> {
2988        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
2989    }
2990    #[inline]
2991    pub fn union_token(&self) -> Option<SyntaxToken> {
2992        support::token(&self.syntax, SyntaxKind::UNION_KW)
2993    }
2994}
2995
2996#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2997pub struct CompressionMethod {
2998    pub(crate) syntax: SyntaxNode,
2999}
3000impl CompressionMethod {
3001    #[inline]
3002    pub fn compression_token(&self) -> Option<SyntaxToken> {
3003        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
3004    }
3005    #[inline]
3006    pub fn default_token(&self) -> Option<SyntaxToken> {
3007        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3008    }
3009    #[inline]
3010    pub fn ident_token(&self) -> Option<SyntaxToken> {
3011        support::token(&self.syntax, SyntaxKind::IDENT)
3012    }
3013}
3014
3015#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3016pub struct ConflictDoNothing {
3017    pub(crate) syntax: SyntaxNode,
3018}
3019impl ConflictDoNothing {
3020    #[inline]
3021    pub fn do_token(&self) -> Option<SyntaxToken> {
3022        support::token(&self.syntax, SyntaxKind::DO_KW)
3023    }
3024    #[inline]
3025    pub fn nothing_token(&self) -> Option<SyntaxToken> {
3026        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
3027    }
3028}
3029
3030#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3031pub struct ConflictDoUpdateSet {
3032    pub(crate) syntax: SyntaxNode,
3033}
3034impl ConflictDoUpdateSet {
3035    #[inline]
3036    pub fn set_clause(&self) -> Option<SetClause> {
3037        support::child(&self.syntax)
3038    }
3039    #[inline]
3040    pub fn where_clause(&self) -> Option<WhereClause> {
3041        support::child(&self.syntax)
3042    }
3043    #[inline]
3044    pub fn do_token(&self) -> Option<SyntaxToken> {
3045        support::token(&self.syntax, SyntaxKind::DO_KW)
3046    }
3047    #[inline]
3048    pub fn update_token(&self) -> Option<SyntaxToken> {
3049        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3050    }
3051}
3052
3053#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3054pub struct ConflictIndexItem {
3055    pub(crate) syntax: SyntaxNode,
3056}
3057impl ConflictIndexItem {
3058    #[inline]
3059    pub fn collate(&self) -> Option<Collate> {
3060        support::child(&self.syntax)
3061    }
3062    #[inline]
3063    pub fn expr(&self) -> Option<Expr> {
3064        support::child(&self.syntax)
3065    }
3066    #[inline]
3067    pub fn ident_token(&self) -> Option<SyntaxToken> {
3068        support::token(&self.syntax, SyntaxKind::IDENT)
3069    }
3070}
3071
3072#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3073pub struct ConflictIndexItemList {
3074    pub(crate) syntax: SyntaxNode,
3075}
3076impl ConflictIndexItemList {
3077    #[inline]
3078    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
3079        support::children(&self.syntax)
3080    }
3081    #[inline]
3082    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3083        support::token(&self.syntax, SyntaxKind::L_PAREN)
3084    }
3085    #[inline]
3086    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3087        support::token(&self.syntax, SyntaxKind::R_PAREN)
3088    }
3089}
3090
3091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3092pub struct ConflictOnConstraint {
3093    pub(crate) syntax: SyntaxNode,
3094}
3095impl ConflictOnConstraint {
3096    #[inline]
3097    pub fn name_ref(&self) -> Option<NameRef> {
3098        support::child(&self.syntax)
3099    }
3100    #[inline]
3101    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3102        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3103    }
3104    #[inline]
3105    pub fn on_token(&self) -> Option<SyntaxToken> {
3106        support::token(&self.syntax, SyntaxKind::ON_KW)
3107    }
3108}
3109
3110#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3111pub struct ConflictOnIndex {
3112    pub(crate) syntax: SyntaxNode,
3113}
3114impl ConflictOnIndex {
3115    #[inline]
3116    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
3117        support::child(&self.syntax)
3118    }
3119    #[inline]
3120    pub fn where_clause(&self) -> Option<WhereClause> {
3121        support::child(&self.syntax)
3122    }
3123}
3124
3125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3126pub struct ConstraintExclusion {
3127    pub(crate) syntax: SyntaxNode,
3128}
3129impl ConstraintExclusion {
3130    #[inline]
3131    pub fn expr(&self) -> Option<Expr> {
3132        support::child(&self.syntax)
3133    }
3134    #[inline]
3135    pub fn op(&self) -> Option<Op> {
3136        support::child(&self.syntax)
3137    }
3138    #[inline]
3139    pub fn with_token(&self) -> Option<SyntaxToken> {
3140        support::token(&self.syntax, SyntaxKind::WITH_KW)
3141    }
3142}
3143
3144#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3145pub struct ConstraintExclusionList {
3146    pub(crate) syntax: SyntaxNode,
3147}
3148impl ConstraintExclusionList {
3149    #[inline]
3150    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
3151        support::children(&self.syntax)
3152    }
3153    #[inline]
3154    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3155        support::token(&self.syntax, SyntaxKind::L_PAREN)
3156    }
3157    #[inline]
3158    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3159        support::token(&self.syntax, SyntaxKind::R_PAREN)
3160    }
3161}
3162
3163#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3164pub struct ConstraintIncludeClause {
3165    pub(crate) syntax: SyntaxNode,
3166}
3167impl ConstraintIncludeClause {
3168    #[inline]
3169    pub fn include_token(&self) -> Option<SyntaxToken> {
3170        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
3171    }
3172}
3173
3174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3175pub struct ConstraintIndexMethod {
3176    pub(crate) syntax: SyntaxNode,
3177}
3178impl ConstraintIndexMethod {
3179    #[inline]
3180    pub fn using_token(&self) -> Option<SyntaxToken> {
3181        support::token(&self.syntax, SyntaxKind::USING_KW)
3182    }
3183}
3184
3185#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3186pub struct ConstraintIndexTablespace {
3187    pub(crate) syntax: SyntaxNode,
3188}
3189impl ConstraintIndexTablespace {
3190    #[inline]
3191    pub fn name_ref(&self) -> Option<NameRef> {
3192        support::child(&self.syntax)
3193    }
3194    #[inline]
3195    pub fn index_token(&self) -> Option<SyntaxToken> {
3196        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3197    }
3198    #[inline]
3199    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3200        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3201    }
3202    #[inline]
3203    pub fn using_token(&self) -> Option<SyntaxToken> {
3204        support::token(&self.syntax, SyntaxKind::USING_KW)
3205    }
3206}
3207
3208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3209pub struct ConstraintName {
3210    pub(crate) syntax: SyntaxNode,
3211}
3212impl ConstraintName {
3213    #[inline]
3214    pub fn name(&self) -> Option<Name> {
3215        support::child(&self.syntax)
3216    }
3217    #[inline]
3218    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3219        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3220    }
3221}
3222
3223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3224pub struct Copy {
3225    pub(crate) syntax: SyntaxNode,
3226}
3227impl Copy {
3228    #[inline]
3229    pub fn column_list(&self) -> Option<ColumnList> {
3230        support::child(&self.syntax)
3231    }
3232    #[inline]
3233    pub fn literal(&self) -> Option<Literal> {
3234        support::child(&self.syntax)
3235    }
3236    #[inline]
3237    pub fn path(&self) -> Option<Path> {
3238        support::child(&self.syntax)
3239    }
3240    #[inline]
3241    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
3242        support::child(&self.syntax)
3243    }
3244    #[inline]
3245    pub fn where_clause(&self) -> Option<WhereClause> {
3246        support::child(&self.syntax)
3247    }
3248    #[inline]
3249    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3250        support::token(&self.syntax, SyntaxKind::L_PAREN)
3251    }
3252    #[inline]
3253    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3254        support::token(&self.syntax, SyntaxKind::R_PAREN)
3255    }
3256    #[inline]
3257    pub fn binary_token(&self) -> Option<SyntaxToken> {
3258        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3259    }
3260    #[inline]
3261    pub fn copy_token(&self) -> Option<SyntaxToken> {
3262        support::token(&self.syntax, SyntaxKind::COPY_KW)
3263    }
3264    #[inline]
3265    pub fn from_token(&self) -> Option<SyntaxToken> {
3266        support::token(&self.syntax, SyntaxKind::FROM_KW)
3267    }
3268    #[inline]
3269    pub fn program_token(&self) -> Option<SyntaxToken> {
3270        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3271    }
3272    #[inline]
3273    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3274        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3275    }
3276    #[inline]
3277    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3278        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3279    }
3280    #[inline]
3281    pub fn to_token(&self) -> Option<SyntaxToken> {
3282        support::token(&self.syntax, SyntaxKind::TO_KW)
3283    }
3284    #[inline]
3285    pub fn with_token(&self) -> Option<SyntaxToken> {
3286        support::token(&self.syntax, SyntaxKind::WITH_KW)
3287    }
3288}
3289
3290#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3291pub struct CopyOption {
3292    pub(crate) syntax: SyntaxNode,
3293}
3294impl CopyOption {
3295    #[inline]
3296    pub fn name(&self) -> Option<Name> {
3297        support::child(&self.syntax)
3298    }
3299}
3300
3301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3302pub struct CopyOptionList {
3303    pub(crate) syntax: SyntaxNode,
3304}
3305impl CopyOptionList {
3306    #[inline]
3307    pub fn copy_options(&self) -> AstChildren<CopyOption> {
3308        support::children(&self.syntax)
3309    }
3310    #[inline]
3311    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3312        support::token(&self.syntax, SyntaxKind::L_PAREN)
3313    }
3314    #[inline]
3315    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3316        support::token(&self.syntax, SyntaxKind::R_PAREN)
3317    }
3318}
3319
3320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3321pub struct CostFuncOption {
3322    pub(crate) syntax: SyntaxNode,
3323}
3324impl CostFuncOption {
3325    #[inline]
3326    pub fn cost_token(&self) -> Option<SyntaxToken> {
3327        support::token(&self.syntax, SyntaxKind::COST_KW)
3328    }
3329}
3330
3331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3332pub struct CreateAccessMethod {
3333    pub(crate) syntax: SyntaxNode,
3334}
3335impl CreateAccessMethod {
3336    #[inline]
3337    pub fn handler_clause(&self) -> Option<HandlerClause> {
3338        support::child(&self.syntax)
3339    }
3340    #[inline]
3341    pub fn name(&self) -> Option<Path> {
3342        support::child(&self.syntax)
3343    }
3344    #[inline]
3345    pub fn access_token(&self) -> Option<SyntaxToken> {
3346        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3347    }
3348    #[inline]
3349    pub fn create_token(&self) -> Option<SyntaxToken> {
3350        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3351    }
3352    #[inline]
3353    pub fn index_token(&self) -> Option<SyntaxToken> {
3354        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3355    }
3356    #[inline]
3357    pub fn method_token(&self) -> Option<SyntaxToken> {
3358        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3359    }
3360    #[inline]
3361    pub fn table_token(&self) -> Option<SyntaxToken> {
3362        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3363    }
3364    #[inline]
3365    pub fn type_token(&self) -> Option<SyntaxToken> {
3366        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3367    }
3368}
3369
3370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3371pub struct CreateAggregate {
3372    pub(crate) syntax: SyntaxNode,
3373}
3374impl CreateAggregate {
3375    #[inline]
3376    pub fn or_replace(&self) -> Option<OrReplace> {
3377        support::child(&self.syntax)
3378    }
3379    #[inline]
3380    pub fn param_list(&self) -> Option<ParamList> {
3381        support::child(&self.syntax)
3382    }
3383    #[inline]
3384    pub fn path(&self) -> Option<Path> {
3385        support::child(&self.syntax)
3386    }
3387    #[inline]
3388    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3389        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3390    }
3391    #[inline]
3392    pub fn create_token(&self) -> Option<SyntaxToken> {
3393        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3394    }
3395}
3396
3397#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3398pub struct CreateCast {
3399    pub(crate) syntax: SyntaxNode,
3400}
3401impl CreateCast {
3402    #[inline]
3403    pub fn cast_sig(&self) -> Option<CastSig> {
3404        support::child(&self.syntax)
3405    }
3406    #[inline]
3407    pub fn function_sig(&self) -> Option<FunctionSig> {
3408        support::child(&self.syntax)
3409    }
3410    #[inline]
3411    pub fn as_token(&self) -> Option<SyntaxToken> {
3412        support::token(&self.syntax, SyntaxKind::AS_KW)
3413    }
3414    #[inline]
3415    pub fn assignment_token(&self) -> Option<SyntaxToken> {
3416        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
3417    }
3418    #[inline]
3419    pub fn cast_token(&self) -> Option<SyntaxToken> {
3420        support::token(&self.syntax, SyntaxKind::CAST_KW)
3421    }
3422    #[inline]
3423    pub fn create_token(&self) -> Option<SyntaxToken> {
3424        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3425    }
3426    #[inline]
3427    pub fn function_token(&self) -> Option<SyntaxToken> {
3428        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3429    }
3430    #[inline]
3431    pub fn implicit_token(&self) -> Option<SyntaxToken> {
3432        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
3433    }
3434    #[inline]
3435    pub fn inout_token(&self) -> Option<SyntaxToken> {
3436        support::token(&self.syntax, SyntaxKind::INOUT_KW)
3437    }
3438    #[inline]
3439    pub fn with_token(&self) -> Option<SyntaxToken> {
3440        support::token(&self.syntax, SyntaxKind::WITH_KW)
3441    }
3442    #[inline]
3443    pub fn without_token(&self) -> Option<SyntaxToken> {
3444        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
3445    }
3446}
3447
3448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3449pub struct CreateCollation {
3450    pub(crate) syntax: SyntaxNode,
3451}
3452impl CreateCollation {
3453    #[inline]
3454    pub fn path(&self) -> Option<Path> {
3455        support::child(&self.syntax)
3456    }
3457    #[inline]
3458    pub fn collation_token(&self) -> Option<SyntaxToken> {
3459        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3460    }
3461    #[inline]
3462    pub fn create_token(&self) -> Option<SyntaxToken> {
3463        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3464    }
3465}
3466
3467#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3468pub struct CreateConversion {
3469    pub(crate) syntax: SyntaxNode,
3470}
3471impl CreateConversion {
3472    #[inline]
3473    pub fn literal(&self) -> Option<Literal> {
3474        support::child(&self.syntax)
3475    }
3476    #[inline]
3477    pub fn path(&self) -> Option<Path> {
3478        support::child(&self.syntax)
3479    }
3480    #[inline]
3481    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3482        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3483    }
3484    #[inline]
3485    pub fn create_token(&self) -> Option<SyntaxToken> {
3486        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3487    }
3488    #[inline]
3489    pub fn default_token(&self) -> Option<SyntaxToken> {
3490        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3491    }
3492    #[inline]
3493    pub fn for_token(&self) -> Option<SyntaxToken> {
3494        support::token(&self.syntax, SyntaxKind::FOR_KW)
3495    }
3496    #[inline]
3497    pub fn from_token(&self) -> Option<SyntaxToken> {
3498        support::token(&self.syntax, SyntaxKind::FROM_KW)
3499    }
3500    #[inline]
3501    pub fn to_token(&self) -> Option<SyntaxToken> {
3502        support::token(&self.syntax, SyntaxKind::TO_KW)
3503    }
3504}
3505
3506#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3507pub struct CreateDatabase {
3508    pub(crate) syntax: SyntaxNode,
3509}
3510impl CreateDatabase {
3511    #[inline]
3512    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
3513        support::child(&self.syntax)
3514    }
3515    #[inline]
3516    pub fn name(&self) -> Option<Name> {
3517        support::child(&self.syntax)
3518    }
3519    #[inline]
3520    pub fn create_token(&self) -> Option<SyntaxToken> {
3521        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3522    }
3523    #[inline]
3524    pub fn database_token(&self) -> Option<SyntaxToken> {
3525        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3526    }
3527}
3528
3529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3530pub struct CreateDatabaseOption {
3531    pub(crate) syntax: SyntaxNode,
3532}
3533impl CreateDatabaseOption {
3534    #[inline]
3535    pub fn literal(&self) -> Option<Literal> {
3536        support::child(&self.syntax)
3537    }
3538    #[inline]
3539    pub fn eq_token(&self) -> Option<SyntaxToken> {
3540        support::token(&self.syntax, SyntaxKind::EQ)
3541    }
3542    #[inline]
3543    pub fn connection_token(&self) -> Option<SyntaxToken> {
3544        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
3545    }
3546    #[inline]
3547    pub fn default_token(&self) -> Option<SyntaxToken> {
3548        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3549    }
3550    #[inline]
3551    pub fn encoding_token(&self) -> Option<SyntaxToken> {
3552        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
3553    }
3554    #[inline]
3555    pub fn ident_token(&self) -> Option<SyntaxToken> {
3556        support::token(&self.syntax, SyntaxKind::IDENT)
3557    }
3558    #[inline]
3559    pub fn limit_token(&self) -> Option<SyntaxToken> {
3560        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
3561    }
3562    #[inline]
3563    pub fn owner_token(&self) -> Option<SyntaxToken> {
3564        support::token(&self.syntax, SyntaxKind::OWNER_KW)
3565    }
3566    #[inline]
3567    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3568        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3569    }
3570    #[inline]
3571    pub fn template_token(&self) -> Option<SyntaxToken> {
3572        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3573    }
3574}
3575
3576#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3577pub struct CreateDatabaseOptionList {
3578    pub(crate) syntax: SyntaxNode,
3579}
3580impl CreateDatabaseOptionList {
3581    #[inline]
3582    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
3583        support::children(&self.syntax)
3584    }
3585    #[inline]
3586    pub fn with_token(&self) -> Option<SyntaxToken> {
3587        support::token(&self.syntax, SyntaxKind::WITH_KW)
3588    }
3589}
3590
3591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3592pub struct CreateDomain {
3593    pub(crate) syntax: SyntaxNode,
3594}
3595impl CreateDomain {
3596    #[inline]
3597    pub fn collate(&self) -> Option<Collate> {
3598        support::child(&self.syntax)
3599    }
3600    #[inline]
3601    pub fn constraints(&self) -> AstChildren<Constraint> {
3602        support::children(&self.syntax)
3603    }
3604    #[inline]
3605    pub fn path(&self) -> Option<Path> {
3606        support::child(&self.syntax)
3607    }
3608    #[inline]
3609    pub fn ty(&self) -> Option<Type> {
3610        support::child(&self.syntax)
3611    }
3612    #[inline]
3613    pub fn as_token(&self) -> Option<SyntaxToken> {
3614        support::token(&self.syntax, SyntaxKind::AS_KW)
3615    }
3616    #[inline]
3617    pub fn create_token(&self) -> Option<SyntaxToken> {
3618        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3619    }
3620    #[inline]
3621    pub fn domain_token(&self) -> Option<SyntaxToken> {
3622        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3623    }
3624}
3625
3626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3627pub struct CreateEventTrigger {
3628    pub(crate) syntax: SyntaxNode,
3629}
3630impl CreateEventTrigger {
3631    #[inline]
3632    pub fn call_expr(&self) -> Option<CallExpr> {
3633        support::child(&self.syntax)
3634    }
3635    #[inline]
3636    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
3637        support::child(&self.syntax)
3638    }
3639    #[inline]
3640    pub fn name(&self) -> Option<Name> {
3641        support::child(&self.syntax)
3642    }
3643    #[inline]
3644    pub fn name_ref(&self) -> Option<NameRef> {
3645        support::child(&self.syntax)
3646    }
3647    #[inline]
3648    pub fn create_token(&self) -> Option<SyntaxToken> {
3649        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3650    }
3651    #[inline]
3652    pub fn event_token(&self) -> Option<SyntaxToken> {
3653        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3654    }
3655    #[inline]
3656    pub fn execute_token(&self) -> Option<SyntaxToken> {
3657        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
3658    }
3659    #[inline]
3660    pub fn function_token(&self) -> Option<SyntaxToken> {
3661        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3662    }
3663    #[inline]
3664    pub fn on_token(&self) -> Option<SyntaxToken> {
3665        support::token(&self.syntax, SyntaxKind::ON_KW)
3666    }
3667    #[inline]
3668    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3669        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3670    }
3671    #[inline]
3672    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3673        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3674    }
3675}
3676
3677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3678pub struct CreateExtension {
3679    pub(crate) syntax: SyntaxNode,
3680}
3681impl CreateExtension {
3682    #[inline]
3683    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3684        support::child(&self.syntax)
3685    }
3686    #[inline]
3687    pub fn name(&self) -> Option<Name> {
3688        support::child(&self.syntax)
3689    }
3690    #[inline]
3691    pub fn create_token(&self) -> Option<SyntaxToken> {
3692        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3693    }
3694    #[inline]
3695    pub fn extension_token(&self) -> Option<SyntaxToken> {
3696        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3697    }
3698}
3699
3700#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3701pub struct CreateForeignDataWrapper {
3702    pub(crate) syntax: SyntaxNode,
3703}
3704impl CreateForeignDataWrapper {
3705    #[inline]
3706    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3707        support::child(&self.syntax)
3708    }
3709    #[inline]
3710    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
3711        support::child(&self.syntax)
3712    }
3713    #[inline]
3714    pub fn name(&self) -> Option<Name> {
3715        support::child(&self.syntax)
3716    }
3717    #[inline]
3718    pub fn create_token(&self) -> Option<SyntaxToken> {
3719        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3720    }
3721    #[inline]
3722    pub fn data_token(&self) -> Option<SyntaxToken> {
3723        support::token(&self.syntax, SyntaxKind::DATA_KW)
3724    }
3725    #[inline]
3726    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3727        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3728    }
3729    #[inline]
3730    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3731        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3732    }
3733}
3734
3735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3736pub struct CreateForeignTable {
3737    pub(crate) syntax: SyntaxNode,
3738}
3739impl CreateForeignTable {
3740    #[inline]
3741    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3742        support::child(&self.syntax)
3743    }
3744    #[inline]
3745    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3746        support::child(&self.syntax)
3747    }
3748    #[inline]
3749    pub fn inherits(&self) -> Option<Inherits> {
3750        support::child(&self.syntax)
3751    }
3752    #[inline]
3753    pub fn partition_of(&self) -> Option<PartitionOf> {
3754        support::child(&self.syntax)
3755    }
3756    #[inline]
3757    pub fn partition_type(&self) -> Option<PartitionType> {
3758        support::child(&self.syntax)
3759    }
3760    #[inline]
3761    pub fn path(&self) -> Option<Path> {
3762        support::child(&self.syntax)
3763    }
3764    #[inline]
3765    pub fn server_name(&self) -> Option<ServerName> {
3766        support::child(&self.syntax)
3767    }
3768    #[inline]
3769    pub fn table_arg_list(&self) -> Option<TableArgList> {
3770        support::child(&self.syntax)
3771    }
3772    #[inline]
3773    pub fn create_token(&self) -> Option<SyntaxToken> {
3774        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3775    }
3776    #[inline]
3777    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3778        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3779    }
3780    #[inline]
3781    pub fn table_token(&self) -> Option<SyntaxToken> {
3782        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3783    }
3784}
3785
3786#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3787pub struct CreateFunction {
3788    pub(crate) syntax: SyntaxNode,
3789}
3790impl CreateFunction {
3791    #[inline]
3792    pub fn option_list(&self) -> Option<FuncOptionList> {
3793        support::child(&self.syntax)
3794    }
3795    #[inline]
3796    pub fn or_replace(&self) -> Option<OrReplace> {
3797        support::child(&self.syntax)
3798    }
3799    #[inline]
3800    pub fn param_list(&self) -> Option<ParamList> {
3801        support::child(&self.syntax)
3802    }
3803    #[inline]
3804    pub fn path(&self) -> Option<Path> {
3805        support::child(&self.syntax)
3806    }
3807    #[inline]
3808    pub fn ret_type(&self) -> Option<RetType> {
3809        support::child(&self.syntax)
3810    }
3811    #[inline]
3812    pub fn create_token(&self) -> Option<SyntaxToken> {
3813        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3814    }
3815    #[inline]
3816    pub fn function_token(&self) -> Option<SyntaxToken> {
3817        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3818    }
3819}
3820
3821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3822pub struct CreateGroup {
3823    pub(crate) syntax: SyntaxNode,
3824}
3825impl CreateGroup {
3826    #[inline]
3827    pub fn name(&self) -> Option<Name> {
3828        support::child(&self.syntax)
3829    }
3830    #[inline]
3831    pub fn role_option_list(&self) -> Option<RoleOptionList> {
3832        support::child(&self.syntax)
3833    }
3834    #[inline]
3835    pub fn create_token(&self) -> Option<SyntaxToken> {
3836        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3837    }
3838    #[inline]
3839    pub fn group_token(&self) -> Option<SyntaxToken> {
3840        support::token(&self.syntax, SyntaxKind::GROUP_KW)
3841    }
3842}
3843
3844#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3845pub struct CreateIndex {
3846    pub(crate) syntax: SyntaxNode,
3847}
3848impl CreateIndex {
3849    #[inline]
3850    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
3851        support::child(&self.syntax)
3852    }
3853    #[inline]
3854    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3855        support::child(&self.syntax)
3856    }
3857    #[inline]
3858    pub fn name(&self) -> Option<Name> {
3859        support::child(&self.syntax)
3860    }
3861    #[inline]
3862    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
3863        support::child(&self.syntax)
3864    }
3865    #[inline]
3866    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
3867        support::child(&self.syntax)
3868    }
3869    #[inline]
3870    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
3871        support::child(&self.syntax)
3872    }
3873    #[inline]
3874    pub fn relation_name(&self) -> Option<RelationName> {
3875        support::child(&self.syntax)
3876    }
3877    #[inline]
3878    pub fn tablespace(&self) -> Option<Tablespace> {
3879        support::child(&self.syntax)
3880    }
3881    #[inline]
3882    pub fn using_method(&self) -> Option<UsingMethod> {
3883        support::child(&self.syntax)
3884    }
3885    #[inline]
3886    pub fn where_clause(&self) -> Option<WhereClause> {
3887        support::child(&self.syntax)
3888    }
3889    #[inline]
3890    pub fn with_params(&self) -> Option<WithParams> {
3891        support::child(&self.syntax)
3892    }
3893    #[inline]
3894    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
3895        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
3896    }
3897    #[inline]
3898    pub fn create_token(&self) -> Option<SyntaxToken> {
3899        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3900    }
3901    #[inline]
3902    pub fn index_token(&self) -> Option<SyntaxToken> {
3903        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3904    }
3905    #[inline]
3906    pub fn on_token(&self) -> Option<SyntaxToken> {
3907        support::token(&self.syntax, SyntaxKind::ON_KW)
3908    }
3909    #[inline]
3910    pub fn unique_token(&self) -> Option<SyntaxToken> {
3911        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
3912    }
3913}
3914
3915#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3916pub struct CreateLanguage {
3917    pub(crate) syntax: SyntaxNode,
3918}
3919impl CreateLanguage {
3920    #[inline]
3921    pub fn name(&self) -> Option<Name> {
3922        support::child(&self.syntax)
3923    }
3924    #[inline]
3925    pub fn or_replace(&self) -> Option<OrReplace> {
3926        support::child(&self.syntax)
3927    }
3928    #[inline]
3929    pub fn path(&self) -> Option<Path> {
3930        support::child(&self.syntax)
3931    }
3932    #[inline]
3933    pub fn create_token(&self) -> Option<SyntaxToken> {
3934        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3935    }
3936    #[inline]
3937    pub fn handler_token(&self) -> Option<SyntaxToken> {
3938        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
3939    }
3940    #[inline]
3941    pub fn inline_token(&self) -> Option<SyntaxToken> {
3942        support::token(&self.syntax, SyntaxKind::INLINE_KW)
3943    }
3944    #[inline]
3945    pub fn language_token(&self) -> Option<SyntaxToken> {
3946        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3947    }
3948    #[inline]
3949    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3950        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3951    }
3952    #[inline]
3953    pub fn trusted_token(&self) -> Option<SyntaxToken> {
3954        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
3955    }
3956    #[inline]
3957    pub fn validator_token(&self) -> Option<SyntaxToken> {
3958        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
3959    }
3960}
3961
3962#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3963pub struct CreateMaterializedView {
3964    pub(crate) syntax: SyntaxNode,
3965}
3966impl CreateMaterializedView {
3967    #[inline]
3968    pub fn column_list(&self) -> Option<ColumnList> {
3969        support::child(&self.syntax)
3970    }
3971    #[inline]
3972    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3973        support::child(&self.syntax)
3974    }
3975    #[inline]
3976    pub fn path(&self) -> Option<Path> {
3977        support::child(&self.syntax)
3978    }
3979    #[inline]
3980    pub fn query(&self) -> Option<SelectVariant> {
3981        support::child(&self.syntax)
3982    }
3983    #[inline]
3984    pub fn tablespace(&self) -> Option<Tablespace> {
3985        support::child(&self.syntax)
3986    }
3987    #[inline]
3988    pub fn using_method(&self) -> Option<UsingMethod> {
3989        support::child(&self.syntax)
3990    }
3991    #[inline]
3992    pub fn with_data(&self) -> Option<WithData> {
3993        support::child(&self.syntax)
3994    }
3995    #[inline]
3996    pub fn with_no_data(&self) -> Option<WithNoData> {
3997        support::child(&self.syntax)
3998    }
3999    #[inline]
4000    pub fn with_params(&self) -> Option<WithParams> {
4001        support::child(&self.syntax)
4002    }
4003    #[inline]
4004    pub fn as_token(&self) -> Option<SyntaxToken> {
4005        support::token(&self.syntax, SyntaxKind::AS_KW)
4006    }
4007    #[inline]
4008    pub fn create_token(&self) -> Option<SyntaxToken> {
4009        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4010    }
4011    #[inline]
4012    pub fn materialized_token(&self) -> Option<SyntaxToken> {
4013        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
4014    }
4015    #[inline]
4016    pub fn view_token(&self) -> Option<SyntaxToken> {
4017        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4018    }
4019}
4020
4021#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4022pub struct CreateOperator {
4023    pub(crate) syntax: SyntaxNode,
4024}
4025impl CreateOperator {
4026    #[inline]
4027    pub fn attribute_list(&self) -> Option<AttributeList> {
4028        support::child(&self.syntax)
4029    }
4030    #[inline]
4031    pub fn op(&self) -> Option<Op> {
4032        support::child(&self.syntax)
4033    }
4034    #[inline]
4035    pub fn path(&self) -> Option<Path> {
4036        support::child(&self.syntax)
4037    }
4038    #[inline]
4039    pub fn create_token(&self) -> Option<SyntaxToken> {
4040        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4041    }
4042    #[inline]
4043    pub fn operator_token(&self) -> Option<SyntaxToken> {
4044        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4045    }
4046}
4047
4048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4049pub struct CreateOperatorClass {
4050    pub(crate) syntax: SyntaxNode,
4051}
4052impl CreateOperatorClass {
4053    #[inline]
4054    pub fn name_ref(&self) -> Option<NameRef> {
4055        support::child(&self.syntax)
4056    }
4057    #[inline]
4058    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
4059        support::child(&self.syntax)
4060    }
4061    #[inline]
4062    pub fn path(&self) -> Option<Path> {
4063        support::child(&self.syntax)
4064    }
4065    #[inline]
4066    pub fn ty(&self) -> Option<Type> {
4067        support::child(&self.syntax)
4068    }
4069    #[inline]
4070    pub fn as_token(&self) -> Option<SyntaxToken> {
4071        support::token(&self.syntax, SyntaxKind::AS_KW)
4072    }
4073    #[inline]
4074    pub fn class_token(&self) -> Option<SyntaxToken> {
4075        support::token(&self.syntax, SyntaxKind::CLASS_KW)
4076    }
4077    #[inline]
4078    pub fn create_token(&self) -> Option<SyntaxToken> {
4079        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4080    }
4081    #[inline]
4082    pub fn default_token(&self) -> Option<SyntaxToken> {
4083        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4084    }
4085    #[inline]
4086    pub fn family_token(&self) -> Option<SyntaxToken> {
4087        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4088    }
4089    #[inline]
4090    pub fn for_token(&self) -> Option<SyntaxToken> {
4091        support::token(&self.syntax, SyntaxKind::FOR_KW)
4092    }
4093    #[inline]
4094    pub fn operator_token(&self) -> Option<SyntaxToken> {
4095        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4096    }
4097    #[inline]
4098    pub fn type_token(&self) -> Option<SyntaxToken> {
4099        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4100    }
4101    #[inline]
4102    pub fn using_token(&self) -> Option<SyntaxToken> {
4103        support::token(&self.syntax, SyntaxKind::USING_KW)
4104    }
4105}
4106
4107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4108pub struct CreateOperatorFamily {
4109    pub(crate) syntax: SyntaxNode,
4110}
4111impl CreateOperatorFamily {
4112    #[inline]
4113    pub fn name_ref(&self) -> Option<NameRef> {
4114        support::child(&self.syntax)
4115    }
4116    #[inline]
4117    pub fn path(&self) -> Option<Path> {
4118        support::child(&self.syntax)
4119    }
4120    #[inline]
4121    pub fn create_token(&self) -> Option<SyntaxToken> {
4122        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4123    }
4124    #[inline]
4125    pub fn family_token(&self) -> Option<SyntaxToken> {
4126        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4127    }
4128    #[inline]
4129    pub fn operator_token(&self) -> Option<SyntaxToken> {
4130        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4131    }
4132    #[inline]
4133    pub fn using_token(&self) -> Option<SyntaxToken> {
4134        support::token(&self.syntax, SyntaxKind::USING_KW)
4135    }
4136}
4137
4138#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4139pub struct CreatePolicy {
4140    pub(crate) syntax: SyntaxNode,
4141}
4142impl CreatePolicy {
4143    #[inline]
4144    pub fn as_policy_type(&self) -> Option<AsPolicyType> {
4145        support::child(&self.syntax)
4146    }
4147    #[inline]
4148    pub fn name(&self) -> Option<Name> {
4149        support::child(&self.syntax)
4150    }
4151    #[inline]
4152    pub fn on_table(&self) -> Option<OnTable> {
4153        support::child(&self.syntax)
4154    }
4155    #[inline]
4156    pub fn role_ref_list(&self) -> Option<RoleRefList> {
4157        support::child(&self.syntax)
4158    }
4159    #[inline]
4160    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
4161        support::child(&self.syntax)
4162    }
4163    #[inline]
4164    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
4165        support::child(&self.syntax)
4166    }
4167    #[inline]
4168    pub fn all_token(&self) -> Option<SyntaxToken> {
4169        support::token(&self.syntax, SyntaxKind::ALL_KW)
4170    }
4171    #[inline]
4172    pub fn create_token(&self) -> Option<SyntaxToken> {
4173        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4174    }
4175    #[inline]
4176    pub fn delete_token(&self) -> Option<SyntaxToken> {
4177        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4178    }
4179    #[inline]
4180    pub fn for_token(&self) -> Option<SyntaxToken> {
4181        support::token(&self.syntax, SyntaxKind::FOR_KW)
4182    }
4183    #[inline]
4184    pub fn insert_token(&self) -> Option<SyntaxToken> {
4185        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4186    }
4187    #[inline]
4188    pub fn policy_token(&self) -> Option<SyntaxToken> {
4189        support::token(&self.syntax, SyntaxKind::POLICY_KW)
4190    }
4191    #[inline]
4192    pub fn select_token(&self) -> Option<SyntaxToken> {
4193        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4194    }
4195    #[inline]
4196    pub fn to_token(&self) -> Option<SyntaxToken> {
4197        support::token(&self.syntax, SyntaxKind::TO_KW)
4198    }
4199    #[inline]
4200    pub fn update_token(&self) -> Option<SyntaxToken> {
4201        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4202    }
4203}
4204
4205#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4206pub struct CreateProcedure {
4207    pub(crate) syntax: SyntaxNode,
4208}
4209impl CreateProcedure {
4210    #[inline]
4211    pub fn option_list(&self) -> Option<FuncOptionList> {
4212        support::child(&self.syntax)
4213    }
4214    #[inline]
4215    pub fn or_replace(&self) -> Option<OrReplace> {
4216        support::child(&self.syntax)
4217    }
4218    #[inline]
4219    pub fn param_list(&self) -> Option<ParamList> {
4220        support::child(&self.syntax)
4221    }
4222    #[inline]
4223    pub fn path(&self) -> Option<Path> {
4224        support::child(&self.syntax)
4225    }
4226    #[inline]
4227    pub fn create_token(&self) -> Option<SyntaxToken> {
4228        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4229    }
4230    #[inline]
4231    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4232        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4233    }
4234}
4235
4236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4237pub struct CreatePublication {
4238    pub(crate) syntax: SyntaxNode,
4239}
4240impl CreatePublication {
4241    #[inline]
4242    pub fn name(&self) -> Option<Name> {
4243        support::child(&self.syntax)
4244    }
4245    #[inline]
4246    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
4247        support::children(&self.syntax)
4248    }
4249    #[inline]
4250    pub fn with_params(&self) -> Option<WithParams> {
4251        support::child(&self.syntax)
4252    }
4253    #[inline]
4254    pub fn all_token(&self) -> Option<SyntaxToken> {
4255        support::token(&self.syntax, SyntaxKind::ALL_KW)
4256    }
4257    #[inline]
4258    pub fn create_token(&self) -> Option<SyntaxToken> {
4259        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4260    }
4261    #[inline]
4262    pub fn for_token(&self) -> Option<SyntaxToken> {
4263        support::token(&self.syntax, SyntaxKind::FOR_KW)
4264    }
4265    #[inline]
4266    pub fn publication_token(&self) -> Option<SyntaxToken> {
4267        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4268    }
4269    #[inline]
4270    pub fn tables_token(&self) -> Option<SyntaxToken> {
4271        support::token(&self.syntax, SyntaxKind::TABLES_KW)
4272    }
4273}
4274
4275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4276pub struct CreateRole {
4277    pub(crate) syntax: SyntaxNode,
4278}
4279impl CreateRole {
4280    #[inline]
4281    pub fn name(&self) -> Option<Name> {
4282        support::child(&self.syntax)
4283    }
4284    #[inline]
4285    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4286        support::child(&self.syntax)
4287    }
4288    #[inline]
4289    pub fn create_token(&self) -> Option<SyntaxToken> {
4290        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4291    }
4292    #[inline]
4293    pub fn role_token(&self) -> Option<SyntaxToken> {
4294        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4295    }
4296}
4297
4298#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4299pub struct CreateRule {
4300    pub(crate) syntax: SyntaxNode,
4301}
4302impl CreateRule {
4303    #[inline]
4304    pub fn name(&self) -> Option<Name> {
4305        support::child(&self.syntax)
4306    }
4307    #[inline]
4308    pub fn or_replace(&self) -> Option<OrReplace> {
4309        support::child(&self.syntax)
4310    }
4311    #[inline]
4312    pub fn path(&self) -> Option<Path> {
4313        support::child(&self.syntax)
4314    }
4315    #[inline]
4316    pub fn stmt(&self) -> Option<Stmt> {
4317        support::child(&self.syntax)
4318    }
4319    #[inline]
4320    pub fn stmts(&self) -> AstChildren<Stmt> {
4321        support::children(&self.syntax)
4322    }
4323    #[inline]
4324    pub fn where_clause(&self) -> Option<WhereClause> {
4325        support::child(&self.syntax)
4326    }
4327    #[inline]
4328    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4329        support::token(&self.syntax, SyntaxKind::L_PAREN)
4330    }
4331    #[inline]
4332    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4333        support::token(&self.syntax, SyntaxKind::R_PAREN)
4334    }
4335    #[inline]
4336    pub fn also_token(&self) -> Option<SyntaxToken> {
4337        support::token(&self.syntax, SyntaxKind::ALSO_KW)
4338    }
4339    #[inline]
4340    pub fn as_token(&self) -> Option<SyntaxToken> {
4341        support::token(&self.syntax, SyntaxKind::AS_KW)
4342    }
4343    #[inline]
4344    pub fn create_token(&self) -> Option<SyntaxToken> {
4345        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4346    }
4347    #[inline]
4348    pub fn delete_token(&self) -> Option<SyntaxToken> {
4349        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4350    }
4351    #[inline]
4352    pub fn do_token(&self) -> Option<SyntaxToken> {
4353        support::token(&self.syntax, SyntaxKind::DO_KW)
4354    }
4355    #[inline]
4356    pub fn ident_token(&self) -> Option<SyntaxToken> {
4357        support::token(&self.syntax, SyntaxKind::IDENT)
4358    }
4359    #[inline]
4360    pub fn insert_token(&self) -> Option<SyntaxToken> {
4361        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4362    }
4363    #[inline]
4364    pub fn instead_token(&self) -> Option<SyntaxToken> {
4365        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
4366    }
4367    #[inline]
4368    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4369        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4370    }
4371    #[inline]
4372    pub fn on_token(&self) -> Option<SyntaxToken> {
4373        support::token(&self.syntax, SyntaxKind::ON_KW)
4374    }
4375    #[inline]
4376    pub fn rule_token(&self) -> Option<SyntaxToken> {
4377        support::token(&self.syntax, SyntaxKind::RULE_KW)
4378    }
4379    #[inline]
4380    pub fn select_token(&self) -> Option<SyntaxToken> {
4381        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4382    }
4383    #[inline]
4384    pub fn to_token(&self) -> Option<SyntaxToken> {
4385        support::token(&self.syntax, SyntaxKind::TO_KW)
4386    }
4387    #[inline]
4388    pub fn update_token(&self) -> Option<SyntaxToken> {
4389        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4390    }
4391}
4392
4393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4394pub struct CreateSchema {
4395    pub(crate) syntax: SyntaxNode,
4396}
4397impl CreateSchema {
4398    #[inline]
4399    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4400        support::child(&self.syntax)
4401    }
4402    #[inline]
4403    pub fn name(&self) -> Option<Name> {
4404        support::child(&self.syntax)
4405    }
4406    #[inline]
4407    pub fn role(&self) -> Option<Role> {
4408        support::child(&self.syntax)
4409    }
4410    #[inline]
4411    pub fn role_ref(&self) -> Option<RoleRef> {
4412        support::child(&self.syntax)
4413    }
4414    #[inline]
4415    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
4416        support::children(&self.syntax)
4417    }
4418    #[inline]
4419    pub fn authorization_token(&self) -> Option<SyntaxToken> {
4420        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
4421    }
4422    #[inline]
4423    pub fn create_token(&self) -> Option<SyntaxToken> {
4424        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4425    }
4426    #[inline]
4427    pub fn schema_token(&self) -> Option<SyntaxToken> {
4428        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4429    }
4430}
4431
4432#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4433pub struct CreateSequence {
4434    pub(crate) syntax: SyntaxNode,
4435}
4436impl CreateSequence {
4437    #[inline]
4438    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4439        support::child(&self.syntax)
4440    }
4441    #[inline]
4442    pub fn path(&self) -> Option<Path> {
4443        support::child(&self.syntax)
4444    }
4445    #[inline]
4446    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
4447        support::children(&self.syntax)
4448    }
4449    #[inline]
4450    pub fn create_token(&self) -> Option<SyntaxToken> {
4451        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4452    }
4453    #[inline]
4454    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4455        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4456    }
4457    #[inline]
4458    pub fn temp_token(&self) -> Option<SyntaxToken> {
4459        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4460    }
4461    #[inline]
4462    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4463        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4464    }
4465    #[inline]
4466    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4467        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4468    }
4469}
4470
4471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4472pub struct CreateServer {
4473    pub(crate) syntax: SyntaxNode,
4474}
4475impl CreateServer {
4476    #[inline]
4477    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4478        support::child(&self.syntax)
4479    }
4480    #[inline]
4481    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4482        support::child(&self.syntax)
4483    }
4484    #[inline]
4485    pub fn literal(&self) -> Option<Literal> {
4486        support::child(&self.syntax)
4487    }
4488    #[inline]
4489    pub fn name(&self) -> Option<Name> {
4490        support::child(&self.syntax)
4491    }
4492    #[inline]
4493    pub fn name_ref(&self) -> Option<NameRef> {
4494        support::child(&self.syntax)
4495    }
4496    #[inline]
4497    pub fn create_token(&self) -> Option<SyntaxToken> {
4498        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4499    }
4500    #[inline]
4501    pub fn data_token(&self) -> Option<SyntaxToken> {
4502        support::token(&self.syntax, SyntaxKind::DATA_KW)
4503    }
4504    #[inline]
4505    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4506        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4507    }
4508    #[inline]
4509    pub fn server_token(&self) -> Option<SyntaxToken> {
4510        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4511    }
4512    #[inline]
4513    pub fn type_token(&self) -> Option<SyntaxToken> {
4514        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4515    }
4516    #[inline]
4517    pub fn version_token(&self) -> Option<SyntaxToken> {
4518        support::token(&self.syntax, SyntaxKind::VERSION_KW)
4519    }
4520    #[inline]
4521    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4522        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4523    }
4524}
4525
4526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4527pub struct CreateStatistics {
4528    pub(crate) syntax: SyntaxNode,
4529}
4530impl CreateStatistics {
4531    #[inline]
4532    pub fn from_table(&self) -> Option<FromTable> {
4533        support::child(&self.syntax)
4534    }
4535    #[inline]
4536    pub fn name_refs(&self) -> AstChildren<NameRef> {
4537        support::children(&self.syntax)
4538    }
4539    #[inline]
4540    pub fn path(&self) -> Option<Path> {
4541        support::child(&self.syntax)
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 on_token(&self) -> Option<SyntaxToken> {
4549        support::token(&self.syntax, SyntaxKind::ON_KW)
4550    }
4551    #[inline]
4552    pub fn statistics_token(&self) -> Option<SyntaxToken> {
4553        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
4554    }
4555}
4556
4557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4558pub struct CreateSubscription {
4559    pub(crate) syntax: SyntaxNode,
4560}
4561impl CreateSubscription {
4562    #[inline]
4563    pub fn literal(&self) -> Option<Literal> {
4564        support::child(&self.syntax)
4565    }
4566    #[inline]
4567    pub fn name(&self) -> Option<Name> {
4568        support::child(&self.syntax)
4569    }
4570    #[inline]
4571    pub fn name_refs(&self) -> AstChildren<NameRef> {
4572        support::children(&self.syntax)
4573    }
4574    #[inline]
4575    pub fn with_params(&self) -> Option<WithParams> {
4576        support::child(&self.syntax)
4577    }
4578    #[inline]
4579    pub fn connection_token(&self) -> Option<SyntaxToken> {
4580        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
4581    }
4582    #[inline]
4583    pub fn create_token(&self) -> Option<SyntaxToken> {
4584        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4585    }
4586    #[inline]
4587    pub fn publication_token(&self) -> Option<SyntaxToken> {
4588        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4589    }
4590    #[inline]
4591    pub fn subscription_token(&self) -> Option<SyntaxToken> {
4592        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
4593    }
4594}
4595
4596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4597pub struct CreateTable {
4598    pub(crate) syntax: SyntaxNode,
4599}
4600impl CreateTable {
4601    #[inline]
4602    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4603        support::child(&self.syntax)
4604    }
4605    #[inline]
4606    pub fn inherits(&self) -> Option<Inherits> {
4607        support::child(&self.syntax)
4608    }
4609    #[inline]
4610    pub fn of_type(&self) -> Option<OfType> {
4611        support::child(&self.syntax)
4612    }
4613    #[inline]
4614    pub fn on_commit(&self) -> Option<OnCommit> {
4615        support::child(&self.syntax)
4616    }
4617    #[inline]
4618    pub fn partition_by(&self) -> Option<PartitionBy> {
4619        support::child(&self.syntax)
4620    }
4621    #[inline]
4622    pub fn partition_of(&self) -> Option<PartitionOf> {
4623        support::child(&self.syntax)
4624    }
4625    #[inline]
4626    pub fn path(&self) -> Option<Path> {
4627        support::child(&self.syntax)
4628    }
4629    #[inline]
4630    pub fn table_arg_list(&self) -> Option<TableArgList> {
4631        support::child(&self.syntax)
4632    }
4633    #[inline]
4634    pub fn tablespace(&self) -> Option<Tablespace> {
4635        support::child(&self.syntax)
4636    }
4637    #[inline]
4638    pub fn using_method(&self) -> Option<UsingMethod> {
4639        support::child(&self.syntax)
4640    }
4641    #[inline]
4642    pub fn with_params(&self) -> Option<WithParams> {
4643        support::child(&self.syntax)
4644    }
4645    #[inline]
4646    pub fn without_oids(&self) -> Option<WithoutOids> {
4647        support::child(&self.syntax)
4648    }
4649    #[inline]
4650    pub fn create_token(&self) -> Option<SyntaxToken> {
4651        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4652    }
4653    #[inline]
4654    pub fn global_token(&self) -> Option<SyntaxToken> {
4655        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4656    }
4657    #[inline]
4658    pub fn local_token(&self) -> Option<SyntaxToken> {
4659        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4660    }
4661    #[inline]
4662    pub fn table_token(&self) -> Option<SyntaxToken> {
4663        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4664    }
4665    #[inline]
4666    pub fn temp_token(&self) -> Option<SyntaxToken> {
4667        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4668    }
4669    #[inline]
4670    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4671        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4672    }
4673    #[inline]
4674    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4675        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4676    }
4677}
4678
4679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4680pub struct CreateTableAs {
4681    pub(crate) syntax: SyntaxNode,
4682}
4683impl CreateTableAs {
4684    #[inline]
4685    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4686        support::child(&self.syntax)
4687    }
4688    #[inline]
4689    pub fn on_commit(&self) -> Option<OnCommit> {
4690        support::child(&self.syntax)
4691    }
4692    #[inline]
4693    pub fn path(&self) -> Option<Path> {
4694        support::child(&self.syntax)
4695    }
4696    #[inline]
4697    pub fn query(&self) -> Option<SelectVariant> {
4698        support::child(&self.syntax)
4699    }
4700    #[inline]
4701    pub fn tablespace(&self) -> Option<Tablespace> {
4702        support::child(&self.syntax)
4703    }
4704    #[inline]
4705    pub fn using_method(&self) -> Option<UsingMethod> {
4706        support::child(&self.syntax)
4707    }
4708    #[inline]
4709    pub fn with_data(&self) -> Option<WithData> {
4710        support::child(&self.syntax)
4711    }
4712    #[inline]
4713    pub fn with_no_data(&self) -> Option<WithNoData> {
4714        support::child(&self.syntax)
4715    }
4716    #[inline]
4717    pub fn with_params(&self) -> Option<WithParams> {
4718        support::child(&self.syntax)
4719    }
4720    #[inline]
4721    pub fn without_oids(&self) -> Option<WithoutOids> {
4722        support::child(&self.syntax)
4723    }
4724    #[inline]
4725    pub fn as_token(&self) -> Option<SyntaxToken> {
4726        support::token(&self.syntax, SyntaxKind::AS_KW)
4727    }
4728    #[inline]
4729    pub fn create_token(&self) -> Option<SyntaxToken> {
4730        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4731    }
4732    #[inline]
4733    pub fn global_token(&self) -> Option<SyntaxToken> {
4734        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4735    }
4736    #[inline]
4737    pub fn local_token(&self) -> Option<SyntaxToken> {
4738        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4739    }
4740    #[inline]
4741    pub fn table_token(&self) -> Option<SyntaxToken> {
4742        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4743    }
4744    #[inline]
4745    pub fn temp_token(&self) -> Option<SyntaxToken> {
4746        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4747    }
4748    #[inline]
4749    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4750        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4751    }
4752    #[inline]
4753    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4754        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4755    }
4756}
4757
4758#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4759pub struct CreateTablespace {
4760    pub(crate) syntax: SyntaxNode,
4761}
4762impl CreateTablespace {
4763    #[inline]
4764    pub fn literal(&self) -> Option<Literal> {
4765        support::child(&self.syntax)
4766    }
4767    #[inline]
4768    pub fn name(&self) -> Option<Name> {
4769        support::child(&self.syntax)
4770    }
4771    #[inline]
4772    pub fn role_ref(&self) -> Option<RoleRef> {
4773        support::child(&self.syntax)
4774    }
4775    #[inline]
4776    pub fn with_params(&self) -> Option<WithParams> {
4777        support::child(&self.syntax)
4778    }
4779    #[inline]
4780    pub fn create_token(&self) -> Option<SyntaxToken> {
4781        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4782    }
4783    #[inline]
4784    pub fn location_token(&self) -> Option<SyntaxToken> {
4785        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
4786    }
4787    #[inline]
4788    pub fn owner_token(&self) -> Option<SyntaxToken> {
4789        support::token(&self.syntax, SyntaxKind::OWNER_KW)
4790    }
4791    #[inline]
4792    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4793        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4794    }
4795}
4796
4797#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4798pub struct CreateTextSearchConfiguration {
4799    pub(crate) syntax: SyntaxNode,
4800}
4801impl CreateTextSearchConfiguration {
4802    #[inline]
4803    pub fn attribute_list(&self) -> Option<AttributeList> {
4804        support::child(&self.syntax)
4805    }
4806    #[inline]
4807    pub fn path(&self) -> Option<Path> {
4808        support::child(&self.syntax)
4809    }
4810    #[inline]
4811    pub fn configuration_token(&self) -> Option<SyntaxToken> {
4812        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
4813    }
4814    #[inline]
4815    pub fn create_token(&self) -> Option<SyntaxToken> {
4816        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4817    }
4818    #[inline]
4819    pub fn search_token(&self) -> Option<SyntaxToken> {
4820        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4821    }
4822    #[inline]
4823    pub fn text_token(&self) -> Option<SyntaxToken> {
4824        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4825    }
4826}
4827
4828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4829pub struct CreateTextSearchDictionary {
4830    pub(crate) syntax: SyntaxNode,
4831}
4832impl CreateTextSearchDictionary {
4833    #[inline]
4834    pub fn attribute_list(&self) -> Option<AttributeList> {
4835        support::child(&self.syntax)
4836    }
4837    #[inline]
4838    pub fn path(&self) -> Option<Path> {
4839        support::child(&self.syntax)
4840    }
4841    #[inline]
4842    pub fn create_token(&self) -> Option<SyntaxToken> {
4843        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4844    }
4845    #[inline]
4846    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
4847        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
4848    }
4849    #[inline]
4850    pub fn search_token(&self) -> Option<SyntaxToken> {
4851        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4852    }
4853    #[inline]
4854    pub fn text_token(&self) -> Option<SyntaxToken> {
4855        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4856    }
4857}
4858
4859#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4860pub struct CreateTextSearchParser {
4861    pub(crate) syntax: SyntaxNode,
4862}
4863impl CreateTextSearchParser {
4864    #[inline]
4865    pub fn attribute_list(&self) -> Option<AttributeList> {
4866        support::child(&self.syntax)
4867    }
4868    #[inline]
4869    pub fn path(&self) -> Option<Path> {
4870        support::child(&self.syntax)
4871    }
4872    #[inline]
4873    pub fn create_token(&self) -> Option<SyntaxToken> {
4874        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4875    }
4876    #[inline]
4877    pub fn parser_token(&self) -> Option<SyntaxToken> {
4878        support::token(&self.syntax, SyntaxKind::PARSER_KW)
4879    }
4880    #[inline]
4881    pub fn search_token(&self) -> Option<SyntaxToken> {
4882        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4883    }
4884    #[inline]
4885    pub fn text_token(&self) -> Option<SyntaxToken> {
4886        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4887    }
4888}
4889
4890#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4891pub struct CreateTextSearchTemplate {
4892    pub(crate) syntax: SyntaxNode,
4893}
4894impl CreateTextSearchTemplate {
4895    #[inline]
4896    pub fn attribute_list(&self) -> Option<AttributeList> {
4897        support::child(&self.syntax)
4898    }
4899    #[inline]
4900    pub fn path(&self) -> Option<Path> {
4901        support::child(&self.syntax)
4902    }
4903    #[inline]
4904    pub fn create_token(&self) -> Option<SyntaxToken> {
4905        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4906    }
4907    #[inline]
4908    pub fn search_token(&self) -> Option<SyntaxToken> {
4909        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4910    }
4911    #[inline]
4912    pub fn template_token(&self) -> Option<SyntaxToken> {
4913        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4914    }
4915    #[inline]
4916    pub fn text_token(&self) -> Option<SyntaxToken> {
4917        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4918    }
4919}
4920
4921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4922pub struct CreateTransform {
4923    pub(crate) syntax: SyntaxNode,
4924}
4925impl CreateTransform {
4926    #[inline]
4927    pub fn from_func(&self) -> Option<TransformFromFunc> {
4928        support::child(&self.syntax)
4929    }
4930    #[inline]
4931    pub fn language(&self) -> Option<NameRef> {
4932        support::child(&self.syntax)
4933    }
4934    #[inline]
4935    pub fn or_replace(&self) -> Option<OrReplace> {
4936        support::child(&self.syntax)
4937    }
4938    #[inline]
4939    pub fn to_func(&self) -> Option<TransformToFunc> {
4940        support::child(&self.syntax)
4941    }
4942    #[inline]
4943    pub fn ty(&self) -> Option<Type> {
4944        support::child(&self.syntax)
4945    }
4946    #[inline]
4947    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4948        support::token(&self.syntax, SyntaxKind::L_PAREN)
4949    }
4950    #[inline]
4951    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4952        support::token(&self.syntax, SyntaxKind::R_PAREN)
4953    }
4954    #[inline]
4955    pub fn comma_token(&self) -> Option<SyntaxToken> {
4956        support::token(&self.syntax, SyntaxKind::COMMA)
4957    }
4958    #[inline]
4959    pub fn create_token(&self) -> Option<SyntaxToken> {
4960        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4961    }
4962    #[inline]
4963    pub fn for_token(&self) -> Option<SyntaxToken> {
4964        support::token(&self.syntax, SyntaxKind::FOR_KW)
4965    }
4966    #[inline]
4967    pub fn language_token(&self) -> Option<SyntaxToken> {
4968        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4969    }
4970    #[inline]
4971    pub fn transform_token(&self) -> Option<SyntaxToken> {
4972        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
4973    }
4974}
4975
4976#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4977pub struct CreateTrigger {
4978    pub(crate) syntax: SyntaxNode,
4979}
4980impl CreateTrigger {
4981    #[inline]
4982    pub fn call_expr(&self) -> Option<CallExpr> {
4983        support::child(&self.syntax)
4984    }
4985    #[inline]
4986    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
4987        support::child(&self.syntax)
4988    }
4989    #[inline]
4990    pub fn from_table(&self) -> Option<FromTable> {
4991        support::child(&self.syntax)
4992    }
4993    #[inline]
4994    pub fn initially_deferred_constraint_option(
4995        &self,
4996    ) -> Option<InitiallyDeferredConstraintOption> {
4997        support::child(&self.syntax)
4998    }
4999    #[inline]
5000    pub fn initially_immediate_constraint_option(
5001        &self,
5002    ) -> Option<InitiallyImmediateConstraintOption> {
5003        support::child(&self.syntax)
5004    }
5005    #[inline]
5006    pub fn name(&self) -> Option<Name> {
5007        support::child(&self.syntax)
5008    }
5009    #[inline]
5010    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
5011        support::child(&self.syntax)
5012    }
5013    #[inline]
5014    pub fn on_table(&self) -> Option<OnTable> {
5015        support::child(&self.syntax)
5016    }
5017    #[inline]
5018    pub fn or_replace(&self) -> Option<OrReplace> {
5019        support::child(&self.syntax)
5020    }
5021    #[inline]
5022    pub fn referencing(&self) -> Option<Referencing> {
5023        support::child(&self.syntax)
5024    }
5025    #[inline]
5026    pub fn timing(&self) -> Option<Timing> {
5027        support::child(&self.syntax)
5028    }
5029    #[inline]
5030    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
5031        support::child(&self.syntax)
5032    }
5033    #[inline]
5034    pub fn when_condition(&self) -> Option<WhenCondition> {
5035        support::child(&self.syntax)
5036    }
5037    #[inline]
5038    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5039        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5040    }
5041    #[inline]
5042    pub fn create_token(&self) -> Option<SyntaxToken> {
5043        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5044    }
5045    #[inline]
5046    pub fn each_token(&self) -> Option<SyntaxToken> {
5047        support::token(&self.syntax, SyntaxKind::EACH_KW)
5048    }
5049    #[inline]
5050    pub fn execute_token(&self) -> Option<SyntaxToken> {
5051        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
5052    }
5053    #[inline]
5054    pub fn for_token(&self) -> Option<SyntaxToken> {
5055        support::token(&self.syntax, SyntaxKind::FOR_KW)
5056    }
5057    #[inline]
5058    pub fn function_token(&self) -> Option<SyntaxToken> {
5059        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5060    }
5061    #[inline]
5062    pub fn procedure_token(&self) -> Option<SyntaxToken> {
5063        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
5064    }
5065    #[inline]
5066    pub fn row_token(&self) -> Option<SyntaxToken> {
5067        support::token(&self.syntax, SyntaxKind::ROW_KW)
5068    }
5069    #[inline]
5070    pub fn statement_token(&self) -> Option<SyntaxToken> {
5071        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
5072    }
5073    #[inline]
5074    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5075        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5076    }
5077}
5078
5079#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5080pub struct CreateType {
5081    pub(crate) syntax: SyntaxNode,
5082}
5083impl CreateType {
5084    #[inline]
5085    pub fn attribute_list(&self) -> Option<AttributeList> {
5086        support::child(&self.syntax)
5087    }
5088    #[inline]
5089    pub fn column_list(&self) -> Option<ColumnList> {
5090        support::child(&self.syntax)
5091    }
5092    #[inline]
5093    pub fn path(&self) -> Option<Path> {
5094        support::child(&self.syntax)
5095    }
5096    #[inline]
5097    pub fn variant_list(&self) -> Option<VariantList> {
5098        support::child(&self.syntax)
5099    }
5100    #[inline]
5101    pub fn as_token(&self) -> Option<SyntaxToken> {
5102        support::token(&self.syntax, SyntaxKind::AS_KW)
5103    }
5104    #[inline]
5105    pub fn create_token(&self) -> Option<SyntaxToken> {
5106        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5107    }
5108    #[inline]
5109    pub fn enum_token(&self) -> Option<SyntaxToken> {
5110        support::token(&self.syntax, SyntaxKind::ENUM_KW)
5111    }
5112    #[inline]
5113    pub fn range_token(&self) -> Option<SyntaxToken> {
5114        support::token(&self.syntax, SyntaxKind::RANGE_KW)
5115    }
5116    #[inline]
5117    pub fn type_token(&self) -> Option<SyntaxToken> {
5118        support::token(&self.syntax, SyntaxKind::TYPE_KW)
5119    }
5120}
5121
5122#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5123pub struct CreateUser {
5124    pub(crate) syntax: SyntaxNode,
5125}
5126impl CreateUser {
5127    #[inline]
5128    pub fn name(&self) -> Option<Name> {
5129        support::child(&self.syntax)
5130    }
5131    #[inline]
5132    pub fn role_option_list(&self) -> Option<RoleOptionList> {
5133        support::child(&self.syntax)
5134    }
5135    #[inline]
5136    pub fn create_token(&self) -> Option<SyntaxToken> {
5137        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5138    }
5139    #[inline]
5140    pub fn user_token(&self) -> Option<SyntaxToken> {
5141        support::token(&self.syntax, SyntaxKind::USER_KW)
5142    }
5143}
5144
5145#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5146pub struct CreateUserMapping {
5147    pub(crate) syntax: SyntaxNode,
5148}
5149impl CreateUserMapping {
5150    #[inline]
5151    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
5152        support::child(&self.syntax)
5153    }
5154    #[inline]
5155    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5156        support::child(&self.syntax)
5157    }
5158    #[inline]
5159    pub fn role_ref(&self) -> Option<RoleRef> {
5160        support::child(&self.syntax)
5161    }
5162    #[inline]
5163    pub fn server_name(&self) -> Option<ServerName> {
5164        support::child(&self.syntax)
5165    }
5166    #[inline]
5167    pub fn create_token(&self) -> Option<SyntaxToken> {
5168        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5169    }
5170    #[inline]
5171    pub fn for_token(&self) -> Option<SyntaxToken> {
5172        support::token(&self.syntax, SyntaxKind::FOR_KW)
5173    }
5174    #[inline]
5175    pub fn mapping_token(&self) -> Option<SyntaxToken> {
5176        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
5177    }
5178    #[inline]
5179    pub fn user_token(&self) -> Option<SyntaxToken> {
5180        support::token(&self.syntax, SyntaxKind::USER_KW)
5181    }
5182}
5183
5184#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5185pub struct CreateView {
5186    pub(crate) syntax: SyntaxNode,
5187}
5188impl CreateView {
5189    #[inline]
5190    pub fn column_list(&self) -> Option<ColumnList> {
5191        support::child(&self.syntax)
5192    }
5193    #[inline]
5194    pub fn or_replace(&self) -> Option<OrReplace> {
5195        support::child(&self.syntax)
5196    }
5197    #[inline]
5198    pub fn path(&self) -> Option<Path> {
5199        support::child(&self.syntax)
5200    }
5201    #[inline]
5202    pub fn query(&self) -> Option<SelectVariant> {
5203        support::child(&self.syntax)
5204    }
5205    #[inline]
5206    pub fn with_params(&self) -> Option<WithParams> {
5207        support::child(&self.syntax)
5208    }
5209    #[inline]
5210    pub fn as_token(&self) -> Option<SyntaxToken> {
5211        support::token(&self.syntax, SyntaxKind::AS_KW)
5212    }
5213    #[inline]
5214    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
5215        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
5216    }
5217    #[inline]
5218    pub fn check_token(&self) -> Option<SyntaxToken> {
5219        support::token(&self.syntax, SyntaxKind::CHECK_KW)
5220    }
5221    #[inline]
5222    pub fn create_token(&self) -> Option<SyntaxToken> {
5223        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5224    }
5225    #[inline]
5226    pub fn local_token(&self) -> Option<SyntaxToken> {
5227        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
5228    }
5229    #[inline]
5230    pub fn option_token(&self) -> Option<SyntaxToken> {
5231        support::token(&self.syntax, SyntaxKind::OPTION_KW)
5232    }
5233    #[inline]
5234    pub fn recursive_token(&self) -> Option<SyntaxToken> {
5235        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
5236    }
5237    #[inline]
5238    pub fn temp_token(&self) -> Option<SyntaxToken> {
5239        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5240    }
5241    #[inline]
5242    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5243        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5244    }
5245    #[inline]
5246    pub fn view_token(&self) -> Option<SyntaxToken> {
5247        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5248    }
5249    #[inline]
5250    pub fn with_token(&self) -> Option<SyntaxToken> {
5251        support::token(&self.syntax, SyntaxKind::WITH_KW)
5252    }
5253}
5254
5255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5256pub struct CustomOp {
5257    pub(crate) syntax: SyntaxNode,
5258}
5259impl CustomOp {
5260    #[inline]
5261    pub fn bang_token(&self) -> Option<SyntaxToken> {
5262        support::token(&self.syntax, SyntaxKind::BANG)
5263    }
5264    #[inline]
5265    pub fn pound_token(&self) -> Option<SyntaxToken> {
5266        support::token(&self.syntax, SyntaxKind::POUND)
5267    }
5268    #[inline]
5269    pub fn percent_token(&self) -> Option<SyntaxToken> {
5270        support::token(&self.syntax, SyntaxKind::PERCENT)
5271    }
5272    #[inline]
5273    pub fn amp_token(&self) -> Option<SyntaxToken> {
5274        support::token(&self.syntax, SyntaxKind::AMP)
5275    }
5276    #[inline]
5277    pub fn star_token(&self) -> Option<SyntaxToken> {
5278        support::token(&self.syntax, SyntaxKind::STAR)
5279    }
5280    #[inline]
5281    pub fn plus_token(&self) -> Option<SyntaxToken> {
5282        support::token(&self.syntax, SyntaxKind::PLUS)
5283    }
5284    #[inline]
5285    pub fn minus_token(&self) -> Option<SyntaxToken> {
5286        support::token(&self.syntax, SyntaxKind::MINUS)
5287    }
5288    #[inline]
5289    pub fn slash_token(&self) -> Option<SyntaxToken> {
5290        support::token(&self.syntax, SyntaxKind::SLASH)
5291    }
5292    #[inline]
5293    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
5294        support::token(&self.syntax, SyntaxKind::L_ANGLE)
5295    }
5296    #[inline]
5297    pub fn eq_token(&self) -> Option<SyntaxToken> {
5298        support::token(&self.syntax, SyntaxKind::EQ)
5299    }
5300    #[inline]
5301    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5302        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5303    }
5304    #[inline]
5305    pub fn question_token(&self) -> Option<SyntaxToken> {
5306        support::token(&self.syntax, SyntaxKind::QUESTION)
5307    }
5308    #[inline]
5309    pub fn at_token(&self) -> Option<SyntaxToken> {
5310        support::token(&self.syntax, SyntaxKind::AT)
5311    }
5312    #[inline]
5313    pub fn caret_token(&self) -> Option<SyntaxToken> {
5314        support::token(&self.syntax, SyntaxKind::CARET)
5315    }
5316    #[inline]
5317    pub fn backtick_token(&self) -> Option<SyntaxToken> {
5318        support::token(&self.syntax, SyntaxKind::BACKTICK)
5319    }
5320    #[inline]
5321    pub fn pipe_token(&self) -> Option<SyntaxToken> {
5322        support::token(&self.syntax, SyntaxKind::PIPE)
5323    }
5324    #[inline]
5325    pub fn tilde_token(&self) -> Option<SyntaxToken> {
5326        support::token(&self.syntax, SyntaxKind::TILDE)
5327    }
5328}
5329
5330#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5331pub struct Deallocate {
5332    pub(crate) syntax: SyntaxNode,
5333}
5334impl Deallocate {
5335    #[inline]
5336    pub fn name_ref(&self) -> Option<NameRef> {
5337        support::child(&self.syntax)
5338    }
5339    #[inline]
5340    pub fn all_token(&self) -> Option<SyntaxToken> {
5341        support::token(&self.syntax, SyntaxKind::ALL_KW)
5342    }
5343    #[inline]
5344    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
5345        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
5346    }
5347    #[inline]
5348    pub fn prepare_token(&self) -> Option<SyntaxToken> {
5349        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
5350    }
5351}
5352
5353#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5354pub struct Declare {
5355    pub(crate) syntax: SyntaxNode,
5356}
5357impl Declare {
5358    #[inline]
5359    pub fn name(&self) -> Option<Name> {
5360        support::child(&self.syntax)
5361    }
5362    #[inline]
5363    pub fn query(&self) -> Option<SelectVariant> {
5364        support::child(&self.syntax)
5365    }
5366    #[inline]
5367    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
5368        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
5369    }
5370    #[inline]
5371    pub fn binary_token(&self) -> Option<SyntaxToken> {
5372        support::token(&self.syntax, SyntaxKind::BINARY_KW)
5373    }
5374    #[inline]
5375    pub fn cursor_token(&self) -> Option<SyntaxToken> {
5376        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
5377    }
5378    #[inline]
5379    pub fn declare_token(&self) -> Option<SyntaxToken> {
5380        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
5381    }
5382    #[inline]
5383    pub fn for_token(&self) -> Option<SyntaxToken> {
5384        support::token(&self.syntax, SyntaxKind::FOR_KW)
5385    }
5386    #[inline]
5387    pub fn hold_token(&self) -> Option<SyntaxToken> {
5388        support::token(&self.syntax, SyntaxKind::HOLD_KW)
5389    }
5390    #[inline]
5391    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
5392        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
5393    }
5394    #[inline]
5395    pub fn no_token(&self) -> Option<SyntaxToken> {
5396        support::token(&self.syntax, SyntaxKind::NO_KW)
5397    }
5398    #[inline]
5399    pub fn scroll_token(&self) -> Option<SyntaxToken> {
5400        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
5401    }
5402    #[inline]
5403    pub fn with_token(&self) -> Option<SyntaxToken> {
5404        support::token(&self.syntax, SyntaxKind::WITH_KW)
5405    }
5406    #[inline]
5407    pub fn without_token(&self) -> Option<SyntaxToken> {
5408        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5409    }
5410}
5411
5412#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5413pub struct DefaultConstraint {
5414    pub(crate) syntax: SyntaxNode,
5415}
5416impl DefaultConstraint {
5417    #[inline]
5418    pub fn expr(&self) -> Option<Expr> {
5419        support::child(&self.syntax)
5420    }
5421    #[inline]
5422    pub fn name_ref(&self) -> Option<NameRef> {
5423        support::child(&self.syntax)
5424    }
5425    #[inline]
5426    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5427        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5428    }
5429    #[inline]
5430    pub fn default_token(&self) -> Option<SyntaxToken> {
5431        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5432    }
5433}
5434
5435#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5436pub struct Deferrable {
5437    pub(crate) syntax: SyntaxNode,
5438}
5439impl Deferrable {
5440    #[inline]
5441    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5442        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5443    }
5444}
5445
5446#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5447pub struct DeferrableConstraintOption {
5448    pub(crate) syntax: SyntaxNode,
5449}
5450impl DeferrableConstraintOption {
5451    #[inline]
5452    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5453        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5454    }
5455}
5456
5457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5458pub struct Delete {
5459    pub(crate) syntax: SyntaxNode,
5460}
5461impl Delete {
5462    #[inline]
5463    pub fn alias(&self) -> Option<Alias> {
5464        support::child(&self.syntax)
5465    }
5466    #[inline]
5467    pub fn relation_name(&self) -> Option<RelationName> {
5468        support::child(&self.syntax)
5469    }
5470    #[inline]
5471    pub fn returning_clause(&self) -> Option<ReturningClause> {
5472        support::child(&self.syntax)
5473    }
5474    #[inline]
5475    pub fn using_clause(&self) -> Option<UsingClause> {
5476        support::child(&self.syntax)
5477    }
5478    #[inline]
5479    pub fn where_clause(&self) -> Option<WhereClause> {
5480        support::child(&self.syntax)
5481    }
5482    #[inline]
5483    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
5484        support::child(&self.syntax)
5485    }
5486    #[inline]
5487    pub fn with_clause(&self) -> Option<WithClause> {
5488        support::child(&self.syntax)
5489    }
5490    #[inline]
5491    pub fn delete_token(&self) -> Option<SyntaxToken> {
5492        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5493    }
5494    #[inline]
5495    pub fn from_token(&self) -> Option<SyntaxToken> {
5496        support::token(&self.syntax, SyntaxKind::FROM_KW)
5497    }
5498}
5499
5500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5501pub struct DeleteRows {
5502    pub(crate) syntax: SyntaxNode,
5503}
5504impl DeleteRows {
5505    #[inline]
5506    pub fn delete_token(&self) -> Option<SyntaxToken> {
5507        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5508    }
5509    #[inline]
5510    pub fn rows_token(&self) -> Option<SyntaxToken> {
5511        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5512    }
5513}
5514
5515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5516pub struct DependsOnExtension {
5517    pub(crate) syntax: SyntaxNode,
5518}
5519impl DependsOnExtension {
5520    #[inline]
5521    pub fn name_ref(&self) -> Option<NameRef> {
5522        support::child(&self.syntax)
5523    }
5524    #[inline]
5525    pub fn depends_token(&self) -> Option<SyntaxToken> {
5526        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
5527    }
5528    #[inline]
5529    pub fn extension_token(&self) -> Option<SyntaxToken> {
5530        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5531    }
5532    #[inline]
5533    pub fn on_token(&self) -> Option<SyntaxToken> {
5534        support::token(&self.syntax, SyntaxKind::ON_KW)
5535    }
5536}
5537
5538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5539pub struct DetachPartition {
5540    pub(crate) syntax: SyntaxNode,
5541}
5542impl DetachPartition {
5543    #[inline]
5544    pub fn detach_token(&self) -> Option<SyntaxToken> {
5545        support::token(&self.syntax, SyntaxKind::DETACH_KW)
5546    }
5547    #[inline]
5548    pub fn partition_token(&self) -> Option<SyntaxToken> {
5549        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
5550    }
5551}
5552
5553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5554pub struct DisableRls {
5555    pub(crate) syntax: SyntaxNode,
5556}
5557impl DisableRls {
5558    #[inline]
5559    pub fn disable_token(&self) -> Option<SyntaxToken> {
5560        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5561    }
5562    #[inline]
5563    pub fn level_token(&self) -> Option<SyntaxToken> {
5564        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
5565    }
5566    #[inline]
5567    pub fn row_token(&self) -> Option<SyntaxToken> {
5568        support::token(&self.syntax, SyntaxKind::ROW_KW)
5569    }
5570    #[inline]
5571    pub fn security_token(&self) -> Option<SyntaxToken> {
5572        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
5573    }
5574}
5575
5576#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5577pub struct DisableRule {
5578    pub(crate) syntax: SyntaxNode,
5579}
5580impl DisableRule {
5581    #[inline]
5582    pub fn disable_token(&self) -> Option<SyntaxToken> {
5583        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5584    }
5585    #[inline]
5586    pub fn rule_token(&self) -> Option<SyntaxToken> {
5587        support::token(&self.syntax, SyntaxKind::RULE_KW)
5588    }
5589}
5590
5591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5592pub struct DisableTrigger {
5593    pub(crate) syntax: SyntaxNode,
5594}
5595impl DisableTrigger {
5596    #[inline]
5597    pub fn disable_token(&self) -> Option<SyntaxToken> {
5598        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5599    }
5600    #[inline]
5601    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5602        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5603    }
5604}
5605
5606#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5607pub struct Discard {
5608    pub(crate) syntax: SyntaxNode,
5609}
5610impl Discard {
5611    #[inline]
5612    pub fn all_token(&self) -> Option<SyntaxToken> {
5613        support::token(&self.syntax, SyntaxKind::ALL_KW)
5614    }
5615    #[inline]
5616    pub fn discard_token(&self) -> Option<SyntaxToken> {
5617        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
5618    }
5619    #[inline]
5620    pub fn plans_token(&self) -> Option<SyntaxToken> {
5621        support::token(&self.syntax, SyntaxKind::PLANS_KW)
5622    }
5623    #[inline]
5624    pub fn sequences_token(&self) -> Option<SyntaxToken> {
5625        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
5626    }
5627    #[inline]
5628    pub fn temp_token(&self) -> Option<SyntaxToken> {
5629        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5630    }
5631    #[inline]
5632    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5633        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5634    }
5635}
5636
5637#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5638pub struct DistinctClause {
5639    pub(crate) syntax: SyntaxNode,
5640}
5641impl DistinctClause {
5642    #[inline]
5643    pub fn exprs(&self) -> AstChildren<Expr> {
5644        support::children(&self.syntax)
5645    }
5646    #[inline]
5647    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5648        support::token(&self.syntax, SyntaxKind::L_PAREN)
5649    }
5650    #[inline]
5651    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5652        support::token(&self.syntax, SyntaxKind::R_PAREN)
5653    }
5654    #[inline]
5655    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5656        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5657    }
5658    #[inline]
5659    pub fn on_token(&self) -> Option<SyntaxToken> {
5660        support::token(&self.syntax, SyntaxKind::ON_KW)
5661    }
5662}
5663
5664#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5665pub struct Do {
5666    pub(crate) syntax: SyntaxNode,
5667}
5668impl Do {
5669    #[inline]
5670    pub fn do_token(&self) -> Option<SyntaxToken> {
5671        support::token(&self.syntax, SyntaxKind::DO_KW)
5672    }
5673}
5674
5675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5676pub struct DoubleType {
5677    pub(crate) syntax: SyntaxNode,
5678}
5679impl DoubleType {
5680    #[inline]
5681    pub fn double_token(&self) -> Option<SyntaxToken> {
5682        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
5683    }
5684    #[inline]
5685    pub fn precision_token(&self) -> Option<SyntaxToken> {
5686        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
5687    }
5688}
5689
5690#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5691pub struct Drop {
5692    pub(crate) syntax: SyntaxNode,
5693}
5694impl Drop {
5695    #[inline]
5696    pub fn drop_token(&self) -> Option<SyntaxToken> {
5697        support::token(&self.syntax, SyntaxKind::DROP_KW)
5698    }
5699}
5700
5701#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5702pub struct DropAccessMethod {
5703    pub(crate) syntax: SyntaxNode,
5704}
5705impl DropAccessMethod {
5706    #[inline]
5707    pub fn if_exists(&self) -> Option<IfExists> {
5708        support::child(&self.syntax)
5709    }
5710    #[inline]
5711    pub fn name_ref(&self) -> Option<NameRef> {
5712        support::child(&self.syntax)
5713    }
5714    #[inline]
5715    pub fn access_token(&self) -> Option<SyntaxToken> {
5716        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
5717    }
5718    #[inline]
5719    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5720        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5721    }
5722    #[inline]
5723    pub fn drop_token(&self) -> Option<SyntaxToken> {
5724        support::token(&self.syntax, SyntaxKind::DROP_KW)
5725    }
5726    #[inline]
5727    pub fn method_token(&self) -> Option<SyntaxToken> {
5728        support::token(&self.syntax, SyntaxKind::METHOD_KW)
5729    }
5730    #[inline]
5731    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5732        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5733    }
5734}
5735
5736#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5737pub struct DropAggregate {
5738    pub(crate) syntax: SyntaxNode,
5739}
5740impl DropAggregate {
5741    #[inline]
5742    pub fn aggregates(&self) -> AstChildren<Aggregate> {
5743        support::children(&self.syntax)
5744    }
5745    #[inline]
5746    pub fn if_exists(&self) -> Option<IfExists> {
5747        support::child(&self.syntax)
5748    }
5749    #[inline]
5750    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
5751        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
5752    }
5753    #[inline]
5754    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5755        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5756    }
5757    #[inline]
5758    pub fn drop_token(&self) -> Option<SyntaxToken> {
5759        support::token(&self.syntax, SyntaxKind::DROP_KW)
5760    }
5761    #[inline]
5762    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5763        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5764    }
5765}
5766
5767#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5768pub struct DropCast {
5769    pub(crate) syntax: SyntaxNode,
5770}
5771impl DropCast {
5772    #[inline]
5773    pub fn cast_sig(&self) -> Option<CastSig> {
5774        support::child(&self.syntax)
5775    }
5776    #[inline]
5777    pub fn if_exists(&self) -> Option<IfExists> {
5778        support::child(&self.syntax)
5779    }
5780    #[inline]
5781    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5782        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5783    }
5784    #[inline]
5785    pub fn cast_token(&self) -> Option<SyntaxToken> {
5786        support::token(&self.syntax, SyntaxKind::CAST_KW)
5787    }
5788    #[inline]
5789    pub fn drop_token(&self) -> Option<SyntaxToken> {
5790        support::token(&self.syntax, SyntaxKind::DROP_KW)
5791    }
5792    #[inline]
5793    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5794        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5795    }
5796}
5797
5798#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5799pub struct DropCollation {
5800    pub(crate) syntax: SyntaxNode,
5801}
5802impl DropCollation {
5803    #[inline]
5804    pub fn if_exists(&self) -> Option<IfExists> {
5805        support::child(&self.syntax)
5806    }
5807    #[inline]
5808    pub fn paths(&self) -> AstChildren<Path> {
5809        support::children(&self.syntax)
5810    }
5811    #[inline]
5812    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5813        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5814    }
5815    #[inline]
5816    pub fn collation_token(&self) -> Option<SyntaxToken> {
5817        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
5818    }
5819    #[inline]
5820    pub fn drop_token(&self) -> Option<SyntaxToken> {
5821        support::token(&self.syntax, SyntaxKind::DROP_KW)
5822    }
5823    #[inline]
5824    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5825        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5826    }
5827}
5828
5829#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5830pub struct DropColumn {
5831    pub(crate) syntax: SyntaxNode,
5832}
5833impl DropColumn {
5834    #[inline]
5835    pub fn if_exists(&self) -> Option<IfExists> {
5836        support::child(&self.syntax)
5837    }
5838    #[inline]
5839    pub fn name_ref(&self) -> Option<NameRef> {
5840        support::child(&self.syntax)
5841    }
5842    #[inline]
5843    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5844        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5845    }
5846    #[inline]
5847    pub fn column_token(&self) -> Option<SyntaxToken> {
5848        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
5849    }
5850    #[inline]
5851    pub fn drop_token(&self) -> Option<SyntaxToken> {
5852        support::token(&self.syntax, SyntaxKind::DROP_KW)
5853    }
5854    #[inline]
5855    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5856        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5857    }
5858}
5859
5860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5861pub struct DropConstraint {
5862    pub(crate) syntax: SyntaxNode,
5863}
5864impl DropConstraint {
5865    #[inline]
5866    pub fn if_exists(&self) -> Option<IfExists> {
5867        support::child(&self.syntax)
5868    }
5869    #[inline]
5870    pub fn name_ref(&self) -> Option<NameRef> {
5871        support::child(&self.syntax)
5872    }
5873    #[inline]
5874    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5875        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5876    }
5877    #[inline]
5878    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5879        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5880    }
5881    #[inline]
5882    pub fn drop_token(&self) -> Option<SyntaxToken> {
5883        support::token(&self.syntax, SyntaxKind::DROP_KW)
5884    }
5885    #[inline]
5886    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5887        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5888    }
5889}
5890
5891#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5892pub struct DropConversion {
5893    pub(crate) syntax: SyntaxNode,
5894}
5895impl DropConversion {
5896    #[inline]
5897    pub fn if_exists(&self) -> Option<IfExists> {
5898        support::child(&self.syntax)
5899    }
5900    #[inline]
5901    pub fn path(&self) -> Option<Path> {
5902        support::child(&self.syntax)
5903    }
5904    #[inline]
5905    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5906        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5907    }
5908    #[inline]
5909    pub fn conversion_token(&self) -> Option<SyntaxToken> {
5910        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
5911    }
5912    #[inline]
5913    pub fn drop_token(&self) -> Option<SyntaxToken> {
5914        support::token(&self.syntax, SyntaxKind::DROP_KW)
5915    }
5916    #[inline]
5917    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5918        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5919    }
5920}
5921
5922#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5923pub struct DropDatabase {
5924    pub(crate) syntax: SyntaxNode,
5925}
5926impl DropDatabase {
5927    #[inline]
5928    pub fn if_exists(&self) -> Option<IfExists> {
5929        support::child(&self.syntax)
5930    }
5931    #[inline]
5932    pub fn name_ref(&self) -> Option<NameRef> {
5933        support::child(&self.syntax)
5934    }
5935    #[inline]
5936    pub fn database_token(&self) -> Option<SyntaxToken> {
5937        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
5938    }
5939    #[inline]
5940    pub fn drop_token(&self) -> Option<SyntaxToken> {
5941        support::token(&self.syntax, SyntaxKind::DROP_KW)
5942    }
5943}
5944
5945#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5946pub struct DropDefault {
5947    pub(crate) syntax: SyntaxNode,
5948}
5949impl DropDefault {
5950    #[inline]
5951    pub fn default_token(&self) -> Option<SyntaxToken> {
5952        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5953    }
5954    #[inline]
5955    pub fn drop_token(&self) -> Option<SyntaxToken> {
5956        support::token(&self.syntax, SyntaxKind::DROP_KW)
5957    }
5958}
5959
5960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5961pub struct DropDomain {
5962    pub(crate) syntax: SyntaxNode,
5963}
5964impl DropDomain {
5965    #[inline]
5966    pub fn if_exists(&self) -> Option<IfExists> {
5967        support::child(&self.syntax)
5968    }
5969    #[inline]
5970    pub fn paths(&self) -> AstChildren<Path> {
5971        support::children(&self.syntax)
5972    }
5973    #[inline]
5974    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5975        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5976    }
5977    #[inline]
5978    pub fn domain_token(&self) -> Option<SyntaxToken> {
5979        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
5980    }
5981    #[inline]
5982    pub fn drop_token(&self) -> Option<SyntaxToken> {
5983        support::token(&self.syntax, SyntaxKind::DROP_KW)
5984    }
5985    #[inline]
5986    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5987        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5988    }
5989}
5990
5991#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5992pub struct DropEventTrigger {
5993    pub(crate) syntax: SyntaxNode,
5994}
5995impl DropEventTrigger {
5996    #[inline]
5997    pub fn if_exists(&self) -> Option<IfExists> {
5998        support::child(&self.syntax)
5999    }
6000    #[inline]
6001    pub fn name_ref(&self) -> Option<NameRef> {
6002        support::child(&self.syntax)
6003    }
6004    #[inline]
6005    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6006        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6007    }
6008    #[inline]
6009    pub fn drop_token(&self) -> Option<SyntaxToken> {
6010        support::token(&self.syntax, SyntaxKind::DROP_KW)
6011    }
6012    #[inline]
6013    pub fn event_token(&self) -> Option<SyntaxToken> {
6014        support::token(&self.syntax, SyntaxKind::EVENT_KW)
6015    }
6016    #[inline]
6017    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6018        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6019    }
6020    #[inline]
6021    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6022        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6023    }
6024}
6025
6026#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6027pub struct DropExpression {
6028    pub(crate) syntax: SyntaxNode,
6029}
6030impl DropExpression {
6031    #[inline]
6032    pub fn if_exists(&self) -> Option<IfExists> {
6033        support::child(&self.syntax)
6034    }
6035    #[inline]
6036    pub fn drop_token(&self) -> Option<SyntaxToken> {
6037        support::token(&self.syntax, SyntaxKind::DROP_KW)
6038    }
6039    #[inline]
6040    pub fn expression_token(&self) -> Option<SyntaxToken> {
6041        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
6042    }
6043}
6044
6045#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6046pub struct DropExtension {
6047    pub(crate) syntax: SyntaxNode,
6048}
6049impl DropExtension {
6050    #[inline]
6051    pub fn if_exists(&self) -> Option<IfExists> {
6052        support::child(&self.syntax)
6053    }
6054    #[inline]
6055    pub fn name_refs(&self) -> AstChildren<NameRef> {
6056        support::children(&self.syntax)
6057    }
6058    #[inline]
6059    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6060        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6061    }
6062    #[inline]
6063    pub fn drop_token(&self) -> Option<SyntaxToken> {
6064        support::token(&self.syntax, SyntaxKind::DROP_KW)
6065    }
6066    #[inline]
6067    pub fn extension_token(&self) -> Option<SyntaxToken> {
6068        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
6069    }
6070    #[inline]
6071    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6072        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6073    }
6074}
6075
6076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6077pub struct DropForeignDataWrapper {
6078    pub(crate) syntax: SyntaxNode,
6079}
6080impl DropForeignDataWrapper {
6081    #[inline]
6082    pub fn if_exists(&self) -> Option<IfExists> {
6083        support::child(&self.syntax)
6084    }
6085    #[inline]
6086    pub fn name_refs(&self) -> AstChildren<NameRef> {
6087        support::children(&self.syntax)
6088    }
6089    #[inline]
6090    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6091        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6092    }
6093    #[inline]
6094    pub fn data_token(&self) -> Option<SyntaxToken> {
6095        support::token(&self.syntax, SyntaxKind::DATA_KW)
6096    }
6097    #[inline]
6098    pub fn drop_token(&self) -> Option<SyntaxToken> {
6099        support::token(&self.syntax, SyntaxKind::DROP_KW)
6100    }
6101    #[inline]
6102    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6103        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6104    }
6105    #[inline]
6106    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6107        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6108    }
6109    #[inline]
6110    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
6111        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
6112    }
6113}
6114
6115#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6116pub struct DropForeignTable {
6117    pub(crate) syntax: SyntaxNode,
6118}
6119impl DropForeignTable {
6120    #[inline]
6121    pub fn if_exists(&self) -> Option<IfExists> {
6122        support::child(&self.syntax)
6123    }
6124    #[inline]
6125    pub fn path(&self) -> Option<Path> {
6126        support::child(&self.syntax)
6127    }
6128    #[inline]
6129    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6130        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6131    }
6132    #[inline]
6133    pub fn drop_token(&self) -> Option<SyntaxToken> {
6134        support::token(&self.syntax, SyntaxKind::DROP_KW)
6135    }
6136    #[inline]
6137    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6138        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6139    }
6140    #[inline]
6141    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6142        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6143    }
6144    #[inline]
6145    pub fn table_token(&self) -> Option<SyntaxToken> {
6146        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6147    }
6148}
6149
6150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6151pub struct DropFunction {
6152    pub(crate) syntax: SyntaxNode,
6153}
6154impl DropFunction {
6155    #[inline]
6156    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6157        support::child(&self.syntax)
6158    }
6159    #[inline]
6160    pub fn if_exists(&self) -> Option<IfExists> {
6161        support::child(&self.syntax)
6162    }
6163    #[inline]
6164    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6165        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6166    }
6167    #[inline]
6168    pub fn drop_token(&self) -> Option<SyntaxToken> {
6169        support::token(&self.syntax, SyntaxKind::DROP_KW)
6170    }
6171    #[inline]
6172    pub fn function_token(&self) -> Option<SyntaxToken> {
6173        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6174    }
6175    #[inline]
6176    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6177        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6178    }
6179}
6180
6181#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6182pub struct DropGroup {
6183    pub(crate) syntax: SyntaxNode,
6184}
6185impl DropGroup {
6186    #[inline]
6187    pub fn if_exists(&self) -> Option<IfExists> {
6188        support::child(&self.syntax)
6189    }
6190    #[inline]
6191    pub fn name_refs(&self) -> AstChildren<NameRef> {
6192        support::children(&self.syntax)
6193    }
6194    #[inline]
6195    pub fn drop_token(&self) -> Option<SyntaxToken> {
6196        support::token(&self.syntax, SyntaxKind::DROP_KW)
6197    }
6198    #[inline]
6199    pub fn group_token(&self) -> Option<SyntaxToken> {
6200        support::token(&self.syntax, SyntaxKind::GROUP_KW)
6201    }
6202}
6203
6204#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6205pub struct DropIdentity {
6206    pub(crate) syntax: SyntaxNode,
6207}
6208impl DropIdentity {
6209    #[inline]
6210    pub fn if_exists(&self) -> Option<IfExists> {
6211        support::child(&self.syntax)
6212    }
6213    #[inline]
6214    pub fn drop_token(&self) -> Option<SyntaxToken> {
6215        support::token(&self.syntax, SyntaxKind::DROP_KW)
6216    }
6217    #[inline]
6218    pub fn identity_token(&self) -> Option<SyntaxToken> {
6219        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
6220    }
6221}
6222
6223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6224pub struct DropIndex {
6225    pub(crate) syntax: SyntaxNode,
6226}
6227impl DropIndex {
6228    #[inline]
6229    pub fn if_exists(&self) -> Option<IfExists> {
6230        support::child(&self.syntax)
6231    }
6232    #[inline]
6233    pub fn paths(&self) -> AstChildren<Path> {
6234        support::children(&self.syntax)
6235    }
6236    #[inline]
6237    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6238        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6239    }
6240    #[inline]
6241    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6242        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6243    }
6244    #[inline]
6245    pub fn drop_token(&self) -> Option<SyntaxToken> {
6246        support::token(&self.syntax, SyntaxKind::DROP_KW)
6247    }
6248    #[inline]
6249    pub fn index_token(&self) -> Option<SyntaxToken> {
6250        support::token(&self.syntax, SyntaxKind::INDEX_KW)
6251    }
6252    #[inline]
6253    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6254        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6255    }
6256}
6257
6258#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6259pub struct DropLanguage {
6260    pub(crate) syntax: SyntaxNode,
6261}
6262impl DropLanguage {
6263    #[inline]
6264    pub fn if_exists(&self) -> Option<IfExists> {
6265        support::child(&self.syntax)
6266    }
6267    #[inline]
6268    pub fn name_ref(&self) -> Option<NameRef> {
6269        support::child(&self.syntax)
6270    }
6271    #[inline]
6272    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6273        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6274    }
6275    #[inline]
6276    pub fn drop_token(&self) -> Option<SyntaxToken> {
6277        support::token(&self.syntax, SyntaxKind::DROP_KW)
6278    }
6279    #[inline]
6280    pub fn language_token(&self) -> Option<SyntaxToken> {
6281        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6282    }
6283    #[inline]
6284    pub fn procedural_token(&self) -> Option<SyntaxToken> {
6285        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
6286    }
6287    #[inline]
6288    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6289        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6290    }
6291}
6292
6293#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6294pub struct DropMaterializedView {
6295    pub(crate) syntax: SyntaxNode,
6296}
6297impl DropMaterializedView {
6298    #[inline]
6299    pub fn if_exists(&self) -> Option<IfExists> {
6300        support::child(&self.syntax)
6301    }
6302    #[inline]
6303    pub fn paths(&self) -> AstChildren<Path> {
6304        support::children(&self.syntax)
6305    }
6306    #[inline]
6307    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6308        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6309    }
6310    #[inline]
6311    pub fn drop_token(&self) -> Option<SyntaxToken> {
6312        support::token(&self.syntax, SyntaxKind::DROP_KW)
6313    }
6314    #[inline]
6315    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6316        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6317    }
6318    #[inline]
6319    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6320        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6321    }
6322    #[inline]
6323    pub fn view_token(&self) -> Option<SyntaxToken> {
6324        support::token(&self.syntax, SyntaxKind::VIEW_KW)
6325    }
6326}
6327
6328#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6329pub struct DropNotNull {
6330    pub(crate) syntax: SyntaxNode,
6331}
6332impl DropNotNull {
6333    #[inline]
6334    pub fn drop_token(&self) -> Option<SyntaxToken> {
6335        support::token(&self.syntax, SyntaxKind::DROP_KW)
6336    }
6337    #[inline]
6338    pub fn not_token(&self) -> Option<SyntaxToken> {
6339        support::token(&self.syntax, SyntaxKind::NOT_KW)
6340    }
6341    #[inline]
6342    pub fn null_token(&self) -> Option<SyntaxToken> {
6343        support::token(&self.syntax, SyntaxKind::NULL_KW)
6344    }
6345}
6346
6347#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6348pub struct DropOpClassOption {
6349    pub(crate) syntax: SyntaxNode,
6350}
6351impl DropOpClassOption {
6352    #[inline]
6353    pub fn literal(&self) -> Option<Literal> {
6354        support::child(&self.syntax)
6355    }
6356    #[inline]
6357    pub fn param_list(&self) -> Option<ParamList> {
6358        support::child(&self.syntax)
6359    }
6360    #[inline]
6361    pub fn function_token(&self) -> Option<SyntaxToken> {
6362        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6363    }
6364    #[inline]
6365    pub fn operator_token(&self) -> Option<SyntaxToken> {
6366        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6367    }
6368}
6369
6370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6371pub struct DropOpClassOptionList {
6372    pub(crate) syntax: SyntaxNode,
6373}
6374impl DropOpClassOptionList {
6375    #[inline]
6376    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
6377        support::children(&self.syntax)
6378    }
6379}
6380
6381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6382pub struct DropOpClassOptions {
6383    pub(crate) syntax: SyntaxNode,
6384}
6385impl DropOpClassOptions {
6386    #[inline]
6387    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
6388        support::child(&self.syntax)
6389    }
6390    #[inline]
6391    pub fn drop_token(&self) -> Option<SyntaxToken> {
6392        support::token(&self.syntax, SyntaxKind::DROP_KW)
6393    }
6394}
6395
6396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6397pub struct DropOperator {
6398    pub(crate) syntax: SyntaxNode,
6399}
6400impl DropOperator {
6401    #[inline]
6402    pub fn if_exists(&self) -> Option<IfExists> {
6403        support::child(&self.syntax)
6404    }
6405    #[inline]
6406    pub fn op_sig_list(&self) -> Option<OpSigList> {
6407        support::child(&self.syntax)
6408    }
6409    #[inline]
6410    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6411        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6412    }
6413    #[inline]
6414    pub fn drop_token(&self) -> Option<SyntaxToken> {
6415        support::token(&self.syntax, SyntaxKind::DROP_KW)
6416    }
6417    #[inline]
6418    pub fn operator_token(&self) -> Option<SyntaxToken> {
6419        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6420    }
6421    #[inline]
6422    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6423        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6424    }
6425}
6426
6427#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6428pub struct DropOperatorClass {
6429    pub(crate) syntax: SyntaxNode,
6430}
6431impl DropOperatorClass {
6432    #[inline]
6433    pub fn if_exists(&self) -> Option<IfExists> {
6434        support::child(&self.syntax)
6435    }
6436    #[inline]
6437    pub fn name_ref(&self) -> Option<NameRef> {
6438        support::child(&self.syntax)
6439    }
6440    #[inline]
6441    pub fn path(&self) -> Option<Path> {
6442        support::child(&self.syntax)
6443    }
6444    #[inline]
6445    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6446        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6447    }
6448    #[inline]
6449    pub fn class_token(&self) -> Option<SyntaxToken> {
6450        support::token(&self.syntax, SyntaxKind::CLASS_KW)
6451    }
6452    #[inline]
6453    pub fn drop_token(&self) -> Option<SyntaxToken> {
6454        support::token(&self.syntax, SyntaxKind::DROP_KW)
6455    }
6456    #[inline]
6457    pub fn operator_token(&self) -> Option<SyntaxToken> {
6458        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6459    }
6460    #[inline]
6461    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6462        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6463    }
6464    #[inline]
6465    pub fn using_token(&self) -> Option<SyntaxToken> {
6466        support::token(&self.syntax, SyntaxKind::USING_KW)
6467    }
6468}
6469
6470#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6471pub struct DropOperatorFamily {
6472    pub(crate) syntax: SyntaxNode,
6473}
6474impl DropOperatorFamily {
6475    #[inline]
6476    pub fn if_exists(&self) -> Option<IfExists> {
6477        support::child(&self.syntax)
6478    }
6479    #[inline]
6480    pub fn name_ref(&self) -> Option<NameRef> {
6481        support::child(&self.syntax)
6482    }
6483    #[inline]
6484    pub fn path(&self) -> Option<Path> {
6485        support::child(&self.syntax)
6486    }
6487    #[inline]
6488    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6489        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6490    }
6491    #[inline]
6492    pub fn drop_token(&self) -> Option<SyntaxToken> {
6493        support::token(&self.syntax, SyntaxKind::DROP_KW)
6494    }
6495    #[inline]
6496    pub fn family_token(&self) -> Option<SyntaxToken> {
6497        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
6498    }
6499    #[inline]
6500    pub fn operator_token(&self) -> Option<SyntaxToken> {
6501        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6502    }
6503    #[inline]
6504    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6505        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6506    }
6507    #[inline]
6508    pub fn using_token(&self) -> Option<SyntaxToken> {
6509        support::token(&self.syntax, SyntaxKind::USING_KW)
6510    }
6511}
6512
6513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6514pub struct DropOwned {
6515    pub(crate) syntax: SyntaxNode,
6516}
6517impl DropOwned {
6518    #[inline]
6519    pub fn role_ref_list(&self) -> Option<RoleRefList> {
6520        support::child(&self.syntax)
6521    }
6522    #[inline]
6523    pub fn by_token(&self) -> Option<SyntaxToken> {
6524        support::token(&self.syntax, SyntaxKind::BY_KW)
6525    }
6526    #[inline]
6527    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6528        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6529    }
6530    #[inline]
6531    pub fn drop_token(&self) -> Option<SyntaxToken> {
6532        support::token(&self.syntax, SyntaxKind::DROP_KW)
6533    }
6534    #[inline]
6535    pub fn owned_token(&self) -> Option<SyntaxToken> {
6536        support::token(&self.syntax, SyntaxKind::OWNED_KW)
6537    }
6538    #[inline]
6539    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6540        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6541    }
6542}
6543
6544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6545pub struct DropPolicy {
6546    pub(crate) syntax: SyntaxNode,
6547}
6548impl DropPolicy {
6549    #[inline]
6550    pub fn if_exists(&self) -> Option<IfExists> {
6551        support::child(&self.syntax)
6552    }
6553    #[inline]
6554    pub fn name_ref(&self) -> Option<NameRef> {
6555        support::child(&self.syntax)
6556    }
6557    #[inline]
6558    pub fn on_table(&self) -> Option<OnTable> {
6559        support::child(&self.syntax)
6560    }
6561    #[inline]
6562    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6563        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6564    }
6565    #[inline]
6566    pub fn drop_token(&self) -> Option<SyntaxToken> {
6567        support::token(&self.syntax, SyntaxKind::DROP_KW)
6568    }
6569    #[inline]
6570    pub fn policy_token(&self) -> Option<SyntaxToken> {
6571        support::token(&self.syntax, SyntaxKind::POLICY_KW)
6572    }
6573    #[inline]
6574    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6575        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6576    }
6577}
6578
6579#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6580pub struct DropProcedure {
6581    pub(crate) syntax: SyntaxNode,
6582}
6583impl DropProcedure {
6584    #[inline]
6585    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6586        support::child(&self.syntax)
6587    }
6588    #[inline]
6589    pub fn if_exists(&self) -> Option<IfExists> {
6590        support::child(&self.syntax)
6591    }
6592    #[inline]
6593    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6594        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6595    }
6596    #[inline]
6597    pub fn drop_token(&self) -> Option<SyntaxToken> {
6598        support::token(&self.syntax, SyntaxKind::DROP_KW)
6599    }
6600    #[inline]
6601    pub fn procedure_token(&self) -> Option<SyntaxToken> {
6602        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
6603    }
6604    #[inline]
6605    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6606        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6607    }
6608}
6609
6610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6611pub struct DropPublication {
6612    pub(crate) syntax: SyntaxNode,
6613}
6614impl DropPublication {
6615    #[inline]
6616    pub fn if_exists(&self) -> Option<IfExists> {
6617        support::child(&self.syntax)
6618    }
6619    #[inline]
6620    pub fn name_refs(&self) -> AstChildren<NameRef> {
6621        support::children(&self.syntax)
6622    }
6623    #[inline]
6624    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6625        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6626    }
6627    #[inline]
6628    pub fn drop_token(&self) -> Option<SyntaxToken> {
6629        support::token(&self.syntax, SyntaxKind::DROP_KW)
6630    }
6631    #[inline]
6632    pub fn publication_token(&self) -> Option<SyntaxToken> {
6633        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
6634    }
6635    #[inline]
6636    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6637        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6638    }
6639}
6640
6641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6642pub struct DropRole {
6643    pub(crate) syntax: SyntaxNode,
6644}
6645impl DropRole {
6646    #[inline]
6647    pub fn if_exists(&self) -> Option<IfExists> {
6648        support::child(&self.syntax)
6649    }
6650    #[inline]
6651    pub fn name_refs(&self) -> AstChildren<NameRef> {
6652        support::children(&self.syntax)
6653    }
6654    #[inline]
6655    pub fn drop_token(&self) -> Option<SyntaxToken> {
6656        support::token(&self.syntax, SyntaxKind::DROP_KW)
6657    }
6658    #[inline]
6659    pub fn role_token(&self) -> Option<SyntaxToken> {
6660        support::token(&self.syntax, SyntaxKind::ROLE_KW)
6661    }
6662}
6663
6664#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6665pub struct DropRoutine {
6666    pub(crate) syntax: SyntaxNode,
6667}
6668impl DropRoutine {
6669    #[inline]
6670    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6671        support::child(&self.syntax)
6672    }
6673    #[inline]
6674    pub fn if_exists(&self) -> Option<IfExists> {
6675        support::child(&self.syntax)
6676    }
6677    #[inline]
6678    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6679        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6680    }
6681    #[inline]
6682    pub fn drop_token(&self) -> Option<SyntaxToken> {
6683        support::token(&self.syntax, SyntaxKind::DROP_KW)
6684    }
6685    #[inline]
6686    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6687        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6688    }
6689    #[inline]
6690    pub fn routine_token(&self) -> Option<SyntaxToken> {
6691        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
6692    }
6693}
6694
6695#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6696pub struct DropRule {
6697    pub(crate) syntax: SyntaxNode,
6698}
6699impl DropRule {
6700    #[inline]
6701    pub fn if_exists(&self) -> Option<IfExists> {
6702        support::child(&self.syntax)
6703    }
6704    #[inline]
6705    pub fn name_ref(&self) -> Option<NameRef> {
6706        support::child(&self.syntax)
6707    }
6708    #[inline]
6709    pub fn on_table(&self) -> Option<OnTable> {
6710        support::child(&self.syntax)
6711    }
6712    #[inline]
6713    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6714        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6715    }
6716    #[inline]
6717    pub fn drop_token(&self) -> Option<SyntaxToken> {
6718        support::token(&self.syntax, SyntaxKind::DROP_KW)
6719    }
6720    #[inline]
6721    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6722        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6723    }
6724    #[inline]
6725    pub fn rule_token(&self) -> Option<SyntaxToken> {
6726        support::token(&self.syntax, SyntaxKind::RULE_KW)
6727    }
6728}
6729
6730#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6731pub struct DropSchema {
6732    pub(crate) syntax: SyntaxNode,
6733}
6734impl DropSchema {
6735    #[inline]
6736    pub fn if_exists(&self) -> Option<IfExists> {
6737        support::child(&self.syntax)
6738    }
6739    #[inline]
6740    pub fn name_refs(&self) -> AstChildren<NameRef> {
6741        support::children(&self.syntax)
6742    }
6743    #[inline]
6744    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6745        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6746    }
6747    #[inline]
6748    pub fn drop_token(&self) -> Option<SyntaxToken> {
6749        support::token(&self.syntax, SyntaxKind::DROP_KW)
6750    }
6751    #[inline]
6752    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6753        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6754    }
6755    #[inline]
6756    pub fn schema_token(&self) -> Option<SyntaxToken> {
6757        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
6758    }
6759}
6760
6761#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6762pub struct DropSequence {
6763    pub(crate) syntax: SyntaxNode,
6764}
6765impl DropSequence {
6766    #[inline]
6767    pub fn if_exists(&self) -> Option<IfExists> {
6768        support::child(&self.syntax)
6769    }
6770    #[inline]
6771    pub fn paths(&self) -> AstChildren<Path> {
6772        support::children(&self.syntax)
6773    }
6774    #[inline]
6775    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6776        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6777    }
6778    #[inline]
6779    pub fn drop_token(&self) -> Option<SyntaxToken> {
6780        support::token(&self.syntax, SyntaxKind::DROP_KW)
6781    }
6782    #[inline]
6783    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6784        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6785    }
6786    #[inline]
6787    pub fn sequence_token(&self) -> Option<SyntaxToken> {
6788        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
6789    }
6790}
6791
6792#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6793pub struct DropServer {
6794    pub(crate) syntax: SyntaxNode,
6795}
6796impl DropServer {
6797    #[inline]
6798    pub fn if_exists(&self) -> Option<IfExists> {
6799        support::child(&self.syntax)
6800    }
6801    #[inline]
6802    pub fn name_ref(&self) -> Option<NameRef> {
6803        support::child(&self.syntax)
6804    }
6805    #[inline]
6806    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6807        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6808    }
6809    #[inline]
6810    pub fn drop_token(&self) -> Option<SyntaxToken> {
6811        support::token(&self.syntax, SyntaxKind::DROP_KW)
6812    }
6813    #[inline]
6814    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6815        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6816    }
6817    #[inline]
6818    pub fn server_token(&self) -> Option<SyntaxToken> {
6819        support::token(&self.syntax, SyntaxKind::SERVER_KW)
6820    }
6821}
6822
6823#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6824pub struct DropStatistics {
6825    pub(crate) syntax: SyntaxNode,
6826}
6827impl DropStatistics {
6828    #[inline]
6829    pub fn if_exists(&self) -> Option<IfExists> {
6830        support::child(&self.syntax)
6831    }
6832    #[inline]
6833    pub fn paths(&self) -> AstChildren<Path> {
6834        support::children(&self.syntax)
6835    }
6836    #[inline]
6837    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6838        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6839    }
6840    #[inline]
6841    pub fn drop_token(&self) -> Option<SyntaxToken> {
6842        support::token(&self.syntax, SyntaxKind::DROP_KW)
6843    }
6844    #[inline]
6845    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6846        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6847    }
6848    #[inline]
6849    pub fn statistics_token(&self) -> Option<SyntaxToken> {
6850        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
6851    }
6852}
6853
6854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6855pub struct DropSubscription {
6856    pub(crate) syntax: SyntaxNode,
6857}
6858impl DropSubscription {
6859    #[inline]
6860    pub fn if_exists(&self) -> Option<IfExists> {
6861        support::child(&self.syntax)
6862    }
6863    #[inline]
6864    pub fn name_ref(&self) -> Option<NameRef> {
6865        support::child(&self.syntax)
6866    }
6867    #[inline]
6868    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6869        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6870    }
6871    #[inline]
6872    pub fn drop_token(&self) -> Option<SyntaxToken> {
6873        support::token(&self.syntax, SyntaxKind::DROP_KW)
6874    }
6875    #[inline]
6876    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6877        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6878    }
6879    #[inline]
6880    pub fn subscription_token(&self) -> Option<SyntaxToken> {
6881        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
6882    }
6883}
6884
6885#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6886pub struct DropTable {
6887    pub(crate) syntax: SyntaxNode,
6888}
6889impl DropTable {
6890    #[inline]
6891    pub fn if_exists(&self) -> Option<IfExists> {
6892        support::child(&self.syntax)
6893    }
6894    #[inline]
6895    pub fn path(&self) -> Option<Path> {
6896        support::child(&self.syntax)
6897    }
6898    #[inline]
6899    pub fn comma_token(&self) -> Option<SyntaxToken> {
6900        support::token(&self.syntax, SyntaxKind::COMMA)
6901    }
6902    #[inline]
6903    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6904        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6905    }
6906    #[inline]
6907    pub fn drop_token(&self) -> Option<SyntaxToken> {
6908        support::token(&self.syntax, SyntaxKind::DROP_KW)
6909    }
6910    #[inline]
6911    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6912        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6913    }
6914    #[inline]
6915    pub fn table_token(&self) -> Option<SyntaxToken> {
6916        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6917    }
6918}
6919
6920#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6921pub struct DropTablespace {
6922    pub(crate) syntax: SyntaxNode,
6923}
6924impl DropTablespace {
6925    #[inline]
6926    pub fn if_exists(&self) -> Option<IfExists> {
6927        support::child(&self.syntax)
6928    }
6929    #[inline]
6930    pub fn name_ref(&self) -> Option<NameRef> {
6931        support::child(&self.syntax)
6932    }
6933    #[inline]
6934    pub fn drop_token(&self) -> Option<SyntaxToken> {
6935        support::token(&self.syntax, SyntaxKind::DROP_KW)
6936    }
6937    #[inline]
6938    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
6939        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
6940    }
6941}
6942
6943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6944pub struct DropTextSearchConfig {
6945    pub(crate) syntax: SyntaxNode,
6946}
6947impl DropTextSearchConfig {
6948    #[inline]
6949    pub fn if_exists(&self) -> Option<IfExists> {
6950        support::child(&self.syntax)
6951    }
6952    #[inline]
6953    pub fn path(&self) -> Option<Path> {
6954        support::child(&self.syntax)
6955    }
6956    #[inline]
6957    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6958        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6959    }
6960    #[inline]
6961    pub fn configuration_token(&self) -> Option<SyntaxToken> {
6962        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
6963    }
6964    #[inline]
6965    pub fn drop_token(&self) -> Option<SyntaxToken> {
6966        support::token(&self.syntax, SyntaxKind::DROP_KW)
6967    }
6968    #[inline]
6969    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6970        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6971    }
6972    #[inline]
6973    pub fn search_token(&self) -> Option<SyntaxToken> {
6974        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6975    }
6976    #[inline]
6977    pub fn text_token(&self) -> Option<SyntaxToken> {
6978        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6979    }
6980}
6981
6982#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6983pub struct DropTextSearchDict {
6984    pub(crate) syntax: SyntaxNode,
6985}
6986impl DropTextSearchDict {
6987    #[inline]
6988    pub fn if_exists(&self) -> Option<IfExists> {
6989        support::child(&self.syntax)
6990    }
6991    #[inline]
6992    pub fn path(&self) -> Option<Path> {
6993        support::child(&self.syntax)
6994    }
6995    #[inline]
6996    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6997        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6998    }
6999    #[inline]
7000    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
7001        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
7002    }
7003    #[inline]
7004    pub fn drop_token(&self) -> Option<SyntaxToken> {
7005        support::token(&self.syntax, SyntaxKind::DROP_KW)
7006    }
7007    #[inline]
7008    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7009        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7010    }
7011    #[inline]
7012    pub fn search_token(&self) -> Option<SyntaxToken> {
7013        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7014    }
7015    #[inline]
7016    pub fn text_token(&self) -> Option<SyntaxToken> {
7017        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7018    }
7019}
7020
7021#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7022pub struct DropTextSearchParser {
7023    pub(crate) syntax: SyntaxNode,
7024}
7025impl DropTextSearchParser {
7026    #[inline]
7027    pub fn if_exists(&self) -> Option<IfExists> {
7028        support::child(&self.syntax)
7029    }
7030    #[inline]
7031    pub fn path(&self) -> Option<Path> {
7032        support::child(&self.syntax)
7033    }
7034    #[inline]
7035    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7036        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7037    }
7038    #[inline]
7039    pub fn drop_token(&self) -> Option<SyntaxToken> {
7040        support::token(&self.syntax, SyntaxKind::DROP_KW)
7041    }
7042    #[inline]
7043    pub fn parser_token(&self) -> Option<SyntaxToken> {
7044        support::token(&self.syntax, SyntaxKind::PARSER_KW)
7045    }
7046    #[inline]
7047    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7048        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7049    }
7050    #[inline]
7051    pub fn search_token(&self) -> Option<SyntaxToken> {
7052        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7053    }
7054    #[inline]
7055    pub fn text_token(&self) -> Option<SyntaxToken> {
7056        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7057    }
7058}
7059
7060#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7061pub struct DropTextSearchTemplate {
7062    pub(crate) syntax: SyntaxNode,
7063}
7064impl DropTextSearchTemplate {
7065    #[inline]
7066    pub fn if_exists(&self) -> Option<IfExists> {
7067        support::child(&self.syntax)
7068    }
7069    #[inline]
7070    pub fn path(&self) -> Option<Path> {
7071        support::child(&self.syntax)
7072    }
7073    #[inline]
7074    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7075        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7076    }
7077    #[inline]
7078    pub fn drop_token(&self) -> Option<SyntaxToken> {
7079        support::token(&self.syntax, SyntaxKind::DROP_KW)
7080    }
7081    #[inline]
7082    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7083        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7084    }
7085    #[inline]
7086    pub fn search_token(&self) -> Option<SyntaxToken> {
7087        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7088    }
7089    #[inline]
7090    pub fn template_token(&self) -> Option<SyntaxToken> {
7091        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
7092    }
7093    #[inline]
7094    pub fn text_token(&self) -> Option<SyntaxToken> {
7095        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7096    }
7097}
7098
7099#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7100pub struct DropTransform {
7101    pub(crate) syntax: SyntaxNode,
7102}
7103impl DropTransform {
7104    #[inline]
7105    pub fn if_exists(&self) -> Option<IfExists> {
7106        support::child(&self.syntax)
7107    }
7108    #[inline]
7109    pub fn language(&self) -> Option<NameRef> {
7110        support::child(&self.syntax)
7111    }
7112    #[inline]
7113    pub fn ty(&self) -> Option<Type> {
7114        support::child(&self.syntax)
7115    }
7116    #[inline]
7117    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7118        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7119    }
7120    #[inline]
7121    pub fn drop_token(&self) -> Option<SyntaxToken> {
7122        support::token(&self.syntax, SyntaxKind::DROP_KW)
7123    }
7124    #[inline]
7125    pub fn for_token(&self) -> Option<SyntaxToken> {
7126        support::token(&self.syntax, SyntaxKind::FOR_KW)
7127    }
7128    #[inline]
7129    pub fn language_token(&self) -> Option<SyntaxToken> {
7130        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
7131    }
7132    #[inline]
7133    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7134        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7135    }
7136    #[inline]
7137    pub fn transform_token(&self) -> Option<SyntaxToken> {
7138        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
7139    }
7140}
7141
7142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7143pub struct DropTrigger {
7144    pub(crate) syntax: SyntaxNode,
7145}
7146impl DropTrigger {
7147    #[inline]
7148    pub fn if_exists(&self) -> Option<IfExists> {
7149        support::child(&self.syntax)
7150    }
7151    #[inline]
7152    pub fn on_table(&self) -> Option<OnTable> {
7153        support::child(&self.syntax)
7154    }
7155    #[inline]
7156    pub fn path(&self) -> Option<Path> {
7157        support::child(&self.syntax)
7158    }
7159    #[inline]
7160    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7161        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7162    }
7163    #[inline]
7164    pub fn drop_token(&self) -> Option<SyntaxToken> {
7165        support::token(&self.syntax, SyntaxKind::DROP_KW)
7166    }
7167    #[inline]
7168    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7169        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7170    }
7171    #[inline]
7172    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7173        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7174    }
7175}
7176
7177#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7178pub struct DropType {
7179    pub(crate) syntax: SyntaxNode,
7180}
7181impl DropType {
7182    #[inline]
7183    pub fn if_exists(&self) -> Option<IfExists> {
7184        support::child(&self.syntax)
7185    }
7186    #[inline]
7187    pub fn paths(&self) -> AstChildren<Path> {
7188        support::children(&self.syntax)
7189    }
7190    #[inline]
7191    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7192        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7193    }
7194    #[inline]
7195    pub fn drop_token(&self) -> Option<SyntaxToken> {
7196        support::token(&self.syntax, SyntaxKind::DROP_KW)
7197    }
7198    #[inline]
7199    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7200        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7201    }
7202    #[inline]
7203    pub fn type_token(&self) -> Option<SyntaxToken> {
7204        support::token(&self.syntax, SyntaxKind::TYPE_KW)
7205    }
7206}
7207
7208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7209pub struct DropUser {
7210    pub(crate) syntax: SyntaxNode,
7211}
7212impl DropUser {
7213    #[inline]
7214    pub fn if_exists(&self) -> Option<IfExists> {
7215        support::child(&self.syntax)
7216    }
7217    #[inline]
7218    pub fn name_refs(&self) -> AstChildren<NameRef> {
7219        support::children(&self.syntax)
7220    }
7221    #[inline]
7222    pub fn drop_token(&self) -> Option<SyntaxToken> {
7223        support::token(&self.syntax, SyntaxKind::DROP_KW)
7224    }
7225    #[inline]
7226    pub fn user_token(&self) -> Option<SyntaxToken> {
7227        support::token(&self.syntax, SyntaxKind::USER_KW)
7228    }
7229}
7230
7231#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7232pub struct DropUserMapping {
7233    pub(crate) syntax: SyntaxNode,
7234}
7235impl DropUserMapping {
7236    #[inline]
7237    pub fn if_exists(&self) -> Option<IfExists> {
7238        support::child(&self.syntax)
7239    }
7240    #[inline]
7241    pub fn role_ref(&self) -> Option<RoleRef> {
7242        support::child(&self.syntax)
7243    }
7244    #[inline]
7245    pub fn server_name(&self) -> Option<ServerName> {
7246        support::child(&self.syntax)
7247    }
7248    #[inline]
7249    pub fn drop_token(&self) -> Option<SyntaxToken> {
7250        support::token(&self.syntax, SyntaxKind::DROP_KW)
7251    }
7252    #[inline]
7253    pub fn for_token(&self) -> Option<SyntaxToken> {
7254        support::token(&self.syntax, SyntaxKind::FOR_KW)
7255    }
7256    #[inline]
7257    pub fn mapping_token(&self) -> Option<SyntaxToken> {
7258        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
7259    }
7260    #[inline]
7261    pub fn user_token(&self) -> Option<SyntaxToken> {
7262        support::token(&self.syntax, SyntaxKind::USER_KW)
7263    }
7264}
7265
7266#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7267pub struct DropView {
7268    pub(crate) syntax: SyntaxNode,
7269}
7270impl DropView {
7271    #[inline]
7272    pub fn if_exists(&self) -> Option<IfExists> {
7273        support::child(&self.syntax)
7274    }
7275    #[inline]
7276    pub fn path(&self) -> Option<Path> {
7277        support::child(&self.syntax)
7278    }
7279    #[inline]
7280    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7281        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7282    }
7283    #[inline]
7284    pub fn drop_token(&self) -> Option<SyntaxToken> {
7285        support::token(&self.syntax, SyntaxKind::DROP_KW)
7286    }
7287    #[inline]
7288    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7289        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7290    }
7291    #[inline]
7292    pub fn view_token(&self) -> Option<SyntaxToken> {
7293        support::token(&self.syntax, SyntaxKind::VIEW_KW)
7294    }
7295}
7296
7297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7298pub struct ElseClause {
7299    pub(crate) syntax: SyntaxNode,
7300}
7301impl ElseClause {
7302    #[inline]
7303    pub fn expr(&self) -> Option<Expr> {
7304        support::child(&self.syntax)
7305    }
7306    #[inline]
7307    pub fn else_token(&self) -> Option<SyntaxToken> {
7308        support::token(&self.syntax, SyntaxKind::ELSE_KW)
7309    }
7310}
7311
7312#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7313pub struct EnableAlwaysRule {
7314    pub(crate) syntax: SyntaxNode,
7315}
7316impl EnableAlwaysRule {
7317    #[inline]
7318    pub fn always_token(&self) -> Option<SyntaxToken> {
7319        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7320    }
7321    #[inline]
7322    pub fn enable_token(&self) -> Option<SyntaxToken> {
7323        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7324    }
7325    #[inline]
7326    pub fn rule_token(&self) -> Option<SyntaxToken> {
7327        support::token(&self.syntax, SyntaxKind::RULE_KW)
7328    }
7329}
7330
7331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7332pub struct EnableAlwaysTrigger {
7333    pub(crate) syntax: SyntaxNode,
7334}
7335impl EnableAlwaysTrigger {
7336    #[inline]
7337    pub fn always_token(&self) -> Option<SyntaxToken> {
7338        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7339    }
7340    #[inline]
7341    pub fn enable_token(&self) -> Option<SyntaxToken> {
7342        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7343    }
7344    #[inline]
7345    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7346        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7347    }
7348}
7349
7350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7351pub struct EnableReplicaRule {
7352    pub(crate) syntax: SyntaxNode,
7353}
7354impl EnableReplicaRule {
7355    #[inline]
7356    pub fn enable_token(&self) -> Option<SyntaxToken> {
7357        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7358    }
7359    #[inline]
7360    pub fn replica_token(&self) -> Option<SyntaxToken> {
7361        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7362    }
7363    #[inline]
7364    pub fn rule_token(&self) -> Option<SyntaxToken> {
7365        support::token(&self.syntax, SyntaxKind::RULE_KW)
7366    }
7367}
7368
7369#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7370pub struct EnableReplicaTrigger {
7371    pub(crate) syntax: SyntaxNode,
7372}
7373impl EnableReplicaTrigger {
7374    #[inline]
7375    pub fn enable_token(&self) -> Option<SyntaxToken> {
7376        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7377    }
7378    #[inline]
7379    pub fn replica_token(&self) -> Option<SyntaxToken> {
7380        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7381    }
7382    #[inline]
7383    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7384        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7385    }
7386}
7387
7388#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7389pub struct EnableRls {
7390    pub(crate) syntax: SyntaxNode,
7391}
7392impl EnableRls {
7393    #[inline]
7394    pub fn enable_token(&self) -> Option<SyntaxToken> {
7395        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7396    }
7397    #[inline]
7398    pub fn level_token(&self) -> Option<SyntaxToken> {
7399        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7400    }
7401    #[inline]
7402    pub fn row_token(&self) -> Option<SyntaxToken> {
7403        support::token(&self.syntax, SyntaxKind::ROW_KW)
7404    }
7405    #[inline]
7406    pub fn security_token(&self) -> Option<SyntaxToken> {
7407        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7408    }
7409}
7410
7411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7412pub struct EnableRule {
7413    pub(crate) syntax: SyntaxNode,
7414}
7415impl EnableRule {
7416    #[inline]
7417    pub fn enable_token(&self) -> Option<SyntaxToken> {
7418        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7419    }
7420    #[inline]
7421    pub fn rule_token(&self) -> Option<SyntaxToken> {
7422        support::token(&self.syntax, SyntaxKind::RULE_KW)
7423    }
7424}
7425
7426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7427pub struct EnableTrigger {
7428    pub(crate) syntax: SyntaxNode,
7429}
7430impl EnableTrigger {
7431    #[inline]
7432    pub fn enable_token(&self) -> Option<SyntaxToken> {
7433        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7434    }
7435    #[inline]
7436    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7437        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7438    }
7439}
7440
7441#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7442pub struct Enforced {
7443    pub(crate) syntax: SyntaxNode,
7444}
7445impl Enforced {
7446    #[inline]
7447    pub fn enforced_token(&self) -> Option<SyntaxToken> {
7448        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
7449    }
7450}
7451
7452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7453pub struct EventTriggerWhen {
7454    pub(crate) syntax: SyntaxNode,
7455}
7456impl EventTriggerWhen {
7457    #[inline]
7458    pub fn literals(&self) -> AstChildren<Literal> {
7459        support::children(&self.syntax)
7460    }
7461    #[inline]
7462    pub fn name_ref(&self) -> Option<NameRef> {
7463        support::child(&self.syntax)
7464    }
7465    #[inline]
7466    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7467        support::token(&self.syntax, SyntaxKind::L_PAREN)
7468    }
7469    #[inline]
7470    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7471        support::token(&self.syntax, SyntaxKind::R_PAREN)
7472    }
7473    #[inline]
7474    pub fn in_token(&self) -> Option<SyntaxToken> {
7475        support::token(&self.syntax, SyntaxKind::IN_KW)
7476    }
7477}
7478
7479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7480pub struct EventTriggerWhenClause {
7481    pub(crate) syntax: SyntaxNode,
7482}
7483impl EventTriggerWhenClause {
7484    #[inline]
7485    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
7486        support::children(&self.syntax)
7487    }
7488    #[inline]
7489    pub fn when_token(&self) -> Option<SyntaxToken> {
7490        support::token(&self.syntax, SyntaxKind::WHEN_KW)
7491    }
7492}
7493
7494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7495pub struct ExceptTables {
7496    pub(crate) syntax: SyntaxNode,
7497}
7498impl ExceptTables {
7499    #[inline]
7500    pub fn name_refs(&self) -> AstChildren<NameRef> {
7501        support::children(&self.syntax)
7502    }
7503    #[inline]
7504    pub fn except_token(&self) -> Option<SyntaxToken> {
7505        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
7506    }
7507}
7508
7509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7510pub struct ExcludeConstraint {
7511    pub(crate) syntax: SyntaxNode,
7512}
7513impl ExcludeConstraint {
7514    #[inline]
7515    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
7516        support::child(&self.syntax)
7517    }
7518    #[inline]
7519    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
7520        support::child(&self.syntax)
7521    }
7522    #[inline]
7523    pub fn constraint_name(&self) -> Option<ConstraintName> {
7524        support::child(&self.syntax)
7525    }
7526    #[inline]
7527    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
7528        support::child(&self.syntax)
7529    }
7530    #[inline]
7531    pub fn exclude_token(&self) -> Option<SyntaxToken> {
7532        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
7533    }
7534}
7535
7536#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7537pub struct Execute {
7538    pub(crate) syntax: SyntaxNode,
7539}
7540impl Execute {
7541    #[inline]
7542    pub fn arg_list(&self) -> Option<ArgList> {
7543        support::child(&self.syntax)
7544    }
7545    #[inline]
7546    pub fn name_ref(&self) -> Option<NameRef> {
7547        support::child(&self.syntax)
7548    }
7549    #[inline]
7550    pub fn execute_token(&self) -> Option<SyntaxToken> {
7551        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
7552    }
7553}
7554
7555#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7556pub struct ExistsFn {
7557    pub(crate) syntax: SyntaxNode,
7558}
7559impl ExistsFn {
7560    #[inline]
7561    pub fn select_variant(&self) -> Option<SelectVariant> {
7562        support::child(&self.syntax)
7563    }
7564    #[inline]
7565    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7566        support::token(&self.syntax, SyntaxKind::L_PAREN)
7567    }
7568    #[inline]
7569    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7570        support::token(&self.syntax, SyntaxKind::R_PAREN)
7571    }
7572    #[inline]
7573    pub fn exists_token(&self) -> Option<SyntaxToken> {
7574        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
7575    }
7576}
7577
7578#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7579pub struct Explain {
7580    pub(crate) syntax: SyntaxNode,
7581}
7582impl Explain {
7583    #[inline]
7584    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
7585        support::child(&self.syntax)
7586    }
7587    #[inline]
7588    pub fn analyse_token(&self) -> Option<SyntaxToken> {
7589        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
7590    }
7591    #[inline]
7592    pub fn analyze_token(&self) -> Option<SyntaxToken> {
7593        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
7594    }
7595    #[inline]
7596    pub fn explain_token(&self) -> Option<SyntaxToken> {
7597        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
7598    }
7599    #[inline]
7600    pub fn verbose_token(&self) -> Option<SyntaxToken> {
7601        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
7602    }
7603}
7604
7605#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7606pub struct ExprAsName {
7607    pub(crate) syntax: SyntaxNode,
7608}
7609impl ExprAsName {
7610    #[inline]
7611    pub fn as_name(&self) -> Option<AsName> {
7612        support::child(&self.syntax)
7613    }
7614    #[inline]
7615    pub fn expr(&self) -> Option<Expr> {
7616        support::child(&self.syntax)
7617    }
7618}
7619
7620#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7621pub struct ExprType {
7622    pub(crate) syntax: SyntaxNode,
7623}
7624impl ExprType {
7625    #[inline]
7626    pub fn expr(&self) -> Option<Expr> {
7627        support::child(&self.syntax)
7628    }
7629}
7630
7631#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7632pub struct ExtractFn {
7633    pub(crate) syntax: SyntaxNode,
7634}
7635impl ExtractFn {
7636    #[inline]
7637    pub fn expr(&self) -> Option<Expr> {
7638        support::child(&self.syntax)
7639    }
7640    #[inline]
7641    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7642        support::token(&self.syntax, SyntaxKind::L_PAREN)
7643    }
7644    #[inline]
7645    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7646        support::token(&self.syntax, SyntaxKind::R_PAREN)
7647    }
7648    #[inline]
7649    pub fn day_token(&self) -> Option<SyntaxToken> {
7650        support::token(&self.syntax, SyntaxKind::DAY_KW)
7651    }
7652    #[inline]
7653    pub fn extract_token(&self) -> Option<SyntaxToken> {
7654        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
7655    }
7656    #[inline]
7657    pub fn from_token(&self) -> Option<SyntaxToken> {
7658        support::token(&self.syntax, SyntaxKind::FROM_KW)
7659    }
7660    #[inline]
7661    pub fn hour_token(&self) -> Option<SyntaxToken> {
7662        support::token(&self.syntax, SyntaxKind::HOUR_KW)
7663    }
7664    #[inline]
7665    pub fn ident_token(&self) -> Option<SyntaxToken> {
7666        support::token(&self.syntax, SyntaxKind::IDENT)
7667    }
7668    #[inline]
7669    pub fn minute_token(&self) -> Option<SyntaxToken> {
7670        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
7671    }
7672    #[inline]
7673    pub fn month_token(&self) -> Option<SyntaxToken> {
7674        support::token(&self.syntax, SyntaxKind::MONTH_KW)
7675    }
7676    #[inline]
7677    pub fn second_token(&self) -> Option<SyntaxToken> {
7678        support::token(&self.syntax, SyntaxKind::SECOND_KW)
7679    }
7680    #[inline]
7681    pub fn string_token(&self) -> Option<SyntaxToken> {
7682        support::token(&self.syntax, SyntaxKind::STRING_KW)
7683    }
7684    #[inline]
7685    pub fn year_token(&self) -> Option<SyntaxToken> {
7686        support::token(&self.syntax, SyntaxKind::YEAR_KW)
7687    }
7688}
7689
7690#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7691pub struct FatArrow {
7692    pub(crate) syntax: SyntaxNode,
7693}
7694impl FatArrow {
7695    #[inline]
7696    pub fn eq_token(&self) -> Option<SyntaxToken> {
7697        support::token(&self.syntax, SyntaxKind::EQ)
7698    }
7699    #[inline]
7700    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7701        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7702    }
7703}
7704
7705#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7706pub struct FdwOption {
7707    pub(crate) syntax: SyntaxNode,
7708}
7709impl FdwOption {
7710    #[inline]
7711    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
7712        support::child(&self.syntax)
7713    }
7714    #[inline]
7715    pub fn path(&self) -> Option<Path> {
7716        support::child(&self.syntax)
7717    }
7718    #[inline]
7719    pub fn handler_token(&self) -> Option<SyntaxToken> {
7720        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
7721    }
7722    #[inline]
7723    pub fn no_token(&self) -> Option<SyntaxToken> {
7724        support::token(&self.syntax, SyntaxKind::NO_KW)
7725    }
7726    #[inline]
7727    pub fn options_token(&self) -> Option<SyntaxToken> {
7728        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
7729    }
7730    #[inline]
7731    pub fn validator_token(&self) -> Option<SyntaxToken> {
7732        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
7733    }
7734}
7735
7736#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7737pub struct FdwOptionList {
7738    pub(crate) syntax: SyntaxNode,
7739}
7740impl FdwOptionList {
7741    #[inline]
7742    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
7743        support::children(&self.syntax)
7744    }
7745}
7746
7747#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7748pub struct Fetch {
7749    pub(crate) syntax: SyntaxNode,
7750}
7751impl Fetch {
7752    #[inline]
7753    pub fn name_ref(&self) -> Option<NameRef> {
7754        support::child(&self.syntax)
7755    }
7756    #[inline]
7757    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7758        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7759    }
7760    #[inline]
7761    pub fn from_token(&self) -> Option<SyntaxToken> {
7762        support::token(&self.syntax, SyntaxKind::FROM_KW)
7763    }
7764    #[inline]
7765    pub fn in_token(&self) -> Option<SyntaxToken> {
7766        support::token(&self.syntax, SyntaxKind::IN_KW)
7767    }
7768}
7769
7770#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7771pub struct FetchClause {
7772    pub(crate) syntax: SyntaxNode,
7773}
7774impl FetchClause {
7775    #[inline]
7776    pub fn expr(&self) -> Option<Expr> {
7777        support::child(&self.syntax)
7778    }
7779    #[inline]
7780    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7781        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7782    }
7783    #[inline]
7784    pub fn first_token(&self) -> Option<SyntaxToken> {
7785        support::token(&self.syntax, SyntaxKind::FIRST_KW)
7786    }
7787    #[inline]
7788    pub fn next_token(&self) -> Option<SyntaxToken> {
7789        support::token(&self.syntax, SyntaxKind::NEXT_KW)
7790    }
7791    #[inline]
7792    pub fn only_token(&self) -> Option<SyntaxToken> {
7793        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7794    }
7795    #[inline]
7796    pub fn row_token(&self) -> Option<SyntaxToken> {
7797        support::token(&self.syntax, SyntaxKind::ROW_KW)
7798    }
7799    #[inline]
7800    pub fn rows_token(&self) -> Option<SyntaxToken> {
7801        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7802    }
7803    #[inline]
7804    pub fn ties_token(&self) -> Option<SyntaxToken> {
7805        support::token(&self.syntax, SyntaxKind::TIES_KW)
7806    }
7807    #[inline]
7808    pub fn with_token(&self) -> Option<SyntaxToken> {
7809        support::token(&self.syntax, SyntaxKind::WITH_KW)
7810    }
7811}
7812
7813#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7814pub struct FieldExpr {
7815    pub(crate) syntax: SyntaxNode,
7816}
7817impl FieldExpr {
7818    #[inline]
7819    pub fn star_token(&self) -> Option<SyntaxToken> {
7820        support::token(&self.syntax, SyntaxKind::STAR)
7821    }
7822    #[inline]
7823    pub fn dot_token(&self) -> Option<SyntaxToken> {
7824        support::token(&self.syntax, SyntaxKind::DOT)
7825    }
7826}
7827
7828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7829pub struct FilterClause {
7830    pub(crate) syntax: SyntaxNode,
7831}
7832impl FilterClause {
7833    #[inline]
7834    pub fn expr(&self) -> Option<Expr> {
7835        support::child(&self.syntax)
7836    }
7837    #[inline]
7838    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7839        support::token(&self.syntax, SyntaxKind::L_PAREN)
7840    }
7841    #[inline]
7842    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7843        support::token(&self.syntax, SyntaxKind::R_PAREN)
7844    }
7845    #[inline]
7846    pub fn filter_token(&self) -> Option<SyntaxToken> {
7847        support::token(&self.syntax, SyntaxKind::FILTER_KW)
7848    }
7849    #[inline]
7850    pub fn where_token(&self) -> Option<SyntaxToken> {
7851        support::token(&self.syntax, SyntaxKind::WHERE_KW)
7852    }
7853}
7854
7855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7856pub struct ForProvider {
7857    pub(crate) syntax: SyntaxNode,
7858}
7859impl ForProvider {
7860    #[inline]
7861    pub fn literal(&self) -> Option<Literal> {
7862        support::child(&self.syntax)
7863    }
7864    #[inline]
7865    pub fn name_ref(&self) -> Option<NameRef> {
7866        support::child(&self.syntax)
7867    }
7868    #[inline]
7869    pub fn for_token(&self) -> Option<SyntaxToken> {
7870        support::token(&self.syntax, SyntaxKind::FOR_KW)
7871    }
7872}
7873
7874#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7875pub struct ForceRls {
7876    pub(crate) syntax: SyntaxNode,
7877}
7878impl ForceRls {
7879    #[inline]
7880    pub fn force_token(&self) -> Option<SyntaxToken> {
7881        support::token(&self.syntax, SyntaxKind::FORCE_KW)
7882    }
7883    #[inline]
7884    pub fn level_token(&self) -> Option<SyntaxToken> {
7885        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7886    }
7887    #[inline]
7888    pub fn row_token(&self) -> Option<SyntaxToken> {
7889        support::token(&self.syntax, SyntaxKind::ROW_KW)
7890    }
7891    #[inline]
7892    pub fn security_token(&self) -> Option<SyntaxToken> {
7893        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7894    }
7895}
7896
7897#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7898pub struct ForeignKeyConstraint {
7899    pub(crate) syntax: SyntaxNode,
7900}
7901impl ForeignKeyConstraint {
7902    #[inline]
7903    pub fn constraint_name(&self) -> Option<ConstraintName> {
7904        support::child(&self.syntax)
7905    }
7906    #[inline]
7907    pub fn match_type(&self) -> Option<MatchType> {
7908        support::child(&self.syntax)
7909    }
7910    #[inline]
7911    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
7912        support::child(&self.syntax)
7913    }
7914    #[inline]
7915    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
7916        support::child(&self.syntax)
7917    }
7918    #[inline]
7919    pub fn path(&self) -> Option<Path> {
7920        support::child(&self.syntax)
7921    }
7922    #[inline]
7923    pub fn foreign_token(&self) -> Option<SyntaxToken> {
7924        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
7925    }
7926    #[inline]
7927    pub fn key_token(&self) -> Option<SyntaxToken> {
7928        support::token(&self.syntax, SyntaxKind::KEY_KW)
7929    }
7930    #[inline]
7931    pub fn references_token(&self) -> Option<SyntaxToken> {
7932        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
7933    }
7934}
7935
7936#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7937pub struct FrameClause {
7938    pub(crate) syntax: SyntaxNode,
7939}
7940impl FrameClause {
7941    #[inline]
7942    pub fn groups_token(&self) -> Option<SyntaxToken> {
7943        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
7944    }
7945    #[inline]
7946    pub fn range_token(&self) -> Option<SyntaxToken> {
7947        support::token(&self.syntax, SyntaxKind::RANGE_KW)
7948    }
7949    #[inline]
7950    pub fn rows_token(&self) -> Option<SyntaxToken> {
7951        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7952    }
7953}
7954
7955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7956pub struct FromClause {
7957    pub(crate) syntax: SyntaxNode,
7958}
7959impl FromClause {
7960    #[inline]
7961    pub fn from_items(&self) -> AstChildren<FromItem> {
7962        support::children(&self.syntax)
7963    }
7964    #[inline]
7965    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
7966        support::children(&self.syntax)
7967    }
7968    #[inline]
7969    pub fn from_token(&self) -> Option<SyntaxToken> {
7970        support::token(&self.syntax, SyntaxKind::FROM_KW)
7971    }
7972}
7973
7974#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7975pub struct FromItem {
7976    pub(crate) syntax: SyntaxNode,
7977}
7978impl FromItem {
7979    #[inline]
7980    pub fn alias(&self) -> Option<Alias> {
7981        support::child(&self.syntax)
7982    }
7983    #[inline]
7984    pub fn call_expr(&self) -> Option<CallExpr> {
7985        support::child(&self.syntax)
7986    }
7987    #[inline]
7988    pub fn cast_expr(&self) -> Option<CastExpr> {
7989        support::child(&self.syntax)
7990    }
7991    #[inline]
7992    pub fn field_expr(&self) -> Option<FieldExpr> {
7993        support::child(&self.syntax)
7994    }
7995    #[inline]
7996    pub fn json_table(&self) -> Option<JsonTable> {
7997        support::child(&self.syntax)
7998    }
7999    #[inline]
8000    pub fn name_ref(&self) -> Option<NameRef> {
8001        support::child(&self.syntax)
8002    }
8003    #[inline]
8004    pub fn paren_expr(&self) -> Option<ParenExpr> {
8005        support::child(&self.syntax)
8006    }
8007    #[inline]
8008    pub fn paren_select(&self) -> Option<ParenSelect> {
8009        support::child(&self.syntax)
8010    }
8011    #[inline]
8012    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
8013        support::child(&self.syntax)
8014    }
8015    #[inline]
8016    pub fn xml_table(&self) -> Option<XmlTable> {
8017        support::child(&self.syntax)
8018    }
8019    #[inline]
8020    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8021        support::token(&self.syntax, SyntaxKind::L_PAREN)
8022    }
8023    #[inline]
8024    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8025        support::token(&self.syntax, SyntaxKind::R_PAREN)
8026    }
8027    #[inline]
8028    pub fn star_token(&self) -> Option<SyntaxToken> {
8029        support::token(&self.syntax, SyntaxKind::STAR)
8030    }
8031    #[inline]
8032    pub fn from_token(&self) -> Option<SyntaxToken> {
8033        support::token(&self.syntax, SyntaxKind::FROM_KW)
8034    }
8035    #[inline]
8036    pub fn lateral_token(&self) -> Option<SyntaxToken> {
8037        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
8038    }
8039    #[inline]
8040    pub fn only_token(&self) -> Option<SyntaxToken> {
8041        support::token(&self.syntax, SyntaxKind::ONLY_KW)
8042    }
8043    #[inline]
8044    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
8045        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
8046    }
8047    #[inline]
8048    pub fn rows_token(&self) -> Option<SyntaxToken> {
8049        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8050    }
8051    #[inline]
8052    pub fn with_token(&self) -> Option<SyntaxToken> {
8053        support::token(&self.syntax, SyntaxKind::WITH_KW)
8054    }
8055}
8056
8057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8058pub struct FromTable {
8059    pub(crate) syntax: SyntaxNode,
8060}
8061impl FromTable {
8062    #[inline]
8063    pub fn path(&self) -> Option<Path> {
8064        support::child(&self.syntax)
8065    }
8066    #[inline]
8067    pub fn from_token(&self) -> Option<SyntaxToken> {
8068        support::token(&self.syntax, SyntaxKind::FROM_KW)
8069    }
8070}
8071
8072#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8073pub struct FuncOptionList {
8074    pub(crate) syntax: SyntaxNode,
8075}
8076impl FuncOptionList {
8077    #[inline]
8078    pub fn options(&self) -> AstChildren<FuncOption> {
8079        support::children(&self.syntax)
8080    }
8081}
8082
8083#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8084pub struct FunctionSig {
8085    pub(crate) syntax: SyntaxNode,
8086}
8087impl FunctionSig {
8088    #[inline]
8089    pub fn param_list(&self) -> Option<ParamList> {
8090        support::child(&self.syntax)
8091    }
8092    #[inline]
8093    pub fn path(&self) -> Option<Path> {
8094        support::child(&self.syntax)
8095    }
8096}
8097
8098#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8099pub struct FunctionSigList {
8100    pub(crate) syntax: SyntaxNode,
8101}
8102impl FunctionSigList {
8103    #[inline]
8104    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
8105        support::children(&self.syntax)
8106    }
8107}
8108
8109#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8110pub struct GeneratedConstraint {
8111    pub(crate) syntax: SyntaxNode,
8112}
8113impl GeneratedConstraint {
8114    #[inline]
8115    pub fn expr(&self) -> Option<Expr> {
8116        support::child(&self.syntax)
8117    }
8118    #[inline]
8119    pub fn name_ref(&self) -> Option<NameRef> {
8120        support::child(&self.syntax)
8121    }
8122    #[inline]
8123    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
8124        support::child(&self.syntax)
8125    }
8126    #[inline]
8127    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8128        support::token(&self.syntax, SyntaxKind::L_PAREN)
8129    }
8130    #[inline]
8131    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8132        support::token(&self.syntax, SyntaxKind::R_PAREN)
8133    }
8134    #[inline]
8135    pub fn always_token(&self) -> Option<SyntaxToken> {
8136        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8137    }
8138    #[inline]
8139    pub fn as_token(&self) -> Option<SyntaxToken> {
8140        support::token(&self.syntax, SyntaxKind::AS_KW)
8141    }
8142    #[inline]
8143    pub fn by_token(&self) -> Option<SyntaxToken> {
8144        support::token(&self.syntax, SyntaxKind::BY_KW)
8145    }
8146    #[inline]
8147    pub fn constraint_token(&self) -> Option<SyntaxToken> {
8148        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
8149    }
8150    #[inline]
8151    pub fn default_token(&self) -> Option<SyntaxToken> {
8152        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8153    }
8154    #[inline]
8155    pub fn generated_token(&self) -> Option<SyntaxToken> {
8156        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
8157    }
8158    #[inline]
8159    pub fn identity_token(&self) -> Option<SyntaxToken> {
8160        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
8161    }
8162    #[inline]
8163    pub fn stored_token(&self) -> Option<SyntaxToken> {
8164        support::token(&self.syntax, SyntaxKind::STORED_KW)
8165    }
8166}
8167
8168#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8169pub struct Grant {
8170    pub(crate) syntax: SyntaxNode,
8171}
8172impl Grant {
8173    #[inline]
8174    pub fn name_refs(&self) -> AstChildren<NameRef> {
8175        support::children(&self.syntax)
8176    }
8177    #[inline]
8178    pub fn paths(&self) -> AstChildren<Path> {
8179        support::children(&self.syntax)
8180    }
8181    #[inline]
8182    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
8183        support::child(&self.syntax)
8184    }
8185    #[inline]
8186    pub fn role_ref(&self) -> Option<RoleRef> {
8187        support::child(&self.syntax)
8188    }
8189    #[inline]
8190    pub fn role_ref_list(&self) -> Option<RoleRefList> {
8191        support::child(&self.syntax)
8192    }
8193    #[inline]
8194    pub fn all_token(&self) -> Option<SyntaxToken> {
8195        support::token(&self.syntax, SyntaxKind::ALL_KW)
8196    }
8197    #[inline]
8198    pub fn by_token(&self) -> Option<SyntaxToken> {
8199        support::token(&self.syntax, SyntaxKind::BY_KW)
8200    }
8201    #[inline]
8202    pub fn grant_token(&self) -> Option<SyntaxToken> {
8203        support::token(&self.syntax, SyntaxKind::GRANT_KW)
8204    }
8205    #[inline]
8206    pub fn granted_token(&self) -> Option<SyntaxToken> {
8207        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
8208    }
8209    #[inline]
8210    pub fn in_token(&self) -> Option<SyntaxToken> {
8211        support::token(&self.syntax, SyntaxKind::IN_KW)
8212    }
8213    #[inline]
8214    pub fn on_token(&self) -> Option<SyntaxToken> {
8215        support::token(&self.syntax, SyntaxKind::ON_KW)
8216    }
8217    #[inline]
8218    pub fn option_token(&self) -> Option<SyntaxToken> {
8219        support::token(&self.syntax, SyntaxKind::OPTION_KW)
8220    }
8221    #[inline]
8222    pub fn privileges_token(&self) -> Option<SyntaxToken> {
8223        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
8224    }
8225    #[inline]
8226    pub fn schema_token(&self) -> Option<SyntaxToken> {
8227        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8228    }
8229    #[inline]
8230    pub fn table_token(&self) -> Option<SyntaxToken> {
8231        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8232    }
8233    #[inline]
8234    pub fn tables_token(&self) -> Option<SyntaxToken> {
8235        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8236    }
8237    #[inline]
8238    pub fn to_token(&self) -> Option<SyntaxToken> {
8239        support::token(&self.syntax, SyntaxKind::TO_KW)
8240    }
8241    #[inline]
8242    pub fn with_token(&self) -> Option<SyntaxToken> {
8243        support::token(&self.syntax, SyntaxKind::WITH_KW)
8244    }
8245}
8246
8247#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8248pub struct GrantDefaultPrivileges {
8249    pub(crate) syntax: SyntaxNode,
8250}
8251impl GrantDefaultPrivileges {
8252    #[inline]
8253    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
8254        support::child(&self.syntax)
8255    }
8256    #[inline]
8257    pub fn privileges(&self) -> Option<Privileges> {
8258        support::child(&self.syntax)
8259    }
8260    #[inline]
8261    pub fn role_ref_list(&self) -> Option<RoleRefList> {
8262        support::child(&self.syntax)
8263    }
8264    #[inline]
8265    pub fn grant_token(&self) -> Option<SyntaxToken> {
8266        support::token(&self.syntax, SyntaxKind::GRANT_KW)
8267    }
8268    #[inline]
8269    pub fn on_token(&self) -> Option<SyntaxToken> {
8270        support::token(&self.syntax, SyntaxKind::ON_KW)
8271    }
8272    #[inline]
8273    pub fn option_token(&self) -> Option<SyntaxToken> {
8274        support::token(&self.syntax, SyntaxKind::OPTION_KW)
8275    }
8276    #[inline]
8277    pub fn to_token(&self) -> Option<SyntaxToken> {
8278        support::token(&self.syntax, SyntaxKind::TO_KW)
8279    }
8280    #[inline]
8281    pub fn with_token(&self) -> Option<SyntaxToken> {
8282        support::token(&self.syntax, SyntaxKind::WITH_KW)
8283    }
8284}
8285
8286#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8287pub struct GroupByClause {
8288    pub(crate) syntax: SyntaxNode,
8289}
8290impl GroupByClause {
8291    #[inline]
8292    pub fn group_by_list(&self) -> Option<GroupByList> {
8293        support::child(&self.syntax)
8294    }
8295    #[inline]
8296    pub fn all_token(&self) -> Option<SyntaxToken> {
8297        support::token(&self.syntax, SyntaxKind::ALL_KW)
8298    }
8299    #[inline]
8300    pub fn by_token(&self) -> Option<SyntaxToken> {
8301        support::token(&self.syntax, SyntaxKind::BY_KW)
8302    }
8303    #[inline]
8304    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8305        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8306    }
8307    #[inline]
8308    pub fn group_token(&self) -> Option<SyntaxToken> {
8309        support::token(&self.syntax, SyntaxKind::GROUP_KW)
8310    }
8311}
8312
8313#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8314pub struct GroupByList {
8315    pub(crate) syntax: SyntaxNode,
8316}
8317impl GroupByList {
8318    #[inline]
8319    pub fn group_bys(&self) -> AstChildren<GroupBy> {
8320        support::children(&self.syntax)
8321    }
8322}
8323
8324#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8325pub struct GroupingCube {
8326    pub(crate) syntax: SyntaxNode,
8327}
8328impl GroupingCube {
8329    #[inline]
8330    pub fn expr(&self) -> Option<Expr> {
8331        support::child(&self.syntax)
8332    }
8333    #[inline]
8334    pub fn cube_token(&self) -> Option<SyntaxToken> {
8335        support::token(&self.syntax, SyntaxKind::CUBE_KW)
8336    }
8337}
8338
8339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8340pub struct GroupingExpr {
8341    pub(crate) syntax: SyntaxNode,
8342}
8343impl GroupingExpr {
8344    #[inline]
8345    pub fn expr(&self) -> Option<Expr> {
8346        support::child(&self.syntax)
8347    }
8348}
8349
8350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8351pub struct GroupingRollup {
8352    pub(crate) syntax: SyntaxNode,
8353}
8354impl GroupingRollup {
8355    #[inline]
8356    pub fn expr(&self) -> Option<Expr> {
8357        support::child(&self.syntax)
8358    }
8359    #[inline]
8360    pub fn rollup_token(&self) -> Option<SyntaxToken> {
8361        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
8362    }
8363}
8364
8365#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8366pub struct GroupingSets {
8367    pub(crate) syntax: SyntaxNode,
8368}
8369impl GroupingSets {
8370    #[inline]
8371    pub fn expr(&self) -> Option<Expr> {
8372        support::child(&self.syntax)
8373    }
8374    #[inline]
8375    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8376        support::token(&self.syntax, SyntaxKind::L_PAREN)
8377    }
8378    #[inline]
8379    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8380        support::token(&self.syntax, SyntaxKind::R_PAREN)
8381    }
8382    #[inline]
8383    pub fn grouping_token(&self) -> Option<SyntaxToken> {
8384        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
8385    }
8386    #[inline]
8387    pub fn sets_token(&self) -> Option<SyntaxToken> {
8388        support::token(&self.syntax, SyntaxKind::SETS_KW)
8389    }
8390}
8391
8392#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8393pub struct Gteq {
8394    pub(crate) syntax: SyntaxNode,
8395}
8396impl Gteq {
8397    #[inline]
8398    pub fn eq_token(&self) -> Option<SyntaxToken> {
8399        support::token(&self.syntax, SyntaxKind::EQ)
8400    }
8401    #[inline]
8402    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8403        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8404    }
8405}
8406
8407#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8408pub struct HandlerClause {
8409    pub(crate) syntax: SyntaxNode,
8410}
8411impl HandlerClause {
8412    #[inline]
8413    pub fn path(&self) -> Option<Path> {
8414        support::child(&self.syntax)
8415    }
8416    #[inline]
8417    pub fn handler_token(&self) -> Option<SyntaxToken> {
8418        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
8419    }
8420}
8421
8422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8423pub struct HavingClause {
8424    pub(crate) syntax: SyntaxNode,
8425}
8426impl HavingClause {
8427    #[inline]
8428    pub fn expr(&self) -> Option<Expr> {
8429        support::child(&self.syntax)
8430    }
8431    #[inline]
8432    pub fn having_token(&self) -> Option<SyntaxToken> {
8433        support::token(&self.syntax, SyntaxKind::HAVING_KW)
8434    }
8435}
8436
8437#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8438pub struct IfExists {
8439    pub(crate) syntax: SyntaxNode,
8440}
8441impl IfExists {
8442    #[inline]
8443    pub fn exists_token(&self) -> Option<SyntaxToken> {
8444        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8445    }
8446    #[inline]
8447    pub fn if_token(&self) -> Option<SyntaxToken> {
8448        support::token(&self.syntax, SyntaxKind::IF_KW)
8449    }
8450}
8451
8452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8453pub struct IfNotExists {
8454    pub(crate) syntax: SyntaxNode,
8455}
8456impl IfNotExists {
8457    #[inline]
8458    pub fn exists_token(&self) -> Option<SyntaxToken> {
8459        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8460    }
8461    #[inline]
8462    pub fn if_token(&self) -> Option<SyntaxToken> {
8463        support::token(&self.syntax, SyntaxKind::IF_KW)
8464    }
8465    #[inline]
8466    pub fn not_token(&self) -> Option<SyntaxToken> {
8467        support::token(&self.syntax, SyntaxKind::NOT_KW)
8468    }
8469}
8470
8471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8472pub struct ImportForeignSchema {
8473    pub(crate) syntax: SyntaxNode,
8474}
8475impl ImportForeignSchema {
8476    #[inline]
8477    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
8478        support::child(&self.syntax)
8479    }
8480    #[inline]
8481    pub fn except_tables(&self) -> Option<ExceptTables> {
8482        support::child(&self.syntax)
8483    }
8484    #[inline]
8485    pub fn into_schema(&self) -> Option<IntoSchema> {
8486        support::child(&self.syntax)
8487    }
8488    #[inline]
8489    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
8490        support::child(&self.syntax)
8491    }
8492    #[inline]
8493    pub fn name_ref(&self) -> Option<NameRef> {
8494        support::child(&self.syntax)
8495    }
8496    #[inline]
8497    pub fn server_name(&self) -> Option<ServerName> {
8498        support::child(&self.syntax)
8499    }
8500    #[inline]
8501    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8502        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8503    }
8504    #[inline]
8505    pub fn from_token(&self) -> Option<SyntaxToken> {
8506        support::token(&self.syntax, SyntaxKind::FROM_KW)
8507    }
8508    #[inline]
8509    pub fn import_token(&self) -> Option<SyntaxToken> {
8510        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
8511    }
8512    #[inline]
8513    pub fn schema_token(&self) -> Option<SyntaxToken> {
8514        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8515    }
8516}
8517
8518#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8519pub struct IndexExpr {
8520    pub(crate) syntax: SyntaxNode,
8521}
8522impl IndexExpr {
8523    #[inline]
8524    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8525        support::token(&self.syntax, SyntaxKind::L_BRACK)
8526    }
8527    #[inline]
8528    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8529        support::token(&self.syntax, SyntaxKind::R_BRACK)
8530    }
8531}
8532
8533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8534pub struct Inherit {
8535    pub(crate) syntax: SyntaxNode,
8536}
8537impl Inherit {
8538    #[inline]
8539    pub fn path(&self) -> Option<Path> {
8540        support::child(&self.syntax)
8541    }
8542    #[inline]
8543    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8544        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8545    }
8546}
8547
8548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8549pub struct InheritTable {
8550    pub(crate) syntax: SyntaxNode,
8551}
8552impl InheritTable {
8553    #[inline]
8554    pub fn path(&self) -> Option<Path> {
8555        support::child(&self.syntax)
8556    }
8557    #[inline]
8558    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8559        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8560    }
8561}
8562
8563#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8564pub struct Inherits {
8565    pub(crate) syntax: SyntaxNode,
8566}
8567impl Inherits {
8568    #[inline]
8569    pub fn paths(&self) -> AstChildren<Path> {
8570        support::children(&self.syntax)
8571    }
8572    #[inline]
8573    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8574        support::token(&self.syntax, SyntaxKind::L_PAREN)
8575    }
8576    #[inline]
8577    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8578        support::token(&self.syntax, SyntaxKind::R_PAREN)
8579    }
8580    #[inline]
8581    pub fn inherits_token(&self) -> Option<SyntaxToken> {
8582        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
8583    }
8584}
8585
8586#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8587pub struct InitiallyDeferredConstraintOption {
8588    pub(crate) syntax: SyntaxNode,
8589}
8590impl InitiallyDeferredConstraintOption {
8591    #[inline]
8592    pub fn deferred_token(&self) -> Option<SyntaxToken> {
8593        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
8594    }
8595    #[inline]
8596    pub fn initially_token(&self) -> Option<SyntaxToken> {
8597        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8598    }
8599}
8600
8601#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8602pub struct InitiallyImmediateConstraintOption {
8603    pub(crate) syntax: SyntaxNode,
8604}
8605impl InitiallyImmediateConstraintOption {
8606    #[inline]
8607    pub fn immediate_token(&self) -> Option<SyntaxToken> {
8608        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
8609    }
8610    #[inline]
8611    pub fn initially_token(&self) -> Option<SyntaxToken> {
8612        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8613    }
8614}
8615
8616#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8617pub struct Insert {
8618    pub(crate) syntax: SyntaxNode,
8619}
8620impl Insert {
8621    #[inline]
8622    pub fn alias(&self) -> Option<Alias> {
8623        support::child(&self.syntax)
8624    }
8625    #[inline]
8626    pub fn column_list(&self) -> Option<ColumnList> {
8627        support::child(&self.syntax)
8628    }
8629    #[inline]
8630    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
8631        support::child(&self.syntax)
8632    }
8633    #[inline]
8634    pub fn path(&self) -> Option<Path> {
8635        support::child(&self.syntax)
8636    }
8637    #[inline]
8638    pub fn returning_clause(&self) -> Option<ReturningClause> {
8639        support::child(&self.syntax)
8640    }
8641    #[inline]
8642    pub fn stmt(&self) -> Option<Stmt> {
8643        support::child(&self.syntax)
8644    }
8645    #[inline]
8646    pub fn values(&self) -> Option<Values> {
8647        support::child(&self.syntax)
8648    }
8649    #[inline]
8650    pub fn with_clause(&self) -> Option<WithClause> {
8651        support::child(&self.syntax)
8652    }
8653    #[inline]
8654    pub fn default_token(&self) -> Option<SyntaxToken> {
8655        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8656    }
8657    #[inline]
8658    pub fn insert_token(&self) -> Option<SyntaxToken> {
8659        support::token(&self.syntax, SyntaxKind::INSERT_KW)
8660    }
8661    #[inline]
8662    pub fn into_token(&self) -> Option<SyntaxToken> {
8663        support::token(&self.syntax, SyntaxKind::INTO_KW)
8664    }
8665    #[inline]
8666    pub fn overriding_token(&self) -> Option<SyntaxToken> {
8667        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
8668    }
8669    #[inline]
8670    pub fn system_token(&self) -> Option<SyntaxToken> {
8671        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
8672    }
8673    #[inline]
8674    pub fn user_token(&self) -> Option<SyntaxToken> {
8675        support::token(&self.syntax, SyntaxKind::USER_KW)
8676    }
8677    #[inline]
8678    pub fn value_token(&self) -> Option<SyntaxToken> {
8679        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8680    }
8681    #[inline]
8682    pub fn values_token(&self) -> Option<SyntaxToken> {
8683        support::token(&self.syntax, SyntaxKind::VALUES_KW)
8684    }
8685}
8686
8687#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8688pub struct IntervalType {
8689    pub(crate) syntax: SyntaxNode,
8690}
8691impl IntervalType {
8692    #[inline]
8693    pub fn literal(&self) -> Option<Literal> {
8694        support::child(&self.syntax)
8695    }
8696    #[inline]
8697    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8698        support::token(&self.syntax, SyntaxKind::L_PAREN)
8699    }
8700    #[inline]
8701    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8702        support::token(&self.syntax, SyntaxKind::R_PAREN)
8703    }
8704    #[inline]
8705    pub fn day_token(&self) -> Option<SyntaxToken> {
8706        support::token(&self.syntax, SyntaxKind::DAY_KW)
8707    }
8708    #[inline]
8709    pub fn hour_token(&self) -> Option<SyntaxToken> {
8710        support::token(&self.syntax, SyntaxKind::HOUR_KW)
8711    }
8712    #[inline]
8713    pub fn interval_token(&self) -> Option<SyntaxToken> {
8714        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
8715    }
8716    #[inline]
8717    pub fn minute_token(&self) -> Option<SyntaxToken> {
8718        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
8719    }
8720    #[inline]
8721    pub fn month_token(&self) -> Option<SyntaxToken> {
8722        support::token(&self.syntax, SyntaxKind::MONTH_KW)
8723    }
8724    #[inline]
8725    pub fn second_token(&self) -> Option<SyntaxToken> {
8726        support::token(&self.syntax, SyntaxKind::SECOND_KW)
8727    }
8728    #[inline]
8729    pub fn to_token(&self) -> Option<SyntaxToken> {
8730        support::token(&self.syntax, SyntaxKind::TO_KW)
8731    }
8732    #[inline]
8733    pub fn year_token(&self) -> Option<SyntaxToken> {
8734        support::token(&self.syntax, SyntaxKind::YEAR_KW)
8735    }
8736}
8737
8738#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8739pub struct IntoClause {
8740    pub(crate) syntax: SyntaxNode,
8741}
8742impl IntoClause {
8743    #[inline]
8744    pub fn path(&self) -> Option<Path> {
8745        support::child(&self.syntax)
8746    }
8747    #[inline]
8748    pub fn into_token(&self) -> Option<SyntaxToken> {
8749        support::token(&self.syntax, SyntaxKind::INTO_KW)
8750    }
8751}
8752
8753#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8754pub struct IntoSchema {
8755    pub(crate) syntax: SyntaxNode,
8756}
8757impl IntoSchema {
8758    #[inline]
8759    pub fn name_ref(&self) -> Option<NameRef> {
8760        support::child(&self.syntax)
8761    }
8762    #[inline]
8763    pub fn into_token(&self) -> Option<SyntaxToken> {
8764        support::token(&self.syntax, SyntaxKind::INTO_KW)
8765    }
8766}
8767
8768#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8769pub struct IsDistinctFrom {
8770    pub(crate) syntax: SyntaxNode,
8771}
8772impl IsDistinctFrom {
8773    #[inline]
8774    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8775        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8776    }
8777    #[inline]
8778    pub fn from_token(&self) -> Option<SyntaxToken> {
8779        support::token(&self.syntax, SyntaxKind::FROM_KW)
8780    }
8781    #[inline]
8782    pub fn is_token(&self) -> Option<SyntaxToken> {
8783        support::token(&self.syntax, SyntaxKind::IS_KW)
8784    }
8785}
8786
8787#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8788pub struct IsJson {
8789    pub(crate) syntax: SyntaxNode,
8790}
8791impl IsJson {
8792    #[inline]
8793    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8794        support::child(&self.syntax)
8795    }
8796    #[inline]
8797    pub fn is_token(&self) -> Option<SyntaxToken> {
8798        support::token(&self.syntax, SyntaxKind::IS_KW)
8799    }
8800    #[inline]
8801    pub fn json_token(&self) -> Option<SyntaxToken> {
8802        support::token(&self.syntax, SyntaxKind::JSON_KW)
8803    }
8804}
8805
8806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8807pub struct IsJsonArray {
8808    pub(crate) syntax: SyntaxNode,
8809}
8810impl IsJsonArray {
8811    #[inline]
8812    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8813        support::child(&self.syntax)
8814    }
8815    #[inline]
8816    pub fn array_token(&self) -> Option<SyntaxToken> {
8817        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8818    }
8819    #[inline]
8820    pub fn is_token(&self) -> Option<SyntaxToken> {
8821        support::token(&self.syntax, SyntaxKind::IS_KW)
8822    }
8823    #[inline]
8824    pub fn json_token(&self) -> Option<SyntaxToken> {
8825        support::token(&self.syntax, SyntaxKind::JSON_KW)
8826    }
8827}
8828
8829#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8830pub struct IsJsonObject {
8831    pub(crate) syntax: SyntaxNode,
8832}
8833impl IsJsonObject {
8834    #[inline]
8835    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8836        support::child(&self.syntax)
8837    }
8838    #[inline]
8839    pub fn is_token(&self) -> Option<SyntaxToken> {
8840        support::token(&self.syntax, SyntaxKind::IS_KW)
8841    }
8842    #[inline]
8843    pub fn json_token(&self) -> Option<SyntaxToken> {
8844        support::token(&self.syntax, SyntaxKind::JSON_KW)
8845    }
8846    #[inline]
8847    pub fn object_token(&self) -> Option<SyntaxToken> {
8848        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8849    }
8850}
8851
8852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8853pub struct IsJsonScalar {
8854    pub(crate) syntax: SyntaxNode,
8855}
8856impl IsJsonScalar {
8857    #[inline]
8858    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8859        support::child(&self.syntax)
8860    }
8861    #[inline]
8862    pub fn is_token(&self) -> Option<SyntaxToken> {
8863        support::token(&self.syntax, SyntaxKind::IS_KW)
8864    }
8865    #[inline]
8866    pub fn json_token(&self) -> Option<SyntaxToken> {
8867        support::token(&self.syntax, SyntaxKind::JSON_KW)
8868    }
8869    #[inline]
8870    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8871        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8872    }
8873}
8874
8875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8876pub struct IsJsonValue {
8877    pub(crate) syntax: SyntaxNode,
8878}
8879impl IsJsonValue {
8880    #[inline]
8881    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8882        support::child(&self.syntax)
8883    }
8884    #[inline]
8885    pub fn is_token(&self) -> Option<SyntaxToken> {
8886        support::token(&self.syntax, SyntaxKind::IS_KW)
8887    }
8888    #[inline]
8889    pub fn json_token(&self) -> Option<SyntaxToken> {
8890        support::token(&self.syntax, SyntaxKind::JSON_KW)
8891    }
8892    #[inline]
8893    pub fn value_token(&self) -> Option<SyntaxToken> {
8894        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8895    }
8896}
8897
8898#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8899pub struct IsNormalized {
8900    pub(crate) syntax: SyntaxNode,
8901}
8902impl IsNormalized {
8903    #[inline]
8904    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8905        support::child(&self.syntax)
8906    }
8907    #[inline]
8908    pub fn is_token(&self) -> Option<SyntaxToken> {
8909        support::token(&self.syntax, SyntaxKind::IS_KW)
8910    }
8911    #[inline]
8912    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8913        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8914    }
8915}
8916
8917#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8918pub struct IsNot {
8919    pub(crate) syntax: SyntaxNode,
8920}
8921impl IsNot {
8922    #[inline]
8923    pub fn is_token(&self) -> Option<SyntaxToken> {
8924        support::token(&self.syntax, SyntaxKind::IS_KW)
8925    }
8926    #[inline]
8927    pub fn not_token(&self) -> Option<SyntaxToken> {
8928        support::token(&self.syntax, SyntaxKind::NOT_KW)
8929    }
8930}
8931
8932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8933pub struct IsNotDistinctFrom {
8934    pub(crate) syntax: SyntaxNode,
8935}
8936impl IsNotDistinctFrom {
8937    #[inline]
8938    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8939        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8940    }
8941    #[inline]
8942    pub fn from_token(&self) -> Option<SyntaxToken> {
8943        support::token(&self.syntax, SyntaxKind::FROM_KW)
8944    }
8945    #[inline]
8946    pub fn is_token(&self) -> Option<SyntaxToken> {
8947        support::token(&self.syntax, SyntaxKind::IS_KW)
8948    }
8949    #[inline]
8950    pub fn not_token(&self) -> Option<SyntaxToken> {
8951        support::token(&self.syntax, SyntaxKind::NOT_KW)
8952    }
8953}
8954
8955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8956pub struct IsNotJson {
8957    pub(crate) syntax: SyntaxNode,
8958}
8959impl IsNotJson {
8960    #[inline]
8961    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8962        support::child(&self.syntax)
8963    }
8964    #[inline]
8965    pub fn is_token(&self) -> Option<SyntaxToken> {
8966        support::token(&self.syntax, SyntaxKind::IS_KW)
8967    }
8968    #[inline]
8969    pub fn json_token(&self) -> Option<SyntaxToken> {
8970        support::token(&self.syntax, SyntaxKind::JSON_KW)
8971    }
8972    #[inline]
8973    pub fn not_token(&self) -> Option<SyntaxToken> {
8974        support::token(&self.syntax, SyntaxKind::NOT_KW)
8975    }
8976}
8977
8978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8979pub struct IsNotJsonArray {
8980    pub(crate) syntax: SyntaxNode,
8981}
8982impl IsNotJsonArray {
8983    #[inline]
8984    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8985        support::child(&self.syntax)
8986    }
8987    #[inline]
8988    pub fn array_token(&self) -> Option<SyntaxToken> {
8989        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8990    }
8991    #[inline]
8992    pub fn is_token(&self) -> Option<SyntaxToken> {
8993        support::token(&self.syntax, SyntaxKind::IS_KW)
8994    }
8995    #[inline]
8996    pub fn json_token(&self) -> Option<SyntaxToken> {
8997        support::token(&self.syntax, SyntaxKind::JSON_KW)
8998    }
8999    #[inline]
9000    pub fn not_token(&self) -> Option<SyntaxToken> {
9001        support::token(&self.syntax, SyntaxKind::NOT_KW)
9002    }
9003}
9004
9005#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9006pub struct IsNotJsonObject {
9007    pub(crate) syntax: SyntaxNode,
9008}
9009impl IsNotJsonObject {
9010    #[inline]
9011    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9012        support::child(&self.syntax)
9013    }
9014    #[inline]
9015    pub fn is_token(&self) -> Option<SyntaxToken> {
9016        support::token(&self.syntax, SyntaxKind::IS_KW)
9017    }
9018    #[inline]
9019    pub fn json_token(&self) -> Option<SyntaxToken> {
9020        support::token(&self.syntax, SyntaxKind::JSON_KW)
9021    }
9022    #[inline]
9023    pub fn not_token(&self) -> Option<SyntaxToken> {
9024        support::token(&self.syntax, SyntaxKind::NOT_KW)
9025    }
9026    #[inline]
9027    pub fn object_token(&self) -> Option<SyntaxToken> {
9028        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9029    }
9030}
9031
9032#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9033pub struct IsNotJsonScalar {
9034    pub(crate) syntax: SyntaxNode,
9035}
9036impl IsNotJsonScalar {
9037    #[inline]
9038    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9039        support::child(&self.syntax)
9040    }
9041    #[inline]
9042    pub fn is_token(&self) -> Option<SyntaxToken> {
9043        support::token(&self.syntax, SyntaxKind::IS_KW)
9044    }
9045    #[inline]
9046    pub fn json_token(&self) -> Option<SyntaxToken> {
9047        support::token(&self.syntax, SyntaxKind::JSON_KW)
9048    }
9049    #[inline]
9050    pub fn not_token(&self) -> Option<SyntaxToken> {
9051        support::token(&self.syntax, SyntaxKind::NOT_KW)
9052    }
9053    #[inline]
9054    pub fn scalar_token(&self) -> Option<SyntaxToken> {
9055        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
9056    }
9057}
9058
9059#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9060pub struct IsNotJsonValue {
9061    pub(crate) syntax: SyntaxNode,
9062}
9063impl IsNotJsonValue {
9064    #[inline]
9065    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9066        support::child(&self.syntax)
9067    }
9068    #[inline]
9069    pub fn is_token(&self) -> Option<SyntaxToken> {
9070        support::token(&self.syntax, SyntaxKind::IS_KW)
9071    }
9072    #[inline]
9073    pub fn json_token(&self) -> Option<SyntaxToken> {
9074        support::token(&self.syntax, SyntaxKind::JSON_KW)
9075    }
9076    #[inline]
9077    pub fn not_token(&self) -> Option<SyntaxToken> {
9078        support::token(&self.syntax, SyntaxKind::NOT_KW)
9079    }
9080    #[inline]
9081    pub fn value_token(&self) -> Option<SyntaxToken> {
9082        support::token(&self.syntax, SyntaxKind::VALUE_KW)
9083    }
9084}
9085
9086#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9087pub struct IsNotNormalized {
9088    pub(crate) syntax: SyntaxNode,
9089}
9090impl IsNotNormalized {
9091    #[inline]
9092    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
9093        support::child(&self.syntax)
9094    }
9095    #[inline]
9096    pub fn is_token(&self) -> Option<SyntaxToken> {
9097        support::token(&self.syntax, SyntaxKind::IS_KW)
9098    }
9099    #[inline]
9100    pub fn normalized_token(&self) -> Option<SyntaxToken> {
9101        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
9102    }
9103    #[inline]
9104    pub fn not_token(&self) -> Option<SyntaxToken> {
9105        support::token(&self.syntax, SyntaxKind::NOT_KW)
9106    }
9107}
9108
9109#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9110pub struct Join {
9111    pub(crate) syntax: SyntaxNode,
9112}
9113impl Join {
9114    #[inline]
9115    pub fn from_item(&self) -> Option<FromItem> {
9116        support::child(&self.syntax)
9117    }
9118    #[inline]
9119    pub fn join_type(&self) -> Option<JoinType> {
9120        support::child(&self.syntax)
9121    }
9122    #[inline]
9123    pub fn on_clause(&self) -> Option<OnClause> {
9124        support::child(&self.syntax)
9125    }
9126    #[inline]
9127    pub fn using_clause(&self) -> Option<JoinUsingClause> {
9128        support::child(&self.syntax)
9129    }
9130    #[inline]
9131    pub fn natural_token(&self) -> Option<SyntaxToken> {
9132        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
9133    }
9134}
9135
9136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9137pub struct JoinCross {
9138    pub(crate) syntax: SyntaxNode,
9139}
9140impl JoinCross {
9141    #[inline]
9142    pub fn cross_token(&self) -> Option<SyntaxToken> {
9143        support::token(&self.syntax, SyntaxKind::CROSS_KW)
9144    }
9145    #[inline]
9146    pub fn join_token(&self) -> Option<SyntaxToken> {
9147        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9148    }
9149}
9150
9151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9152pub struct JoinExpr {
9153    pub(crate) syntax: SyntaxNode,
9154}
9155impl JoinExpr {
9156    #[inline]
9157    pub fn from_item(&self) -> Option<FromItem> {
9158        support::child(&self.syntax)
9159    }
9160    #[inline]
9161    pub fn join(&self) -> Option<Join> {
9162        support::child(&self.syntax)
9163    }
9164    #[inline]
9165    pub fn join_expr(&self) -> Option<JoinExpr> {
9166        support::child(&self.syntax)
9167    }
9168}
9169
9170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9171pub struct JoinFull {
9172    pub(crate) syntax: SyntaxNode,
9173}
9174impl JoinFull {
9175    #[inline]
9176    pub fn full_token(&self) -> Option<SyntaxToken> {
9177        support::token(&self.syntax, SyntaxKind::FULL_KW)
9178    }
9179    #[inline]
9180    pub fn join_token(&self) -> Option<SyntaxToken> {
9181        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9182    }
9183    #[inline]
9184    pub fn outer_token(&self) -> Option<SyntaxToken> {
9185        support::token(&self.syntax, SyntaxKind::OUTER_KW)
9186    }
9187}
9188
9189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9190pub struct JoinInner {
9191    pub(crate) syntax: SyntaxNode,
9192}
9193impl JoinInner {
9194    #[inline]
9195    pub fn inner_token(&self) -> Option<SyntaxToken> {
9196        support::token(&self.syntax, SyntaxKind::INNER_KW)
9197    }
9198    #[inline]
9199    pub fn join_token(&self) -> Option<SyntaxToken> {
9200        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9201    }
9202}
9203
9204#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9205pub struct JoinLeft {
9206    pub(crate) syntax: SyntaxNode,
9207}
9208impl JoinLeft {
9209    #[inline]
9210    pub fn join_token(&self) -> Option<SyntaxToken> {
9211        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9212    }
9213    #[inline]
9214    pub fn left_token(&self) -> Option<SyntaxToken> {
9215        support::token(&self.syntax, SyntaxKind::LEFT_KW)
9216    }
9217    #[inline]
9218    pub fn outer_token(&self) -> Option<SyntaxToken> {
9219        support::token(&self.syntax, SyntaxKind::OUTER_KW)
9220    }
9221}
9222
9223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9224pub struct JoinRight {
9225    pub(crate) syntax: SyntaxNode,
9226}
9227impl JoinRight {
9228    #[inline]
9229    pub fn join_token(&self) -> Option<SyntaxToken> {
9230        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9231    }
9232    #[inline]
9233    pub fn outer_token(&self) -> Option<SyntaxToken> {
9234        support::token(&self.syntax, SyntaxKind::OUTER_KW)
9235    }
9236    #[inline]
9237    pub fn right_token(&self) -> Option<SyntaxToken> {
9238        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
9239    }
9240}
9241
9242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9243pub struct JoinUsingClause {
9244    pub(crate) syntax: SyntaxNode,
9245}
9246impl JoinUsingClause {
9247    #[inline]
9248    pub fn alias(&self) -> Option<Alias> {
9249        support::child(&self.syntax)
9250    }
9251    #[inline]
9252    pub fn column_list(&self) -> Option<ColumnList> {
9253        support::child(&self.syntax)
9254    }
9255    #[inline]
9256    pub fn using_token(&self) -> Option<SyntaxToken> {
9257        support::token(&self.syntax, SyntaxKind::USING_KW)
9258    }
9259}
9260
9261#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9262pub struct JsonArrayAggFn {
9263    pub(crate) syntax: SyntaxNode,
9264}
9265impl JsonArrayAggFn {
9266    #[inline]
9267    pub fn expr(&self) -> Option<Expr> {
9268        support::child(&self.syntax)
9269    }
9270    #[inline]
9271    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9272        support::child(&self.syntax)
9273    }
9274    #[inline]
9275    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9276        support::child(&self.syntax)
9277    }
9278    #[inline]
9279    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9280        support::children(&self.syntax)
9281    }
9282    #[inline]
9283    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9284        support::token(&self.syntax, SyntaxKind::L_PAREN)
9285    }
9286    #[inline]
9287    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9288        support::token(&self.syntax, SyntaxKind::R_PAREN)
9289    }
9290    #[inline]
9291    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
9292        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
9293    }
9294}
9295
9296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9297pub struct JsonArrayFn {
9298    pub(crate) syntax: SyntaxNode,
9299}
9300impl JsonArrayFn {
9301    #[inline]
9302    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
9303        support::children(&self.syntax)
9304    }
9305    #[inline]
9306    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9307        support::child(&self.syntax)
9308    }
9309    #[inline]
9310    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9311        support::child(&self.syntax)
9312    }
9313    #[inline]
9314    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9315        support::children(&self.syntax)
9316    }
9317    #[inline]
9318    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9319        support::token(&self.syntax, SyntaxKind::L_PAREN)
9320    }
9321    #[inline]
9322    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9323        support::token(&self.syntax, SyntaxKind::R_PAREN)
9324    }
9325    #[inline]
9326    pub fn json_array_token(&self) -> Option<SyntaxToken> {
9327        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
9328    }
9329}
9330
9331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9332pub struct JsonBehaviorClause {
9333    pub(crate) syntax: SyntaxNode,
9334}
9335impl JsonBehaviorClause {
9336    #[inline]
9337    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9338        support::child(&self.syntax)
9339    }
9340}
9341
9342#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9343pub struct JsonBehaviorDefault {
9344    pub(crate) syntax: SyntaxNode,
9345}
9346impl JsonBehaviorDefault {
9347    #[inline]
9348    pub fn expr(&self) -> Option<Expr> {
9349        support::child(&self.syntax)
9350    }
9351    #[inline]
9352    pub fn default_token(&self) -> Option<SyntaxToken> {
9353        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9354    }
9355}
9356
9357#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9358pub struct JsonBehaviorEmptyArray {
9359    pub(crate) syntax: SyntaxNode,
9360}
9361impl JsonBehaviorEmptyArray {
9362    #[inline]
9363    pub fn array_token(&self) -> Option<SyntaxToken> {
9364        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9365    }
9366    #[inline]
9367    pub fn empty_token(&self) -> Option<SyntaxToken> {
9368        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9369    }
9370}
9371
9372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9373pub struct JsonBehaviorEmptyObject {
9374    pub(crate) syntax: SyntaxNode,
9375}
9376impl JsonBehaviorEmptyObject {
9377    #[inline]
9378    pub fn empty_token(&self) -> Option<SyntaxToken> {
9379        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9380    }
9381    #[inline]
9382    pub fn object_token(&self) -> Option<SyntaxToken> {
9383        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9384    }
9385}
9386
9387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9388pub struct JsonBehaviorError {
9389    pub(crate) syntax: SyntaxNode,
9390}
9391impl JsonBehaviorError {
9392    #[inline]
9393    pub fn error_token(&self) -> Option<SyntaxToken> {
9394        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9395    }
9396}
9397
9398#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9399pub struct JsonBehaviorFalse {
9400    pub(crate) syntax: SyntaxNode,
9401}
9402impl JsonBehaviorFalse {
9403    #[inline]
9404    pub fn false_token(&self) -> Option<SyntaxToken> {
9405        support::token(&self.syntax, SyntaxKind::FALSE_KW)
9406    }
9407}
9408
9409#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9410pub struct JsonBehaviorNull {
9411    pub(crate) syntax: SyntaxNode,
9412}
9413impl JsonBehaviorNull {
9414    #[inline]
9415    pub fn null_token(&self) -> Option<SyntaxToken> {
9416        support::token(&self.syntax, SyntaxKind::NULL_KW)
9417    }
9418}
9419
9420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9421pub struct JsonBehaviorTrue {
9422    pub(crate) syntax: SyntaxNode,
9423}
9424impl JsonBehaviorTrue {
9425    #[inline]
9426    pub fn true_token(&self) -> Option<SyntaxToken> {
9427        support::token(&self.syntax, SyntaxKind::TRUE_KW)
9428    }
9429}
9430
9431#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9432pub struct JsonBehaviorUnknown {
9433    pub(crate) syntax: SyntaxNode,
9434}
9435impl JsonBehaviorUnknown {
9436    #[inline]
9437    pub fn unknown_token(&self) -> Option<SyntaxToken> {
9438        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
9439    }
9440}
9441
9442#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9443pub struct JsonEncodingClause {
9444    pub(crate) syntax: SyntaxNode,
9445}
9446impl JsonEncodingClause {
9447    #[inline]
9448    pub fn name_ref(&self) -> Option<NameRef> {
9449        support::child(&self.syntax)
9450    }
9451    #[inline]
9452    pub fn encoding_token(&self) -> Option<SyntaxToken> {
9453        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
9454    }
9455}
9456
9457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9458pub struct JsonExistsFn {
9459    pub(crate) syntax: SyntaxNode,
9460}
9461impl JsonExistsFn {
9462    #[inline]
9463    pub fn expr(&self) -> Option<Expr> {
9464        support::child(&self.syntax)
9465    }
9466    #[inline]
9467    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9468        support::child(&self.syntax)
9469    }
9470    #[inline]
9471    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9472        support::child(&self.syntax)
9473    }
9474    #[inline]
9475    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9476        support::child(&self.syntax)
9477    }
9478    #[inline]
9479    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9480        support::token(&self.syntax, SyntaxKind::L_PAREN)
9481    }
9482    #[inline]
9483    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9484        support::token(&self.syntax, SyntaxKind::R_PAREN)
9485    }
9486    #[inline]
9487    pub fn comma_token(&self) -> Option<SyntaxToken> {
9488        support::token(&self.syntax, SyntaxKind::COMMA)
9489    }
9490    #[inline]
9491    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
9492        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
9493    }
9494}
9495
9496#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9497pub struct JsonExprFormat {
9498    pub(crate) syntax: SyntaxNode,
9499}
9500impl JsonExprFormat {
9501    #[inline]
9502    pub fn expr(&self) -> Option<Expr> {
9503        support::child(&self.syntax)
9504    }
9505    #[inline]
9506    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9507        support::child(&self.syntax)
9508    }
9509}
9510
9511#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9512pub struct JsonFn {
9513    pub(crate) syntax: SyntaxNode,
9514}
9515impl JsonFn {
9516    #[inline]
9517    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
9518        support::child(&self.syntax)
9519    }
9520    #[inline]
9521    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9522        support::child(&self.syntax)
9523    }
9524    #[inline]
9525    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9526        support::token(&self.syntax, SyntaxKind::L_PAREN)
9527    }
9528    #[inline]
9529    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9530        support::token(&self.syntax, SyntaxKind::R_PAREN)
9531    }
9532    #[inline]
9533    pub fn json_token(&self) -> Option<SyntaxToken> {
9534        support::token(&self.syntax, SyntaxKind::JSON_KW)
9535    }
9536}
9537
9538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9539pub struct JsonFormatClause {
9540    pub(crate) syntax: SyntaxNode,
9541}
9542impl JsonFormatClause {
9543    #[inline]
9544    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
9545        support::child(&self.syntax)
9546    }
9547    #[inline]
9548    pub fn format_token(&self) -> Option<SyntaxToken> {
9549        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
9550    }
9551    #[inline]
9552    pub fn json_token(&self) -> Option<SyntaxToken> {
9553        support::token(&self.syntax, SyntaxKind::JSON_KW)
9554    }
9555}
9556
9557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9558pub struct JsonKeyValue {
9559    pub(crate) syntax: SyntaxNode,
9560}
9561impl JsonKeyValue {
9562    #[inline]
9563    pub fn expr(&self) -> Option<Expr> {
9564        support::child(&self.syntax)
9565    }
9566    #[inline]
9567    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
9568        support::child(&self.syntax)
9569    }
9570    #[inline]
9571    pub fn colon_token(&self) -> Option<SyntaxToken> {
9572        support::token(&self.syntax, SyntaxKind::COLON)
9573    }
9574}
9575
9576#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9577pub struct JsonKeysUniqueClause {
9578    pub(crate) syntax: SyntaxNode,
9579}
9580impl JsonKeysUniqueClause {
9581    #[inline]
9582    pub fn keys_token(&self) -> Option<SyntaxToken> {
9583        support::token(&self.syntax, SyntaxKind::KEYS_KW)
9584    }
9585    #[inline]
9586    pub fn unique_token(&self) -> Option<SyntaxToken> {
9587        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
9588    }
9589    #[inline]
9590    pub fn with_token(&self) -> Option<SyntaxToken> {
9591        support::token(&self.syntax, SyntaxKind::WITH_KW)
9592    }
9593    #[inline]
9594    pub fn without_token(&self) -> Option<SyntaxToken> {
9595        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9596    }
9597}
9598
9599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9600pub struct JsonNullClause {
9601    pub(crate) syntax: SyntaxNode,
9602}
9603impl JsonNullClause {
9604    #[inline]
9605    pub fn absent_token(&self) -> Option<SyntaxToken> {
9606        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
9607    }
9608    #[inline]
9609    pub fn null_token(&self) -> Option<SyntaxToken> {
9610        support::token(&self.syntax, SyntaxKind::NULL_KW)
9611    }
9612    #[inline]
9613    pub fn on_token(&self) -> Option<SyntaxToken> {
9614        support::token(&self.syntax, SyntaxKind::ON_KW)
9615    }
9616}
9617
9618#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9619pub struct JsonObjectAggFn {
9620    pub(crate) syntax: SyntaxNode,
9621}
9622impl JsonObjectAggFn {
9623    #[inline]
9624    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
9625        support::child(&self.syntax)
9626    }
9627    #[inline]
9628    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9629        support::child(&self.syntax)
9630    }
9631    #[inline]
9632    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9633        support::child(&self.syntax)
9634    }
9635    #[inline]
9636    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9637        support::child(&self.syntax)
9638    }
9639    #[inline]
9640    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9641        support::token(&self.syntax, SyntaxKind::L_PAREN)
9642    }
9643    #[inline]
9644    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9645        support::token(&self.syntax, SyntaxKind::R_PAREN)
9646    }
9647    #[inline]
9648    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
9649        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
9650    }
9651}
9652
9653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9654pub struct JsonObjectFn {
9655    pub(crate) syntax: SyntaxNode,
9656}
9657impl JsonObjectFn {
9658    #[inline]
9659    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
9660        support::children(&self.syntax)
9661    }
9662    #[inline]
9663    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9664        support::child(&self.syntax)
9665    }
9666    #[inline]
9667    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9668        support::child(&self.syntax)
9669    }
9670    #[inline]
9671    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9672        support::child(&self.syntax)
9673    }
9674    #[inline]
9675    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9676        support::token(&self.syntax, SyntaxKind::L_PAREN)
9677    }
9678    #[inline]
9679    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9680        support::token(&self.syntax, SyntaxKind::R_PAREN)
9681    }
9682    #[inline]
9683    pub fn json_object_token(&self) -> Option<SyntaxToken> {
9684        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
9685    }
9686}
9687
9688#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9689pub struct JsonOnEmptyClause {
9690    pub(crate) syntax: SyntaxNode,
9691}
9692impl JsonOnEmptyClause {
9693    #[inline]
9694    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9695        support::child(&self.syntax)
9696    }
9697    #[inline]
9698    pub fn empty_token(&self) -> Option<SyntaxToken> {
9699        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9700    }
9701    #[inline]
9702    pub fn on_token(&self) -> Option<SyntaxToken> {
9703        support::token(&self.syntax, SyntaxKind::ON_KW)
9704    }
9705}
9706
9707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9708pub struct JsonOnErrorClause {
9709    pub(crate) syntax: SyntaxNode,
9710}
9711impl JsonOnErrorClause {
9712    #[inline]
9713    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9714        support::child(&self.syntax)
9715    }
9716    #[inline]
9717    pub fn error_token(&self) -> Option<SyntaxToken> {
9718        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9719    }
9720    #[inline]
9721    pub fn on_token(&self) -> Option<SyntaxToken> {
9722        support::token(&self.syntax, SyntaxKind::ON_KW)
9723    }
9724}
9725
9726#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9727pub struct JsonPassingArg {
9728    pub(crate) syntax: SyntaxNode,
9729}
9730impl JsonPassingArg {
9731    #[inline]
9732    pub fn expr(&self) -> Option<Expr> {
9733        support::child(&self.syntax)
9734    }
9735}
9736
9737#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9738pub struct JsonPassingClause {
9739    pub(crate) syntax: SyntaxNode,
9740}
9741impl JsonPassingClause {
9742    #[inline]
9743    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
9744        support::children(&self.syntax)
9745    }
9746    #[inline]
9747    pub fn passing_token(&self) -> Option<SyntaxToken> {
9748        support::token(&self.syntax, SyntaxKind::PASSING_KW)
9749    }
9750}
9751
9752#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9753pub struct JsonPathClause {
9754    pub(crate) syntax: SyntaxNode,
9755}
9756impl JsonPathClause {
9757    #[inline]
9758    pub fn expr(&self) -> Option<Expr> {
9759        support::child(&self.syntax)
9760    }
9761    #[inline]
9762    pub fn path_token(&self) -> Option<SyntaxToken> {
9763        support::token(&self.syntax, SyntaxKind::PATH_KW)
9764    }
9765}
9766
9767#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9768pub struct JsonQueryFn {
9769    pub(crate) syntax: SyntaxNode,
9770}
9771impl JsonQueryFn {
9772    #[inline]
9773    pub fn expr(&self) -> Option<Expr> {
9774        support::child(&self.syntax)
9775    }
9776    #[inline]
9777    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9778        support::child(&self.syntax)
9779    }
9780    #[inline]
9781    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9782        support::child(&self.syntax)
9783    }
9784    #[inline]
9785    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9786        support::child(&self.syntax)
9787    }
9788    #[inline]
9789    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9790        support::child(&self.syntax)
9791    }
9792    #[inline]
9793    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9794        support::child(&self.syntax)
9795    }
9796    #[inline]
9797    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
9798        support::child(&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 comma_token(&self) -> Option<SyntaxToken> {
9810        support::token(&self.syntax, SyntaxKind::COMMA)
9811    }
9812    #[inline]
9813    pub fn json_query_token(&self) -> Option<SyntaxToken> {
9814        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
9815    }
9816}
9817
9818#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9819pub struct JsonQuotesClause {
9820    pub(crate) syntax: SyntaxNode,
9821}
9822impl JsonQuotesClause {
9823    #[inline]
9824    pub fn keep_token(&self) -> Option<SyntaxToken> {
9825        support::token(&self.syntax, SyntaxKind::KEEP_KW)
9826    }
9827    #[inline]
9828    pub fn omit_token(&self) -> Option<SyntaxToken> {
9829        support::token(&self.syntax, SyntaxKind::OMIT_KW)
9830    }
9831    #[inline]
9832    pub fn quotes_token(&self) -> Option<SyntaxToken> {
9833        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
9834    }
9835}
9836
9837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9838pub struct JsonReturningClause {
9839    pub(crate) syntax: SyntaxNode,
9840}
9841impl JsonReturningClause {
9842    #[inline]
9843    pub fn ty(&self) -> Option<Type> {
9844        support::child(&self.syntax)
9845    }
9846    #[inline]
9847    pub fn returning_token(&self) -> Option<SyntaxToken> {
9848        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
9849    }
9850}
9851
9852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9853pub struct JsonScalarFn {
9854    pub(crate) syntax: SyntaxNode,
9855}
9856impl JsonScalarFn {
9857    #[inline]
9858    pub fn expr(&self) -> Option<Expr> {
9859        support::child(&self.syntax)
9860    }
9861    #[inline]
9862    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9863        support::token(&self.syntax, SyntaxKind::L_PAREN)
9864    }
9865    #[inline]
9866    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9867        support::token(&self.syntax, SyntaxKind::R_PAREN)
9868    }
9869    #[inline]
9870    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
9871        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
9872    }
9873}
9874
9875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9876pub struct JsonSelectFormat {
9877    pub(crate) syntax: SyntaxNode,
9878}
9879impl JsonSelectFormat {
9880    #[inline]
9881    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9882        support::child(&self.syntax)
9883    }
9884    #[inline]
9885    pub fn select_variant(&self) -> Option<SelectVariant> {
9886        support::child(&self.syntax)
9887    }
9888}
9889
9890#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9891pub struct JsonSerializeFn {
9892    pub(crate) syntax: SyntaxNode,
9893}
9894impl JsonSerializeFn {
9895    #[inline]
9896    pub fn expr(&self) -> Option<Expr> {
9897        support::child(&self.syntax)
9898    }
9899    #[inline]
9900    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9901        support::child(&self.syntax)
9902    }
9903    #[inline]
9904    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9905        support::child(&self.syntax)
9906    }
9907    #[inline]
9908    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9909        support::token(&self.syntax, SyntaxKind::L_PAREN)
9910    }
9911    #[inline]
9912    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9913        support::token(&self.syntax, SyntaxKind::R_PAREN)
9914    }
9915    #[inline]
9916    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
9917        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
9918    }
9919}
9920
9921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9922pub struct JsonTable {
9923    pub(crate) syntax: SyntaxNode,
9924}
9925impl JsonTable {
9926    #[inline]
9927    pub fn expr(&self) -> Option<Expr> {
9928        support::child(&self.syntax)
9929    }
9930    #[inline]
9931    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9932        support::child(&self.syntax)
9933    }
9934    #[inline]
9935    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9936        support::child(&self.syntax)
9937    }
9938    #[inline]
9939    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9940        support::child(&self.syntax)
9941    }
9942    #[inline]
9943    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
9944        support::child(&self.syntax)
9945    }
9946    #[inline]
9947    pub fn name(&self) -> Option<Name> {
9948        support::child(&self.syntax)
9949    }
9950    #[inline]
9951    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9952        support::token(&self.syntax, SyntaxKind::L_PAREN)
9953    }
9954    #[inline]
9955    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9956        support::token(&self.syntax, SyntaxKind::R_PAREN)
9957    }
9958    #[inline]
9959    pub fn comma_token(&self) -> Option<SyntaxToken> {
9960        support::token(&self.syntax, SyntaxKind::COMMA)
9961    }
9962    #[inline]
9963    pub fn as_token(&self) -> Option<SyntaxToken> {
9964        support::token(&self.syntax, SyntaxKind::AS_KW)
9965    }
9966    #[inline]
9967    pub fn json_table_token(&self) -> Option<SyntaxToken> {
9968        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
9969    }
9970}
9971
9972#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9973pub struct JsonTableColumn {
9974    pub(crate) syntax: SyntaxNode,
9975}
9976impl JsonTableColumn {
9977    #[inline]
9978    pub fn expr(&self) -> Option<Expr> {
9979        support::child(&self.syntax)
9980    }
9981    #[inline]
9982    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9983        support::child(&self.syntax)
9984    }
9985    #[inline]
9986    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
9987        support::child(&self.syntax)
9988    }
9989    #[inline]
9990    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9991        support::child(&self.syntax)
9992    }
9993    #[inline]
9994    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
9995        support::child(&self.syntax)
9996    }
9997    #[inline]
9998    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9999        support::child(&self.syntax)
10000    }
10001    #[inline]
10002    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
10003        support::child(&self.syntax)
10004    }
10005    #[inline]
10006    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
10007        support::child(&self.syntax)
10008    }
10009    #[inline]
10010    pub fn name(&self) -> Option<Name> {
10011        support::child(&self.syntax)
10012    }
10013    #[inline]
10014    pub fn ty(&self) -> Option<Type> {
10015        support::child(&self.syntax)
10016    }
10017    #[inline]
10018    pub fn as_token(&self) -> Option<SyntaxToken> {
10019        support::token(&self.syntax, SyntaxKind::AS_KW)
10020    }
10021    #[inline]
10022    pub fn exists_token(&self) -> Option<SyntaxToken> {
10023        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
10024    }
10025    #[inline]
10026    pub fn for_token(&self) -> Option<SyntaxToken> {
10027        support::token(&self.syntax, SyntaxKind::FOR_KW)
10028    }
10029    #[inline]
10030    pub fn nested_token(&self) -> Option<SyntaxToken> {
10031        support::token(&self.syntax, SyntaxKind::NESTED_KW)
10032    }
10033    #[inline]
10034    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
10035        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
10036    }
10037    #[inline]
10038    pub fn path_token(&self) -> Option<SyntaxToken> {
10039        support::token(&self.syntax, SyntaxKind::PATH_KW)
10040    }
10041}
10042
10043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10044pub struct JsonTableColumnList {
10045    pub(crate) syntax: SyntaxNode,
10046}
10047impl JsonTableColumnList {
10048    #[inline]
10049    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
10050        support::children(&self.syntax)
10051    }
10052    #[inline]
10053    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10054        support::token(&self.syntax, SyntaxKind::L_PAREN)
10055    }
10056    #[inline]
10057    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10058        support::token(&self.syntax, SyntaxKind::R_PAREN)
10059    }
10060    #[inline]
10061    pub fn columns_token(&self) -> Option<SyntaxToken> {
10062        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
10063    }
10064}
10065
10066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10067pub struct JsonValueExpr {
10068    pub(crate) syntax: SyntaxNode,
10069}
10070impl JsonValueExpr {
10071    #[inline]
10072    pub fn expr(&self) -> Option<Expr> {
10073        support::child(&self.syntax)
10074    }
10075    #[inline]
10076    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10077        support::child(&self.syntax)
10078    }
10079}
10080
10081#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10082pub struct JsonValueFn {
10083    pub(crate) syntax: SyntaxNode,
10084}
10085impl JsonValueFn {
10086    #[inline]
10087    pub fn expr(&self) -> Option<Expr> {
10088        support::child(&self.syntax)
10089    }
10090    #[inline]
10091    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
10092        support::child(&self.syntax)
10093    }
10094    #[inline]
10095    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10096        support::child(&self.syntax)
10097    }
10098    #[inline]
10099    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
10100        support::child(&self.syntax)
10101    }
10102    #[inline]
10103    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10104        support::child(&self.syntax)
10105    }
10106    #[inline]
10107    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10108        support::token(&self.syntax, SyntaxKind::L_PAREN)
10109    }
10110    #[inline]
10111    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10112        support::token(&self.syntax, SyntaxKind::R_PAREN)
10113    }
10114    #[inline]
10115    pub fn comma_token(&self) -> Option<SyntaxToken> {
10116        support::token(&self.syntax, SyntaxKind::COMMA)
10117    }
10118    #[inline]
10119    pub fn json_value_token(&self) -> Option<SyntaxToken> {
10120        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
10121    }
10122}
10123
10124#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10125pub struct JsonWrapperBehaviorClause {
10126    pub(crate) syntax: SyntaxNode,
10127}
10128impl JsonWrapperBehaviorClause {
10129    #[inline]
10130    pub fn array_token(&self) -> Option<SyntaxToken> {
10131        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10132    }
10133    #[inline]
10134    pub fn conditional_token(&self) -> Option<SyntaxToken> {
10135        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
10136    }
10137    #[inline]
10138    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
10139        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
10140    }
10141    #[inline]
10142    pub fn with_token(&self) -> Option<SyntaxToken> {
10143        support::token(&self.syntax, SyntaxKind::WITH_KW)
10144    }
10145    #[inline]
10146    pub fn without_token(&self) -> Option<SyntaxToken> {
10147        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
10148    }
10149    #[inline]
10150    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
10151        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
10152    }
10153}
10154
10155#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10156pub struct LanguageFuncOption {
10157    pub(crate) syntax: SyntaxNode,
10158}
10159impl LanguageFuncOption {
10160    #[inline]
10161    pub fn name_ref(&self) -> Option<NameRef> {
10162        support::child(&self.syntax)
10163    }
10164    #[inline]
10165    pub fn language_token(&self) -> Option<SyntaxToken> {
10166        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
10167    }
10168}
10169
10170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10171pub struct LeakproofFuncOption {
10172    pub(crate) syntax: SyntaxNode,
10173}
10174impl LeakproofFuncOption {
10175    #[inline]
10176    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
10177        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
10178    }
10179    #[inline]
10180    pub fn not_token(&self) -> Option<SyntaxToken> {
10181        support::token(&self.syntax, SyntaxKind::NOT_KW)
10182    }
10183}
10184
10185#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10186pub struct LikeClause {
10187    pub(crate) syntax: SyntaxNode,
10188}
10189impl LikeClause {
10190    #[inline]
10191    pub fn like_options(&self) -> AstChildren<LikeOption> {
10192        support::children(&self.syntax)
10193    }
10194    #[inline]
10195    pub fn path(&self) -> Option<Path> {
10196        support::child(&self.syntax)
10197    }
10198    #[inline]
10199    pub fn like_token(&self) -> Option<SyntaxToken> {
10200        support::token(&self.syntax, SyntaxKind::LIKE_KW)
10201    }
10202}
10203
10204#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10205pub struct LikeOption {
10206    pub(crate) syntax: SyntaxNode,
10207}
10208impl LikeOption {
10209    #[inline]
10210    pub fn all_token(&self) -> Option<SyntaxToken> {
10211        support::token(&self.syntax, SyntaxKind::ALL_KW)
10212    }
10213    #[inline]
10214    pub fn comments_token(&self) -> Option<SyntaxToken> {
10215        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
10216    }
10217    #[inline]
10218    pub fn compression_token(&self) -> Option<SyntaxToken> {
10219        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
10220    }
10221    #[inline]
10222    pub fn constraints_token(&self) -> Option<SyntaxToken> {
10223        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
10224    }
10225    #[inline]
10226    pub fn defaults_token(&self) -> Option<SyntaxToken> {
10227        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
10228    }
10229    #[inline]
10230    pub fn excluding_token(&self) -> Option<SyntaxToken> {
10231        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
10232    }
10233    #[inline]
10234    pub fn generated_token(&self) -> Option<SyntaxToken> {
10235        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
10236    }
10237    #[inline]
10238    pub fn identity_token(&self) -> Option<SyntaxToken> {
10239        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
10240    }
10241    #[inline]
10242    pub fn including_token(&self) -> Option<SyntaxToken> {
10243        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
10244    }
10245    #[inline]
10246    pub fn indexes_token(&self) -> Option<SyntaxToken> {
10247        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
10248    }
10249    #[inline]
10250    pub fn statistics_token(&self) -> Option<SyntaxToken> {
10251        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
10252    }
10253    #[inline]
10254    pub fn storage_token(&self) -> Option<SyntaxToken> {
10255        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
10256    }
10257}
10258
10259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10260pub struct LimitClause {
10261    pub(crate) syntax: SyntaxNode,
10262}
10263impl LimitClause {
10264    #[inline]
10265    pub fn expr(&self) -> Option<Expr> {
10266        support::child(&self.syntax)
10267    }
10268    #[inline]
10269    pub fn all_token(&self) -> Option<SyntaxToken> {
10270        support::token(&self.syntax, SyntaxKind::ALL_KW)
10271    }
10272    #[inline]
10273    pub fn limit_token(&self) -> Option<SyntaxToken> {
10274        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10275    }
10276}
10277
10278#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10279pub struct LimitToTables {
10280    pub(crate) syntax: SyntaxNode,
10281}
10282impl LimitToTables {
10283    #[inline]
10284    pub fn name_refs(&self) -> AstChildren<NameRef> {
10285        support::children(&self.syntax)
10286    }
10287    #[inline]
10288    pub fn limit_token(&self) -> Option<SyntaxToken> {
10289        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10290    }
10291    #[inline]
10292    pub fn to_token(&self) -> Option<SyntaxToken> {
10293        support::token(&self.syntax, SyntaxKind::TO_KW)
10294    }
10295}
10296
10297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10298pub struct Listen {
10299    pub(crate) syntax: SyntaxNode,
10300}
10301impl Listen {
10302    #[inline]
10303    pub fn name(&self) -> Option<Name> {
10304        support::child(&self.syntax)
10305    }
10306    #[inline]
10307    pub fn listen_token(&self) -> Option<SyntaxToken> {
10308        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
10309    }
10310}
10311
10312#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10313pub struct Literal {
10314    pub(crate) syntax: SyntaxNode,
10315}
10316impl Literal {}
10317
10318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10319pub struct Load {
10320    pub(crate) syntax: SyntaxNode,
10321}
10322impl Load {
10323    #[inline]
10324    pub fn literal(&self) -> Option<Literal> {
10325        support::child(&self.syntax)
10326    }
10327    #[inline]
10328    pub fn load_token(&self) -> Option<SyntaxToken> {
10329        support::token(&self.syntax, SyntaxKind::LOAD_KW)
10330    }
10331}
10332
10333#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10334pub struct Lock {
10335    pub(crate) syntax: SyntaxNode,
10336}
10337impl Lock {
10338    #[inline]
10339    pub fn table_list(&self) -> Option<TableList> {
10340        support::child(&self.syntax)
10341    }
10342    #[inline]
10343    pub fn lock_token(&self) -> Option<SyntaxToken> {
10344        support::token(&self.syntax, SyntaxKind::LOCK_KW)
10345    }
10346    #[inline]
10347    pub fn table_token(&self) -> Option<SyntaxToken> {
10348        support::token(&self.syntax, SyntaxKind::TABLE_KW)
10349    }
10350}
10351
10352#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10353pub struct LockingClause {
10354    pub(crate) syntax: SyntaxNode,
10355}
10356impl LockingClause {
10357    #[inline]
10358    pub fn for_token(&self) -> Option<SyntaxToken> {
10359        support::token(&self.syntax, SyntaxKind::FOR_KW)
10360    }
10361}
10362
10363#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10364pub struct Lteq {
10365    pub(crate) syntax: SyntaxNode,
10366}
10367impl Lteq {
10368    #[inline]
10369    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10370        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10371    }
10372    #[inline]
10373    pub fn eq_token(&self) -> Option<SyntaxToken> {
10374        support::token(&self.syntax, SyntaxKind::EQ)
10375    }
10376}
10377
10378#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10379pub struct MatchFull {
10380    pub(crate) syntax: SyntaxNode,
10381}
10382impl MatchFull {
10383    #[inline]
10384    pub fn full_token(&self) -> Option<SyntaxToken> {
10385        support::token(&self.syntax, SyntaxKind::FULL_KW)
10386    }
10387    #[inline]
10388    pub fn match_token(&self) -> Option<SyntaxToken> {
10389        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10390    }
10391}
10392
10393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10394pub struct MatchPartial {
10395    pub(crate) syntax: SyntaxNode,
10396}
10397impl MatchPartial {
10398    #[inline]
10399    pub fn match_token(&self) -> Option<SyntaxToken> {
10400        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10401    }
10402    #[inline]
10403    pub fn partial_token(&self) -> Option<SyntaxToken> {
10404        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
10405    }
10406}
10407
10408#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10409pub struct MatchSimple {
10410    pub(crate) syntax: SyntaxNode,
10411}
10412impl MatchSimple {
10413    #[inline]
10414    pub fn match_token(&self) -> Option<SyntaxToken> {
10415        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10416    }
10417    #[inline]
10418    pub fn simple_token(&self) -> Option<SyntaxToken> {
10419        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
10420    }
10421}
10422
10423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10424pub struct Materialized {
10425    pub(crate) syntax: SyntaxNode,
10426}
10427impl Materialized {
10428    #[inline]
10429    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10430        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10431    }
10432}
10433
10434#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10435pub struct Merge {
10436    pub(crate) syntax: SyntaxNode,
10437}
10438impl Merge {
10439    #[inline]
10440    pub fn alias(&self) -> Option<Alias> {
10441        support::child(&self.syntax)
10442    }
10443    #[inline]
10444    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
10445        support::children(&self.syntax)
10446    }
10447    #[inline]
10448    pub fn relation_name(&self) -> Option<RelationName> {
10449        support::child(&self.syntax)
10450    }
10451    #[inline]
10452    pub fn returning_clause(&self) -> Option<ReturningClause> {
10453        support::child(&self.syntax)
10454    }
10455    #[inline]
10456    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
10457        support::child(&self.syntax)
10458    }
10459    #[inline]
10460    pub fn with_clause(&self) -> Option<WithClause> {
10461        support::child(&self.syntax)
10462    }
10463    #[inline]
10464    pub fn into_token(&self) -> Option<SyntaxToken> {
10465        support::token(&self.syntax, SyntaxKind::INTO_KW)
10466    }
10467    #[inline]
10468    pub fn merge_token(&self) -> Option<SyntaxToken> {
10469        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10470    }
10471}
10472
10473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10474pub struct MergeDelete {
10475    pub(crate) syntax: SyntaxNode,
10476}
10477impl MergeDelete {
10478    #[inline]
10479    pub fn delete_token(&self) -> Option<SyntaxToken> {
10480        support::token(&self.syntax, SyntaxKind::DELETE_KW)
10481    }
10482}
10483
10484#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10485pub struct MergeDoNothing {
10486    pub(crate) syntax: SyntaxNode,
10487}
10488impl MergeDoNothing {
10489    #[inline]
10490    pub fn do_token(&self) -> Option<SyntaxToken> {
10491        support::token(&self.syntax, SyntaxKind::DO_KW)
10492    }
10493    #[inline]
10494    pub fn nothing_token(&self) -> Option<SyntaxToken> {
10495        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
10496    }
10497}
10498
10499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10500pub struct MergeInsert {
10501    pub(crate) syntax: SyntaxNode,
10502}
10503impl MergeInsert {
10504    #[inline]
10505    pub fn column_list(&self) -> Option<ColumnList> {
10506        support::child(&self.syntax)
10507    }
10508    #[inline]
10509    pub fn values(&self) -> Option<Values> {
10510        support::child(&self.syntax)
10511    }
10512    #[inline]
10513    pub fn default_token(&self) -> Option<SyntaxToken> {
10514        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10515    }
10516    #[inline]
10517    pub fn insert_token(&self) -> Option<SyntaxToken> {
10518        support::token(&self.syntax, SyntaxKind::INSERT_KW)
10519    }
10520    #[inline]
10521    pub fn overriding_token(&self) -> Option<SyntaxToken> {
10522        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
10523    }
10524    #[inline]
10525    pub fn system_token(&self) -> Option<SyntaxToken> {
10526        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
10527    }
10528    #[inline]
10529    pub fn user_token(&self) -> Option<SyntaxToken> {
10530        support::token(&self.syntax, SyntaxKind::USER_KW)
10531    }
10532    #[inline]
10533    pub fn values_token(&self) -> Option<SyntaxToken> {
10534        support::token(&self.syntax, SyntaxKind::VALUES_KW)
10535    }
10536}
10537
10538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10539pub struct MergePartitions {
10540    pub(crate) syntax: SyntaxNode,
10541}
10542impl MergePartitions {
10543    #[inline]
10544    pub fn path(&self) -> Option<Path> {
10545        support::child(&self.syntax)
10546    }
10547    #[inline]
10548    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10549        support::token(&self.syntax, SyntaxKind::L_PAREN)
10550    }
10551    #[inline]
10552    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10553        support::token(&self.syntax, SyntaxKind::R_PAREN)
10554    }
10555    #[inline]
10556    pub fn into_token(&self) -> Option<SyntaxToken> {
10557        support::token(&self.syntax, SyntaxKind::INTO_KW)
10558    }
10559    #[inline]
10560    pub fn merge_token(&self) -> Option<SyntaxToken> {
10561        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10562    }
10563    #[inline]
10564    pub fn partitions_token(&self) -> Option<SyntaxToken> {
10565        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
10566    }
10567}
10568
10569#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10570pub struct MergeUpdate {
10571    pub(crate) syntax: SyntaxNode,
10572}
10573impl MergeUpdate {
10574    #[inline]
10575    pub fn set_clause(&self) -> Option<SetClause> {
10576        support::child(&self.syntax)
10577    }
10578    #[inline]
10579    pub fn set_token(&self) -> Option<SyntaxToken> {
10580        support::token(&self.syntax, SyntaxKind::SET_KW)
10581    }
10582    #[inline]
10583    pub fn update_token(&self) -> Option<SyntaxToken> {
10584        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
10585    }
10586}
10587
10588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10589pub struct MergeWhenMatched {
10590    pub(crate) syntax: SyntaxNode,
10591}
10592impl MergeWhenMatched {
10593    #[inline]
10594    pub fn expr(&self) -> Option<Expr> {
10595        support::child(&self.syntax)
10596    }
10597    #[inline]
10598    pub fn merge_action(&self) -> Option<MergeAction> {
10599        support::child(&self.syntax)
10600    }
10601    #[inline]
10602    pub fn and_token(&self) -> Option<SyntaxToken> {
10603        support::token(&self.syntax, SyntaxKind::AND_KW)
10604    }
10605    #[inline]
10606    pub fn matched_token(&self) -> Option<SyntaxToken> {
10607        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10608    }
10609    #[inline]
10610    pub fn then_token(&self) -> Option<SyntaxToken> {
10611        support::token(&self.syntax, SyntaxKind::THEN_KW)
10612    }
10613    #[inline]
10614    pub fn when_token(&self) -> Option<SyntaxToken> {
10615        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10616    }
10617}
10618
10619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10620pub struct MergeWhenNotMatchedSource {
10621    pub(crate) syntax: SyntaxNode,
10622}
10623impl MergeWhenNotMatchedSource {
10624    #[inline]
10625    pub fn expr(&self) -> Option<Expr> {
10626        support::child(&self.syntax)
10627    }
10628    #[inline]
10629    pub fn merge_action(&self) -> Option<MergeAction> {
10630        support::child(&self.syntax)
10631    }
10632    #[inline]
10633    pub fn and_token(&self) -> Option<SyntaxToken> {
10634        support::token(&self.syntax, SyntaxKind::AND_KW)
10635    }
10636    #[inline]
10637    pub fn by_token(&self) -> Option<SyntaxToken> {
10638        support::token(&self.syntax, SyntaxKind::BY_KW)
10639    }
10640    #[inline]
10641    pub fn matched_token(&self) -> Option<SyntaxToken> {
10642        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10643    }
10644    #[inline]
10645    pub fn not_token(&self) -> Option<SyntaxToken> {
10646        support::token(&self.syntax, SyntaxKind::NOT_KW)
10647    }
10648    #[inline]
10649    pub fn source_token(&self) -> Option<SyntaxToken> {
10650        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
10651    }
10652    #[inline]
10653    pub fn then_token(&self) -> Option<SyntaxToken> {
10654        support::token(&self.syntax, SyntaxKind::THEN_KW)
10655    }
10656    #[inline]
10657    pub fn when_token(&self) -> Option<SyntaxToken> {
10658        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10659    }
10660}
10661
10662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10663pub struct MergeWhenNotMatchedTarget {
10664    pub(crate) syntax: SyntaxNode,
10665}
10666impl MergeWhenNotMatchedTarget {
10667    #[inline]
10668    pub fn expr(&self) -> Option<Expr> {
10669        support::child(&self.syntax)
10670    }
10671    #[inline]
10672    pub fn merge_action(&self) -> Option<MergeAction> {
10673        support::child(&self.syntax)
10674    }
10675    #[inline]
10676    pub fn and_token(&self) -> Option<SyntaxToken> {
10677        support::token(&self.syntax, SyntaxKind::AND_KW)
10678    }
10679    #[inline]
10680    pub fn by_token(&self) -> Option<SyntaxToken> {
10681        support::token(&self.syntax, SyntaxKind::BY_KW)
10682    }
10683    #[inline]
10684    pub fn matched_token(&self) -> Option<SyntaxToken> {
10685        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10686    }
10687    #[inline]
10688    pub fn not_token(&self) -> Option<SyntaxToken> {
10689        support::token(&self.syntax, SyntaxKind::NOT_KW)
10690    }
10691    #[inline]
10692    pub fn target_token(&self) -> Option<SyntaxToken> {
10693        support::token(&self.syntax, SyntaxKind::TARGET_KW)
10694    }
10695    #[inline]
10696    pub fn then_token(&self) -> Option<SyntaxToken> {
10697        support::token(&self.syntax, SyntaxKind::THEN_KW)
10698    }
10699    #[inline]
10700    pub fn when_token(&self) -> Option<SyntaxToken> {
10701        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10702    }
10703}
10704
10705#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10706pub struct Move {
10707    pub(crate) syntax: SyntaxNode,
10708}
10709impl Move {
10710    #[inline]
10711    pub fn name_ref(&self) -> Option<NameRef> {
10712        support::child(&self.syntax)
10713    }
10714    #[inline]
10715    pub fn from_token(&self) -> Option<SyntaxToken> {
10716        support::token(&self.syntax, SyntaxKind::FROM_KW)
10717    }
10718    #[inline]
10719    pub fn in_token(&self) -> Option<SyntaxToken> {
10720        support::token(&self.syntax, SyntaxKind::IN_KW)
10721    }
10722    #[inline]
10723    pub fn move_token(&self) -> Option<SyntaxToken> {
10724        support::token(&self.syntax, SyntaxKind::MOVE_KW)
10725    }
10726}
10727
10728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10729pub struct Name {
10730    pub(crate) syntax: SyntaxNode,
10731}
10732impl Name {
10733    #[inline]
10734    pub fn ident_token(&self) -> Option<SyntaxToken> {
10735        support::token(&self.syntax, SyntaxKind::IDENT)
10736    }
10737}
10738
10739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10740pub struct NameRef {
10741    pub(crate) syntax: SyntaxNode,
10742}
10743impl NameRef {
10744    #[inline]
10745    pub fn ident_token(&self) -> Option<SyntaxToken> {
10746        support::token(&self.syntax, SyntaxKind::IDENT)
10747    }
10748}
10749
10750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10751pub struct NamedArg {
10752    pub(crate) syntax: SyntaxNode,
10753}
10754impl NamedArg {
10755    #[inline]
10756    pub fn expr(&self) -> Option<Expr> {
10757        support::child(&self.syntax)
10758    }
10759    #[inline]
10760    pub fn fat_arrow(&self) -> Option<FatArrow> {
10761        support::child(&self.syntax)
10762    }
10763    #[inline]
10764    pub fn name_ref(&self) -> Option<NameRef> {
10765        support::child(&self.syntax)
10766    }
10767}
10768
10769#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10770pub struct Neq {
10771    pub(crate) syntax: SyntaxNode,
10772}
10773impl Neq {
10774    #[inline]
10775    pub fn bang_token(&self) -> Option<SyntaxToken> {
10776        support::token(&self.syntax, SyntaxKind::BANG)
10777    }
10778    #[inline]
10779    pub fn eq_token(&self) -> Option<SyntaxToken> {
10780        support::token(&self.syntax, SyntaxKind::EQ)
10781    }
10782}
10783
10784#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10785pub struct Neqb {
10786    pub(crate) syntax: SyntaxNode,
10787}
10788impl Neqb {
10789    #[inline]
10790    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10791        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10792    }
10793    #[inline]
10794    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
10795        support::token(&self.syntax, SyntaxKind::R_ANGLE)
10796    }
10797}
10798
10799#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10800pub struct NoAction {
10801    pub(crate) syntax: SyntaxNode,
10802}
10803impl NoAction {
10804    #[inline]
10805    pub fn action_token(&self) -> Option<SyntaxToken> {
10806        support::token(&self.syntax, SyntaxKind::ACTION_KW)
10807    }
10808    #[inline]
10809    pub fn no_token(&self) -> Option<SyntaxToken> {
10810        support::token(&self.syntax, SyntaxKind::NO_KW)
10811    }
10812}
10813
10814#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10815pub struct NoDependsOnExtension {
10816    pub(crate) syntax: SyntaxNode,
10817}
10818impl NoDependsOnExtension {
10819    #[inline]
10820    pub fn name_ref(&self) -> Option<NameRef> {
10821        support::child(&self.syntax)
10822    }
10823    #[inline]
10824    pub fn depends_token(&self) -> Option<SyntaxToken> {
10825        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
10826    }
10827    #[inline]
10828    pub fn extension_token(&self) -> Option<SyntaxToken> {
10829        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
10830    }
10831    #[inline]
10832    pub fn no_token(&self) -> Option<SyntaxToken> {
10833        support::token(&self.syntax, SyntaxKind::NO_KW)
10834    }
10835    #[inline]
10836    pub fn on_token(&self) -> Option<SyntaxToken> {
10837        support::token(&self.syntax, SyntaxKind::ON_KW)
10838    }
10839}
10840
10841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10842pub struct NoForceRls {
10843    pub(crate) syntax: SyntaxNode,
10844}
10845impl NoForceRls {
10846    #[inline]
10847    pub fn force_token(&self) -> Option<SyntaxToken> {
10848        support::token(&self.syntax, SyntaxKind::FORCE_KW)
10849    }
10850    #[inline]
10851    pub fn level_token(&self) -> Option<SyntaxToken> {
10852        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
10853    }
10854    #[inline]
10855    pub fn no_token(&self) -> Option<SyntaxToken> {
10856        support::token(&self.syntax, SyntaxKind::NO_KW)
10857    }
10858    #[inline]
10859    pub fn row_token(&self) -> Option<SyntaxToken> {
10860        support::token(&self.syntax, SyntaxKind::ROW_KW)
10861    }
10862    #[inline]
10863    pub fn security_token(&self) -> Option<SyntaxToken> {
10864        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
10865    }
10866}
10867
10868#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10869pub struct NoInherit {
10870    pub(crate) syntax: SyntaxNode,
10871}
10872impl NoInherit {
10873    #[inline]
10874    pub fn path(&self) -> Option<Path> {
10875        support::child(&self.syntax)
10876    }
10877    #[inline]
10878    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10879        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10880    }
10881    #[inline]
10882    pub fn no_token(&self) -> Option<SyntaxToken> {
10883        support::token(&self.syntax, SyntaxKind::NO_KW)
10884    }
10885}
10886
10887#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10888pub struct NoInheritTable {
10889    pub(crate) syntax: SyntaxNode,
10890}
10891impl NoInheritTable {
10892    #[inline]
10893    pub fn path(&self) -> Option<Path> {
10894        support::child(&self.syntax)
10895    }
10896    #[inline]
10897    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10898        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10899    }
10900    #[inline]
10901    pub fn no_token(&self) -> Option<SyntaxToken> {
10902        support::token(&self.syntax, SyntaxKind::NO_KW)
10903    }
10904}
10905
10906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10907pub struct NonStandardParam {
10908    pub(crate) syntax: SyntaxNode,
10909}
10910impl NonStandardParam {
10911    #[inline]
10912    pub fn name_ref(&self) -> Option<NameRef> {
10913        support::child(&self.syntax)
10914    }
10915    #[inline]
10916    pub fn colon_token(&self) -> Option<SyntaxToken> {
10917        support::token(&self.syntax, SyntaxKind::COLON)
10918    }
10919}
10920
10921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10922pub struct NotDeferrable {
10923    pub(crate) syntax: SyntaxNode,
10924}
10925impl NotDeferrable {
10926    #[inline]
10927    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10928        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10929    }
10930    #[inline]
10931    pub fn not_token(&self) -> Option<SyntaxToken> {
10932        support::token(&self.syntax, SyntaxKind::NOT_KW)
10933    }
10934}
10935
10936#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10937pub struct NotDeferrableConstraintOption {
10938    pub(crate) syntax: SyntaxNode,
10939}
10940impl NotDeferrableConstraintOption {
10941    #[inline]
10942    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10943        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10944    }
10945    #[inline]
10946    pub fn not_token(&self) -> Option<SyntaxToken> {
10947        support::token(&self.syntax, SyntaxKind::NOT_KW)
10948    }
10949}
10950
10951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10952pub struct NotEnforced {
10953    pub(crate) syntax: SyntaxNode,
10954}
10955impl NotEnforced {
10956    #[inline]
10957    pub fn enforced_token(&self) -> Option<SyntaxToken> {
10958        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
10959    }
10960    #[inline]
10961    pub fn not_token(&self) -> Option<SyntaxToken> {
10962        support::token(&self.syntax, SyntaxKind::NOT_KW)
10963    }
10964}
10965
10966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10967pub struct NotIlike {
10968    pub(crate) syntax: SyntaxNode,
10969}
10970impl NotIlike {
10971    #[inline]
10972    pub fn ilike_token(&self) -> Option<SyntaxToken> {
10973        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
10974    }
10975    #[inline]
10976    pub fn not_token(&self) -> Option<SyntaxToken> {
10977        support::token(&self.syntax, SyntaxKind::NOT_KW)
10978    }
10979}
10980
10981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10982pub struct NotIn {
10983    pub(crate) syntax: SyntaxNode,
10984}
10985impl NotIn {
10986    #[inline]
10987    pub fn in_token(&self) -> Option<SyntaxToken> {
10988        support::token(&self.syntax, SyntaxKind::IN_KW)
10989    }
10990    #[inline]
10991    pub fn not_token(&self) -> Option<SyntaxToken> {
10992        support::token(&self.syntax, SyntaxKind::NOT_KW)
10993    }
10994}
10995
10996#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10997pub struct NotLike {
10998    pub(crate) syntax: SyntaxNode,
10999}
11000impl NotLike {
11001    #[inline]
11002    pub fn like_token(&self) -> Option<SyntaxToken> {
11003        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11004    }
11005    #[inline]
11006    pub fn not_token(&self) -> Option<SyntaxToken> {
11007        support::token(&self.syntax, SyntaxKind::NOT_KW)
11008    }
11009}
11010
11011#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11012pub struct NotMaterialized {
11013    pub(crate) syntax: SyntaxNode,
11014}
11015impl NotMaterialized {
11016    #[inline]
11017    pub fn materialized_token(&self) -> Option<SyntaxToken> {
11018        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
11019    }
11020    #[inline]
11021    pub fn not_token(&self) -> Option<SyntaxToken> {
11022        support::token(&self.syntax, SyntaxKind::NOT_KW)
11023    }
11024}
11025
11026#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11027pub struct NotNullConstraint {
11028    pub(crate) syntax: SyntaxNode,
11029}
11030impl NotNullConstraint {
11031    #[inline]
11032    pub fn name_ref(&self) -> Option<NameRef> {
11033        support::child(&self.syntax)
11034    }
11035    #[inline]
11036    pub fn no_inherit(&self) -> Option<NoInherit> {
11037        support::child(&self.syntax)
11038    }
11039    #[inline]
11040    pub fn constraint_token(&self) -> Option<SyntaxToken> {
11041        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
11042    }
11043    #[inline]
11044    pub fn not_token(&self) -> Option<SyntaxToken> {
11045        support::token(&self.syntax, SyntaxKind::NOT_KW)
11046    }
11047    #[inline]
11048    pub fn null_token(&self) -> Option<SyntaxToken> {
11049        support::token(&self.syntax, SyntaxKind::NULL_KW)
11050    }
11051}
11052
11053#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11054pub struct NotOf {
11055    pub(crate) syntax: SyntaxNode,
11056}
11057impl NotOf {
11058    #[inline]
11059    pub fn not_token(&self) -> Option<SyntaxToken> {
11060        support::token(&self.syntax, SyntaxKind::NOT_KW)
11061    }
11062    #[inline]
11063    pub fn of_token(&self) -> Option<SyntaxToken> {
11064        support::token(&self.syntax, SyntaxKind::OF_KW)
11065    }
11066}
11067
11068#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11069pub struct NotSimilarTo {
11070    pub(crate) syntax: SyntaxNode,
11071}
11072impl NotSimilarTo {
11073    #[inline]
11074    pub fn not_token(&self) -> Option<SyntaxToken> {
11075        support::token(&self.syntax, SyntaxKind::NOT_KW)
11076    }
11077    #[inline]
11078    pub fn similar_token(&self) -> Option<SyntaxToken> {
11079        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
11080    }
11081    #[inline]
11082    pub fn to_token(&self) -> Option<SyntaxToken> {
11083        support::token(&self.syntax, SyntaxKind::TO_KW)
11084    }
11085}
11086
11087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11088pub struct NotValid {
11089    pub(crate) syntax: SyntaxNode,
11090}
11091impl NotValid {
11092    #[inline]
11093    pub fn not_token(&self) -> Option<SyntaxToken> {
11094        support::token(&self.syntax, SyntaxKind::NOT_KW)
11095    }
11096    #[inline]
11097    pub fn valid_token(&self) -> Option<SyntaxToken> {
11098        support::token(&self.syntax, SyntaxKind::VALID_KW)
11099    }
11100}
11101
11102#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11103pub struct Notify {
11104    pub(crate) syntax: SyntaxNode,
11105}
11106impl Notify {
11107    #[inline]
11108    pub fn literal(&self) -> Option<Literal> {
11109        support::child(&self.syntax)
11110    }
11111    #[inline]
11112    pub fn name_ref(&self) -> Option<NameRef> {
11113        support::child(&self.syntax)
11114    }
11115    #[inline]
11116    pub fn comma_token(&self) -> Option<SyntaxToken> {
11117        support::token(&self.syntax, SyntaxKind::COMMA)
11118    }
11119    #[inline]
11120    pub fn notify_token(&self) -> Option<SyntaxToken> {
11121        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
11122    }
11123}
11124
11125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11126pub struct NullConstraint {
11127    pub(crate) syntax: SyntaxNode,
11128}
11129impl NullConstraint {
11130    #[inline]
11131    pub fn name_ref(&self) -> Option<NameRef> {
11132        support::child(&self.syntax)
11133    }
11134    #[inline]
11135    pub fn constraint_token(&self) -> Option<SyntaxToken> {
11136        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
11137    }
11138    #[inline]
11139    pub fn null_token(&self) -> Option<SyntaxToken> {
11140        support::token(&self.syntax, SyntaxKind::NULL_KW)
11141    }
11142}
11143
11144#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11145pub struct NullsDistinct {
11146    pub(crate) syntax: SyntaxNode,
11147}
11148impl NullsDistinct {
11149    #[inline]
11150    pub fn distinct_token(&self) -> Option<SyntaxToken> {
11151        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
11152    }
11153    #[inline]
11154    pub fn nulls_token(&self) -> Option<SyntaxToken> {
11155        support::token(&self.syntax, SyntaxKind::NULLS_KW)
11156    }
11157}
11158
11159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11160pub struct NullsFirst {
11161    pub(crate) syntax: SyntaxNode,
11162}
11163impl NullsFirst {
11164    #[inline]
11165    pub fn first_token(&self) -> Option<SyntaxToken> {
11166        support::token(&self.syntax, SyntaxKind::FIRST_KW)
11167    }
11168    #[inline]
11169    pub fn nulls_token(&self) -> Option<SyntaxToken> {
11170        support::token(&self.syntax, SyntaxKind::NULLS_KW)
11171    }
11172}
11173
11174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11175pub struct NullsLast {
11176    pub(crate) syntax: SyntaxNode,
11177}
11178impl NullsLast {
11179    #[inline]
11180    pub fn last_token(&self) -> Option<SyntaxToken> {
11181        support::token(&self.syntax, SyntaxKind::LAST_KW)
11182    }
11183    #[inline]
11184    pub fn nulls_token(&self) -> Option<SyntaxToken> {
11185        support::token(&self.syntax, SyntaxKind::NULLS_KW)
11186    }
11187}
11188
11189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11190pub struct NullsNotDistinct {
11191    pub(crate) syntax: SyntaxNode,
11192}
11193impl NullsNotDistinct {
11194    #[inline]
11195    pub fn distinct_token(&self) -> Option<SyntaxToken> {
11196        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
11197    }
11198    #[inline]
11199    pub fn not_token(&self) -> Option<SyntaxToken> {
11200        support::token(&self.syntax, SyntaxKind::NOT_KW)
11201    }
11202    #[inline]
11203    pub fn nulls_token(&self) -> Option<SyntaxToken> {
11204        support::token(&self.syntax, SyntaxKind::NULLS_KW)
11205    }
11206}
11207
11208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11209pub struct OfType {
11210    pub(crate) syntax: SyntaxNode,
11211}
11212impl OfType {
11213    #[inline]
11214    pub fn ty(&self) -> Option<Type> {
11215        support::child(&self.syntax)
11216    }
11217    #[inline]
11218    pub fn of_token(&self) -> Option<SyntaxToken> {
11219        support::token(&self.syntax, SyntaxKind::OF_KW)
11220    }
11221}
11222
11223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11224pub struct OffsetClause {
11225    pub(crate) syntax: SyntaxNode,
11226}
11227impl OffsetClause {
11228    #[inline]
11229    pub fn expr(&self) -> Option<Expr> {
11230        support::child(&self.syntax)
11231    }
11232    #[inline]
11233    pub fn offset_token(&self) -> Option<SyntaxToken> {
11234        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
11235    }
11236    #[inline]
11237    pub fn row_token(&self) -> Option<SyntaxToken> {
11238        support::token(&self.syntax, SyntaxKind::ROW_KW)
11239    }
11240    #[inline]
11241    pub fn rows_token(&self) -> Option<SyntaxToken> {
11242        support::token(&self.syntax, SyntaxKind::ROWS_KW)
11243    }
11244}
11245
11246#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11247pub struct OnClause {
11248    pub(crate) syntax: SyntaxNode,
11249}
11250impl OnClause {
11251    #[inline]
11252    pub fn expr(&self) -> Option<Expr> {
11253        support::child(&self.syntax)
11254    }
11255    #[inline]
11256    pub fn on_token(&self) -> Option<SyntaxToken> {
11257        support::token(&self.syntax, SyntaxKind::ON_KW)
11258    }
11259}
11260
11261#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11262pub struct OnCommit {
11263    pub(crate) syntax: SyntaxNode,
11264}
11265impl OnCommit {
11266    #[inline]
11267    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
11268        support::child(&self.syntax)
11269    }
11270    #[inline]
11271    pub fn commit_token(&self) -> Option<SyntaxToken> {
11272        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
11273    }
11274    #[inline]
11275    pub fn on_token(&self) -> Option<SyntaxToken> {
11276        support::token(&self.syntax, SyntaxKind::ON_KW)
11277    }
11278}
11279
11280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11281pub struct OnConflictClause {
11282    pub(crate) syntax: SyntaxNode,
11283}
11284impl OnConflictClause {
11285    #[inline]
11286    pub fn conflict_action(&self) -> Option<ConflictAction> {
11287        support::child(&self.syntax)
11288    }
11289    #[inline]
11290    pub fn conflict_target(&self) -> Option<ConflictTarget> {
11291        support::child(&self.syntax)
11292    }
11293    #[inline]
11294    pub fn conflict_token(&self) -> Option<SyntaxToken> {
11295        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
11296    }
11297    #[inline]
11298    pub fn on_token(&self) -> Option<SyntaxToken> {
11299        support::token(&self.syntax, SyntaxKind::ON_KW)
11300    }
11301}
11302
11303#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11304pub struct OnDeleteAction {
11305    pub(crate) syntax: SyntaxNode,
11306}
11307impl OnDeleteAction {
11308    #[inline]
11309    pub fn ref_action(&self) -> Option<RefAction> {
11310        support::child(&self.syntax)
11311    }
11312    #[inline]
11313    pub fn delete_token(&self) -> Option<SyntaxToken> {
11314        support::token(&self.syntax, SyntaxKind::DELETE_KW)
11315    }
11316    #[inline]
11317    pub fn on_token(&self) -> Option<SyntaxToken> {
11318        support::token(&self.syntax, SyntaxKind::ON_KW)
11319    }
11320}
11321
11322#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11323pub struct OnTable {
11324    pub(crate) syntax: SyntaxNode,
11325}
11326impl OnTable {
11327    #[inline]
11328    pub fn path(&self) -> Option<Path> {
11329        support::child(&self.syntax)
11330    }
11331    #[inline]
11332    pub fn on_token(&self) -> Option<SyntaxToken> {
11333        support::token(&self.syntax, SyntaxKind::ON_KW)
11334    }
11335}
11336
11337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11338pub struct OnUpdateAction {
11339    pub(crate) syntax: SyntaxNode,
11340}
11341impl OnUpdateAction {
11342    #[inline]
11343    pub fn ref_action(&self) -> Option<RefAction> {
11344        support::child(&self.syntax)
11345    }
11346    #[inline]
11347    pub fn on_token(&self) -> Option<SyntaxToken> {
11348        support::token(&self.syntax, SyntaxKind::ON_KW)
11349    }
11350    #[inline]
11351    pub fn update_token(&self) -> Option<SyntaxToken> {
11352        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
11353    }
11354}
11355
11356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11357pub struct Op {
11358    pub(crate) syntax: SyntaxNode,
11359}
11360impl Op {
11361    #[inline]
11362    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
11363        support::child(&self.syntax)
11364    }
11365    #[inline]
11366    pub fn colon_colon(&self) -> Option<ColonColon> {
11367        support::child(&self.syntax)
11368    }
11369    #[inline]
11370    pub fn colon_eq(&self) -> Option<ColonEq> {
11371        support::child(&self.syntax)
11372    }
11373    #[inline]
11374    pub fn custom_op(&self) -> Option<CustomOp> {
11375        support::child(&self.syntax)
11376    }
11377    #[inline]
11378    pub fn fat_arrow(&self) -> Option<FatArrow> {
11379        support::child(&self.syntax)
11380    }
11381    #[inline]
11382    pub fn gteq(&self) -> Option<Gteq> {
11383        support::child(&self.syntax)
11384    }
11385    #[inline]
11386    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
11387        support::child(&self.syntax)
11388    }
11389    #[inline]
11390    pub fn is_json(&self) -> Option<IsJson> {
11391        support::child(&self.syntax)
11392    }
11393    #[inline]
11394    pub fn is_json_array(&self) -> Option<IsJsonArray> {
11395        support::child(&self.syntax)
11396    }
11397    #[inline]
11398    pub fn is_json_object(&self) -> Option<IsJsonObject> {
11399        support::child(&self.syntax)
11400    }
11401    #[inline]
11402    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
11403        support::child(&self.syntax)
11404    }
11405    #[inline]
11406    pub fn is_json_value(&self) -> Option<IsJsonValue> {
11407        support::child(&self.syntax)
11408    }
11409    #[inline]
11410    pub fn is_not(&self) -> Option<IsNot> {
11411        support::child(&self.syntax)
11412    }
11413    #[inline]
11414    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
11415        support::child(&self.syntax)
11416    }
11417    #[inline]
11418    pub fn is_not_json(&self) -> Option<IsNotJson> {
11419        support::child(&self.syntax)
11420    }
11421    #[inline]
11422    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
11423        support::child(&self.syntax)
11424    }
11425    #[inline]
11426    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
11427        support::child(&self.syntax)
11428    }
11429    #[inline]
11430    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
11431        support::child(&self.syntax)
11432    }
11433    #[inline]
11434    pub fn lteq(&self) -> Option<Lteq> {
11435        support::child(&self.syntax)
11436    }
11437    #[inline]
11438    pub fn neq(&self) -> Option<Neq> {
11439        support::child(&self.syntax)
11440    }
11441    #[inline]
11442    pub fn neqb(&self) -> Option<Neqb> {
11443        support::child(&self.syntax)
11444    }
11445    #[inline]
11446    pub fn not_ilike(&self) -> Option<NotIlike> {
11447        support::child(&self.syntax)
11448    }
11449    #[inline]
11450    pub fn not_in(&self) -> Option<NotIn> {
11451        support::child(&self.syntax)
11452    }
11453    #[inline]
11454    pub fn not_like(&self) -> Option<NotLike> {
11455        support::child(&self.syntax)
11456    }
11457    #[inline]
11458    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
11459        support::child(&self.syntax)
11460    }
11461    #[inline]
11462    pub fn operator_call(&self) -> Option<OperatorCall> {
11463        support::child(&self.syntax)
11464    }
11465    #[inline]
11466    pub fn similar_to(&self) -> Option<SimilarTo> {
11467        support::child(&self.syntax)
11468    }
11469    #[inline]
11470    pub fn percent_token(&self) -> Option<SyntaxToken> {
11471        support::token(&self.syntax, SyntaxKind::PERCENT)
11472    }
11473    #[inline]
11474    pub fn plus_token(&self) -> Option<SyntaxToken> {
11475        support::token(&self.syntax, SyntaxKind::PLUS)
11476    }
11477    #[inline]
11478    pub fn minus_token(&self) -> Option<SyntaxToken> {
11479        support::token(&self.syntax, SyntaxKind::MINUS)
11480    }
11481    #[inline]
11482    pub fn slash_token(&self) -> Option<SyntaxToken> {
11483        support::token(&self.syntax, SyntaxKind::SLASH)
11484    }
11485    #[inline]
11486    pub fn colon_token(&self) -> Option<SyntaxToken> {
11487        support::token(&self.syntax, SyntaxKind::COLON)
11488    }
11489    #[inline]
11490    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11491        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11492    }
11493    #[inline]
11494    pub fn eq_token(&self) -> Option<SyntaxToken> {
11495        support::token(&self.syntax, SyntaxKind::EQ)
11496    }
11497    #[inline]
11498    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11499        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11500    }
11501    #[inline]
11502    pub fn caret_token(&self) -> Option<SyntaxToken> {
11503        support::token(&self.syntax, SyntaxKind::CARET)
11504    }
11505    #[inline]
11506    pub fn and_token(&self) -> Option<SyntaxToken> {
11507        support::token(&self.syntax, SyntaxKind::AND_KW)
11508    }
11509    #[inline]
11510    pub fn collate_token(&self) -> Option<SyntaxToken> {
11511        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
11512    }
11513    #[inline]
11514    pub fn ilike_token(&self) -> Option<SyntaxToken> {
11515        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
11516    }
11517    #[inline]
11518    pub fn in_token(&self) -> Option<SyntaxToken> {
11519        support::token(&self.syntax, SyntaxKind::IN_KW)
11520    }
11521    #[inline]
11522    pub fn is_token(&self) -> Option<SyntaxToken> {
11523        support::token(&self.syntax, SyntaxKind::IS_KW)
11524    }
11525    #[inline]
11526    pub fn like_token(&self) -> Option<SyntaxToken> {
11527        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11528    }
11529    #[inline]
11530    pub fn or_token(&self) -> Option<SyntaxToken> {
11531        support::token(&self.syntax, SyntaxKind::OR_KW)
11532    }
11533    #[inline]
11534    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
11535        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
11536    }
11537    #[inline]
11538    pub fn value_token(&self) -> Option<SyntaxToken> {
11539        support::token(&self.syntax, SyntaxKind::VALUE_KW)
11540    }
11541}
11542
11543#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11544pub struct OpClassOption {
11545    pub(crate) syntax: SyntaxNode,
11546}
11547impl OpClassOption {
11548    #[inline]
11549    pub fn function_sig(&self) -> Option<FunctionSig> {
11550        support::child(&self.syntax)
11551    }
11552    #[inline]
11553    pub fn literal(&self) -> Option<Literal> {
11554        support::child(&self.syntax)
11555    }
11556    #[inline]
11557    pub fn op(&self) -> Option<Op> {
11558        support::child(&self.syntax)
11559    }
11560    #[inline]
11561    pub fn param_list(&self) -> Option<ParamList> {
11562        support::child(&self.syntax)
11563    }
11564    #[inline]
11565    pub fn path(&self) -> Option<Path> {
11566        support::child(&self.syntax)
11567    }
11568    #[inline]
11569    pub fn ty(&self) -> Option<Type> {
11570        support::child(&self.syntax)
11571    }
11572    #[inline]
11573    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11574        support::token(&self.syntax, SyntaxKind::L_PAREN)
11575    }
11576    #[inline]
11577    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11578        support::token(&self.syntax, SyntaxKind::R_PAREN)
11579    }
11580    #[inline]
11581    pub fn comma_token(&self) -> Option<SyntaxToken> {
11582        support::token(&self.syntax, SyntaxKind::COMMA)
11583    }
11584    #[inline]
11585    pub fn by_token(&self) -> Option<SyntaxToken> {
11586        support::token(&self.syntax, SyntaxKind::BY_KW)
11587    }
11588    #[inline]
11589    pub fn for_token(&self) -> Option<SyntaxToken> {
11590        support::token(&self.syntax, SyntaxKind::FOR_KW)
11591    }
11592    #[inline]
11593    pub fn function_token(&self) -> Option<SyntaxToken> {
11594        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
11595    }
11596    #[inline]
11597    pub fn operator_token(&self) -> Option<SyntaxToken> {
11598        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11599    }
11600    #[inline]
11601    pub fn order_token(&self) -> Option<SyntaxToken> {
11602        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11603    }
11604    #[inline]
11605    pub fn search_token(&self) -> Option<SyntaxToken> {
11606        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
11607    }
11608    #[inline]
11609    pub fn storage_token(&self) -> Option<SyntaxToken> {
11610        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11611    }
11612}
11613
11614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11615pub struct OpSig {
11616    pub(crate) syntax: SyntaxNode,
11617}
11618impl OpSig {
11619    #[inline]
11620    pub fn op(&self) -> Option<Op> {
11621        support::child(&self.syntax)
11622    }
11623    #[inline]
11624    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11625        support::token(&self.syntax, SyntaxKind::L_PAREN)
11626    }
11627    #[inline]
11628    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11629        support::token(&self.syntax, SyntaxKind::R_PAREN)
11630    }
11631    #[inline]
11632    pub fn comma_token(&self) -> Option<SyntaxToken> {
11633        support::token(&self.syntax, SyntaxKind::COMMA)
11634    }
11635    #[inline]
11636    pub fn none_token(&self) -> Option<SyntaxToken> {
11637        support::token(&self.syntax, SyntaxKind::NONE_KW)
11638    }
11639}
11640
11641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11642pub struct OpSigList {
11643    pub(crate) syntax: SyntaxNode,
11644}
11645impl OpSigList {
11646    #[inline]
11647    pub fn op_sigs(&self) -> AstChildren<OpSig> {
11648        support::children(&self.syntax)
11649    }
11650}
11651
11652#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11653pub struct OperatorCall {
11654    pub(crate) syntax: SyntaxNode,
11655}
11656impl OperatorCall {
11657    #[inline]
11658    pub fn op(&self) -> Option<Op> {
11659        support::child(&self.syntax)
11660    }
11661    #[inline]
11662    pub fn path(&self) -> Option<Path> {
11663        support::child(&self.syntax)
11664    }
11665    #[inline]
11666    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11667        support::token(&self.syntax, SyntaxKind::L_PAREN)
11668    }
11669    #[inline]
11670    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11671        support::token(&self.syntax, SyntaxKind::R_PAREN)
11672    }
11673    #[inline]
11674    pub fn dot_token(&self) -> Option<SyntaxToken> {
11675        support::token(&self.syntax, SyntaxKind::DOT)
11676    }
11677    #[inline]
11678    pub fn operator_token(&self) -> Option<SyntaxToken> {
11679        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11680    }
11681}
11682
11683#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11684pub struct OperatorClassOptionList {
11685    pub(crate) syntax: SyntaxNode,
11686}
11687impl OperatorClassOptionList {
11688    #[inline]
11689    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
11690        support::children(&self.syntax)
11691    }
11692}
11693
11694#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11695pub struct OptionItem {
11696    pub(crate) syntax: SyntaxNode,
11697}
11698impl OptionItem {
11699    #[inline]
11700    pub fn expr(&self) -> Option<Expr> {
11701        support::child(&self.syntax)
11702    }
11703    #[inline]
11704    pub fn default_token(&self) -> Option<SyntaxToken> {
11705        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11706    }
11707}
11708
11709#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11710pub struct OptionItemList {
11711    pub(crate) syntax: SyntaxNode,
11712}
11713impl OptionItemList {
11714    #[inline]
11715    pub fn option_items(&self) -> AstChildren<OptionItem> {
11716        support::children(&self.syntax)
11717    }
11718    #[inline]
11719    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11720        support::token(&self.syntax, SyntaxKind::L_PAREN)
11721    }
11722    #[inline]
11723    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11724        support::token(&self.syntax, SyntaxKind::R_PAREN)
11725    }
11726}
11727
11728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11729pub struct OrReplace {
11730    pub(crate) syntax: SyntaxNode,
11731}
11732impl OrReplace {
11733    #[inline]
11734    pub fn or_token(&self) -> Option<SyntaxToken> {
11735        support::token(&self.syntax, SyntaxKind::OR_KW)
11736    }
11737    #[inline]
11738    pub fn replace_token(&self) -> Option<SyntaxToken> {
11739        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
11740    }
11741}
11742
11743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11744pub struct OrderByClause {
11745    pub(crate) syntax: SyntaxNode,
11746}
11747impl OrderByClause {
11748    #[inline]
11749    pub fn sort_by_list(&self) -> Option<SortByList> {
11750        support::child(&self.syntax)
11751    }
11752    #[inline]
11753    pub fn by_token(&self) -> Option<SyntaxToken> {
11754        support::token(&self.syntax, SyntaxKind::BY_KW)
11755    }
11756    #[inline]
11757    pub fn order_token(&self) -> Option<SyntaxToken> {
11758        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11759    }
11760}
11761
11762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11763pub struct OverClause {
11764    pub(crate) syntax: SyntaxNode,
11765}
11766impl OverClause {
11767    #[inline]
11768    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11769        support::token(&self.syntax, SyntaxKind::L_PAREN)
11770    }
11771    #[inline]
11772    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11773        support::token(&self.syntax, SyntaxKind::R_PAREN)
11774    }
11775    #[inline]
11776    pub fn over_token(&self) -> Option<SyntaxToken> {
11777        support::token(&self.syntax, SyntaxKind::OVER_KW)
11778    }
11779}
11780
11781#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11782pub struct OverlayFn {
11783    pub(crate) syntax: SyntaxNode,
11784}
11785impl OverlayFn {
11786    #[inline]
11787    pub fn expr(&self) -> Option<Expr> {
11788        support::child(&self.syntax)
11789    }
11790    #[inline]
11791    pub fn exprs(&self) -> AstChildren<Expr> {
11792        support::children(&self.syntax)
11793    }
11794    #[inline]
11795    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11796        support::token(&self.syntax, SyntaxKind::L_PAREN)
11797    }
11798    #[inline]
11799    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11800        support::token(&self.syntax, SyntaxKind::R_PAREN)
11801    }
11802    #[inline]
11803    pub fn for_token(&self) -> Option<SyntaxToken> {
11804        support::token(&self.syntax, SyntaxKind::FOR_KW)
11805    }
11806    #[inline]
11807    pub fn from_token(&self) -> Option<SyntaxToken> {
11808        support::token(&self.syntax, SyntaxKind::FROM_KW)
11809    }
11810    #[inline]
11811    pub fn overlay_token(&self) -> Option<SyntaxToken> {
11812        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
11813    }
11814    #[inline]
11815    pub fn placing_token(&self) -> Option<SyntaxToken> {
11816        support::token(&self.syntax, SyntaxKind::PLACING_KW)
11817    }
11818}
11819
11820#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11821pub struct OwnedByRoles {
11822    pub(crate) syntax: SyntaxNode,
11823}
11824impl OwnedByRoles {
11825    #[inline]
11826    pub fn role_ref_list(&self) -> Option<RoleRefList> {
11827        support::child(&self.syntax)
11828    }
11829    #[inline]
11830    pub fn by_token(&self) -> Option<SyntaxToken> {
11831        support::token(&self.syntax, SyntaxKind::BY_KW)
11832    }
11833    #[inline]
11834    pub fn owned_token(&self) -> Option<SyntaxToken> {
11835        support::token(&self.syntax, SyntaxKind::OWNED_KW)
11836    }
11837}
11838
11839#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11840pub struct OwnerTo {
11841    pub(crate) syntax: SyntaxNode,
11842}
11843impl OwnerTo {
11844    #[inline]
11845    pub fn role_ref(&self) -> Option<RoleRef> {
11846        support::child(&self.syntax)
11847    }
11848    #[inline]
11849    pub fn owner_token(&self) -> Option<SyntaxToken> {
11850        support::token(&self.syntax, SyntaxKind::OWNER_KW)
11851    }
11852    #[inline]
11853    pub fn to_token(&self) -> Option<SyntaxToken> {
11854        support::token(&self.syntax, SyntaxKind::TO_KW)
11855    }
11856}
11857
11858#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11859pub struct ParallelFuncOption {
11860    pub(crate) syntax: SyntaxNode,
11861}
11862impl ParallelFuncOption {
11863    #[inline]
11864    pub fn ident_token(&self) -> Option<SyntaxToken> {
11865        support::token(&self.syntax, SyntaxKind::IDENT)
11866    }
11867    #[inline]
11868    pub fn parallel_token(&self) -> Option<SyntaxToken> {
11869        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
11870    }
11871}
11872
11873#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11874pub struct Param {
11875    pub(crate) syntax: SyntaxNode,
11876}
11877impl Param {
11878    #[inline]
11879    pub fn mode(&self) -> Option<ParamMode> {
11880        support::child(&self.syntax)
11881    }
11882    #[inline]
11883    pub fn name(&self) -> Option<Name> {
11884        support::child(&self.syntax)
11885    }
11886    #[inline]
11887    pub fn param_default(&self) -> Option<ParamDefault> {
11888        support::child(&self.syntax)
11889    }
11890    #[inline]
11891    pub fn ty(&self) -> Option<Type> {
11892        support::child(&self.syntax)
11893    }
11894}
11895
11896#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11897pub struct ParamDefault {
11898    pub(crate) syntax: SyntaxNode,
11899}
11900impl ParamDefault {
11901    #[inline]
11902    pub fn expr(&self) -> Option<Expr> {
11903        support::child(&self.syntax)
11904    }
11905    #[inline]
11906    pub fn eq_token(&self) -> Option<SyntaxToken> {
11907        support::token(&self.syntax, SyntaxKind::EQ)
11908    }
11909    #[inline]
11910    pub fn default_token(&self) -> Option<SyntaxToken> {
11911        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11912    }
11913}
11914
11915#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11916pub struct ParamIn {
11917    pub(crate) syntax: SyntaxNode,
11918}
11919impl ParamIn {
11920    #[inline]
11921    pub fn in_token(&self) -> Option<SyntaxToken> {
11922        support::token(&self.syntax, SyntaxKind::IN_KW)
11923    }
11924}
11925
11926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11927pub struct ParamInOut {
11928    pub(crate) syntax: SyntaxNode,
11929}
11930impl ParamInOut {
11931    #[inline]
11932    pub fn in_token(&self) -> Option<SyntaxToken> {
11933        support::token(&self.syntax, SyntaxKind::IN_KW)
11934    }
11935    #[inline]
11936    pub fn inout_token(&self) -> Option<SyntaxToken> {
11937        support::token(&self.syntax, SyntaxKind::INOUT_KW)
11938    }
11939    #[inline]
11940    pub fn out_token(&self) -> Option<SyntaxToken> {
11941        support::token(&self.syntax, SyntaxKind::OUT_KW)
11942    }
11943}
11944
11945#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11946pub struct ParamList {
11947    pub(crate) syntax: SyntaxNode,
11948}
11949impl ParamList {
11950    #[inline]
11951    pub fn params(&self) -> AstChildren<Param> {
11952        support::children(&self.syntax)
11953    }
11954}
11955
11956#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11957pub struct ParamOut {
11958    pub(crate) syntax: SyntaxNode,
11959}
11960impl ParamOut {
11961    #[inline]
11962    pub fn out_token(&self) -> Option<SyntaxToken> {
11963        support::token(&self.syntax, SyntaxKind::OUT_KW)
11964    }
11965}
11966
11967#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11968pub struct ParamVariadic {
11969    pub(crate) syntax: SyntaxNode,
11970}
11971impl ParamVariadic {
11972    #[inline]
11973    pub fn variadic_token(&self) -> Option<SyntaxToken> {
11974        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
11975    }
11976}
11977
11978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11979pub struct ParenExpr {
11980    pub(crate) syntax: SyntaxNode,
11981}
11982impl ParenExpr {
11983    #[inline]
11984    pub fn expr(&self) -> Option<Expr> {
11985        support::child(&self.syntax)
11986    }
11987    #[inline]
11988    pub fn from_item(&self) -> Option<FromItem> {
11989        support::child(&self.syntax)
11990    }
11991    #[inline]
11992    pub fn select(&self) -> Option<Select> {
11993        support::child(&self.syntax)
11994    }
11995    #[inline]
11996    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11997        support::token(&self.syntax, SyntaxKind::L_PAREN)
11998    }
11999    #[inline]
12000    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12001        support::token(&self.syntax, SyntaxKind::R_PAREN)
12002    }
12003}
12004
12005#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12006pub struct ParenSelect {
12007    pub(crate) syntax: SyntaxNode,
12008}
12009impl ParenSelect {
12010    #[inline]
12011    pub fn select(&self) -> Option<SelectVariant> {
12012        support::child(&self.syntax)
12013    }
12014    #[inline]
12015    pub fn with_clause(&self) -> Option<WithClause> {
12016        support::child(&self.syntax)
12017    }
12018    #[inline]
12019    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12020        support::token(&self.syntax, SyntaxKind::L_PAREN)
12021    }
12022    #[inline]
12023    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12024        support::token(&self.syntax, SyntaxKind::R_PAREN)
12025    }
12026}
12027
12028#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12029pub struct Partition {
12030    pub(crate) syntax: SyntaxNode,
12031}
12032impl Partition {
12033    #[inline]
12034    pub fn partition_type(&self) -> Option<PartitionType> {
12035        support::child(&self.syntax)
12036    }
12037    #[inline]
12038    pub fn path(&self) -> Option<Path> {
12039        support::child(&self.syntax)
12040    }
12041    #[inline]
12042    pub fn partition_token(&self) -> Option<SyntaxToken> {
12043        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
12044    }
12045}
12046
12047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12048pub struct PartitionBy {
12049    pub(crate) syntax: SyntaxNode,
12050}
12051impl PartitionBy {
12052    #[inline]
12053    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
12054        support::child(&self.syntax)
12055    }
12056    #[inline]
12057    pub fn by_token(&self) -> Option<SyntaxToken> {
12058        support::token(&self.syntax, SyntaxKind::BY_KW)
12059    }
12060    #[inline]
12061    pub fn ident_token(&self) -> Option<SyntaxToken> {
12062        support::token(&self.syntax, SyntaxKind::IDENT)
12063    }
12064    #[inline]
12065    pub fn partition_token(&self) -> Option<SyntaxToken> {
12066        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
12067    }
12068    #[inline]
12069    pub fn range_token(&self) -> Option<SyntaxToken> {
12070        support::token(&self.syntax, SyntaxKind::RANGE_KW)
12071    }
12072}
12073
12074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12075pub struct PartitionDefault {
12076    pub(crate) syntax: SyntaxNode,
12077}
12078impl PartitionDefault {
12079    #[inline]
12080    pub fn default_token(&self) -> Option<SyntaxToken> {
12081        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
12082    }
12083}
12084
12085#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12086pub struct PartitionForValuesFrom {
12087    pub(crate) syntax: SyntaxNode,
12088}
12089impl PartitionForValuesFrom {
12090    #[inline]
12091    pub fn exprs(&self) -> AstChildren<Expr> {
12092        support::children(&self.syntax)
12093    }
12094    #[inline]
12095    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12096        support::token(&self.syntax, SyntaxKind::L_PAREN)
12097    }
12098    #[inline]
12099    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12100        support::token(&self.syntax, SyntaxKind::R_PAREN)
12101    }
12102    #[inline]
12103    pub fn for_token(&self) -> Option<SyntaxToken> {
12104        support::token(&self.syntax, SyntaxKind::FOR_KW)
12105    }
12106    #[inline]
12107    pub fn from_token(&self) -> Option<SyntaxToken> {
12108        support::token(&self.syntax, SyntaxKind::FROM_KW)
12109    }
12110    #[inline]
12111    pub fn to_token(&self) -> Option<SyntaxToken> {
12112        support::token(&self.syntax, SyntaxKind::TO_KW)
12113    }
12114    #[inline]
12115    pub fn values_token(&self) -> Option<SyntaxToken> {
12116        support::token(&self.syntax, SyntaxKind::VALUES_KW)
12117    }
12118}
12119
12120#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12121pub struct PartitionForValuesIn {
12122    pub(crate) syntax: SyntaxNode,
12123}
12124impl PartitionForValuesIn {
12125    #[inline]
12126    pub fn exprs(&self) -> AstChildren<Expr> {
12127        support::children(&self.syntax)
12128    }
12129    #[inline]
12130    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12131        support::token(&self.syntax, SyntaxKind::L_PAREN)
12132    }
12133    #[inline]
12134    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12135        support::token(&self.syntax, SyntaxKind::R_PAREN)
12136    }
12137    #[inline]
12138    pub fn for_token(&self) -> Option<SyntaxToken> {
12139        support::token(&self.syntax, SyntaxKind::FOR_KW)
12140    }
12141    #[inline]
12142    pub fn in_token(&self) -> Option<SyntaxToken> {
12143        support::token(&self.syntax, SyntaxKind::IN_KW)
12144    }
12145    #[inline]
12146    pub fn values_token(&self) -> Option<SyntaxToken> {
12147        support::token(&self.syntax, SyntaxKind::VALUES_KW)
12148    }
12149}
12150
12151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12152pub struct PartitionForValuesWith {
12153    pub(crate) syntax: SyntaxNode,
12154}
12155impl PartitionForValuesWith {
12156    #[inline]
12157    pub fn literal(&self) -> Option<Literal> {
12158        support::child(&self.syntax)
12159    }
12160    #[inline]
12161    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12162        support::token(&self.syntax, SyntaxKind::L_PAREN)
12163    }
12164    #[inline]
12165    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12166        support::token(&self.syntax, SyntaxKind::R_PAREN)
12167    }
12168    #[inline]
12169    pub fn comma_token(&self) -> Option<SyntaxToken> {
12170        support::token(&self.syntax, SyntaxKind::COMMA)
12171    }
12172    #[inline]
12173    pub fn for_token(&self) -> Option<SyntaxToken> {
12174        support::token(&self.syntax, SyntaxKind::FOR_KW)
12175    }
12176    #[inline]
12177    pub fn ident_token(&self) -> Option<SyntaxToken> {
12178        support::token(&self.syntax, SyntaxKind::IDENT)
12179    }
12180    #[inline]
12181    pub fn values_token(&self) -> Option<SyntaxToken> {
12182        support::token(&self.syntax, SyntaxKind::VALUES_KW)
12183    }
12184    #[inline]
12185    pub fn with_token(&self) -> Option<SyntaxToken> {
12186        support::token(&self.syntax, SyntaxKind::WITH_KW)
12187    }
12188}
12189
12190#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12191pub struct PartitionItem {
12192    pub(crate) syntax: SyntaxNode,
12193}
12194impl PartitionItem {
12195    #[inline]
12196    pub fn collate(&self) -> Option<Collate> {
12197        support::child(&self.syntax)
12198    }
12199    #[inline]
12200    pub fn expr(&self) -> Option<Expr> {
12201        support::child(&self.syntax)
12202    }
12203}
12204
12205#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12206pub struct PartitionItemList {
12207    pub(crate) syntax: SyntaxNode,
12208}
12209impl PartitionItemList {
12210    #[inline]
12211    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
12212        support::children(&self.syntax)
12213    }
12214    #[inline]
12215    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12216        support::token(&self.syntax, SyntaxKind::L_PAREN)
12217    }
12218    #[inline]
12219    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12220        support::token(&self.syntax, SyntaxKind::R_PAREN)
12221    }
12222}
12223
12224#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12225pub struct PartitionList {
12226    pub(crate) syntax: SyntaxNode,
12227}
12228impl PartitionList {
12229    #[inline]
12230    pub fn partitions(&self) -> AstChildren<Partition> {
12231        support::children(&self.syntax)
12232    }
12233    #[inline]
12234    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12235        support::token(&self.syntax, SyntaxKind::L_PAREN)
12236    }
12237    #[inline]
12238    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12239        support::token(&self.syntax, SyntaxKind::R_PAREN)
12240    }
12241}
12242
12243#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12244pub struct PartitionOf {
12245    pub(crate) syntax: SyntaxNode,
12246}
12247impl PartitionOf {
12248    #[inline]
12249    pub fn path(&self) -> Option<Path> {
12250        support::child(&self.syntax)
12251    }
12252    #[inline]
12253    pub fn of_token(&self) -> Option<SyntaxToken> {
12254        support::token(&self.syntax, SyntaxKind::OF_KW)
12255    }
12256    #[inline]
12257    pub fn partition_token(&self) -> Option<SyntaxToken> {
12258        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
12259    }
12260}
12261
12262#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12263pub struct Path {
12264    pub(crate) syntax: SyntaxNode,
12265}
12266impl Path {
12267    #[inline]
12268    pub fn qualifier(&self) -> Option<Path> {
12269        support::child(&self.syntax)
12270    }
12271    #[inline]
12272    pub fn segment(&self) -> Option<PathSegment> {
12273        support::child(&self.syntax)
12274    }
12275    #[inline]
12276    pub fn dot_token(&self) -> Option<SyntaxToken> {
12277        support::token(&self.syntax, SyntaxKind::DOT)
12278    }
12279}
12280
12281#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12282pub struct PathSegment {
12283    pub(crate) syntax: SyntaxNode,
12284}
12285impl PathSegment {
12286    #[inline]
12287    pub fn name(&self) -> Option<Name> {
12288        support::child(&self.syntax)
12289    }
12290    #[inline]
12291    pub fn name_ref(&self) -> Option<NameRef> {
12292        support::child(&self.syntax)
12293    }
12294}
12295
12296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12297pub struct PathType {
12298    pub(crate) syntax: SyntaxNode,
12299}
12300impl PathType {
12301    #[inline]
12302    pub fn arg_list(&self) -> Option<ArgList> {
12303        support::child(&self.syntax)
12304    }
12305    #[inline]
12306    pub fn path(&self) -> Option<Path> {
12307        support::child(&self.syntax)
12308    }
12309}
12310
12311#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12312pub struct PercentType {
12313    pub(crate) syntax: SyntaxNode,
12314}
12315impl PercentType {
12316    #[inline]
12317    pub fn percent_token(&self) -> Option<SyntaxToken> {
12318        support::token(&self.syntax, SyntaxKind::PERCENT)
12319    }
12320    #[inline]
12321    pub fn type_token(&self) -> Option<SyntaxToken> {
12322        support::token(&self.syntax, SyntaxKind::TYPE_KW)
12323    }
12324}
12325
12326#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12327pub struct PercentTypeClause {
12328    pub(crate) syntax: SyntaxNode,
12329}
12330impl PercentTypeClause {
12331    #[inline]
12332    pub fn path(&self) -> Option<Path> {
12333        support::child(&self.syntax)
12334    }
12335    #[inline]
12336    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
12337        support::child(&self.syntax)
12338    }
12339}
12340
12341#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12342pub struct PositionFn {
12343    pub(crate) syntax: SyntaxNode,
12344}
12345impl PositionFn {
12346    #[inline]
12347    pub fn expr(&self) -> Option<Expr> {
12348        support::child(&self.syntax)
12349    }
12350    #[inline]
12351    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12352        support::token(&self.syntax, SyntaxKind::L_PAREN)
12353    }
12354    #[inline]
12355    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12356        support::token(&self.syntax, SyntaxKind::R_PAREN)
12357    }
12358    #[inline]
12359    pub fn in_token(&self) -> Option<SyntaxToken> {
12360        support::token(&self.syntax, SyntaxKind::IN_KW)
12361    }
12362    #[inline]
12363    pub fn position_token(&self) -> Option<SyntaxToken> {
12364        support::token(&self.syntax, SyntaxKind::POSITION_KW)
12365    }
12366}
12367
12368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12369pub struct PostfixExpr {
12370    pub(crate) syntax: SyntaxNode,
12371}
12372impl PostfixExpr {
12373    #[inline]
12374    pub fn expr(&self) -> Option<Expr> {
12375        support::child(&self.syntax)
12376    }
12377}
12378
12379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12380pub struct PrefixExpr {
12381    pub(crate) syntax: SyntaxNode,
12382}
12383impl PrefixExpr {
12384    #[inline]
12385    pub fn expr(&self) -> Option<Expr> {
12386        support::child(&self.syntax)
12387    }
12388}
12389
12390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12391pub struct Prepare {
12392    pub(crate) syntax: SyntaxNode,
12393}
12394impl Prepare {
12395    #[inline]
12396    pub fn name(&self) -> Option<Name> {
12397        support::child(&self.syntax)
12398    }
12399    #[inline]
12400    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
12401        support::child(&self.syntax)
12402    }
12403    #[inline]
12404    pub fn as_token(&self) -> Option<SyntaxToken> {
12405        support::token(&self.syntax, SyntaxKind::AS_KW)
12406    }
12407    #[inline]
12408    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12409        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12410    }
12411}
12412
12413#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12414pub struct PrepareTransaction {
12415    pub(crate) syntax: SyntaxNode,
12416}
12417impl PrepareTransaction {
12418    #[inline]
12419    pub fn literal(&self) -> Option<Literal> {
12420        support::child(&self.syntax)
12421    }
12422    #[inline]
12423    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12424        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12425    }
12426    #[inline]
12427    pub fn transaction_token(&self) -> Option<SyntaxToken> {
12428        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
12429    }
12430}
12431
12432#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12433pub struct PreserveRows {
12434    pub(crate) syntax: SyntaxNode,
12435}
12436impl PreserveRows {
12437    #[inline]
12438    pub fn preserve_token(&self) -> Option<SyntaxToken> {
12439        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
12440    }
12441    #[inline]
12442    pub fn rows_token(&self) -> Option<SyntaxToken> {
12443        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12444    }
12445}
12446
12447#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12448pub struct PrimaryKeyConstraint {
12449    pub(crate) syntax: SyntaxNode,
12450}
12451impl PrimaryKeyConstraint {
12452    #[inline]
12453    pub fn column_list(&self) -> Option<ColumnList> {
12454        support::child(&self.syntax)
12455    }
12456    #[inline]
12457    pub fn constraint_name(&self) -> Option<ConstraintName> {
12458        support::child(&self.syntax)
12459    }
12460    #[inline]
12461    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
12462        support::child(&self.syntax)
12463    }
12464    #[inline]
12465    pub fn using_index(&self) -> Option<UsingIndex> {
12466        support::child(&self.syntax)
12467    }
12468    #[inline]
12469    pub fn key_token(&self) -> Option<SyntaxToken> {
12470        support::token(&self.syntax, SyntaxKind::KEY_KW)
12471    }
12472    #[inline]
12473    pub fn primary_token(&self) -> Option<SyntaxToken> {
12474        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
12475    }
12476}
12477
12478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12479pub struct PrivilegeTarget {
12480    pub(crate) syntax: SyntaxNode,
12481}
12482impl PrivilegeTarget {
12483    #[inline]
12484    pub fn functions_token(&self) -> Option<SyntaxToken> {
12485        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
12486    }
12487    #[inline]
12488    pub fn large_token(&self) -> Option<SyntaxToken> {
12489        support::token(&self.syntax, SyntaxKind::LARGE_KW)
12490    }
12491    #[inline]
12492    pub fn objects_token(&self) -> Option<SyntaxToken> {
12493        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
12494    }
12495    #[inline]
12496    pub fn routines_token(&self) -> Option<SyntaxToken> {
12497        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
12498    }
12499    #[inline]
12500    pub fn schemas_token(&self) -> Option<SyntaxToken> {
12501        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
12502    }
12503    #[inline]
12504    pub fn sequences_token(&self) -> Option<SyntaxToken> {
12505        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
12506    }
12507    #[inline]
12508    pub fn tables_token(&self) -> Option<SyntaxToken> {
12509        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12510    }
12511    #[inline]
12512    pub fn types_token(&self) -> Option<SyntaxToken> {
12513        support::token(&self.syntax, SyntaxKind::TYPES_KW)
12514    }
12515}
12516
12517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12518pub struct Privileges {
12519    pub(crate) syntax: SyntaxNode,
12520}
12521impl Privileges {
12522    #[inline]
12523    pub fn column_list(&self) -> Option<ColumnList> {
12524        support::child(&self.syntax)
12525    }
12526    #[inline]
12527    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
12528        support::child(&self.syntax)
12529    }
12530    #[inline]
12531    pub fn all_token(&self) -> Option<SyntaxToken> {
12532        support::token(&self.syntax, SyntaxKind::ALL_KW)
12533    }
12534    #[inline]
12535    pub fn privileges_token(&self) -> Option<SyntaxToken> {
12536        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
12537    }
12538}
12539
12540#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12541pub struct PublicationObject {
12542    pub(crate) syntax: SyntaxNode,
12543}
12544impl PublicationObject {
12545    #[inline]
12546    pub fn column_list(&self) -> Option<ColumnList> {
12547        support::child(&self.syntax)
12548    }
12549    #[inline]
12550    pub fn name_ref(&self) -> Option<NameRef> {
12551        support::child(&self.syntax)
12552    }
12553    #[inline]
12554    pub fn path(&self) -> Option<Path> {
12555        support::child(&self.syntax)
12556    }
12557    #[inline]
12558    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
12559        support::child(&self.syntax)
12560    }
12561    #[inline]
12562    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12563        support::token(&self.syntax, SyntaxKind::L_PAREN)
12564    }
12565    #[inline]
12566    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12567        support::token(&self.syntax, SyntaxKind::R_PAREN)
12568    }
12569    #[inline]
12570    pub fn star_token(&self) -> Option<SyntaxToken> {
12571        support::token(&self.syntax, SyntaxKind::STAR)
12572    }
12573    #[inline]
12574    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
12575        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
12576    }
12577    #[inline]
12578    pub fn in_token(&self) -> Option<SyntaxToken> {
12579        support::token(&self.syntax, SyntaxKind::IN_KW)
12580    }
12581    #[inline]
12582    pub fn only_token(&self) -> Option<SyntaxToken> {
12583        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12584    }
12585    #[inline]
12586    pub fn schema_token(&self) -> Option<SyntaxToken> {
12587        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12588    }
12589    #[inline]
12590    pub fn table_token(&self) -> Option<SyntaxToken> {
12591        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12592    }
12593    #[inline]
12594    pub fn tables_token(&self) -> Option<SyntaxToken> {
12595        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12596    }
12597}
12598
12599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12600pub struct ReadCommitted {
12601    pub(crate) syntax: SyntaxNode,
12602}
12603impl ReadCommitted {
12604    #[inline]
12605    pub fn committed_token(&self) -> Option<SyntaxToken> {
12606        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
12607    }
12608    #[inline]
12609    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12610        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12611    }
12612    #[inline]
12613    pub fn level_token(&self) -> Option<SyntaxToken> {
12614        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12615    }
12616    #[inline]
12617    pub fn read_token(&self) -> Option<SyntaxToken> {
12618        support::token(&self.syntax, SyntaxKind::READ_KW)
12619    }
12620}
12621
12622#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12623pub struct ReadOnly {
12624    pub(crate) syntax: SyntaxNode,
12625}
12626impl ReadOnly {
12627    #[inline]
12628    pub fn only_token(&self) -> Option<SyntaxToken> {
12629        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12630    }
12631    #[inline]
12632    pub fn read_token(&self) -> Option<SyntaxToken> {
12633        support::token(&self.syntax, SyntaxKind::READ_KW)
12634    }
12635}
12636
12637#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12638pub struct ReadUncommitted {
12639    pub(crate) syntax: SyntaxNode,
12640}
12641impl ReadUncommitted {
12642    #[inline]
12643    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12644        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12645    }
12646    #[inline]
12647    pub fn level_token(&self) -> Option<SyntaxToken> {
12648        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12649    }
12650    #[inline]
12651    pub fn read_token(&self) -> Option<SyntaxToken> {
12652        support::token(&self.syntax, SyntaxKind::READ_KW)
12653    }
12654    #[inline]
12655    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
12656        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
12657    }
12658}
12659
12660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12661pub struct ReadWrite {
12662    pub(crate) syntax: SyntaxNode,
12663}
12664impl ReadWrite {
12665    #[inline]
12666    pub fn read_token(&self) -> Option<SyntaxToken> {
12667        support::token(&self.syntax, SyntaxKind::READ_KW)
12668    }
12669    #[inline]
12670    pub fn write_token(&self) -> Option<SyntaxToken> {
12671        support::token(&self.syntax, SyntaxKind::WRITE_KW)
12672    }
12673}
12674
12675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12676pub struct Reassign {
12677    pub(crate) syntax: SyntaxNode,
12678}
12679impl Reassign {
12680    #[inline]
12681    pub fn new_roles(&self) -> Option<RoleRefList> {
12682        support::child(&self.syntax)
12683    }
12684    #[inline]
12685    pub fn old_roles(&self) -> Option<RoleRefList> {
12686        support::child(&self.syntax)
12687    }
12688    #[inline]
12689    pub fn by_token(&self) -> Option<SyntaxToken> {
12690        support::token(&self.syntax, SyntaxKind::BY_KW)
12691    }
12692    #[inline]
12693    pub fn owned_token(&self) -> Option<SyntaxToken> {
12694        support::token(&self.syntax, SyntaxKind::OWNED_KW)
12695    }
12696    #[inline]
12697    pub fn reassign_token(&self) -> Option<SyntaxToken> {
12698        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
12699    }
12700    #[inline]
12701    pub fn to_token(&self) -> Option<SyntaxToken> {
12702        support::token(&self.syntax, SyntaxKind::TO_KW)
12703    }
12704}
12705
12706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12707pub struct ReferencesConstraint {
12708    pub(crate) syntax: SyntaxNode,
12709}
12710impl ReferencesConstraint {
12711    #[inline]
12712    pub fn column(&self) -> Option<NameRef> {
12713        support::child(&self.syntax)
12714    }
12715    #[inline]
12716    pub fn constraint_name(&self) -> Option<ConstraintName> {
12717        support::child(&self.syntax)
12718    }
12719    #[inline]
12720    pub fn match_type(&self) -> Option<MatchType> {
12721        support::child(&self.syntax)
12722    }
12723    #[inline]
12724    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
12725        support::child(&self.syntax)
12726    }
12727    #[inline]
12728    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
12729        support::child(&self.syntax)
12730    }
12731    #[inline]
12732    pub fn table(&self) -> Option<Path> {
12733        support::child(&self.syntax)
12734    }
12735    #[inline]
12736    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12737        support::token(&self.syntax, SyntaxKind::L_PAREN)
12738    }
12739    #[inline]
12740    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12741        support::token(&self.syntax, SyntaxKind::R_PAREN)
12742    }
12743    #[inline]
12744    pub fn references_token(&self) -> Option<SyntaxToken> {
12745        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
12746    }
12747}
12748
12749#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12750pub struct Referencing {
12751    pub(crate) syntax: SyntaxNode,
12752}
12753impl Referencing {
12754    #[inline]
12755    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
12756        support::children(&self.syntax)
12757    }
12758    #[inline]
12759    pub fn referencing_token(&self) -> Option<SyntaxToken> {
12760        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
12761    }
12762}
12763
12764#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12765pub struct ReferencingTable {
12766    pub(crate) syntax: SyntaxNode,
12767}
12768impl ReferencingTable {
12769    #[inline]
12770    pub fn name_ref(&self) -> Option<NameRef> {
12771        support::child(&self.syntax)
12772    }
12773    #[inline]
12774    pub fn as_token(&self) -> Option<SyntaxToken> {
12775        support::token(&self.syntax, SyntaxKind::AS_KW)
12776    }
12777    #[inline]
12778    pub fn new_token(&self) -> Option<SyntaxToken> {
12779        support::token(&self.syntax, SyntaxKind::NEW_KW)
12780    }
12781    #[inline]
12782    pub fn old_token(&self) -> Option<SyntaxToken> {
12783        support::token(&self.syntax, SyntaxKind::OLD_KW)
12784    }
12785    #[inline]
12786    pub fn table_token(&self) -> Option<SyntaxToken> {
12787        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12788    }
12789}
12790
12791#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12792pub struct Refresh {
12793    pub(crate) syntax: SyntaxNode,
12794}
12795impl Refresh {
12796    #[inline]
12797    pub fn path(&self) -> Option<Path> {
12798        support::child(&self.syntax)
12799    }
12800    #[inline]
12801    pub fn with_data(&self) -> Option<WithData> {
12802        support::child(&self.syntax)
12803    }
12804    #[inline]
12805    pub fn with_no_data(&self) -> Option<WithNoData> {
12806        support::child(&self.syntax)
12807    }
12808    #[inline]
12809    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
12810        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
12811    }
12812    #[inline]
12813    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12814        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12815    }
12816    #[inline]
12817    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12818        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12819    }
12820    #[inline]
12821    pub fn view_token(&self) -> Option<SyntaxToken> {
12822        support::token(&self.syntax, SyntaxKind::VIEW_KW)
12823    }
12824}
12825
12826#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12827pub struct RefreshCollationVersion {
12828    pub(crate) syntax: SyntaxNode,
12829}
12830impl RefreshCollationVersion {
12831    #[inline]
12832    pub fn collation_token(&self) -> Option<SyntaxToken> {
12833        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
12834    }
12835    #[inline]
12836    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12837        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12838    }
12839    #[inline]
12840    pub fn version_token(&self) -> Option<SyntaxToken> {
12841        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12842    }
12843}
12844
12845#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12846pub struct RefreshVersion {
12847    pub(crate) syntax: SyntaxNode,
12848}
12849impl RefreshVersion {
12850    #[inline]
12851    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12852        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12853    }
12854    #[inline]
12855    pub fn version_token(&self) -> Option<SyntaxToken> {
12856        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12857    }
12858}
12859
12860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12861pub struct Reindex {
12862    pub(crate) syntax: SyntaxNode,
12863}
12864impl Reindex {
12865    #[inline]
12866    pub fn path(&self) -> Option<Path> {
12867        support::child(&self.syntax)
12868    }
12869    #[inline]
12870    pub fn database_token(&self) -> Option<SyntaxToken> {
12871        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
12872    }
12873    #[inline]
12874    pub fn index_token(&self) -> Option<SyntaxToken> {
12875        support::token(&self.syntax, SyntaxKind::INDEX_KW)
12876    }
12877    #[inline]
12878    pub fn reindex_token(&self) -> Option<SyntaxToken> {
12879        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
12880    }
12881    #[inline]
12882    pub fn schema_token(&self) -> Option<SyntaxToken> {
12883        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12884    }
12885    #[inline]
12886    pub fn system_token(&self) -> Option<SyntaxToken> {
12887        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
12888    }
12889    #[inline]
12890    pub fn table_token(&self) -> Option<SyntaxToken> {
12891        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12892    }
12893}
12894
12895#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12896pub struct RelationName {
12897    pub(crate) syntax: SyntaxNode,
12898}
12899impl RelationName {
12900    #[inline]
12901    pub fn path(&self) -> Option<Path> {
12902        support::child(&self.syntax)
12903    }
12904    #[inline]
12905    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12906        support::token(&self.syntax, SyntaxKind::L_PAREN)
12907    }
12908    #[inline]
12909    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12910        support::token(&self.syntax, SyntaxKind::R_PAREN)
12911    }
12912    #[inline]
12913    pub fn star_token(&self) -> Option<SyntaxToken> {
12914        support::token(&self.syntax, SyntaxKind::STAR)
12915    }
12916    #[inline]
12917    pub fn only_token(&self) -> Option<SyntaxToken> {
12918        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12919    }
12920}
12921
12922#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12923pub struct ReleaseSavepoint {
12924    pub(crate) syntax: SyntaxNode,
12925}
12926impl ReleaseSavepoint {
12927    #[inline]
12928    pub fn name_ref(&self) -> Option<NameRef> {
12929        support::child(&self.syntax)
12930    }
12931    #[inline]
12932    pub fn release_token(&self) -> Option<SyntaxToken> {
12933        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
12934    }
12935    #[inline]
12936    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
12937        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
12938    }
12939}
12940
12941#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12942pub struct RenameColumn {
12943    pub(crate) syntax: SyntaxNode,
12944}
12945impl RenameColumn {
12946    #[inline]
12947    pub fn column_token(&self) -> Option<SyntaxToken> {
12948        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
12949    }
12950    #[inline]
12951    pub fn rename_token(&self) -> Option<SyntaxToken> {
12952        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12953    }
12954    #[inline]
12955    pub fn to_token(&self) -> Option<SyntaxToken> {
12956        support::token(&self.syntax, SyntaxKind::TO_KW)
12957    }
12958}
12959
12960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12961pub struct RenameConstraint {
12962    pub(crate) syntax: SyntaxNode,
12963}
12964impl RenameConstraint {
12965    #[inline]
12966    pub fn name(&self) -> Option<Name> {
12967        support::child(&self.syntax)
12968    }
12969    #[inline]
12970    pub fn name_ref(&self) -> Option<NameRef> {
12971        support::child(&self.syntax)
12972    }
12973    #[inline]
12974    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12975        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12976    }
12977    #[inline]
12978    pub fn rename_token(&self) -> Option<SyntaxToken> {
12979        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12980    }
12981    #[inline]
12982    pub fn to_token(&self) -> Option<SyntaxToken> {
12983        support::token(&self.syntax, SyntaxKind::TO_KW)
12984    }
12985}
12986
12987#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12988pub struct RenameTo {
12989    pub(crate) syntax: SyntaxNode,
12990}
12991impl RenameTo {
12992    #[inline]
12993    pub fn name(&self) -> Option<Name> {
12994        support::child(&self.syntax)
12995    }
12996    #[inline]
12997    pub fn rename_token(&self) -> Option<SyntaxToken> {
12998        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12999    }
13000    #[inline]
13001    pub fn to_token(&self) -> Option<SyntaxToken> {
13002        support::token(&self.syntax, SyntaxKind::TO_KW)
13003    }
13004}
13005
13006#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13007pub struct RepeatableClause {
13008    pub(crate) syntax: SyntaxNode,
13009}
13010impl RepeatableClause {
13011    #[inline]
13012    pub fn expr(&self) -> Option<Expr> {
13013        support::child(&self.syntax)
13014    }
13015    #[inline]
13016    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13017        support::token(&self.syntax, SyntaxKind::L_PAREN)
13018    }
13019    #[inline]
13020    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13021        support::token(&self.syntax, SyntaxKind::R_PAREN)
13022    }
13023    #[inline]
13024    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
13025        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
13026    }
13027}
13028
13029#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13030pub struct RepeatableRead {
13031    pub(crate) syntax: SyntaxNode,
13032}
13033impl RepeatableRead {
13034    #[inline]
13035    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13036        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13037    }
13038    #[inline]
13039    pub fn level_token(&self) -> Option<SyntaxToken> {
13040        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13041    }
13042    #[inline]
13043    pub fn read_token(&self) -> Option<SyntaxToken> {
13044        support::token(&self.syntax, SyntaxKind::READ_KW)
13045    }
13046    #[inline]
13047    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
13048        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
13049    }
13050}
13051
13052#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13053pub struct ReplicaIdentity {
13054    pub(crate) syntax: SyntaxNode,
13055}
13056impl ReplicaIdentity {
13057    #[inline]
13058    pub fn identity_token(&self) -> Option<SyntaxToken> {
13059        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
13060    }
13061    #[inline]
13062    pub fn replica_token(&self) -> Option<SyntaxToken> {
13063        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
13064    }
13065}
13066
13067#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13068pub struct Reset {
13069    pub(crate) syntax: SyntaxNode,
13070}
13071impl Reset {
13072    #[inline]
13073    pub fn name_ref(&self) -> Option<NameRef> {
13074        support::child(&self.syntax)
13075    }
13076    #[inline]
13077    pub fn all_token(&self) -> Option<SyntaxToken> {
13078        support::token(&self.syntax, SyntaxKind::ALL_KW)
13079    }
13080    #[inline]
13081    pub fn reset_token(&self) -> Option<SyntaxToken> {
13082        support::token(&self.syntax, SyntaxKind::RESET_KW)
13083    }
13084}
13085
13086#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13087pub struct ResetConfigParam {
13088    pub(crate) syntax: SyntaxNode,
13089}
13090impl ResetConfigParam {
13091    #[inline]
13092    pub fn path(&self) -> Option<Path> {
13093        support::child(&self.syntax)
13094    }
13095    #[inline]
13096    pub fn all_token(&self) -> Option<SyntaxToken> {
13097        support::token(&self.syntax, SyntaxKind::ALL_KW)
13098    }
13099    #[inline]
13100    pub fn reset_token(&self) -> Option<SyntaxToken> {
13101        support::token(&self.syntax, SyntaxKind::RESET_KW)
13102    }
13103}
13104
13105#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13106pub struct ResetFuncOption {
13107    pub(crate) syntax: SyntaxNode,
13108}
13109impl ResetFuncOption {
13110    #[inline]
13111    pub fn name_ref(&self) -> Option<NameRef> {
13112        support::child(&self.syntax)
13113    }
13114    #[inline]
13115    pub fn reset_token(&self) -> Option<SyntaxToken> {
13116        support::token(&self.syntax, SyntaxKind::RESET_KW)
13117    }
13118}
13119
13120#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13121pub struct ResetOptions {
13122    pub(crate) syntax: SyntaxNode,
13123}
13124impl ResetOptions {
13125    #[inline]
13126    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13127        support::token(&self.syntax, SyntaxKind::L_PAREN)
13128    }
13129    #[inline]
13130    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13131        support::token(&self.syntax, SyntaxKind::R_PAREN)
13132    }
13133    #[inline]
13134    pub fn reset_token(&self) -> Option<SyntaxToken> {
13135        support::token(&self.syntax, SyntaxKind::RESET_KW)
13136    }
13137}
13138
13139#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13140pub struct ResetSessionAuth {
13141    pub(crate) syntax: SyntaxNode,
13142}
13143impl ResetSessionAuth {
13144    #[inline]
13145    pub fn authorization_token(&self) -> Option<SyntaxToken> {
13146        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
13147    }
13148    #[inline]
13149    pub fn reset_token(&self) -> Option<SyntaxToken> {
13150        support::token(&self.syntax, SyntaxKind::RESET_KW)
13151    }
13152    #[inline]
13153    pub fn session_token(&self) -> Option<SyntaxToken> {
13154        support::token(&self.syntax, SyntaxKind::SESSION_KW)
13155    }
13156}
13157
13158#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13159pub struct Restart {
13160    pub(crate) syntax: SyntaxNode,
13161}
13162impl Restart {
13163    #[inline]
13164    pub fn restart_token(&self) -> Option<SyntaxToken> {
13165        support::token(&self.syntax, SyntaxKind::RESTART_KW)
13166    }
13167    #[inline]
13168    pub fn with_token(&self) -> Option<SyntaxToken> {
13169        support::token(&self.syntax, SyntaxKind::WITH_KW)
13170    }
13171}
13172
13173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13174pub struct Restrict {
13175    pub(crate) syntax: SyntaxNode,
13176}
13177impl Restrict {
13178    #[inline]
13179    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13180        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13181    }
13182}
13183
13184#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13185pub struct RetType {
13186    pub(crate) syntax: SyntaxNode,
13187}
13188impl RetType {
13189    #[inline]
13190    pub fn ty(&self) -> Option<Type> {
13191        support::child(&self.syntax)
13192    }
13193    #[inline]
13194    pub fn returns_token(&self) -> Option<SyntaxToken> {
13195        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
13196    }
13197}
13198
13199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13200pub struct ReturnFuncOption {
13201    pub(crate) syntax: SyntaxNode,
13202}
13203impl ReturnFuncOption {
13204    #[inline]
13205    pub fn expr(&self) -> Option<Expr> {
13206        support::child(&self.syntax)
13207    }
13208    #[inline]
13209    pub fn return_token(&self) -> Option<SyntaxToken> {
13210        support::token(&self.syntax, SyntaxKind::RETURN_KW)
13211    }
13212}
13213
13214#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13215pub struct ReturningClause {
13216    pub(crate) syntax: SyntaxNode,
13217}
13218impl ReturningClause {
13219    #[inline]
13220    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
13221        support::child(&self.syntax)
13222    }
13223    #[inline]
13224    pub fn target_list(&self) -> Option<TargetList> {
13225        support::child(&self.syntax)
13226    }
13227    #[inline]
13228    pub fn returning_token(&self) -> Option<SyntaxToken> {
13229        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
13230    }
13231}
13232
13233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13234pub struct ReturningOption {
13235    pub(crate) syntax: SyntaxNode,
13236}
13237impl ReturningOption {
13238    #[inline]
13239    pub fn name(&self) -> Option<Name> {
13240        support::child(&self.syntax)
13241    }
13242    #[inline]
13243    pub fn as_token(&self) -> Option<SyntaxToken> {
13244        support::token(&self.syntax, SyntaxKind::AS_KW)
13245    }
13246    #[inline]
13247    pub fn new_token(&self) -> Option<SyntaxToken> {
13248        support::token(&self.syntax, SyntaxKind::NEW_KW)
13249    }
13250    #[inline]
13251    pub fn old_token(&self) -> Option<SyntaxToken> {
13252        support::token(&self.syntax, SyntaxKind::OLD_KW)
13253    }
13254}
13255
13256#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13257pub struct ReturningOptionList {
13258    pub(crate) syntax: SyntaxNode,
13259}
13260impl ReturningOptionList {
13261    #[inline]
13262    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
13263        support::children(&self.syntax)
13264    }
13265    #[inline]
13266    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13267        support::token(&self.syntax, SyntaxKind::L_PAREN)
13268    }
13269    #[inline]
13270    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13271        support::token(&self.syntax, SyntaxKind::R_PAREN)
13272    }
13273    #[inline]
13274    pub fn with_token(&self) -> Option<SyntaxToken> {
13275        support::token(&self.syntax, SyntaxKind::WITH_KW)
13276    }
13277}
13278
13279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13280pub struct Revoke {
13281    pub(crate) syntax: SyntaxNode,
13282}
13283impl Revoke {
13284    #[inline]
13285    pub fn name_refs(&self) -> AstChildren<NameRef> {
13286        support::children(&self.syntax)
13287    }
13288    #[inline]
13289    pub fn paths(&self) -> AstChildren<Path> {
13290        support::children(&self.syntax)
13291    }
13292    #[inline]
13293    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
13294        support::child(&self.syntax)
13295    }
13296    #[inline]
13297    pub fn role_ref(&self) -> Option<RoleRef> {
13298        support::child(&self.syntax)
13299    }
13300    #[inline]
13301    pub fn role_ref_list(&self) -> Option<RoleRefList> {
13302        support::child(&self.syntax)
13303    }
13304    #[inline]
13305    pub fn all_token(&self) -> Option<SyntaxToken> {
13306        support::token(&self.syntax, SyntaxKind::ALL_KW)
13307    }
13308    #[inline]
13309    pub fn by_token(&self) -> Option<SyntaxToken> {
13310        support::token(&self.syntax, SyntaxKind::BY_KW)
13311    }
13312    #[inline]
13313    pub fn cascade_token(&self) -> Option<SyntaxToken> {
13314        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
13315    }
13316    #[inline]
13317    pub fn for_token(&self) -> Option<SyntaxToken> {
13318        support::token(&self.syntax, SyntaxKind::FOR_KW)
13319    }
13320    #[inline]
13321    pub fn from_token(&self) -> Option<SyntaxToken> {
13322        support::token(&self.syntax, SyntaxKind::FROM_KW)
13323    }
13324    #[inline]
13325    pub fn grant_token(&self) -> Option<SyntaxToken> {
13326        support::token(&self.syntax, SyntaxKind::GRANT_KW)
13327    }
13328    #[inline]
13329    pub fn granted_token(&self) -> Option<SyntaxToken> {
13330        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
13331    }
13332    #[inline]
13333    pub fn in_token(&self) -> Option<SyntaxToken> {
13334        support::token(&self.syntax, SyntaxKind::IN_KW)
13335    }
13336    #[inline]
13337    pub fn on_token(&self) -> Option<SyntaxToken> {
13338        support::token(&self.syntax, SyntaxKind::ON_KW)
13339    }
13340    #[inline]
13341    pub fn option_token(&self) -> Option<SyntaxToken> {
13342        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13343    }
13344    #[inline]
13345    pub fn privileges_token(&self) -> Option<SyntaxToken> {
13346        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
13347    }
13348    #[inline]
13349    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13350        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13351    }
13352    #[inline]
13353    pub fn revoke_token(&self) -> Option<SyntaxToken> {
13354        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
13355    }
13356    #[inline]
13357    pub fn schema_token(&self) -> Option<SyntaxToken> {
13358        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13359    }
13360    #[inline]
13361    pub fn table_token(&self) -> Option<SyntaxToken> {
13362        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13363    }
13364    #[inline]
13365    pub fn tables_token(&self) -> Option<SyntaxToken> {
13366        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13367    }
13368}
13369
13370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13371pub struct RevokeCommand {
13372    pub(crate) syntax: SyntaxNode,
13373}
13374impl RevokeCommand {
13375    #[inline]
13376    pub fn role_ref(&self) -> Option<RoleRef> {
13377        support::child(&self.syntax)
13378    }
13379    #[inline]
13380    pub fn all_token(&self) -> Option<SyntaxToken> {
13381        support::token(&self.syntax, SyntaxKind::ALL_KW)
13382    }
13383    #[inline]
13384    pub fn alter_token(&self) -> Option<SyntaxToken> {
13385        support::token(&self.syntax, SyntaxKind::ALTER_KW)
13386    }
13387    #[inline]
13388    pub fn create_token(&self) -> Option<SyntaxToken> {
13389        support::token(&self.syntax, SyntaxKind::CREATE_KW)
13390    }
13391    #[inline]
13392    pub fn delete_token(&self) -> Option<SyntaxToken> {
13393        support::token(&self.syntax, SyntaxKind::DELETE_KW)
13394    }
13395    #[inline]
13396    pub fn execute_token(&self) -> Option<SyntaxToken> {
13397        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
13398    }
13399    #[inline]
13400    pub fn ident_token(&self) -> Option<SyntaxToken> {
13401        support::token(&self.syntax, SyntaxKind::IDENT)
13402    }
13403    #[inline]
13404    pub fn insert_token(&self) -> Option<SyntaxToken> {
13405        support::token(&self.syntax, SyntaxKind::INSERT_KW)
13406    }
13407    #[inline]
13408    pub fn references_token(&self) -> Option<SyntaxToken> {
13409        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
13410    }
13411    #[inline]
13412    pub fn select_token(&self) -> Option<SyntaxToken> {
13413        support::token(&self.syntax, SyntaxKind::SELECT_KW)
13414    }
13415    #[inline]
13416    pub fn system_token(&self) -> Option<SyntaxToken> {
13417        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
13418    }
13419    #[inline]
13420    pub fn temp_token(&self) -> Option<SyntaxToken> {
13421        support::token(&self.syntax, SyntaxKind::TEMP_KW)
13422    }
13423    #[inline]
13424    pub fn temporary_token(&self) -> Option<SyntaxToken> {
13425        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
13426    }
13427    #[inline]
13428    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13429        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13430    }
13431    #[inline]
13432    pub fn truncate_token(&self) -> Option<SyntaxToken> {
13433        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
13434    }
13435    #[inline]
13436    pub fn update_token(&self) -> Option<SyntaxToken> {
13437        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
13438    }
13439}
13440
13441#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13442pub struct RevokeCommandList {
13443    pub(crate) syntax: SyntaxNode,
13444}
13445impl RevokeCommandList {
13446    #[inline]
13447    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
13448        support::children(&self.syntax)
13449    }
13450}
13451
13452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13453pub struct RevokeDefaultPrivileges {
13454    pub(crate) syntax: SyntaxNode,
13455}
13456impl RevokeDefaultPrivileges {
13457    #[inline]
13458    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
13459        support::child(&self.syntax)
13460    }
13461    #[inline]
13462    pub fn privileges(&self) -> Option<Privileges> {
13463        support::child(&self.syntax)
13464    }
13465    #[inline]
13466    pub fn role_ref_list(&self) -> Option<RoleRefList> {
13467        support::child(&self.syntax)
13468    }
13469    #[inline]
13470    pub fn cascade_token(&self) -> Option<SyntaxToken> {
13471        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
13472    }
13473    #[inline]
13474    pub fn for_token(&self) -> Option<SyntaxToken> {
13475        support::token(&self.syntax, SyntaxKind::FOR_KW)
13476    }
13477    #[inline]
13478    pub fn from_token(&self) -> Option<SyntaxToken> {
13479        support::token(&self.syntax, SyntaxKind::FROM_KW)
13480    }
13481    #[inline]
13482    pub fn grant_token(&self) -> Option<SyntaxToken> {
13483        support::token(&self.syntax, SyntaxKind::GRANT_KW)
13484    }
13485    #[inline]
13486    pub fn on_token(&self) -> Option<SyntaxToken> {
13487        support::token(&self.syntax, SyntaxKind::ON_KW)
13488    }
13489    #[inline]
13490    pub fn option_token(&self) -> Option<SyntaxToken> {
13491        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13492    }
13493    #[inline]
13494    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13495        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13496    }
13497    #[inline]
13498    pub fn revoke_token(&self) -> Option<SyntaxToken> {
13499        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
13500    }
13501}
13502
13503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13504pub struct Role {
13505    pub(crate) syntax: SyntaxNode,
13506}
13507impl Role {
13508    #[inline]
13509    pub fn name(&self) -> Option<Name> {
13510        support::child(&self.syntax)
13511    }
13512    #[inline]
13513    pub fn current_role_token(&self) -> Option<SyntaxToken> {
13514        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
13515    }
13516    #[inline]
13517    pub fn current_user_token(&self) -> Option<SyntaxToken> {
13518        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
13519    }
13520    #[inline]
13521    pub fn group_token(&self) -> Option<SyntaxToken> {
13522        support::token(&self.syntax, SyntaxKind::GROUP_KW)
13523    }
13524    #[inline]
13525    pub fn session_user_token(&self) -> Option<SyntaxToken> {
13526        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
13527    }
13528}
13529
13530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13531pub struct RoleOption {
13532    pub(crate) syntax: SyntaxNode,
13533}
13534impl RoleOption {
13535    #[inline]
13536    pub fn inherit_token(&self) -> Option<SyntaxToken> {
13537        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
13538    }
13539}
13540
13541#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13542pub struct RoleOptionList {
13543    pub(crate) syntax: SyntaxNode,
13544}
13545impl RoleOptionList {
13546    #[inline]
13547    pub fn role_options(&self) -> AstChildren<RoleOption> {
13548        support::children(&self.syntax)
13549    }
13550    #[inline]
13551    pub fn with_token(&self) -> Option<SyntaxToken> {
13552        support::token(&self.syntax, SyntaxKind::WITH_KW)
13553    }
13554}
13555
13556#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13557pub struct RoleRef {
13558    pub(crate) syntax: SyntaxNode,
13559}
13560impl RoleRef {
13561    #[inline]
13562    pub fn name_ref(&self) -> Option<NameRef> {
13563        support::child(&self.syntax)
13564    }
13565    #[inline]
13566    pub fn current_role_token(&self) -> Option<SyntaxToken> {
13567        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
13568    }
13569    #[inline]
13570    pub fn current_user_token(&self) -> Option<SyntaxToken> {
13571        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
13572    }
13573    #[inline]
13574    pub fn group_token(&self) -> Option<SyntaxToken> {
13575        support::token(&self.syntax, SyntaxKind::GROUP_KW)
13576    }
13577    #[inline]
13578    pub fn session_user_token(&self) -> Option<SyntaxToken> {
13579        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
13580    }
13581}
13582
13583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13584pub struct RoleRefList {
13585    pub(crate) syntax: SyntaxNode,
13586}
13587impl RoleRefList {
13588    #[inline]
13589    pub fn role_refs(&self) -> AstChildren<RoleRef> {
13590        support::children(&self.syntax)
13591    }
13592}
13593
13594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13595pub struct Rollback {
13596    pub(crate) syntax: SyntaxNode,
13597}
13598impl Rollback {
13599    #[inline]
13600    pub fn literal(&self) -> Option<Literal> {
13601        support::child(&self.syntax)
13602    }
13603    #[inline]
13604    pub fn name_ref(&self) -> Option<NameRef> {
13605        support::child(&self.syntax)
13606    }
13607    #[inline]
13608    pub fn abort_token(&self) -> Option<SyntaxToken> {
13609        support::token(&self.syntax, SyntaxKind::ABORT_KW)
13610    }
13611    #[inline]
13612    pub fn and_token(&self) -> Option<SyntaxToken> {
13613        support::token(&self.syntax, SyntaxKind::AND_KW)
13614    }
13615    #[inline]
13616    pub fn chain_token(&self) -> Option<SyntaxToken> {
13617        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
13618    }
13619    #[inline]
13620    pub fn no_token(&self) -> Option<SyntaxToken> {
13621        support::token(&self.syntax, SyntaxKind::NO_KW)
13622    }
13623    #[inline]
13624    pub fn prepared_token(&self) -> Option<SyntaxToken> {
13625        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
13626    }
13627    #[inline]
13628    pub fn rollback_token(&self) -> Option<SyntaxToken> {
13629        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
13630    }
13631    #[inline]
13632    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13633        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13634    }
13635    #[inline]
13636    pub fn to_token(&self) -> Option<SyntaxToken> {
13637        support::token(&self.syntax, SyntaxKind::TO_KW)
13638    }
13639    #[inline]
13640    pub fn transaction_token(&self) -> Option<SyntaxToken> {
13641        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
13642    }
13643    #[inline]
13644    pub fn work_token(&self) -> Option<SyntaxToken> {
13645        support::token(&self.syntax, SyntaxKind::WORK_KW)
13646    }
13647}
13648
13649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13650pub struct Row {
13651    pub(crate) syntax: SyntaxNode,
13652}
13653impl Row {
13654    #[inline]
13655    pub fn exprs(&self) -> AstChildren<Expr> {
13656        support::children(&self.syntax)
13657    }
13658}
13659
13660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13661pub struct RowList {
13662    pub(crate) syntax: SyntaxNode,
13663}
13664impl RowList {
13665    #[inline]
13666    pub fn rows(&self) -> AstChildren<Row> {
13667        support::children(&self.syntax)
13668    }
13669}
13670
13671#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13672pub struct RowsFuncOption {
13673    pub(crate) syntax: SyntaxNode,
13674}
13675impl RowsFuncOption {
13676    #[inline]
13677    pub fn rows_token(&self) -> Option<SyntaxToken> {
13678        support::token(&self.syntax, SyntaxKind::ROWS_KW)
13679    }
13680}
13681
13682#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13683pub struct Savepoint {
13684    pub(crate) syntax: SyntaxNode,
13685}
13686impl Savepoint {
13687    #[inline]
13688    pub fn name(&self) -> Option<Name> {
13689        support::child(&self.syntax)
13690    }
13691    #[inline]
13692    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13693        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13694    }
13695}
13696
13697#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13698pub struct SecurityFuncOption {
13699    pub(crate) syntax: SyntaxNode,
13700}
13701impl SecurityFuncOption {
13702    #[inline]
13703    pub fn definer_token(&self) -> Option<SyntaxToken> {
13704        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
13705    }
13706    #[inline]
13707    pub fn invoker_token(&self) -> Option<SyntaxToken> {
13708        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
13709    }
13710    #[inline]
13711    pub fn security_token(&self) -> Option<SyntaxToken> {
13712        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13713    }
13714}
13715
13716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13717pub struct SecurityLabel {
13718    pub(crate) syntax: SyntaxNode,
13719}
13720impl SecurityLabel {
13721    #[inline]
13722    pub fn aggregate(&self) -> Option<Aggregate> {
13723        support::child(&self.syntax)
13724    }
13725    #[inline]
13726    pub fn for_provider(&self) -> Option<ForProvider> {
13727        support::child(&self.syntax)
13728    }
13729    #[inline]
13730    pub fn function_sig(&self) -> Option<FunctionSig> {
13731        support::child(&self.syntax)
13732    }
13733    #[inline]
13734    pub fn literal(&self) -> Option<Literal> {
13735        support::child(&self.syntax)
13736    }
13737    #[inline]
13738    pub fn path(&self) -> Option<Path> {
13739        support::child(&self.syntax)
13740    }
13741    #[inline]
13742    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
13743        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
13744    }
13745    #[inline]
13746    pub fn column_token(&self) -> Option<SyntaxToken> {
13747        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
13748    }
13749    #[inline]
13750    pub fn database_token(&self) -> Option<SyntaxToken> {
13751        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
13752    }
13753    #[inline]
13754    pub fn domain_token(&self) -> Option<SyntaxToken> {
13755        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
13756    }
13757    #[inline]
13758    pub fn event_token(&self) -> Option<SyntaxToken> {
13759        support::token(&self.syntax, SyntaxKind::EVENT_KW)
13760    }
13761    #[inline]
13762    pub fn foreign_token(&self) -> Option<SyntaxToken> {
13763        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
13764    }
13765    #[inline]
13766    pub fn function_token(&self) -> Option<SyntaxToken> {
13767        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
13768    }
13769    #[inline]
13770    pub fn is_token(&self) -> Option<SyntaxToken> {
13771        support::token(&self.syntax, SyntaxKind::IS_KW)
13772    }
13773    #[inline]
13774    pub fn label_token(&self) -> Option<SyntaxToken> {
13775        support::token(&self.syntax, SyntaxKind::LABEL_KW)
13776    }
13777    #[inline]
13778    pub fn language_token(&self) -> Option<SyntaxToken> {
13779        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
13780    }
13781    #[inline]
13782    pub fn large_token(&self) -> Option<SyntaxToken> {
13783        support::token(&self.syntax, SyntaxKind::LARGE_KW)
13784    }
13785    #[inline]
13786    pub fn materialized_token(&self) -> Option<SyntaxToken> {
13787        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
13788    }
13789    #[inline]
13790    pub fn null_token(&self) -> Option<SyntaxToken> {
13791        support::token(&self.syntax, SyntaxKind::NULL_KW)
13792    }
13793    #[inline]
13794    pub fn object_token(&self) -> Option<SyntaxToken> {
13795        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
13796    }
13797    #[inline]
13798    pub fn on_token(&self) -> Option<SyntaxToken> {
13799        support::token(&self.syntax, SyntaxKind::ON_KW)
13800    }
13801    #[inline]
13802    pub fn procedural_token(&self) -> Option<SyntaxToken> {
13803        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
13804    }
13805    #[inline]
13806    pub fn procedure_token(&self) -> Option<SyntaxToken> {
13807        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
13808    }
13809    #[inline]
13810    pub fn publication_token(&self) -> Option<SyntaxToken> {
13811        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
13812    }
13813    #[inline]
13814    pub fn role_token(&self) -> Option<SyntaxToken> {
13815        support::token(&self.syntax, SyntaxKind::ROLE_KW)
13816    }
13817    #[inline]
13818    pub fn routine_token(&self) -> Option<SyntaxToken> {
13819        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
13820    }
13821    #[inline]
13822    pub fn schema_token(&self) -> Option<SyntaxToken> {
13823        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13824    }
13825    #[inline]
13826    pub fn security_token(&self) -> Option<SyntaxToken> {
13827        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13828    }
13829    #[inline]
13830    pub fn sequence_token(&self) -> Option<SyntaxToken> {
13831        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
13832    }
13833    #[inline]
13834    pub fn subscription_token(&self) -> Option<SyntaxToken> {
13835        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
13836    }
13837    #[inline]
13838    pub fn table_token(&self) -> Option<SyntaxToken> {
13839        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13840    }
13841    #[inline]
13842    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
13843        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
13844    }
13845    #[inline]
13846    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13847        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13848    }
13849    #[inline]
13850    pub fn type_token(&self) -> Option<SyntaxToken> {
13851        support::token(&self.syntax, SyntaxKind::TYPE_KW)
13852    }
13853    #[inline]
13854    pub fn view_token(&self) -> Option<SyntaxToken> {
13855        support::token(&self.syntax, SyntaxKind::VIEW_KW)
13856    }
13857}
13858
13859#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13860pub struct Select {
13861    pub(crate) syntax: SyntaxNode,
13862}
13863impl Select {
13864    #[inline]
13865    pub fn fetch_clause(&self) -> Option<FetchClause> {
13866        support::child(&self.syntax)
13867    }
13868    #[inline]
13869    pub fn filter_clause(&self) -> Option<FilterClause> {
13870        support::child(&self.syntax)
13871    }
13872    #[inline]
13873    pub fn from_clause(&self) -> Option<FromClause> {
13874        support::child(&self.syntax)
13875    }
13876    #[inline]
13877    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13878        support::child(&self.syntax)
13879    }
13880    #[inline]
13881    pub fn having_clause(&self) -> Option<HavingClause> {
13882        support::child(&self.syntax)
13883    }
13884    #[inline]
13885    pub fn limit_clause(&self) -> Option<LimitClause> {
13886        support::child(&self.syntax)
13887    }
13888    #[inline]
13889    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
13890        support::children(&self.syntax)
13891    }
13892    #[inline]
13893    pub fn offset_clause(&self) -> Option<OffsetClause> {
13894        support::child(&self.syntax)
13895    }
13896    #[inline]
13897    pub fn order_by_clause(&self) -> Option<OrderByClause> {
13898        support::child(&self.syntax)
13899    }
13900    #[inline]
13901    pub fn select_clause(&self) -> Option<SelectClause> {
13902        support::child(&self.syntax)
13903    }
13904    #[inline]
13905    pub fn where_clause(&self) -> Option<WhereClause> {
13906        support::child(&self.syntax)
13907    }
13908    #[inline]
13909    pub fn window_clause(&self) -> Option<WindowClause> {
13910        support::child(&self.syntax)
13911    }
13912    #[inline]
13913    pub fn with_clause(&self) -> Option<WithClause> {
13914        support::child(&self.syntax)
13915    }
13916}
13917
13918#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13919pub struct SelectClause {
13920    pub(crate) syntax: SyntaxNode,
13921}
13922impl SelectClause {
13923    #[inline]
13924    pub fn distinct_clause(&self) -> Option<DistinctClause> {
13925        support::child(&self.syntax)
13926    }
13927    #[inline]
13928    pub fn target_list(&self) -> Option<TargetList> {
13929        support::child(&self.syntax)
13930    }
13931    #[inline]
13932    pub fn all_token(&self) -> Option<SyntaxToken> {
13933        support::token(&self.syntax, SyntaxKind::ALL_KW)
13934    }
13935    #[inline]
13936    pub fn select_token(&self) -> Option<SyntaxToken> {
13937        support::token(&self.syntax, SyntaxKind::SELECT_KW)
13938    }
13939}
13940
13941#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13942pub struct SelectInto {
13943    pub(crate) syntax: SyntaxNode,
13944}
13945impl SelectInto {
13946    #[inline]
13947    pub fn filter_clause(&self) -> Option<FilterClause> {
13948        support::child(&self.syntax)
13949    }
13950    #[inline]
13951    pub fn from_clause(&self) -> Option<FromClause> {
13952        support::child(&self.syntax)
13953    }
13954    #[inline]
13955    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13956        support::child(&self.syntax)
13957    }
13958    #[inline]
13959    pub fn having_clause(&self) -> Option<HavingClause> {
13960        support::child(&self.syntax)
13961    }
13962    #[inline]
13963    pub fn into_clause(&self) -> Option<IntoClause> {
13964        support::child(&self.syntax)
13965    }
13966    #[inline]
13967    pub fn limit_clause(&self) -> Option<LimitClause> {
13968        support::child(&self.syntax)
13969    }
13970    #[inline]
13971    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
13972        support::children(&self.syntax)
13973    }
13974    #[inline]
13975    pub fn offset_clause(&self) -> Option<OffsetClause> {
13976        support::child(&self.syntax)
13977    }
13978    #[inline]
13979    pub fn order_by_clause(&self) -> Option<OrderByClause> {
13980        support::child(&self.syntax)
13981    }
13982    #[inline]
13983    pub fn select_clause(&self) -> Option<SelectClause> {
13984        support::child(&self.syntax)
13985    }
13986    #[inline]
13987    pub fn where_clause(&self) -> Option<WhereClause> {
13988        support::child(&self.syntax)
13989    }
13990    #[inline]
13991    pub fn window_clause(&self) -> Option<WindowClause> {
13992        support::child(&self.syntax)
13993    }
13994    #[inline]
13995    pub fn with_clause(&self) -> Option<WithClause> {
13996        support::child(&self.syntax)
13997    }
13998}
13999
14000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14001pub struct SequenceOption {
14002    pub(crate) syntax: SyntaxNode,
14003}
14004impl SequenceOption {
14005    #[inline]
14006    pub fn literal(&self) -> Option<Literal> {
14007        support::child(&self.syntax)
14008    }
14009    #[inline]
14010    pub fn name_ref(&self) -> Option<NameRef> {
14011        support::child(&self.syntax)
14012    }
14013    #[inline]
14014    pub fn path(&self) -> Option<Path> {
14015        support::child(&self.syntax)
14016    }
14017    #[inline]
14018    pub fn ty(&self) -> Option<Type> {
14019        support::child(&self.syntax)
14020    }
14021    #[inline]
14022    pub fn as_token(&self) -> Option<SyntaxToken> {
14023        support::token(&self.syntax, SyntaxKind::AS_KW)
14024    }
14025    #[inline]
14026    pub fn by_token(&self) -> Option<SyntaxToken> {
14027        support::token(&self.syntax, SyntaxKind::BY_KW)
14028    }
14029    #[inline]
14030    pub fn cycle_token(&self) -> Option<SyntaxToken> {
14031        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
14032    }
14033    #[inline]
14034    pub fn increment_token(&self) -> Option<SyntaxToken> {
14035        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
14036    }
14037    #[inline]
14038    pub fn logged_token(&self) -> Option<SyntaxToken> {
14039        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
14040    }
14041    #[inline]
14042    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
14043        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
14044    }
14045    #[inline]
14046    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
14047        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
14048    }
14049    #[inline]
14050    pub fn name_token(&self) -> Option<SyntaxToken> {
14051        support::token(&self.syntax, SyntaxKind::NAME_KW)
14052    }
14053    #[inline]
14054    pub fn no_token(&self) -> Option<SyntaxToken> {
14055        support::token(&self.syntax, SyntaxKind::NO_KW)
14056    }
14057    #[inline]
14058    pub fn none_token(&self) -> Option<SyntaxToken> {
14059        support::token(&self.syntax, SyntaxKind::NONE_KW)
14060    }
14061    #[inline]
14062    pub fn owned_token(&self) -> Option<SyntaxToken> {
14063        support::token(&self.syntax, SyntaxKind::OWNED_KW)
14064    }
14065    #[inline]
14066    pub fn restart_token(&self) -> Option<SyntaxToken> {
14067        support::token(&self.syntax, SyntaxKind::RESTART_KW)
14068    }
14069    #[inline]
14070    pub fn sequence_token(&self) -> Option<SyntaxToken> {
14071        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
14072    }
14073    #[inline]
14074    pub fn start_token(&self) -> Option<SyntaxToken> {
14075        support::token(&self.syntax, SyntaxKind::START_KW)
14076    }
14077    #[inline]
14078    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
14079        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
14080    }
14081    #[inline]
14082    pub fn with_token(&self) -> Option<SyntaxToken> {
14083        support::token(&self.syntax, SyntaxKind::WITH_KW)
14084    }
14085}
14086
14087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14088pub struct SequenceOptionList {
14089    pub(crate) syntax: SyntaxNode,
14090}
14091impl SequenceOptionList {
14092    #[inline]
14093    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
14094        support::children(&self.syntax)
14095    }
14096    #[inline]
14097    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14098        support::token(&self.syntax, SyntaxKind::L_PAREN)
14099    }
14100    #[inline]
14101    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14102        support::token(&self.syntax, SyntaxKind::R_PAREN)
14103    }
14104}
14105
14106#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14107pub struct Serializable {
14108    pub(crate) syntax: SyntaxNode,
14109}
14110impl Serializable {
14111    #[inline]
14112    pub fn isolation_token(&self) -> Option<SyntaxToken> {
14113        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
14114    }
14115    #[inline]
14116    pub fn level_token(&self) -> Option<SyntaxToken> {
14117        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
14118    }
14119    #[inline]
14120    pub fn serializable_token(&self) -> Option<SyntaxToken> {
14121        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
14122    }
14123}
14124
14125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14126pub struct ServerName {
14127    pub(crate) syntax: SyntaxNode,
14128}
14129impl ServerName {
14130    #[inline]
14131    pub fn name_ref(&self) -> Option<NameRef> {
14132        support::child(&self.syntax)
14133    }
14134    #[inline]
14135    pub fn server_token(&self) -> Option<SyntaxToken> {
14136        support::token(&self.syntax, SyntaxKind::SERVER_KW)
14137    }
14138}
14139
14140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14141pub struct Set {
14142    pub(crate) syntax: SyntaxNode,
14143}
14144impl Set {
14145    #[inline]
14146    pub fn config_value(&self) -> Option<ConfigValue> {
14147        support::child(&self.syntax)
14148    }
14149    #[inline]
14150    pub fn config_values(&self) -> AstChildren<ConfigValue> {
14151        support::children(&self.syntax)
14152    }
14153    #[inline]
14154    pub fn literal(&self) -> Option<Literal> {
14155        support::child(&self.syntax)
14156    }
14157    #[inline]
14158    pub fn path(&self) -> Option<Path> {
14159        support::child(&self.syntax)
14160    }
14161    #[inline]
14162    pub fn eq_token(&self) -> Option<SyntaxToken> {
14163        support::token(&self.syntax, SyntaxKind::EQ)
14164    }
14165    #[inline]
14166    pub fn catalog_token(&self) -> Option<SyntaxToken> {
14167        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
14168    }
14169    #[inline]
14170    pub fn content_token(&self) -> Option<SyntaxToken> {
14171        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
14172    }
14173    #[inline]
14174    pub fn current_token(&self) -> Option<SyntaxToken> {
14175        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
14176    }
14177    #[inline]
14178    pub fn default_token(&self) -> Option<SyntaxToken> {
14179        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14180    }
14181    #[inline]
14182    pub fn document_token(&self) -> Option<SyntaxToken> {
14183        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
14184    }
14185    #[inline]
14186    pub fn from_token(&self) -> Option<SyntaxToken> {
14187        support::token(&self.syntax, SyntaxKind::FROM_KW)
14188    }
14189    #[inline]
14190    pub fn local_token(&self) -> Option<SyntaxToken> {
14191        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14192    }
14193    #[inline]
14194    pub fn option_token(&self) -> Option<SyntaxToken> {
14195        support::token(&self.syntax, SyntaxKind::OPTION_KW)
14196    }
14197    #[inline]
14198    pub fn schema_token(&self) -> Option<SyntaxToken> {
14199        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14200    }
14201    #[inline]
14202    pub fn session_token(&self) -> Option<SyntaxToken> {
14203        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14204    }
14205    #[inline]
14206    pub fn set_token(&self) -> Option<SyntaxToken> {
14207        support::token(&self.syntax, SyntaxKind::SET_KW)
14208    }
14209    #[inline]
14210    pub fn time_token(&self) -> Option<SyntaxToken> {
14211        support::token(&self.syntax, SyntaxKind::TIME_KW)
14212    }
14213    #[inline]
14214    pub fn to_token(&self) -> Option<SyntaxToken> {
14215        support::token(&self.syntax, SyntaxKind::TO_KW)
14216    }
14217    #[inline]
14218    pub fn xml_token(&self) -> Option<SyntaxToken> {
14219        support::token(&self.syntax, SyntaxKind::XML_KW)
14220    }
14221    #[inline]
14222    pub fn zone_token(&self) -> Option<SyntaxToken> {
14223        support::token(&self.syntax, SyntaxKind::ZONE_KW)
14224    }
14225}
14226
14227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14228pub struct SetAccessMethod {
14229    pub(crate) syntax: SyntaxNode,
14230}
14231impl SetAccessMethod {
14232    #[inline]
14233    pub fn name_ref(&self) -> Option<NameRef> {
14234        support::child(&self.syntax)
14235    }
14236    #[inline]
14237    pub fn access_token(&self) -> Option<SyntaxToken> {
14238        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
14239    }
14240    #[inline]
14241    pub fn method_token(&self) -> Option<SyntaxToken> {
14242        support::token(&self.syntax, SyntaxKind::METHOD_KW)
14243    }
14244    #[inline]
14245    pub fn set_token(&self) -> Option<SyntaxToken> {
14246        support::token(&self.syntax, SyntaxKind::SET_KW)
14247    }
14248}
14249
14250#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14251pub struct SetClause {
14252    pub(crate) syntax: SyntaxNode,
14253}
14254impl SetClause {
14255    #[inline]
14256    pub fn set_column_list(&self) -> Option<SetColumnList> {
14257        support::child(&self.syntax)
14258    }
14259    #[inline]
14260    pub fn set_token(&self) -> Option<SyntaxToken> {
14261        support::token(&self.syntax, SyntaxKind::SET_KW)
14262    }
14263}
14264
14265#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14266pub struct SetColumnList {
14267    pub(crate) syntax: SyntaxNode,
14268}
14269impl SetColumnList {
14270    #[inline]
14271    pub fn set_columns(&self) -> AstChildren<SetColumn> {
14272        support::children(&self.syntax)
14273    }
14274}
14275
14276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14277pub struct SetCompression {
14278    pub(crate) syntax: SyntaxNode,
14279}
14280impl SetCompression {
14281    #[inline]
14282    pub fn compression_token(&self) -> Option<SyntaxToken> {
14283        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
14284    }
14285    #[inline]
14286    pub fn set_token(&self) -> Option<SyntaxToken> {
14287        support::token(&self.syntax, SyntaxKind::SET_KW)
14288    }
14289}
14290
14291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14292pub struct SetConfigParam {
14293    pub(crate) syntax: SyntaxNode,
14294}
14295impl SetConfigParam {
14296    #[inline]
14297    pub fn path(&self) -> Option<Path> {
14298        support::child(&self.syntax)
14299    }
14300    #[inline]
14301    pub fn set_token(&self) -> Option<SyntaxToken> {
14302        support::token(&self.syntax, SyntaxKind::SET_KW)
14303    }
14304}
14305
14306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14307pub struct SetConstraints {
14308    pub(crate) syntax: SyntaxNode,
14309}
14310impl SetConstraints {
14311    #[inline]
14312    pub fn paths(&self) -> AstChildren<Path> {
14313        support::children(&self.syntax)
14314    }
14315    #[inline]
14316    pub fn all_token(&self) -> Option<SyntaxToken> {
14317        support::token(&self.syntax, SyntaxKind::ALL_KW)
14318    }
14319    #[inline]
14320    pub fn constraints_token(&self) -> Option<SyntaxToken> {
14321        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
14322    }
14323    #[inline]
14324    pub fn deferred_token(&self) -> Option<SyntaxToken> {
14325        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
14326    }
14327    #[inline]
14328    pub fn immediate_token(&self) -> Option<SyntaxToken> {
14329        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
14330    }
14331    #[inline]
14332    pub fn set_token(&self) -> Option<SyntaxToken> {
14333        support::token(&self.syntax, SyntaxKind::SET_KW)
14334    }
14335}
14336
14337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14338pub struct SetDefault {
14339    pub(crate) syntax: SyntaxNode,
14340}
14341impl SetDefault {
14342    #[inline]
14343    pub fn expr(&self) -> Option<Expr> {
14344        support::child(&self.syntax)
14345    }
14346    #[inline]
14347    pub fn default_token(&self) -> Option<SyntaxToken> {
14348        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14349    }
14350    #[inline]
14351    pub fn set_token(&self) -> Option<SyntaxToken> {
14352        support::token(&self.syntax, SyntaxKind::SET_KW)
14353    }
14354}
14355
14356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14357pub struct SetDefaultColumns {
14358    pub(crate) syntax: SyntaxNode,
14359}
14360impl SetDefaultColumns {
14361    #[inline]
14362    pub fn column_list(&self) -> Option<ColumnList> {
14363        support::child(&self.syntax)
14364    }
14365    #[inline]
14366    pub fn default_token(&self) -> Option<SyntaxToken> {
14367        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14368    }
14369    #[inline]
14370    pub fn set_token(&self) -> Option<SyntaxToken> {
14371        support::token(&self.syntax, SyntaxKind::SET_KW)
14372    }
14373}
14374
14375#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14376pub struct SetExpr {
14377    pub(crate) syntax: SyntaxNode,
14378}
14379impl SetExpr {
14380    #[inline]
14381    pub fn expr(&self) -> Option<Expr> {
14382        support::child(&self.syntax)
14383    }
14384    #[inline]
14385    pub fn default_token(&self) -> Option<SyntaxToken> {
14386        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14387    }
14388}
14389
14390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14391pub struct SetExprList {
14392    pub(crate) syntax: SyntaxNode,
14393}
14394impl SetExprList {
14395    #[inline]
14396    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
14397        support::children(&self.syntax)
14398    }
14399    #[inline]
14400    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14401        support::token(&self.syntax, SyntaxKind::L_PAREN)
14402    }
14403    #[inline]
14404    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14405        support::token(&self.syntax, SyntaxKind::R_PAREN)
14406    }
14407    #[inline]
14408    pub fn row_token(&self) -> Option<SyntaxToken> {
14409        support::token(&self.syntax, SyntaxKind::ROW_KW)
14410    }
14411}
14412
14413#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14414pub struct SetExpression {
14415    pub(crate) syntax: SyntaxNode,
14416}
14417impl SetExpression {
14418    #[inline]
14419    pub fn expr(&self) -> Option<Expr> {
14420        support::child(&self.syntax)
14421    }
14422    #[inline]
14423    pub fn expression_token(&self) -> Option<SyntaxToken> {
14424        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
14425    }
14426    #[inline]
14427    pub fn set_token(&self) -> Option<SyntaxToken> {
14428        support::token(&self.syntax, SyntaxKind::SET_KW)
14429    }
14430}
14431
14432#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14433pub struct SetFuncOption {
14434    pub(crate) syntax: SyntaxNode,
14435}
14436impl SetFuncOption {
14437    #[inline]
14438    pub fn set_token(&self) -> Option<SyntaxToken> {
14439        support::token(&self.syntax, SyntaxKind::SET_KW)
14440    }
14441}
14442
14443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14444pub struct SetGenerated {
14445    pub(crate) syntax: SyntaxNode,
14446}
14447impl SetGenerated {
14448    #[inline]
14449    pub fn set_token(&self) -> Option<SyntaxToken> {
14450        support::token(&self.syntax, SyntaxKind::SET_KW)
14451    }
14452}
14453
14454#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14455pub struct SetGeneratedOptions {
14456    pub(crate) syntax: SyntaxNode,
14457}
14458impl SetGeneratedOptions {
14459    #[inline]
14460    pub fn generated_token(&self) -> Option<SyntaxToken> {
14461        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
14462    }
14463    #[inline]
14464    pub fn set_token(&self) -> Option<SyntaxToken> {
14465        support::token(&self.syntax, SyntaxKind::SET_KW)
14466    }
14467}
14468
14469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14470pub struct SetLogged {
14471    pub(crate) syntax: SyntaxNode,
14472}
14473impl SetLogged {
14474    #[inline]
14475    pub fn logged_token(&self) -> Option<SyntaxToken> {
14476        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
14477    }
14478    #[inline]
14479    pub fn set_token(&self) -> Option<SyntaxToken> {
14480        support::token(&self.syntax, SyntaxKind::SET_KW)
14481    }
14482}
14483
14484#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14485pub struct SetMultipleColumns {
14486    pub(crate) syntax: SyntaxNode,
14487}
14488impl SetMultipleColumns {
14489    #[inline]
14490    pub fn column_list(&self) -> Option<ColumnList> {
14491        support::child(&self.syntax)
14492    }
14493    #[inline]
14494    pub fn paren_select(&self) -> Option<ParenSelect> {
14495        support::child(&self.syntax)
14496    }
14497    #[inline]
14498    pub fn set_expr_list(&self) -> Option<SetExprList> {
14499        support::child(&self.syntax)
14500    }
14501    #[inline]
14502    pub fn eq_token(&self) -> Option<SyntaxToken> {
14503        support::token(&self.syntax, SyntaxKind::EQ)
14504    }
14505}
14506
14507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14508pub struct SetNotNull {
14509    pub(crate) syntax: SyntaxNode,
14510}
14511impl SetNotNull {
14512    #[inline]
14513    pub fn not_token(&self) -> Option<SyntaxToken> {
14514        support::token(&self.syntax, SyntaxKind::NOT_KW)
14515    }
14516    #[inline]
14517    pub fn null_token(&self) -> Option<SyntaxToken> {
14518        support::token(&self.syntax, SyntaxKind::NULL_KW)
14519    }
14520    #[inline]
14521    pub fn set_token(&self) -> Option<SyntaxToken> {
14522        support::token(&self.syntax, SyntaxKind::SET_KW)
14523    }
14524}
14525
14526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14527pub struct SetNullColumns {
14528    pub(crate) syntax: SyntaxNode,
14529}
14530impl SetNullColumns {
14531    #[inline]
14532    pub fn column_list(&self) -> Option<ColumnList> {
14533        support::child(&self.syntax)
14534    }
14535    #[inline]
14536    pub fn null_token(&self) -> Option<SyntaxToken> {
14537        support::token(&self.syntax, SyntaxKind::NULL_KW)
14538    }
14539    #[inline]
14540    pub fn set_token(&self) -> Option<SyntaxToken> {
14541        support::token(&self.syntax, SyntaxKind::SET_KW)
14542    }
14543}
14544
14545#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14546pub struct SetOptions {
14547    pub(crate) syntax: SyntaxNode,
14548}
14549impl SetOptions {
14550    #[inline]
14551    pub fn attribute_list(&self) -> Option<AttributeList> {
14552        support::child(&self.syntax)
14553    }
14554    #[inline]
14555    pub fn set_token(&self) -> Option<SyntaxToken> {
14556        support::token(&self.syntax, SyntaxKind::SET_KW)
14557    }
14558}
14559
14560#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14561pub struct SetOptionsList {
14562    pub(crate) syntax: SyntaxNode,
14563}
14564impl SetOptionsList {
14565    #[inline]
14566    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
14567        support::child(&self.syntax)
14568    }
14569    #[inline]
14570    pub fn options_token(&self) -> Option<SyntaxToken> {
14571        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
14572    }
14573    #[inline]
14574    pub fn set_token(&self) -> Option<SyntaxToken> {
14575        support::token(&self.syntax, SyntaxKind::SET_KW)
14576    }
14577}
14578
14579#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14580pub struct SetRole {
14581    pub(crate) syntax: SyntaxNode,
14582}
14583impl SetRole {
14584    #[inline]
14585    pub fn role_ref(&self) -> Option<RoleRef> {
14586        support::child(&self.syntax)
14587    }
14588    #[inline]
14589    pub fn local_token(&self) -> Option<SyntaxToken> {
14590        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14591    }
14592    #[inline]
14593    pub fn none_token(&self) -> Option<SyntaxToken> {
14594        support::token(&self.syntax, SyntaxKind::NONE_KW)
14595    }
14596    #[inline]
14597    pub fn reset_token(&self) -> Option<SyntaxToken> {
14598        support::token(&self.syntax, SyntaxKind::RESET_KW)
14599    }
14600    #[inline]
14601    pub fn role_token(&self) -> Option<SyntaxToken> {
14602        support::token(&self.syntax, SyntaxKind::ROLE_KW)
14603    }
14604    #[inline]
14605    pub fn session_token(&self) -> Option<SyntaxToken> {
14606        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14607    }
14608    #[inline]
14609    pub fn set_token(&self) -> Option<SyntaxToken> {
14610        support::token(&self.syntax, SyntaxKind::SET_KW)
14611    }
14612}
14613
14614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14615pub struct SetSchema {
14616    pub(crate) syntax: SyntaxNode,
14617}
14618impl SetSchema {
14619    #[inline]
14620    pub fn name_ref(&self) -> Option<NameRef> {
14621        support::child(&self.syntax)
14622    }
14623    #[inline]
14624    pub fn schema_token(&self) -> Option<SyntaxToken> {
14625        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14626    }
14627    #[inline]
14628    pub fn set_token(&self) -> Option<SyntaxToken> {
14629        support::token(&self.syntax, SyntaxKind::SET_KW)
14630    }
14631}
14632
14633#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14634pub struct SetSequenceOption {
14635    pub(crate) syntax: SyntaxNode,
14636}
14637impl SetSequenceOption {
14638    #[inline]
14639    pub fn set_token(&self) -> Option<SyntaxToken> {
14640        support::token(&self.syntax, SyntaxKind::SET_KW)
14641    }
14642}
14643
14644#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14645pub struct SetSessionAuth {
14646    pub(crate) syntax: SyntaxNode,
14647}
14648impl SetSessionAuth {
14649    #[inline]
14650    pub fn literal(&self) -> Option<Literal> {
14651        support::child(&self.syntax)
14652    }
14653    #[inline]
14654    pub fn role_ref(&self) -> Option<RoleRef> {
14655        support::child(&self.syntax)
14656    }
14657    #[inline]
14658    pub fn authorization_token(&self) -> Option<SyntaxToken> {
14659        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
14660    }
14661    #[inline]
14662    pub fn default_token(&self) -> Option<SyntaxToken> {
14663        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14664    }
14665    #[inline]
14666    pub fn local_token(&self) -> Option<SyntaxToken> {
14667        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14668    }
14669    #[inline]
14670    pub fn session_token(&self) -> Option<SyntaxToken> {
14671        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14672    }
14673    #[inline]
14674    pub fn set_token(&self) -> Option<SyntaxToken> {
14675        support::token(&self.syntax, SyntaxKind::SET_KW)
14676    }
14677}
14678
14679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14680pub struct SetSingleColumn {
14681    pub(crate) syntax: SyntaxNode,
14682}
14683impl SetSingleColumn {
14684    #[inline]
14685    pub fn column(&self) -> Option<Column> {
14686        support::child(&self.syntax)
14687    }
14688    #[inline]
14689    pub fn set_expr(&self) -> Option<SetExpr> {
14690        support::child(&self.syntax)
14691    }
14692    #[inline]
14693    pub fn eq_token(&self) -> Option<SyntaxToken> {
14694        support::token(&self.syntax, SyntaxKind::EQ)
14695    }
14696}
14697
14698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14699pub struct SetStatistics {
14700    pub(crate) syntax: SyntaxNode,
14701}
14702impl SetStatistics {
14703    #[inline]
14704    pub fn set_token(&self) -> Option<SyntaxToken> {
14705        support::token(&self.syntax, SyntaxKind::SET_KW)
14706    }
14707    #[inline]
14708    pub fn statistics_token(&self) -> Option<SyntaxToken> {
14709        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
14710    }
14711}
14712
14713#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14714pub struct SetStorage {
14715    pub(crate) syntax: SyntaxNode,
14716}
14717impl SetStorage {
14718    #[inline]
14719    pub fn set_token(&self) -> Option<SyntaxToken> {
14720        support::token(&self.syntax, SyntaxKind::SET_KW)
14721    }
14722    #[inline]
14723    pub fn storage_token(&self) -> Option<SyntaxToken> {
14724        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14725    }
14726}
14727
14728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14729pub struct SetTablespace {
14730    pub(crate) syntax: SyntaxNode,
14731}
14732impl SetTablespace {
14733    #[inline]
14734    pub fn path(&self) -> Option<Path> {
14735        support::child(&self.syntax)
14736    }
14737    #[inline]
14738    pub fn set_token(&self) -> Option<SyntaxToken> {
14739        support::token(&self.syntax, SyntaxKind::SET_KW)
14740    }
14741    #[inline]
14742    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
14743        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
14744    }
14745}
14746
14747#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14748pub struct SetTransaction {
14749    pub(crate) syntax: SyntaxNode,
14750}
14751impl SetTransaction {
14752    #[inline]
14753    pub fn literal(&self) -> Option<Literal> {
14754        support::child(&self.syntax)
14755    }
14756    #[inline]
14757    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
14758        support::child(&self.syntax)
14759    }
14760    #[inline]
14761    pub fn as_token(&self) -> Option<SyntaxToken> {
14762        support::token(&self.syntax, SyntaxKind::AS_KW)
14763    }
14764    #[inline]
14765    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
14766        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
14767    }
14768    #[inline]
14769    pub fn session_token(&self) -> Option<SyntaxToken> {
14770        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14771    }
14772    #[inline]
14773    pub fn set_token(&self) -> Option<SyntaxToken> {
14774        support::token(&self.syntax, SyntaxKind::SET_KW)
14775    }
14776    #[inline]
14777    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
14778        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
14779    }
14780    #[inline]
14781    pub fn transaction_token(&self) -> Option<SyntaxToken> {
14782        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
14783    }
14784}
14785
14786#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14787pub struct SetType {
14788    pub(crate) syntax: SyntaxNode,
14789}
14790impl SetType {
14791    #[inline]
14792    pub fn collate(&self) -> Option<Collate> {
14793        support::child(&self.syntax)
14794    }
14795    #[inline]
14796    pub fn ty(&self) -> Option<Type> {
14797        support::child(&self.syntax)
14798    }
14799    #[inline]
14800    pub fn set_token(&self) -> Option<SyntaxToken> {
14801        support::token(&self.syntax, SyntaxKind::SET_KW)
14802    }
14803    #[inline]
14804    pub fn type_token(&self) -> Option<SyntaxToken> {
14805        support::token(&self.syntax, SyntaxKind::TYPE_KW)
14806    }
14807}
14808
14809#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14810pub struct SetUnlogged {
14811    pub(crate) syntax: SyntaxNode,
14812}
14813impl SetUnlogged {
14814    #[inline]
14815    pub fn set_token(&self) -> Option<SyntaxToken> {
14816        support::token(&self.syntax, SyntaxKind::SET_KW)
14817    }
14818    #[inline]
14819    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
14820        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
14821    }
14822}
14823
14824#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14825pub struct SetWithoutCluster {
14826    pub(crate) syntax: SyntaxNode,
14827}
14828impl SetWithoutCluster {
14829    #[inline]
14830    pub fn cluster_token(&self) -> Option<SyntaxToken> {
14831        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
14832    }
14833    #[inline]
14834    pub fn set_token(&self) -> Option<SyntaxToken> {
14835        support::token(&self.syntax, SyntaxKind::SET_KW)
14836    }
14837    #[inline]
14838    pub fn without_token(&self) -> Option<SyntaxToken> {
14839        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14840    }
14841}
14842
14843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14844pub struct SetWithoutOids {
14845    pub(crate) syntax: SyntaxNode,
14846}
14847impl SetWithoutOids {
14848    #[inline]
14849    pub fn oids_token(&self) -> Option<SyntaxToken> {
14850        support::token(&self.syntax, SyntaxKind::OIDS_KW)
14851    }
14852    #[inline]
14853    pub fn set_token(&self) -> Option<SyntaxToken> {
14854        support::token(&self.syntax, SyntaxKind::SET_KW)
14855    }
14856    #[inline]
14857    pub fn without_token(&self) -> Option<SyntaxToken> {
14858        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14859    }
14860}
14861
14862#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14863pub struct Show {
14864    pub(crate) syntax: SyntaxNode,
14865}
14866impl Show {
14867    #[inline]
14868    pub fn show_token(&self) -> Option<SyntaxToken> {
14869        support::token(&self.syntax, SyntaxKind::SHOW_KW)
14870    }
14871}
14872
14873#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14874pub struct SimilarTo {
14875    pub(crate) syntax: SyntaxNode,
14876}
14877impl SimilarTo {
14878    #[inline]
14879    pub fn similar_token(&self) -> Option<SyntaxToken> {
14880        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14881    }
14882    #[inline]
14883    pub fn to_token(&self) -> Option<SyntaxToken> {
14884        support::token(&self.syntax, SyntaxKind::TO_KW)
14885    }
14886}
14887
14888#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14889pub struct SliceExpr {
14890    pub(crate) syntax: SyntaxNode,
14891}
14892impl SliceExpr {
14893    #[inline]
14894    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
14895        support::token(&self.syntax, SyntaxKind::L_BRACK)
14896    }
14897    #[inline]
14898    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
14899        support::token(&self.syntax, SyntaxKind::R_BRACK)
14900    }
14901    #[inline]
14902    pub fn colon_token(&self) -> Option<SyntaxToken> {
14903        support::token(&self.syntax, SyntaxKind::COLON)
14904    }
14905}
14906
14907#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14908pub struct SomeFn {
14909    pub(crate) syntax: SyntaxNode,
14910}
14911impl SomeFn {
14912    #[inline]
14913    pub fn expr(&self) -> Option<Expr> {
14914        support::child(&self.syntax)
14915    }
14916    #[inline]
14917    pub fn select_variant(&self) -> Option<SelectVariant> {
14918        support::child(&self.syntax)
14919    }
14920    #[inline]
14921    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14922        support::token(&self.syntax, SyntaxKind::L_PAREN)
14923    }
14924    #[inline]
14925    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14926        support::token(&self.syntax, SyntaxKind::R_PAREN)
14927    }
14928    #[inline]
14929    pub fn some_token(&self) -> Option<SyntaxToken> {
14930        support::token(&self.syntax, SyntaxKind::SOME_KW)
14931    }
14932}
14933
14934#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14935pub struct SortAsc {
14936    pub(crate) syntax: SyntaxNode,
14937}
14938impl SortAsc {
14939    #[inline]
14940    pub fn asc_token(&self) -> Option<SyntaxToken> {
14941        support::token(&self.syntax, SyntaxKind::ASC_KW)
14942    }
14943}
14944
14945#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14946pub struct SortBy {
14947    pub(crate) syntax: SyntaxNode,
14948}
14949impl SortBy {
14950    #[inline]
14951    pub fn expr(&self) -> Option<Expr> {
14952        support::child(&self.syntax)
14953    }
14954    #[inline]
14955    pub fn nulls_first(&self) -> Option<NullsFirst> {
14956        support::child(&self.syntax)
14957    }
14958    #[inline]
14959    pub fn nulls_last(&self) -> Option<NullsLast> {
14960        support::child(&self.syntax)
14961    }
14962    #[inline]
14963    pub fn sort_asc(&self) -> Option<SortAsc> {
14964        support::child(&self.syntax)
14965    }
14966    #[inline]
14967    pub fn sort_desc(&self) -> Option<SortDesc> {
14968        support::child(&self.syntax)
14969    }
14970    #[inline]
14971    pub fn sort_using(&self) -> Option<SortUsing> {
14972        support::child(&self.syntax)
14973    }
14974}
14975
14976#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14977pub struct SortByList {
14978    pub(crate) syntax: SyntaxNode,
14979}
14980impl SortByList {
14981    #[inline]
14982    pub fn sort_bys(&self) -> AstChildren<SortBy> {
14983        support::children(&self.syntax)
14984    }
14985}
14986
14987#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14988pub struct SortDesc {
14989    pub(crate) syntax: SyntaxNode,
14990}
14991impl SortDesc {
14992    #[inline]
14993    pub fn desc_token(&self) -> Option<SyntaxToken> {
14994        support::token(&self.syntax, SyntaxKind::DESC_KW)
14995    }
14996}
14997
14998#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14999pub struct SortUsing {
15000    pub(crate) syntax: SyntaxNode,
15001}
15002impl SortUsing {
15003    #[inline]
15004    pub fn op(&self) -> Option<Op> {
15005        support::child(&self.syntax)
15006    }
15007    #[inline]
15008    pub fn using_token(&self) -> Option<SyntaxToken> {
15009        support::token(&self.syntax, SyntaxKind::USING_KW)
15010    }
15011}
15012
15013#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15014pub struct SourceFile {
15015    pub(crate) syntax: SyntaxNode,
15016}
15017impl SourceFile {
15018    #[inline]
15019    pub fn stmts(&self) -> AstChildren<Stmt> {
15020        support::children(&self.syntax)
15021    }
15022}
15023
15024#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15025pub struct SplitPartition {
15026    pub(crate) syntax: SyntaxNode,
15027}
15028impl SplitPartition {
15029    #[inline]
15030    pub fn partition_list(&self) -> Option<PartitionList> {
15031        support::child(&self.syntax)
15032    }
15033    #[inline]
15034    pub fn into_token(&self) -> Option<SyntaxToken> {
15035        support::token(&self.syntax, SyntaxKind::INTO_KW)
15036    }
15037    #[inline]
15038    pub fn partition_token(&self) -> Option<SyntaxToken> {
15039        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
15040    }
15041    #[inline]
15042    pub fn split_token(&self) -> Option<SyntaxToken> {
15043        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
15044    }
15045}
15046
15047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15048pub struct Storage {
15049    pub(crate) syntax: SyntaxNode,
15050}
15051impl Storage {
15052    #[inline]
15053    pub fn default_token(&self) -> Option<SyntaxToken> {
15054        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15055    }
15056    #[inline]
15057    pub fn external_token(&self) -> Option<SyntaxToken> {
15058        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
15059    }
15060    #[inline]
15061    pub fn ident_token(&self) -> Option<SyntaxToken> {
15062        support::token(&self.syntax, SyntaxKind::IDENT)
15063    }
15064    #[inline]
15065    pub fn storage_token(&self) -> Option<SyntaxToken> {
15066        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
15067    }
15068}
15069
15070#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15071pub struct StrictFuncOption {
15072    pub(crate) syntax: SyntaxNode,
15073}
15074impl StrictFuncOption {
15075    #[inline]
15076    pub fn called_token(&self) -> Option<SyntaxToken> {
15077        support::token(&self.syntax, SyntaxKind::CALLED_KW)
15078    }
15079    #[inline]
15080    pub fn input_token(&self) -> Option<SyntaxToken> {
15081        support::token(&self.syntax, SyntaxKind::INPUT_KW)
15082    }
15083    #[inline]
15084    pub fn null_token(&self) -> Option<SyntaxToken> {
15085        support::token(&self.syntax, SyntaxKind::NULL_KW)
15086    }
15087    #[inline]
15088    pub fn on_token(&self) -> Option<SyntaxToken> {
15089        support::token(&self.syntax, SyntaxKind::ON_KW)
15090    }
15091    #[inline]
15092    pub fn returns_token(&self) -> Option<SyntaxToken> {
15093        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
15094    }
15095    #[inline]
15096    pub fn strict_token(&self) -> Option<SyntaxToken> {
15097        support::token(&self.syntax, SyntaxKind::STRICT_KW)
15098    }
15099}
15100
15101#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15102pub struct SubstringFn {
15103    pub(crate) syntax: SyntaxNode,
15104}
15105impl SubstringFn {
15106    #[inline]
15107    pub fn expr(&self) -> Option<Expr> {
15108        support::child(&self.syntax)
15109    }
15110    #[inline]
15111    pub fn exprs(&self) -> AstChildren<Expr> {
15112        support::children(&self.syntax)
15113    }
15114    #[inline]
15115    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15116        support::token(&self.syntax, SyntaxKind::L_PAREN)
15117    }
15118    #[inline]
15119    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15120        support::token(&self.syntax, SyntaxKind::R_PAREN)
15121    }
15122    #[inline]
15123    pub fn for_token(&self) -> Option<SyntaxToken> {
15124        support::token(&self.syntax, SyntaxKind::FOR_KW)
15125    }
15126    #[inline]
15127    pub fn from_token(&self) -> Option<SyntaxToken> {
15128        support::token(&self.syntax, SyntaxKind::FROM_KW)
15129    }
15130    #[inline]
15131    pub fn similar_token(&self) -> Option<SyntaxToken> {
15132        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
15133    }
15134    #[inline]
15135    pub fn substring_token(&self) -> Option<SyntaxToken> {
15136        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
15137    }
15138}
15139
15140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15141pub struct SupportFuncOption {
15142    pub(crate) syntax: SyntaxNode,
15143}
15144impl SupportFuncOption {
15145    #[inline]
15146    pub fn support_token(&self) -> Option<SyntaxToken> {
15147        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
15148    }
15149}
15150
15151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15152pub struct Table {
15153    pub(crate) syntax: SyntaxNode,
15154}
15155impl Table {
15156    #[inline]
15157    pub fn relation_name(&self) -> Option<RelationName> {
15158        support::child(&self.syntax)
15159    }
15160    #[inline]
15161    pub fn with_clause(&self) -> Option<WithClause> {
15162        support::child(&self.syntax)
15163    }
15164    #[inline]
15165    pub fn table_token(&self) -> Option<SyntaxToken> {
15166        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15167    }
15168}
15169
15170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15171pub struct TableAndColumns {
15172    pub(crate) syntax: SyntaxNode,
15173}
15174impl TableAndColumns {
15175    #[inline]
15176    pub fn column_list(&self) -> Option<ColumnList> {
15177        support::child(&self.syntax)
15178    }
15179    #[inline]
15180    pub fn relation_name(&self) -> Option<RelationName> {
15181        support::child(&self.syntax)
15182    }
15183}
15184
15185#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15186pub struct TableAndColumnsList {
15187    pub(crate) syntax: SyntaxNode,
15188}
15189impl TableAndColumnsList {
15190    #[inline]
15191    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
15192        support::children(&self.syntax)
15193    }
15194}
15195
15196#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15197pub struct TableArgList {
15198    pub(crate) syntax: SyntaxNode,
15199}
15200impl TableArgList {
15201    #[inline]
15202    pub fn args(&self) -> AstChildren<TableArg> {
15203        support::children(&self.syntax)
15204    }
15205    #[inline]
15206    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15207        support::token(&self.syntax, SyntaxKind::L_PAREN)
15208    }
15209    #[inline]
15210    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15211        support::token(&self.syntax, SyntaxKind::R_PAREN)
15212    }
15213}
15214
15215#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15216pub struct TableList {
15217    pub(crate) syntax: SyntaxNode,
15218}
15219impl TableList {
15220    #[inline]
15221    pub fn relation_names(&self) -> AstChildren<RelationName> {
15222        support::children(&self.syntax)
15223    }
15224}
15225
15226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15227pub struct TablesampleClause {
15228    pub(crate) syntax: SyntaxNode,
15229}
15230impl TablesampleClause {
15231    #[inline]
15232    pub fn call_expr(&self) -> Option<CallExpr> {
15233        support::child(&self.syntax)
15234    }
15235    #[inline]
15236    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
15237        support::child(&self.syntax)
15238    }
15239    #[inline]
15240    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
15241        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
15242    }
15243}
15244
15245#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15246pub struct Tablespace {
15247    pub(crate) syntax: SyntaxNode,
15248}
15249impl Tablespace {
15250    #[inline]
15251    pub fn name_ref(&self) -> Option<NameRef> {
15252        support::child(&self.syntax)
15253    }
15254    #[inline]
15255    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
15256        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
15257    }
15258}
15259
15260#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15261pub struct Target {
15262    pub(crate) syntax: SyntaxNode,
15263}
15264impl Target {
15265    #[inline]
15266    pub fn as_name(&self) -> Option<AsName> {
15267        support::child(&self.syntax)
15268    }
15269    #[inline]
15270    pub fn expr(&self) -> Option<Expr> {
15271        support::child(&self.syntax)
15272    }
15273    #[inline]
15274    pub fn star_token(&self) -> Option<SyntaxToken> {
15275        support::token(&self.syntax, SyntaxKind::STAR)
15276    }
15277}
15278
15279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15280pub struct TargetList {
15281    pub(crate) syntax: SyntaxNode,
15282}
15283impl TargetList {
15284    #[inline]
15285    pub fn targets(&self) -> AstChildren<Target> {
15286        support::children(&self.syntax)
15287    }
15288}
15289
15290#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15291pub struct TimeType {
15292    pub(crate) syntax: SyntaxNode,
15293}
15294impl TimeType {
15295    #[inline]
15296    pub fn literal(&self) -> Option<Literal> {
15297        support::child(&self.syntax)
15298    }
15299    #[inline]
15300    pub fn timezone(&self) -> Option<Timezone> {
15301        support::child(&self.syntax)
15302    }
15303    #[inline]
15304    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15305        support::token(&self.syntax, SyntaxKind::L_PAREN)
15306    }
15307    #[inline]
15308    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15309        support::token(&self.syntax, SyntaxKind::R_PAREN)
15310    }
15311    #[inline]
15312    pub fn time_token(&self) -> Option<SyntaxToken> {
15313        support::token(&self.syntax, SyntaxKind::TIME_KW)
15314    }
15315    #[inline]
15316    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
15317        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
15318    }
15319}
15320
15321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15322pub struct Timing {
15323    pub(crate) syntax: SyntaxNode,
15324}
15325impl Timing {
15326    #[inline]
15327    pub fn after_token(&self) -> Option<SyntaxToken> {
15328        support::token(&self.syntax, SyntaxKind::AFTER_KW)
15329    }
15330    #[inline]
15331    pub fn before_token(&self) -> Option<SyntaxToken> {
15332        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
15333    }
15334    #[inline]
15335    pub fn instead_token(&self) -> Option<SyntaxToken> {
15336        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
15337    }
15338    #[inline]
15339    pub fn of_token(&self) -> Option<SyntaxToken> {
15340        support::token(&self.syntax, SyntaxKind::OF_KW)
15341    }
15342}
15343
15344#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15345pub struct TransactionModeList {
15346    pub(crate) syntax: SyntaxNode,
15347}
15348impl TransactionModeList {
15349    #[inline]
15350    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
15351        support::children(&self.syntax)
15352    }
15353}
15354
15355#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15356pub struct TransformFromFunc {
15357    pub(crate) syntax: SyntaxNode,
15358}
15359impl TransformFromFunc {
15360    #[inline]
15361    pub fn function_sig(&self) -> Option<FunctionSig> {
15362        support::child(&self.syntax)
15363    }
15364    #[inline]
15365    pub fn from_token(&self) -> Option<SyntaxToken> {
15366        support::token(&self.syntax, SyntaxKind::FROM_KW)
15367    }
15368    #[inline]
15369    pub fn function_token(&self) -> Option<SyntaxToken> {
15370        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15371    }
15372    #[inline]
15373    pub fn sql_token(&self) -> Option<SyntaxToken> {
15374        support::token(&self.syntax, SyntaxKind::SQL_KW)
15375    }
15376    #[inline]
15377    pub fn with_token(&self) -> Option<SyntaxToken> {
15378        support::token(&self.syntax, SyntaxKind::WITH_KW)
15379    }
15380}
15381
15382#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15383pub struct TransformFuncOption {
15384    pub(crate) syntax: SyntaxNode,
15385}
15386impl TransformFuncOption {
15387    #[inline]
15388    pub fn transform_token(&self) -> Option<SyntaxToken> {
15389        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
15390    }
15391}
15392
15393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15394pub struct TransformToFunc {
15395    pub(crate) syntax: SyntaxNode,
15396}
15397impl TransformToFunc {
15398    #[inline]
15399    pub fn function_sig(&self) -> Option<FunctionSig> {
15400        support::child(&self.syntax)
15401    }
15402    #[inline]
15403    pub fn function_token(&self) -> Option<SyntaxToken> {
15404        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15405    }
15406    #[inline]
15407    pub fn sql_token(&self) -> Option<SyntaxToken> {
15408        support::token(&self.syntax, SyntaxKind::SQL_KW)
15409    }
15410    #[inline]
15411    pub fn to_token(&self) -> Option<SyntaxToken> {
15412        support::token(&self.syntax, SyntaxKind::TO_KW)
15413    }
15414    #[inline]
15415    pub fn with_token(&self) -> Option<SyntaxToken> {
15416        support::token(&self.syntax, SyntaxKind::WITH_KW)
15417    }
15418}
15419
15420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15421pub struct TriggerEvent {
15422    pub(crate) syntax: SyntaxNode,
15423}
15424impl TriggerEvent {
15425    #[inline]
15426    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
15427        support::child(&self.syntax)
15428    }
15429    #[inline]
15430    pub fn delete_token(&self) -> Option<SyntaxToken> {
15431        support::token(&self.syntax, SyntaxKind::DELETE_KW)
15432    }
15433    #[inline]
15434    pub fn insert_token(&self) -> Option<SyntaxToken> {
15435        support::token(&self.syntax, SyntaxKind::INSERT_KW)
15436    }
15437    #[inline]
15438    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15439        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15440    }
15441}
15442
15443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15444pub struct TriggerEventList {
15445    pub(crate) syntax: SyntaxNode,
15446}
15447impl TriggerEventList {
15448    #[inline]
15449    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
15450        support::children(&self.syntax)
15451    }
15452}
15453
15454#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15455pub struct TriggerEventUpdate {
15456    pub(crate) syntax: SyntaxNode,
15457}
15458impl TriggerEventUpdate {
15459    #[inline]
15460    pub fn name_refs(&self) -> AstChildren<NameRef> {
15461        support::children(&self.syntax)
15462    }
15463    #[inline]
15464    pub fn of_token(&self) -> Option<SyntaxToken> {
15465        support::token(&self.syntax, SyntaxKind::OF_KW)
15466    }
15467    #[inline]
15468    pub fn update_token(&self) -> Option<SyntaxToken> {
15469        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15470    }
15471}
15472
15473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15474pub struct TrimFn {
15475    pub(crate) syntax: SyntaxNode,
15476}
15477impl TrimFn {
15478    #[inline]
15479    pub fn expr(&self) -> Option<Expr> {
15480        support::child(&self.syntax)
15481    }
15482    #[inline]
15483    pub fn exprs(&self) -> AstChildren<Expr> {
15484        support::children(&self.syntax)
15485    }
15486    #[inline]
15487    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15488        support::token(&self.syntax, SyntaxKind::L_PAREN)
15489    }
15490    #[inline]
15491    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15492        support::token(&self.syntax, SyntaxKind::R_PAREN)
15493    }
15494    #[inline]
15495    pub fn from_token(&self) -> Option<SyntaxToken> {
15496        support::token(&self.syntax, SyntaxKind::FROM_KW)
15497    }
15498    #[inline]
15499    pub fn trim_token(&self) -> Option<SyntaxToken> {
15500        support::token(&self.syntax, SyntaxKind::TRIM_KW)
15501    }
15502}
15503
15504#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15505pub struct Truncate {
15506    pub(crate) syntax: SyntaxNode,
15507}
15508impl Truncate {
15509    #[inline]
15510    pub fn table_list(&self) -> Option<TableList> {
15511        support::child(&self.syntax)
15512    }
15513    #[inline]
15514    pub fn cascade_token(&self) -> Option<SyntaxToken> {
15515        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
15516    }
15517    #[inline]
15518    pub fn continue_token(&self) -> Option<SyntaxToken> {
15519        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
15520    }
15521    #[inline]
15522    pub fn identity_token(&self) -> Option<SyntaxToken> {
15523        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
15524    }
15525    #[inline]
15526    pub fn restart_token(&self) -> Option<SyntaxToken> {
15527        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15528    }
15529    #[inline]
15530    pub fn restrict_token(&self) -> Option<SyntaxToken> {
15531        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
15532    }
15533    #[inline]
15534    pub fn table_token(&self) -> Option<SyntaxToken> {
15535        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15536    }
15537    #[inline]
15538    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15539        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15540    }
15541}
15542
15543#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15544pub struct TupleExpr {
15545    pub(crate) syntax: SyntaxNode,
15546}
15547impl TupleExpr {
15548    #[inline]
15549    pub fn exprs(&self) -> AstChildren<Expr> {
15550        support::children(&self.syntax)
15551    }
15552    #[inline]
15553    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15554        support::token(&self.syntax, SyntaxKind::L_PAREN)
15555    }
15556    #[inline]
15557    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15558        support::token(&self.syntax, SyntaxKind::R_PAREN)
15559    }
15560}
15561
15562#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15563pub struct UnicodeNormalForm {
15564    pub(crate) syntax: SyntaxNode,
15565}
15566impl UnicodeNormalForm {
15567    #[inline]
15568    pub fn nfc_token(&self) -> Option<SyntaxToken> {
15569        support::token(&self.syntax, SyntaxKind::NFC_KW)
15570    }
15571    #[inline]
15572    pub fn nfd_token(&self) -> Option<SyntaxToken> {
15573        support::token(&self.syntax, SyntaxKind::NFD_KW)
15574    }
15575    #[inline]
15576    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
15577        support::token(&self.syntax, SyntaxKind::NFKC_KW)
15578    }
15579    #[inline]
15580    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
15581        support::token(&self.syntax, SyntaxKind::NFKD_KW)
15582    }
15583}
15584
15585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15586pub struct UniqueConstraint {
15587    pub(crate) syntax: SyntaxNode,
15588}
15589impl UniqueConstraint {
15590    #[inline]
15591    pub fn column_list(&self) -> Option<ColumnList> {
15592        support::child(&self.syntax)
15593    }
15594    #[inline]
15595    pub fn constraint_name(&self) -> Option<ConstraintName> {
15596        support::child(&self.syntax)
15597    }
15598    #[inline]
15599    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
15600        support::child(&self.syntax)
15601    }
15602    #[inline]
15603    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
15604        support::child(&self.syntax)
15605    }
15606    #[inline]
15607    pub fn using_index(&self) -> Option<UsingIndex> {
15608        support::child(&self.syntax)
15609    }
15610    #[inline]
15611    pub fn unique_token(&self) -> Option<SyntaxToken> {
15612        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
15613    }
15614}
15615
15616#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15617pub struct Unlisten {
15618    pub(crate) syntax: SyntaxNode,
15619}
15620impl Unlisten {
15621    #[inline]
15622    pub fn name_ref(&self) -> Option<NameRef> {
15623        support::child(&self.syntax)
15624    }
15625    #[inline]
15626    pub fn star_token(&self) -> Option<SyntaxToken> {
15627        support::token(&self.syntax, SyntaxKind::STAR)
15628    }
15629    #[inline]
15630    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
15631        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
15632    }
15633}
15634
15635#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15636pub struct Update {
15637    pub(crate) syntax: SyntaxNode,
15638}
15639impl Update {
15640    #[inline]
15641    pub fn alias(&self) -> Option<Alias> {
15642        support::child(&self.syntax)
15643    }
15644    #[inline]
15645    pub fn from_clause(&self) -> Option<FromClause> {
15646        support::child(&self.syntax)
15647    }
15648    #[inline]
15649    pub fn relation_name(&self) -> Option<RelationName> {
15650        support::child(&self.syntax)
15651    }
15652    #[inline]
15653    pub fn returning_clause(&self) -> Option<ReturningClause> {
15654        support::child(&self.syntax)
15655    }
15656    #[inline]
15657    pub fn set_clause(&self) -> Option<SetClause> {
15658        support::child(&self.syntax)
15659    }
15660    #[inline]
15661    pub fn where_clause(&self) -> Option<WhereClause> {
15662        support::child(&self.syntax)
15663    }
15664    #[inline]
15665    pub fn with_clause(&self) -> Option<WithClause> {
15666        support::child(&self.syntax)
15667    }
15668    #[inline]
15669    pub fn update_token(&self) -> Option<SyntaxToken> {
15670        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15671    }
15672}
15673
15674#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15675pub struct UsingClause {
15676    pub(crate) syntax: SyntaxNode,
15677}
15678impl UsingClause {
15679    #[inline]
15680    pub fn from_items(&self) -> AstChildren<FromItem> {
15681        support::children(&self.syntax)
15682    }
15683    #[inline]
15684    pub fn using_token(&self) -> Option<SyntaxToken> {
15685        support::token(&self.syntax, SyntaxKind::USING_KW)
15686    }
15687}
15688
15689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15690pub struct UsingExprClause {
15691    pub(crate) syntax: SyntaxNode,
15692}
15693impl UsingExprClause {
15694    #[inline]
15695    pub fn expr(&self) -> Option<Expr> {
15696        support::child(&self.syntax)
15697    }
15698    #[inline]
15699    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15700        support::token(&self.syntax, SyntaxKind::L_PAREN)
15701    }
15702    #[inline]
15703    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15704        support::token(&self.syntax, SyntaxKind::R_PAREN)
15705    }
15706    #[inline]
15707    pub fn using_token(&self) -> Option<SyntaxToken> {
15708        support::token(&self.syntax, SyntaxKind::USING_KW)
15709    }
15710}
15711
15712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15713pub struct UsingIndex {
15714    pub(crate) syntax: SyntaxNode,
15715}
15716impl UsingIndex {
15717    #[inline]
15718    pub fn name_ref(&self) -> Option<NameRef> {
15719        support::child(&self.syntax)
15720    }
15721    #[inline]
15722    pub fn index_token(&self) -> Option<SyntaxToken> {
15723        support::token(&self.syntax, SyntaxKind::INDEX_KW)
15724    }
15725    #[inline]
15726    pub fn using_token(&self) -> Option<SyntaxToken> {
15727        support::token(&self.syntax, SyntaxKind::USING_KW)
15728    }
15729}
15730
15731#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15732pub struct UsingMethod {
15733    pub(crate) syntax: SyntaxNode,
15734}
15735impl UsingMethod {
15736    #[inline]
15737    pub fn name_ref(&self) -> Option<NameRef> {
15738        support::child(&self.syntax)
15739    }
15740    #[inline]
15741    pub fn using_token(&self) -> Option<SyntaxToken> {
15742        support::token(&self.syntax, SyntaxKind::USING_KW)
15743    }
15744}
15745
15746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15747pub struct UsingOnClause {
15748    pub(crate) syntax: SyntaxNode,
15749}
15750impl UsingOnClause {
15751    #[inline]
15752    pub fn from_item(&self) -> Option<FromItem> {
15753        support::child(&self.syntax)
15754    }
15755    #[inline]
15756    pub fn on_clause(&self) -> Option<OnClause> {
15757        support::child(&self.syntax)
15758    }
15759    #[inline]
15760    pub fn using_token(&self) -> Option<SyntaxToken> {
15761        support::token(&self.syntax, SyntaxKind::USING_KW)
15762    }
15763}
15764
15765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15766pub struct Vacuum {
15767    pub(crate) syntax: SyntaxNode,
15768}
15769impl Vacuum {
15770    #[inline]
15771    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
15772        support::child(&self.syntax)
15773    }
15774    #[inline]
15775    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
15776        support::child(&self.syntax)
15777    }
15778    #[inline]
15779    pub fn analyse_token(&self) -> Option<SyntaxToken> {
15780        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
15781    }
15782    #[inline]
15783    pub fn analyze_token(&self) -> Option<SyntaxToken> {
15784        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
15785    }
15786    #[inline]
15787    pub fn freeze_token(&self) -> Option<SyntaxToken> {
15788        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
15789    }
15790    #[inline]
15791    pub fn full_token(&self) -> Option<SyntaxToken> {
15792        support::token(&self.syntax, SyntaxKind::FULL_KW)
15793    }
15794    #[inline]
15795    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
15796        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
15797    }
15798    #[inline]
15799    pub fn verbose_token(&self) -> Option<SyntaxToken> {
15800        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
15801    }
15802}
15803
15804#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15805pub struct VacuumOption {
15806    pub(crate) syntax: SyntaxNode,
15807}
15808impl VacuumOption {
15809    #[inline]
15810    pub fn literal(&self) -> Option<Literal> {
15811        support::child(&self.syntax)
15812    }
15813}
15814
15815#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15816pub struct VacuumOptionList {
15817    pub(crate) syntax: SyntaxNode,
15818}
15819impl VacuumOptionList {
15820    #[inline]
15821    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
15822        support::children(&self.syntax)
15823    }
15824    #[inline]
15825    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15826        support::token(&self.syntax, SyntaxKind::L_PAREN)
15827    }
15828    #[inline]
15829    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15830        support::token(&self.syntax, SyntaxKind::R_PAREN)
15831    }
15832}
15833
15834#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15835pub struct ValidateConstraint {
15836    pub(crate) syntax: SyntaxNode,
15837}
15838impl ValidateConstraint {
15839    #[inline]
15840    pub fn name_ref(&self) -> Option<NameRef> {
15841        support::child(&self.syntax)
15842    }
15843    #[inline]
15844    pub fn constraint_token(&self) -> Option<SyntaxToken> {
15845        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
15846    }
15847    #[inline]
15848    pub fn validate_token(&self) -> Option<SyntaxToken> {
15849        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
15850    }
15851}
15852
15853#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15854pub struct Values {
15855    pub(crate) syntax: SyntaxNode,
15856}
15857impl Values {
15858    #[inline]
15859    pub fn row_list(&self) -> Option<RowList> {
15860        support::child(&self.syntax)
15861    }
15862    #[inline]
15863    pub fn with_clause(&self) -> Option<WithClause> {
15864        support::child(&self.syntax)
15865    }
15866    #[inline]
15867    pub fn values_token(&self) -> Option<SyntaxToken> {
15868        support::token(&self.syntax, SyntaxKind::VALUES_KW)
15869    }
15870}
15871
15872#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15873pub struct Variant {
15874    pub(crate) syntax: SyntaxNode,
15875}
15876impl Variant {
15877    #[inline]
15878    pub fn literal(&self) -> Option<Literal> {
15879        support::child(&self.syntax)
15880    }
15881}
15882
15883#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15884pub struct VariantList {
15885    pub(crate) syntax: SyntaxNode,
15886}
15887impl VariantList {
15888    #[inline]
15889    pub fn variants(&self) -> AstChildren<Variant> {
15890        support::children(&self.syntax)
15891    }
15892    #[inline]
15893    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15894        support::token(&self.syntax, SyntaxKind::L_PAREN)
15895    }
15896    #[inline]
15897    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15898        support::token(&self.syntax, SyntaxKind::R_PAREN)
15899    }
15900}
15901
15902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15903pub struct VolatilityFuncOption {
15904    pub(crate) syntax: SyntaxNode,
15905}
15906impl VolatilityFuncOption {
15907    #[inline]
15908    pub fn immutable_token(&self) -> Option<SyntaxToken> {
15909        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
15910    }
15911    #[inline]
15912    pub fn stable_token(&self) -> Option<SyntaxToken> {
15913        support::token(&self.syntax, SyntaxKind::STABLE_KW)
15914    }
15915    #[inline]
15916    pub fn volatile_token(&self) -> Option<SyntaxToken> {
15917        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
15918    }
15919}
15920
15921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15922pub struct WhenClause {
15923    pub(crate) syntax: SyntaxNode,
15924}
15925impl WhenClause {
15926    #[inline]
15927    pub fn then_token(&self) -> Option<SyntaxToken> {
15928        support::token(&self.syntax, SyntaxKind::THEN_KW)
15929    }
15930    #[inline]
15931    pub fn when_token(&self) -> Option<SyntaxToken> {
15932        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15933    }
15934}
15935
15936#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15937pub struct WhenClauseList {
15938    pub(crate) syntax: SyntaxNode,
15939}
15940impl WhenClauseList {
15941    #[inline]
15942    pub fn when_clause(&self) -> Option<WhenClause> {
15943        support::child(&self.syntax)
15944    }
15945    #[inline]
15946    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
15947        support::children(&self.syntax)
15948    }
15949}
15950
15951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15952pub struct WhenCondition {
15953    pub(crate) syntax: SyntaxNode,
15954}
15955impl WhenCondition {
15956    #[inline]
15957    pub fn expr(&self) -> Option<Expr> {
15958        support::child(&self.syntax)
15959    }
15960    #[inline]
15961    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15962        support::token(&self.syntax, SyntaxKind::L_PAREN)
15963    }
15964    #[inline]
15965    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15966        support::token(&self.syntax, SyntaxKind::R_PAREN)
15967    }
15968    #[inline]
15969    pub fn when_token(&self) -> Option<SyntaxToken> {
15970        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15971    }
15972}
15973
15974#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15975pub struct WhereClause {
15976    pub(crate) syntax: SyntaxNode,
15977}
15978impl WhereClause {
15979    #[inline]
15980    pub fn expr(&self) -> Option<Expr> {
15981        support::child(&self.syntax)
15982    }
15983    #[inline]
15984    pub fn where_token(&self) -> Option<SyntaxToken> {
15985        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15986    }
15987}
15988
15989#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15990pub struct WhereConditionClause {
15991    pub(crate) syntax: SyntaxNode,
15992}
15993impl WhereConditionClause {
15994    #[inline]
15995    pub fn expr(&self) -> Option<Expr> {
15996        support::child(&self.syntax)
15997    }
15998    #[inline]
15999    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16000        support::token(&self.syntax, SyntaxKind::L_PAREN)
16001    }
16002    #[inline]
16003    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16004        support::token(&self.syntax, SyntaxKind::R_PAREN)
16005    }
16006    #[inline]
16007    pub fn where_token(&self) -> Option<SyntaxToken> {
16008        support::token(&self.syntax, SyntaxKind::WHERE_KW)
16009    }
16010}
16011
16012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16013pub struct WhereCurrentOf {
16014    pub(crate) syntax: SyntaxNode,
16015}
16016impl WhereCurrentOf {
16017    #[inline]
16018    pub fn name_ref(&self) -> Option<NameRef> {
16019        support::child(&self.syntax)
16020    }
16021    #[inline]
16022    pub fn current_token(&self) -> Option<SyntaxToken> {
16023        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
16024    }
16025    #[inline]
16026    pub fn of_token(&self) -> Option<SyntaxToken> {
16027        support::token(&self.syntax, SyntaxKind::OF_KW)
16028    }
16029    #[inline]
16030    pub fn where_token(&self) -> Option<SyntaxToken> {
16031        support::token(&self.syntax, SyntaxKind::WHERE_KW)
16032    }
16033}
16034
16035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16036pub struct WindowClause {
16037    pub(crate) syntax: SyntaxNode,
16038}
16039impl WindowClause {
16040    #[inline]
16041    pub fn window_defs(&self) -> AstChildren<WindowDef> {
16042        support::children(&self.syntax)
16043    }
16044    #[inline]
16045    pub fn window_token(&self) -> Option<SyntaxToken> {
16046        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
16047    }
16048}
16049
16050#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16051pub struct WindowDef {
16052    pub(crate) syntax: SyntaxNode,
16053}
16054impl WindowDef {
16055    #[inline]
16056    pub fn name(&self) -> Option<Name> {
16057        support::child(&self.syntax)
16058    }
16059    #[inline]
16060    pub fn window_spec(&self) -> Option<WindowSpec> {
16061        support::child(&self.syntax)
16062    }
16063    #[inline]
16064    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16065        support::token(&self.syntax, SyntaxKind::L_PAREN)
16066    }
16067    #[inline]
16068    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16069        support::token(&self.syntax, SyntaxKind::R_PAREN)
16070    }
16071    #[inline]
16072    pub fn as_token(&self) -> Option<SyntaxToken> {
16073        support::token(&self.syntax, SyntaxKind::AS_KW)
16074    }
16075}
16076
16077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16078pub struct WindowFuncOption {
16079    pub(crate) syntax: SyntaxNode,
16080}
16081impl WindowFuncOption {
16082    #[inline]
16083    pub fn window_token(&self) -> Option<SyntaxToken> {
16084        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
16085    }
16086}
16087
16088#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16089pub struct WindowSpec {
16090    pub(crate) syntax: SyntaxNode,
16091}
16092impl WindowSpec {
16093    #[inline]
16094    pub fn exprs(&self) -> AstChildren<Expr> {
16095        support::children(&self.syntax)
16096    }
16097    #[inline]
16098    pub fn frame_clause(&self) -> Option<FrameClause> {
16099        support::child(&self.syntax)
16100    }
16101    #[inline]
16102    pub fn order_by_clause(&self) -> Option<OrderByClause> {
16103        support::child(&self.syntax)
16104    }
16105    #[inline]
16106    pub fn by_token(&self) -> Option<SyntaxToken> {
16107        support::token(&self.syntax, SyntaxKind::BY_KW)
16108    }
16109    #[inline]
16110    pub fn ident_token(&self) -> Option<SyntaxToken> {
16111        support::token(&self.syntax, SyntaxKind::IDENT)
16112    }
16113    #[inline]
16114    pub fn partition_token(&self) -> Option<SyntaxToken> {
16115        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
16116    }
16117}
16118
16119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16120pub struct WithCheckExprClause {
16121    pub(crate) syntax: SyntaxNode,
16122}
16123impl WithCheckExprClause {
16124    #[inline]
16125    pub fn expr(&self) -> Option<Expr> {
16126        support::child(&self.syntax)
16127    }
16128    #[inline]
16129    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16130        support::token(&self.syntax, SyntaxKind::L_PAREN)
16131    }
16132    #[inline]
16133    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16134        support::token(&self.syntax, SyntaxKind::R_PAREN)
16135    }
16136    #[inline]
16137    pub fn check_token(&self) -> Option<SyntaxToken> {
16138        support::token(&self.syntax, SyntaxKind::CHECK_KW)
16139    }
16140    #[inline]
16141    pub fn with_token(&self) -> Option<SyntaxToken> {
16142        support::token(&self.syntax, SyntaxKind::WITH_KW)
16143    }
16144}
16145
16146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16147pub struct WithClause {
16148    pub(crate) syntax: SyntaxNode,
16149}
16150impl WithClause {
16151    #[inline]
16152    pub fn with_tables(&self) -> AstChildren<WithTable> {
16153        support::children(&self.syntax)
16154    }
16155    #[inline]
16156    pub fn recursive_token(&self) -> Option<SyntaxToken> {
16157        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
16158    }
16159    #[inline]
16160    pub fn with_token(&self) -> Option<SyntaxToken> {
16161        support::token(&self.syntax, SyntaxKind::WITH_KW)
16162    }
16163}
16164
16165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16166pub struct WithData {
16167    pub(crate) syntax: SyntaxNode,
16168}
16169impl WithData {
16170    #[inline]
16171    pub fn data_token(&self) -> Option<SyntaxToken> {
16172        support::token(&self.syntax, SyntaxKind::DATA_KW)
16173    }
16174    #[inline]
16175    pub fn with_token(&self) -> Option<SyntaxToken> {
16176        support::token(&self.syntax, SyntaxKind::WITH_KW)
16177    }
16178}
16179
16180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16181pub struct WithNoData {
16182    pub(crate) syntax: SyntaxNode,
16183}
16184impl WithNoData {
16185    #[inline]
16186    pub fn data_token(&self) -> Option<SyntaxToken> {
16187        support::token(&self.syntax, SyntaxKind::DATA_KW)
16188    }
16189    #[inline]
16190    pub fn no_token(&self) -> Option<SyntaxToken> {
16191        support::token(&self.syntax, SyntaxKind::NO_KW)
16192    }
16193    #[inline]
16194    pub fn with_token(&self) -> Option<SyntaxToken> {
16195        support::token(&self.syntax, SyntaxKind::WITH_KW)
16196    }
16197}
16198
16199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16200pub struct WithOptions {
16201    pub(crate) syntax: SyntaxNode,
16202}
16203impl WithOptions {
16204    #[inline]
16205    pub fn options_token(&self) -> Option<SyntaxToken> {
16206        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
16207    }
16208    #[inline]
16209    pub fn with_token(&self) -> Option<SyntaxToken> {
16210        support::token(&self.syntax, SyntaxKind::WITH_KW)
16211    }
16212}
16213
16214#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16215pub struct WithParams {
16216    pub(crate) syntax: SyntaxNode,
16217}
16218impl WithParams {
16219    #[inline]
16220    pub fn attribute_list(&self) -> Option<AttributeList> {
16221        support::child(&self.syntax)
16222    }
16223    #[inline]
16224    pub fn with_token(&self) -> Option<SyntaxToken> {
16225        support::token(&self.syntax, SyntaxKind::WITH_KW)
16226    }
16227}
16228
16229#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16230pub struct WithTable {
16231    pub(crate) syntax: SyntaxNode,
16232}
16233impl WithTable {
16234    #[inline]
16235    pub fn column_list(&self) -> Option<ColumnList> {
16236        support::child(&self.syntax)
16237    }
16238    #[inline]
16239    pub fn materialized(&self) -> Option<Materialized> {
16240        support::child(&self.syntax)
16241    }
16242    #[inline]
16243    pub fn name(&self) -> Option<Name> {
16244        support::child(&self.syntax)
16245    }
16246    #[inline]
16247    pub fn not_materialized(&self) -> Option<NotMaterialized> {
16248        support::child(&self.syntax)
16249    }
16250    #[inline]
16251    pub fn query(&self) -> Option<WithQuery> {
16252        support::child(&self.syntax)
16253    }
16254    #[inline]
16255    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16256        support::token(&self.syntax, SyntaxKind::L_PAREN)
16257    }
16258    #[inline]
16259    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16260        support::token(&self.syntax, SyntaxKind::R_PAREN)
16261    }
16262    #[inline]
16263    pub fn as_token(&self) -> Option<SyntaxToken> {
16264        support::token(&self.syntax, SyntaxKind::AS_KW)
16265    }
16266}
16267
16268#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16269pub struct WithTimezone {
16270    pub(crate) syntax: SyntaxNode,
16271}
16272impl WithTimezone {
16273    #[inline]
16274    pub fn time_token(&self) -> Option<SyntaxToken> {
16275        support::token(&self.syntax, SyntaxKind::TIME_KW)
16276    }
16277    #[inline]
16278    pub fn with_token(&self) -> Option<SyntaxToken> {
16279        support::token(&self.syntax, SyntaxKind::WITH_KW)
16280    }
16281    #[inline]
16282    pub fn zone_token(&self) -> Option<SyntaxToken> {
16283        support::token(&self.syntax, SyntaxKind::ZONE_KW)
16284    }
16285}
16286
16287#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16288pub struct WithinClause {
16289    pub(crate) syntax: SyntaxNode,
16290}
16291impl WithinClause {
16292    #[inline]
16293    pub fn order_by_clause(&self) -> Option<OrderByClause> {
16294        support::child(&self.syntax)
16295    }
16296    #[inline]
16297    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16298        support::token(&self.syntax, SyntaxKind::L_PAREN)
16299    }
16300    #[inline]
16301    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16302        support::token(&self.syntax, SyntaxKind::R_PAREN)
16303    }
16304    #[inline]
16305    pub fn group_token(&self) -> Option<SyntaxToken> {
16306        support::token(&self.syntax, SyntaxKind::GROUP_KW)
16307    }
16308    #[inline]
16309    pub fn within_token(&self) -> Option<SyntaxToken> {
16310        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
16311    }
16312}
16313
16314#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16315pub struct WithoutOids {
16316    pub(crate) syntax: SyntaxNode,
16317}
16318impl WithoutOids {
16319    #[inline]
16320    pub fn oids_token(&self) -> Option<SyntaxToken> {
16321        support::token(&self.syntax, SyntaxKind::OIDS_KW)
16322    }
16323    #[inline]
16324    pub fn without_token(&self) -> Option<SyntaxToken> {
16325        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16326    }
16327}
16328
16329#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16330pub struct WithoutTimezone {
16331    pub(crate) syntax: SyntaxNode,
16332}
16333impl WithoutTimezone {
16334    #[inline]
16335    pub fn time_token(&self) -> Option<SyntaxToken> {
16336        support::token(&self.syntax, SyntaxKind::TIME_KW)
16337    }
16338    #[inline]
16339    pub fn without_token(&self) -> Option<SyntaxToken> {
16340        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16341    }
16342    #[inline]
16343    pub fn zone_token(&self) -> Option<SyntaxToken> {
16344        support::token(&self.syntax, SyntaxKind::ZONE_KW)
16345    }
16346}
16347
16348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16349pub struct XmlAttributeList {
16350    pub(crate) syntax: SyntaxNode,
16351}
16352impl XmlAttributeList {
16353    #[inline]
16354    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
16355        support::children(&self.syntax)
16356    }
16357}
16358
16359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16360pub struct XmlColumnOption {
16361    pub(crate) syntax: SyntaxNode,
16362}
16363impl XmlColumnOption {
16364    #[inline]
16365    pub fn expr(&self) -> Option<Expr> {
16366        support::child(&self.syntax)
16367    }
16368    #[inline]
16369    pub fn default_token(&self) -> Option<SyntaxToken> {
16370        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16371    }
16372    #[inline]
16373    pub fn ident_token(&self) -> Option<SyntaxToken> {
16374        support::token(&self.syntax, SyntaxKind::IDENT)
16375    }
16376    #[inline]
16377    pub fn not_token(&self) -> Option<SyntaxToken> {
16378        support::token(&self.syntax, SyntaxKind::NOT_KW)
16379    }
16380    #[inline]
16381    pub fn null_token(&self) -> Option<SyntaxToken> {
16382        support::token(&self.syntax, SyntaxKind::NULL_KW)
16383    }
16384    #[inline]
16385    pub fn path_token(&self) -> Option<SyntaxToken> {
16386        support::token(&self.syntax, SyntaxKind::PATH_KW)
16387    }
16388}
16389
16390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16391pub struct XmlColumnOptionList {
16392    pub(crate) syntax: SyntaxNode,
16393}
16394impl XmlColumnOptionList {
16395    #[inline]
16396    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
16397        support::child(&self.syntax)
16398    }
16399    #[inline]
16400    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
16401        support::children(&self.syntax)
16402    }
16403}
16404
16405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16406pub struct XmlElementFn {
16407    pub(crate) syntax: SyntaxNode,
16408}
16409impl XmlElementFn {
16410    #[inline]
16411    pub fn exprs(&self) -> AstChildren<Expr> {
16412        support::children(&self.syntax)
16413    }
16414    #[inline]
16415    pub fn name(&self) -> Option<Name> {
16416        support::child(&self.syntax)
16417    }
16418    #[inline]
16419    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
16420        support::child(&self.syntax)
16421    }
16422    #[inline]
16423    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16424        support::token(&self.syntax, SyntaxKind::L_PAREN)
16425    }
16426    #[inline]
16427    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16428        support::token(&self.syntax, SyntaxKind::R_PAREN)
16429    }
16430    #[inline]
16431    pub fn comma_token(&self) -> Option<SyntaxToken> {
16432        support::token(&self.syntax, SyntaxKind::COMMA)
16433    }
16434    #[inline]
16435    pub fn name_token(&self) -> Option<SyntaxToken> {
16436        support::token(&self.syntax, SyntaxKind::NAME_KW)
16437    }
16438    #[inline]
16439    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
16440        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
16441    }
16442    #[inline]
16443    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
16444        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
16445    }
16446}
16447
16448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16449pub struct XmlExistsFn {
16450    pub(crate) syntax: SyntaxNode,
16451}
16452impl XmlExistsFn {
16453    #[inline]
16454    pub fn expr(&self) -> Option<Expr> {
16455        support::child(&self.syntax)
16456    }
16457    #[inline]
16458    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16459        support::child(&self.syntax)
16460    }
16461    #[inline]
16462    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16463        support::token(&self.syntax, SyntaxKind::L_PAREN)
16464    }
16465    #[inline]
16466    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16467        support::token(&self.syntax, SyntaxKind::R_PAREN)
16468    }
16469    #[inline]
16470    pub fn passing_token(&self) -> Option<SyntaxToken> {
16471        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16472    }
16473    #[inline]
16474    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
16475        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
16476    }
16477}
16478
16479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16480pub struct XmlForestFn {
16481    pub(crate) syntax: SyntaxNode,
16482}
16483impl XmlForestFn {
16484    #[inline]
16485    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
16486        support::child(&self.syntax)
16487    }
16488    #[inline]
16489    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16490        support::token(&self.syntax, SyntaxKind::L_PAREN)
16491    }
16492    #[inline]
16493    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16494        support::token(&self.syntax, SyntaxKind::R_PAREN)
16495    }
16496    #[inline]
16497    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
16498        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
16499    }
16500}
16501
16502#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16503pub struct XmlNamespace {
16504    pub(crate) syntax: SyntaxNode,
16505}
16506impl XmlNamespace {
16507    #[inline]
16508    pub fn expr(&self) -> Option<Expr> {
16509        support::child(&self.syntax)
16510    }
16511    #[inline]
16512    pub fn name(&self) -> Option<Name> {
16513        support::child(&self.syntax)
16514    }
16515    #[inline]
16516    pub fn as_token(&self) -> Option<SyntaxToken> {
16517        support::token(&self.syntax, SyntaxKind::AS_KW)
16518    }
16519    #[inline]
16520    pub fn default_token(&self) -> Option<SyntaxToken> {
16521        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16522    }
16523}
16524
16525#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16526pub struct XmlNamespaceList {
16527    pub(crate) syntax: SyntaxNode,
16528}
16529impl XmlNamespaceList {
16530    #[inline]
16531    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
16532        support::children(&self.syntax)
16533    }
16534    #[inline]
16535    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16536        support::token(&self.syntax, SyntaxKind::L_PAREN)
16537    }
16538    #[inline]
16539    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16540        support::token(&self.syntax, SyntaxKind::R_PAREN)
16541    }
16542}
16543
16544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16545pub struct XmlParseFn {
16546    pub(crate) syntax: SyntaxNode,
16547}
16548impl XmlParseFn {
16549    #[inline]
16550    pub fn expr(&self) -> Option<Expr> {
16551        support::child(&self.syntax)
16552    }
16553    #[inline]
16554    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16555        support::token(&self.syntax, SyntaxKind::L_PAREN)
16556    }
16557    #[inline]
16558    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16559        support::token(&self.syntax, SyntaxKind::R_PAREN)
16560    }
16561    #[inline]
16562    pub fn content_token(&self) -> Option<SyntaxToken> {
16563        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16564    }
16565    #[inline]
16566    pub fn document_token(&self) -> Option<SyntaxToken> {
16567        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16568    }
16569    #[inline]
16570    pub fn preserve_token(&self) -> Option<SyntaxToken> {
16571        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
16572    }
16573    #[inline]
16574    pub fn strip_token(&self) -> Option<SyntaxToken> {
16575        support::token(&self.syntax, SyntaxKind::STRIP_KW)
16576    }
16577    #[inline]
16578    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
16579        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
16580    }
16581    #[inline]
16582    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
16583        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
16584    }
16585}
16586
16587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16588pub struct XmlPassingMech {
16589    pub(crate) syntax: SyntaxNode,
16590}
16591impl XmlPassingMech {
16592    #[inline]
16593    pub fn by_token(&self) -> Option<SyntaxToken> {
16594        support::token(&self.syntax, SyntaxKind::BY_KW)
16595    }
16596    #[inline]
16597    pub fn ref_token(&self) -> Option<SyntaxToken> {
16598        support::token(&self.syntax, SyntaxKind::REF_KW)
16599    }
16600    #[inline]
16601    pub fn value_token(&self) -> Option<SyntaxToken> {
16602        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16603    }
16604}
16605
16606#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16607pub struct XmlPiFn {
16608    pub(crate) syntax: SyntaxNode,
16609}
16610impl XmlPiFn {
16611    #[inline]
16612    pub fn expr(&self) -> Option<Expr> {
16613        support::child(&self.syntax)
16614    }
16615    #[inline]
16616    pub fn name(&self) -> Option<Name> {
16617        support::child(&self.syntax)
16618    }
16619    #[inline]
16620    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16621        support::token(&self.syntax, SyntaxKind::L_PAREN)
16622    }
16623    #[inline]
16624    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16625        support::token(&self.syntax, SyntaxKind::R_PAREN)
16626    }
16627    #[inline]
16628    pub fn comma_token(&self) -> Option<SyntaxToken> {
16629        support::token(&self.syntax, SyntaxKind::COMMA)
16630    }
16631    #[inline]
16632    pub fn name_token(&self) -> Option<SyntaxToken> {
16633        support::token(&self.syntax, SyntaxKind::NAME_KW)
16634    }
16635    #[inline]
16636    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
16637        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
16638    }
16639}
16640
16641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16642pub struct XmlRootFn {
16643    pub(crate) syntax: SyntaxNode,
16644}
16645impl XmlRootFn {
16646    #[inline]
16647    pub fn expr(&self) -> Option<Expr> {
16648        support::child(&self.syntax)
16649    }
16650    #[inline]
16651    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16652        support::token(&self.syntax, SyntaxKind::L_PAREN)
16653    }
16654    #[inline]
16655    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16656        support::token(&self.syntax, SyntaxKind::R_PAREN)
16657    }
16658    #[inline]
16659    pub fn comma_token(&self) -> Option<SyntaxToken> {
16660        support::token(&self.syntax, SyntaxKind::COMMA)
16661    }
16662    #[inline]
16663    pub fn no_token(&self) -> Option<SyntaxToken> {
16664        support::token(&self.syntax, SyntaxKind::NO_KW)
16665    }
16666    #[inline]
16667    pub fn standalone_token(&self) -> Option<SyntaxToken> {
16668        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
16669    }
16670    #[inline]
16671    pub fn value_token(&self) -> Option<SyntaxToken> {
16672        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16673    }
16674    #[inline]
16675    pub fn version_token(&self) -> Option<SyntaxToken> {
16676        support::token(&self.syntax, SyntaxKind::VERSION_KW)
16677    }
16678    #[inline]
16679    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
16680        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
16681    }
16682    #[inline]
16683    pub fn yes_token(&self) -> Option<SyntaxToken> {
16684        support::token(&self.syntax, SyntaxKind::YES_KW)
16685    }
16686}
16687
16688#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16689pub struct XmlRowPassingClause {
16690    pub(crate) syntax: SyntaxNode,
16691}
16692impl XmlRowPassingClause {
16693    #[inline]
16694    pub fn expr(&self) -> Option<Expr> {
16695        support::child(&self.syntax)
16696    }
16697    #[inline]
16698    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16699        support::child(&self.syntax)
16700    }
16701    #[inline]
16702    pub fn passing_token(&self) -> Option<SyntaxToken> {
16703        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16704    }
16705}
16706
16707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16708pub struct XmlSerializeFn {
16709    pub(crate) syntax: SyntaxNode,
16710}
16711impl XmlSerializeFn {
16712    #[inline]
16713    pub fn expr(&self) -> Option<Expr> {
16714        support::child(&self.syntax)
16715    }
16716    #[inline]
16717    pub fn ty(&self) -> Option<Type> {
16718        support::child(&self.syntax)
16719    }
16720    #[inline]
16721    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16722        support::token(&self.syntax, SyntaxKind::L_PAREN)
16723    }
16724    #[inline]
16725    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16726        support::token(&self.syntax, SyntaxKind::R_PAREN)
16727    }
16728    #[inline]
16729    pub fn as_token(&self) -> Option<SyntaxToken> {
16730        support::token(&self.syntax, SyntaxKind::AS_KW)
16731    }
16732    #[inline]
16733    pub fn content_token(&self) -> Option<SyntaxToken> {
16734        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16735    }
16736    #[inline]
16737    pub fn document_token(&self) -> Option<SyntaxToken> {
16738        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16739    }
16740    #[inline]
16741    pub fn ident_token(&self) -> Option<SyntaxToken> {
16742        support::token(&self.syntax, SyntaxKind::IDENT)
16743    }
16744    #[inline]
16745    pub fn no_token(&self) -> Option<SyntaxToken> {
16746        support::token(&self.syntax, SyntaxKind::NO_KW)
16747    }
16748    #[inline]
16749    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
16750        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
16751    }
16752}
16753
16754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16755pub struct XmlTable {
16756    pub(crate) syntax: SyntaxNode,
16757}
16758impl XmlTable {
16759    #[inline]
16760    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
16761        support::child(&self.syntax)
16762    }
16763    #[inline]
16764    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
16765        support::child(&self.syntax)
16766    }
16767    #[inline]
16768    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
16769        support::child(&self.syntax)
16770    }
16771    #[inline]
16772    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16773        support::token(&self.syntax, SyntaxKind::L_PAREN)
16774    }
16775    #[inline]
16776    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16777        support::token(&self.syntax, SyntaxKind::R_PAREN)
16778    }
16779    #[inline]
16780    pub fn comma_token(&self) -> Option<SyntaxToken> {
16781        support::token(&self.syntax, SyntaxKind::COMMA)
16782    }
16783    #[inline]
16784    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
16785        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
16786    }
16787    #[inline]
16788    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
16789        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
16790    }
16791}
16792
16793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16794pub struct XmlTableColumn {
16795    pub(crate) syntax: SyntaxNode,
16796}
16797impl XmlTableColumn {
16798    #[inline]
16799    pub fn name(&self) -> Option<Name> {
16800        support::child(&self.syntax)
16801    }
16802    #[inline]
16803    pub fn ty(&self) -> Option<Type> {
16804        support::child(&self.syntax)
16805    }
16806    #[inline]
16807    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
16808        support::child(&self.syntax)
16809    }
16810    #[inline]
16811    pub fn for_token(&self) -> Option<SyntaxToken> {
16812        support::token(&self.syntax, SyntaxKind::FOR_KW)
16813    }
16814    #[inline]
16815    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
16816        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
16817    }
16818}
16819
16820#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16821pub struct XmlTableColumnList {
16822    pub(crate) syntax: SyntaxNode,
16823}
16824impl XmlTableColumnList {
16825    #[inline]
16826    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
16827        support::children(&self.syntax)
16828    }
16829}
16830
16831#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16832pub enum AlterColumnOption {
16833    AddGenerated(AddGenerated),
16834    DropDefault(DropDefault),
16835    DropExpression(DropExpression),
16836    DropIdentity(DropIdentity),
16837    DropNotNull(DropNotNull),
16838    Inherit(Inherit),
16839    NoInherit(NoInherit),
16840    ResetOptions(ResetOptions),
16841    Restart(Restart),
16842    SetCompression(SetCompression),
16843    SetDefault(SetDefault),
16844    SetExpression(SetExpression),
16845    SetGenerated(SetGenerated),
16846    SetGeneratedOptions(SetGeneratedOptions),
16847    SetNotNull(SetNotNull),
16848    SetOptions(SetOptions),
16849    SetOptionsList(SetOptionsList),
16850    SetSequenceOption(SetSequenceOption),
16851    SetStatistics(SetStatistics),
16852    SetStorage(SetStorage),
16853    SetType(SetType),
16854}
16855
16856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16857pub enum AlterDomainAction {
16858    AddConstraint(AddConstraint),
16859    DropConstraint(DropConstraint),
16860    DropDefault(DropDefault),
16861    DropNotNull(DropNotNull),
16862    OwnerTo(OwnerTo),
16863    RenameConstraint(RenameConstraint),
16864    RenameTo(RenameTo),
16865    SetDefault(SetDefault),
16866    SetNotNull(SetNotNull),
16867    SetSchema(SetSchema),
16868    ValidateConstraint(ValidateConstraint),
16869}
16870
16871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16872pub enum AlterIndexAction {
16873    AlterSetStatistics(AlterSetStatistics),
16874    AttachPartition(AttachPartition),
16875    DependsOnExtension(DependsOnExtension),
16876    NoDependsOnExtension(NoDependsOnExtension),
16877    RenameTo(RenameTo),
16878    ResetOptions(ResetOptions),
16879    SetOptions(SetOptions),
16880    SetTablespace(SetTablespace),
16881}
16882
16883#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16884pub enum AlterMaterializedViewAction {
16885    DependsOnExtension(DependsOnExtension),
16886    NoDependsOnExtension(NoDependsOnExtension),
16887    RenameColumn(RenameColumn),
16888    RenameTo(RenameTo),
16889    SetSchema(SetSchema),
16890    AlterTableAction(AlterTableAction),
16891}
16892
16893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16894pub enum AlterTableAction {
16895    AddColumn(AddColumn),
16896    AddConstraint(AddConstraint),
16897    AlterColumn(AlterColumn),
16898    AlterConstraint(AlterConstraint),
16899    AttachPartition(AttachPartition),
16900    ClusterOn(ClusterOn),
16901    DetachPartition(DetachPartition),
16902    DisableRls(DisableRls),
16903    DisableRule(DisableRule),
16904    DisableTrigger(DisableTrigger),
16905    DropColumn(DropColumn),
16906    DropConstraint(DropConstraint),
16907    EnableAlwaysRule(EnableAlwaysRule),
16908    EnableAlwaysTrigger(EnableAlwaysTrigger),
16909    EnableReplicaRule(EnableReplicaRule),
16910    EnableReplicaTrigger(EnableReplicaTrigger),
16911    EnableRls(EnableRls),
16912    EnableRule(EnableRule),
16913    EnableTrigger(EnableTrigger),
16914    ForceRls(ForceRls),
16915    InheritTable(InheritTable),
16916    MergePartitions(MergePartitions),
16917    NoForceRls(NoForceRls),
16918    NoInheritTable(NoInheritTable),
16919    NotOf(NotOf),
16920    OfType(OfType),
16921    OptionItemList(OptionItemList),
16922    OwnerTo(OwnerTo),
16923    RenameColumn(RenameColumn),
16924    RenameConstraint(RenameConstraint),
16925    RenameTo(RenameTo),
16926    ReplicaIdentity(ReplicaIdentity),
16927    ResetOptions(ResetOptions),
16928    SetAccessMethod(SetAccessMethod),
16929    SetLogged(SetLogged),
16930    SetOptions(SetOptions),
16931    SetSchema(SetSchema),
16932    SetTablespace(SetTablespace),
16933    SetUnlogged(SetUnlogged),
16934    SetWithoutCluster(SetWithoutCluster),
16935    SetWithoutOids(SetWithoutOids),
16936    SplitPartition(SplitPartition),
16937    ValidateConstraint(ValidateConstraint),
16938}
16939
16940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16941pub enum ColumnConstraint {
16942    CheckConstraint(CheckConstraint),
16943    DefaultConstraint(DefaultConstraint),
16944    ExcludeConstraint(ExcludeConstraint),
16945    NotNullConstraint(NotNullConstraint),
16946    PrimaryKeyConstraint(PrimaryKeyConstraint),
16947    ReferencesConstraint(ReferencesConstraint),
16948    UniqueConstraint(UniqueConstraint),
16949}
16950
16951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16952pub enum ConfigValue {
16953    Literal(Literal),
16954    NameRef(NameRef),
16955}
16956
16957#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16958pub enum ConflictAction {
16959    ConflictDoNothing(ConflictDoNothing),
16960    ConflictDoUpdateSet(ConflictDoUpdateSet),
16961}
16962
16963#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16964pub enum ConflictTarget {
16965    ConflictOnConstraint(ConflictOnConstraint),
16966    ConflictOnIndex(ConflictOnIndex),
16967}
16968
16969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16970pub enum Constraint {
16971    CheckConstraint(CheckConstraint),
16972    DefaultConstraint(DefaultConstraint),
16973    ForeignKeyConstraint(ForeignKeyConstraint),
16974    GeneratedConstraint(GeneratedConstraint),
16975    NotNullConstraint(NotNullConstraint),
16976    NullConstraint(NullConstraint),
16977    PrimaryKeyConstraint(PrimaryKeyConstraint),
16978    ReferencesConstraint(ReferencesConstraint),
16979    UniqueConstraint(UniqueConstraint),
16980}
16981
16982#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16983pub enum ExplainStmt {
16984    CompoundSelect(CompoundSelect),
16985    CreateMaterializedView(CreateMaterializedView),
16986    CreateTableAs(CreateTableAs),
16987    Declare(Declare),
16988    Delete(Delete),
16989    Execute(Execute),
16990    Insert(Insert),
16991    Merge(Merge),
16992    ParenSelect(ParenSelect),
16993    Select(Select),
16994    SelectInto(SelectInto),
16995    Table(Table),
16996    Update(Update),
16997    Values(Values),
16998}
16999
17000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17001pub enum Expr {
17002    ArrayExpr(ArrayExpr),
17003    BetweenExpr(BetweenExpr),
17004    BinExpr(BinExpr),
17005    CallExpr(CallExpr),
17006    CaseExpr(CaseExpr),
17007    CastExpr(CastExpr),
17008    FieldExpr(FieldExpr),
17009    IndexExpr(IndexExpr),
17010    Literal(Literal),
17011    NameRef(NameRef),
17012    ParenExpr(ParenExpr),
17013    PostfixExpr(PostfixExpr),
17014    PrefixExpr(PrefixExpr),
17015    SliceExpr(SliceExpr),
17016    TupleExpr(TupleExpr),
17017}
17018
17019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17020pub enum FuncOption {
17021    AsFuncOption(AsFuncOption),
17022    BeginFuncOptionList(BeginFuncOptionList),
17023    CostFuncOption(CostFuncOption),
17024    LanguageFuncOption(LanguageFuncOption),
17025    LeakproofFuncOption(LeakproofFuncOption),
17026    ParallelFuncOption(ParallelFuncOption),
17027    ResetFuncOption(ResetFuncOption),
17028    ReturnFuncOption(ReturnFuncOption),
17029    RowsFuncOption(RowsFuncOption),
17030    SecurityFuncOption(SecurityFuncOption),
17031    SetFuncOption(SetFuncOption),
17032    StrictFuncOption(StrictFuncOption),
17033    SupportFuncOption(SupportFuncOption),
17034    TransformFuncOption(TransformFuncOption),
17035    VolatilityFuncOption(VolatilityFuncOption),
17036    WindowFuncOption(WindowFuncOption),
17037}
17038
17039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17040pub enum GroupBy {
17041    GroupingCube(GroupingCube),
17042    GroupingExpr(GroupingExpr),
17043    GroupingRollup(GroupingRollup),
17044    GroupingSets(GroupingSets),
17045}
17046
17047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17048pub enum JoinType {
17049    JoinCross(JoinCross),
17050    JoinFull(JoinFull),
17051    JoinInner(JoinInner),
17052    JoinLeft(JoinLeft),
17053    JoinRight(JoinRight),
17054}
17055
17056#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17057pub enum JsonBehavior {
17058    JsonBehaviorDefault(JsonBehaviorDefault),
17059    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
17060    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
17061    JsonBehaviorError(JsonBehaviorError),
17062    JsonBehaviorFalse(JsonBehaviorFalse),
17063    JsonBehaviorNull(JsonBehaviorNull),
17064    JsonBehaviorTrue(JsonBehaviorTrue),
17065    JsonBehaviorUnknown(JsonBehaviorUnknown),
17066}
17067
17068#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17069pub enum MatchType {
17070    MatchFull(MatchFull),
17071    MatchPartial(MatchPartial),
17072    MatchSimple(MatchSimple),
17073}
17074
17075#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17076pub enum MergeAction {
17077    MergeDelete(MergeDelete),
17078    MergeDoNothing(MergeDoNothing),
17079    MergeInsert(MergeInsert),
17080    MergeUpdate(MergeUpdate),
17081}
17082
17083#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17084pub enum MergeWhenClause {
17085    MergeWhenMatched(MergeWhenMatched),
17086    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
17087    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
17088}
17089
17090#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17091pub enum OnCommitAction {
17092    DeleteRows(DeleteRows),
17093    Drop(Drop),
17094    PreserveRows(PreserveRows),
17095}
17096
17097#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17098pub enum ParamMode {
17099    ParamIn(ParamIn),
17100    ParamInOut(ParamInOut),
17101    ParamOut(ParamOut),
17102    ParamVariadic(ParamVariadic),
17103}
17104
17105#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17106pub enum PartitionType {
17107    PartitionDefault(PartitionDefault),
17108    PartitionForValuesFrom(PartitionForValuesFrom),
17109    PartitionForValuesIn(PartitionForValuesIn),
17110    PartitionForValuesWith(PartitionForValuesWith),
17111}
17112
17113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17114pub enum PreparableStmt {
17115    CompoundSelect(CompoundSelect),
17116    Delete(Delete),
17117    Insert(Insert),
17118    Merge(Merge),
17119    Select(Select),
17120    SelectInto(SelectInto),
17121    Table(Table),
17122    Update(Update),
17123    Values(Values),
17124}
17125
17126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17127pub enum RefAction {
17128    Cascade(Cascade),
17129    NoAction(NoAction),
17130    Restrict(Restrict),
17131    SetDefaultColumns(SetDefaultColumns),
17132    SetNullColumns(SetNullColumns),
17133}
17134
17135#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17136pub enum SchemaElement {
17137    CreateIndex(CreateIndex),
17138    CreateSequence(CreateSequence),
17139    CreateTable(CreateTable),
17140    CreateTrigger(CreateTrigger),
17141    CreateView(CreateView),
17142    Grant(Grant),
17143}
17144
17145#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17146pub enum SelectVariant {
17147    CompoundSelect(CompoundSelect),
17148    ParenSelect(ParenSelect),
17149    Select(Select),
17150    SelectInto(SelectInto),
17151    Table(Table),
17152    Values(Values),
17153}
17154
17155#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17156pub enum SetColumn {
17157    SetMultipleColumns(SetMultipleColumns),
17158    SetSingleColumn(SetSingleColumn),
17159}
17160
17161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17162pub enum Stmt {
17163    AlterAggregate(AlterAggregate),
17164    AlterCollation(AlterCollation),
17165    AlterConversion(AlterConversion),
17166    AlterDatabase(AlterDatabase),
17167    AlterDefaultPrivileges(AlterDefaultPrivileges),
17168    AlterDomain(AlterDomain),
17169    AlterEventTrigger(AlterEventTrigger),
17170    AlterExtension(AlterExtension),
17171    AlterForeignDataWrapper(AlterForeignDataWrapper),
17172    AlterForeignTable(AlterForeignTable),
17173    AlterFunction(AlterFunction),
17174    AlterGroup(AlterGroup),
17175    AlterIndex(AlterIndex),
17176    AlterLanguage(AlterLanguage),
17177    AlterLargeObject(AlterLargeObject),
17178    AlterMaterializedView(AlterMaterializedView),
17179    AlterOperator(AlterOperator),
17180    AlterOperatorClass(AlterOperatorClass),
17181    AlterOperatorFamily(AlterOperatorFamily),
17182    AlterPolicy(AlterPolicy),
17183    AlterProcedure(AlterProcedure),
17184    AlterPublication(AlterPublication),
17185    AlterRole(AlterRole),
17186    AlterRoutine(AlterRoutine),
17187    AlterRule(AlterRule),
17188    AlterSchema(AlterSchema),
17189    AlterSequence(AlterSequence),
17190    AlterServer(AlterServer),
17191    AlterStatistics(AlterStatistics),
17192    AlterSubscription(AlterSubscription),
17193    AlterSystem(AlterSystem),
17194    AlterTable(AlterTable),
17195    AlterTablespace(AlterTablespace),
17196    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
17197    AlterTextSearchDictionary(AlterTextSearchDictionary),
17198    AlterTextSearchParser(AlterTextSearchParser),
17199    AlterTextSearchTemplate(AlterTextSearchTemplate),
17200    AlterTrigger(AlterTrigger),
17201    AlterType(AlterType),
17202    AlterUser(AlterUser),
17203    AlterUserMapping(AlterUserMapping),
17204    AlterView(AlterView),
17205    Analyze(Analyze),
17206    Begin(Begin),
17207    Call(Call),
17208    Checkpoint(Checkpoint),
17209    Close(Close),
17210    Cluster(Cluster),
17211    CommentOn(CommentOn),
17212    Commit(Commit),
17213    Copy(Copy),
17214    CreateAccessMethod(CreateAccessMethod),
17215    CreateAggregate(CreateAggregate),
17216    CreateCast(CreateCast),
17217    CreateCollation(CreateCollation),
17218    CreateConversion(CreateConversion),
17219    CreateDatabase(CreateDatabase),
17220    CreateDomain(CreateDomain),
17221    CreateEventTrigger(CreateEventTrigger),
17222    CreateExtension(CreateExtension),
17223    CreateForeignDataWrapper(CreateForeignDataWrapper),
17224    CreateForeignTable(CreateForeignTable),
17225    CreateFunction(CreateFunction),
17226    CreateGroup(CreateGroup),
17227    CreateIndex(CreateIndex),
17228    CreateLanguage(CreateLanguage),
17229    CreateMaterializedView(CreateMaterializedView),
17230    CreateOperator(CreateOperator),
17231    CreateOperatorClass(CreateOperatorClass),
17232    CreateOperatorFamily(CreateOperatorFamily),
17233    CreatePolicy(CreatePolicy),
17234    CreateProcedure(CreateProcedure),
17235    CreatePublication(CreatePublication),
17236    CreateRole(CreateRole),
17237    CreateRule(CreateRule),
17238    CreateSchema(CreateSchema),
17239    CreateSequence(CreateSequence),
17240    CreateServer(CreateServer),
17241    CreateStatistics(CreateStatistics),
17242    CreateSubscription(CreateSubscription),
17243    CreateTable(CreateTable),
17244    CreateTableAs(CreateTableAs),
17245    CreateTablespace(CreateTablespace),
17246    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
17247    CreateTextSearchDictionary(CreateTextSearchDictionary),
17248    CreateTextSearchParser(CreateTextSearchParser),
17249    CreateTextSearchTemplate(CreateTextSearchTemplate),
17250    CreateTransform(CreateTransform),
17251    CreateTrigger(CreateTrigger),
17252    CreateType(CreateType),
17253    CreateUser(CreateUser),
17254    CreateUserMapping(CreateUserMapping),
17255    CreateView(CreateView),
17256    Deallocate(Deallocate),
17257    Declare(Declare),
17258    Delete(Delete),
17259    Discard(Discard),
17260    Do(Do),
17261    DropAccessMethod(DropAccessMethod),
17262    DropAggregate(DropAggregate),
17263    DropCast(DropCast),
17264    DropCollation(DropCollation),
17265    DropConversion(DropConversion),
17266    DropDatabase(DropDatabase),
17267    DropDomain(DropDomain),
17268    DropEventTrigger(DropEventTrigger),
17269    DropExtension(DropExtension),
17270    DropForeignDataWrapper(DropForeignDataWrapper),
17271    DropForeignTable(DropForeignTable),
17272    DropFunction(DropFunction),
17273    DropGroup(DropGroup),
17274    DropIndex(DropIndex),
17275    DropLanguage(DropLanguage),
17276    DropMaterializedView(DropMaterializedView),
17277    DropOperator(DropOperator),
17278    DropOperatorClass(DropOperatorClass),
17279    DropOperatorFamily(DropOperatorFamily),
17280    DropOwned(DropOwned),
17281    DropPolicy(DropPolicy),
17282    DropProcedure(DropProcedure),
17283    DropPublication(DropPublication),
17284    DropRole(DropRole),
17285    DropRoutine(DropRoutine),
17286    DropRule(DropRule),
17287    DropSchema(DropSchema),
17288    DropSequence(DropSequence),
17289    DropServer(DropServer),
17290    DropStatistics(DropStatistics),
17291    DropSubscription(DropSubscription),
17292    DropTable(DropTable),
17293    DropTablespace(DropTablespace),
17294    DropTextSearchConfig(DropTextSearchConfig),
17295    DropTextSearchDict(DropTextSearchDict),
17296    DropTextSearchParser(DropTextSearchParser),
17297    DropTextSearchTemplate(DropTextSearchTemplate),
17298    DropTransform(DropTransform),
17299    DropTrigger(DropTrigger),
17300    DropType(DropType),
17301    DropUser(DropUser),
17302    DropUserMapping(DropUserMapping),
17303    DropView(DropView),
17304    Execute(Execute),
17305    Explain(Explain),
17306    Fetch(Fetch),
17307    Grant(Grant),
17308    ImportForeignSchema(ImportForeignSchema),
17309    Insert(Insert),
17310    Listen(Listen),
17311    Load(Load),
17312    Lock(Lock),
17313    Merge(Merge),
17314    Move(Move),
17315    Notify(Notify),
17316    ParenSelect(ParenSelect),
17317    Prepare(Prepare),
17318    PrepareTransaction(PrepareTransaction),
17319    Reassign(Reassign),
17320    Refresh(Refresh),
17321    Reindex(Reindex),
17322    ReleaseSavepoint(ReleaseSavepoint),
17323    Reset(Reset),
17324    ResetSessionAuth(ResetSessionAuth),
17325    Revoke(Revoke),
17326    Rollback(Rollback),
17327    Savepoint(Savepoint),
17328    SecurityLabel(SecurityLabel),
17329    Select(Select),
17330    SelectInto(SelectInto),
17331    Set(Set),
17332    SetConstraints(SetConstraints),
17333    SetRole(SetRole),
17334    SetSessionAuth(SetSessionAuth),
17335    SetTransaction(SetTransaction),
17336    Show(Show),
17337    Table(Table),
17338    Truncate(Truncate),
17339    Unlisten(Unlisten),
17340    Update(Update),
17341    Vacuum(Vacuum),
17342    Values(Values),
17343}
17344
17345#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17346pub enum TableArg {
17347    Column(Column),
17348    LikeClause(LikeClause),
17349    TableConstraint(TableConstraint),
17350}
17351
17352#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17353pub enum TableConstraint {
17354    CheckConstraint(CheckConstraint),
17355    ExcludeConstraint(ExcludeConstraint),
17356    ForeignKeyConstraint(ForeignKeyConstraint),
17357    PrimaryKeyConstraint(PrimaryKeyConstraint),
17358    UniqueConstraint(UniqueConstraint),
17359}
17360
17361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17362pub enum Timezone {
17363    WithTimezone(WithTimezone),
17364    WithoutTimezone(WithoutTimezone),
17365}
17366
17367#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17368pub enum TransactionMode {
17369    Deferrable(Deferrable),
17370    NotDeferrable(NotDeferrable),
17371    ReadCommitted(ReadCommitted),
17372    ReadOnly(ReadOnly),
17373    ReadUncommitted(ReadUncommitted),
17374    ReadWrite(ReadWrite),
17375    RepeatableRead(RepeatableRead),
17376    Serializable(Serializable),
17377}
17378
17379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17380pub enum Type {
17381    ArrayType(ArrayType),
17382    BitType(BitType),
17383    CharType(CharType),
17384    DoubleType(DoubleType),
17385    ExprType(ExprType),
17386    IntervalType(IntervalType),
17387    PathType(PathType),
17388    PercentType(PercentType),
17389    TimeType(TimeType),
17390}
17391
17392#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17393pub enum WithQuery {
17394    CompoundSelect(CompoundSelect),
17395    Delete(Delete),
17396    Insert(Insert),
17397    Merge(Merge),
17398    ParenSelect(ParenSelect),
17399    Select(Select),
17400    Table(Table),
17401    Update(Update),
17402    Values(Values),
17403}
17404impl AstNode for AddColumn {
17405    #[inline]
17406    fn can_cast(kind: SyntaxKind) -> bool {
17407        kind == SyntaxKind::ADD_COLUMN
17408    }
17409    #[inline]
17410    fn cast(syntax: SyntaxNode) -> Option<Self> {
17411        if Self::can_cast(syntax.kind()) {
17412            Some(Self { syntax })
17413        } else {
17414            None
17415        }
17416    }
17417    #[inline]
17418    fn syntax(&self) -> &SyntaxNode {
17419        &self.syntax
17420    }
17421}
17422impl AstNode for AddConstraint {
17423    #[inline]
17424    fn can_cast(kind: SyntaxKind) -> bool {
17425        kind == SyntaxKind::ADD_CONSTRAINT
17426    }
17427    #[inline]
17428    fn cast(syntax: SyntaxNode) -> Option<Self> {
17429        if Self::can_cast(syntax.kind()) {
17430            Some(Self { syntax })
17431        } else {
17432            None
17433        }
17434    }
17435    #[inline]
17436    fn syntax(&self) -> &SyntaxNode {
17437        &self.syntax
17438    }
17439}
17440impl AstNode for AddGenerated {
17441    #[inline]
17442    fn can_cast(kind: SyntaxKind) -> bool {
17443        kind == SyntaxKind::ADD_GENERATED
17444    }
17445    #[inline]
17446    fn cast(syntax: SyntaxNode) -> Option<Self> {
17447        if Self::can_cast(syntax.kind()) {
17448            Some(Self { syntax })
17449        } else {
17450            None
17451        }
17452    }
17453    #[inline]
17454    fn syntax(&self) -> &SyntaxNode {
17455        &self.syntax
17456    }
17457}
17458impl AstNode for AddOpClassOptions {
17459    #[inline]
17460    fn can_cast(kind: SyntaxKind) -> bool {
17461        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
17462    }
17463    #[inline]
17464    fn cast(syntax: SyntaxNode) -> Option<Self> {
17465        if Self::can_cast(syntax.kind()) {
17466            Some(Self { syntax })
17467        } else {
17468            None
17469        }
17470    }
17471    #[inline]
17472    fn syntax(&self) -> &SyntaxNode {
17473        &self.syntax
17474    }
17475}
17476impl AstNode for Aggregate {
17477    #[inline]
17478    fn can_cast(kind: SyntaxKind) -> bool {
17479        kind == SyntaxKind::AGGREGATE
17480    }
17481    #[inline]
17482    fn cast(syntax: SyntaxNode) -> Option<Self> {
17483        if Self::can_cast(syntax.kind()) {
17484            Some(Self { syntax })
17485        } else {
17486            None
17487        }
17488    }
17489    #[inline]
17490    fn syntax(&self) -> &SyntaxNode {
17491        &self.syntax
17492    }
17493}
17494impl AstNode for Alias {
17495    #[inline]
17496    fn can_cast(kind: SyntaxKind) -> bool {
17497        kind == SyntaxKind::ALIAS
17498    }
17499    #[inline]
17500    fn cast(syntax: SyntaxNode) -> Option<Self> {
17501        if Self::can_cast(syntax.kind()) {
17502            Some(Self { syntax })
17503        } else {
17504            None
17505        }
17506    }
17507    #[inline]
17508    fn syntax(&self) -> &SyntaxNode {
17509        &self.syntax
17510    }
17511}
17512impl AstNode for AllFn {
17513    #[inline]
17514    fn can_cast(kind: SyntaxKind) -> bool {
17515        kind == SyntaxKind::ALL_FN
17516    }
17517    #[inline]
17518    fn cast(syntax: SyntaxNode) -> Option<Self> {
17519        if Self::can_cast(syntax.kind()) {
17520            Some(Self { syntax })
17521        } else {
17522            None
17523        }
17524    }
17525    #[inline]
17526    fn syntax(&self) -> &SyntaxNode {
17527        &self.syntax
17528    }
17529}
17530impl AstNode for AlterAggregate {
17531    #[inline]
17532    fn can_cast(kind: SyntaxKind) -> bool {
17533        kind == SyntaxKind::ALTER_AGGREGATE
17534    }
17535    #[inline]
17536    fn cast(syntax: SyntaxNode) -> Option<Self> {
17537        if Self::can_cast(syntax.kind()) {
17538            Some(Self { syntax })
17539        } else {
17540            None
17541        }
17542    }
17543    #[inline]
17544    fn syntax(&self) -> &SyntaxNode {
17545        &self.syntax
17546    }
17547}
17548impl AstNode for AlterCollation {
17549    #[inline]
17550    fn can_cast(kind: SyntaxKind) -> bool {
17551        kind == SyntaxKind::ALTER_COLLATION
17552    }
17553    #[inline]
17554    fn cast(syntax: SyntaxNode) -> Option<Self> {
17555        if Self::can_cast(syntax.kind()) {
17556            Some(Self { syntax })
17557        } else {
17558            None
17559        }
17560    }
17561    #[inline]
17562    fn syntax(&self) -> &SyntaxNode {
17563        &self.syntax
17564    }
17565}
17566impl AstNode for AlterColumn {
17567    #[inline]
17568    fn can_cast(kind: SyntaxKind) -> bool {
17569        kind == SyntaxKind::ALTER_COLUMN
17570    }
17571    #[inline]
17572    fn cast(syntax: SyntaxNode) -> Option<Self> {
17573        if Self::can_cast(syntax.kind()) {
17574            Some(Self { syntax })
17575        } else {
17576            None
17577        }
17578    }
17579    #[inline]
17580    fn syntax(&self) -> &SyntaxNode {
17581        &self.syntax
17582    }
17583}
17584impl AstNode for AlterConstraint {
17585    #[inline]
17586    fn can_cast(kind: SyntaxKind) -> bool {
17587        kind == SyntaxKind::ALTER_CONSTRAINT
17588    }
17589    #[inline]
17590    fn cast(syntax: SyntaxNode) -> Option<Self> {
17591        if Self::can_cast(syntax.kind()) {
17592            Some(Self { syntax })
17593        } else {
17594            None
17595        }
17596    }
17597    #[inline]
17598    fn syntax(&self) -> &SyntaxNode {
17599        &self.syntax
17600    }
17601}
17602impl AstNode for AlterConversion {
17603    #[inline]
17604    fn can_cast(kind: SyntaxKind) -> bool {
17605        kind == SyntaxKind::ALTER_CONVERSION
17606    }
17607    #[inline]
17608    fn cast(syntax: SyntaxNode) -> Option<Self> {
17609        if Self::can_cast(syntax.kind()) {
17610            Some(Self { syntax })
17611        } else {
17612            None
17613        }
17614    }
17615    #[inline]
17616    fn syntax(&self) -> &SyntaxNode {
17617        &self.syntax
17618    }
17619}
17620impl AstNode for AlterDatabase {
17621    #[inline]
17622    fn can_cast(kind: SyntaxKind) -> bool {
17623        kind == SyntaxKind::ALTER_DATABASE
17624    }
17625    #[inline]
17626    fn cast(syntax: SyntaxNode) -> Option<Self> {
17627        if Self::can_cast(syntax.kind()) {
17628            Some(Self { syntax })
17629        } else {
17630            None
17631        }
17632    }
17633    #[inline]
17634    fn syntax(&self) -> &SyntaxNode {
17635        &self.syntax
17636    }
17637}
17638impl AstNode for AlterDefaultPrivileges {
17639    #[inline]
17640    fn can_cast(kind: SyntaxKind) -> bool {
17641        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
17642    }
17643    #[inline]
17644    fn cast(syntax: SyntaxNode) -> Option<Self> {
17645        if Self::can_cast(syntax.kind()) {
17646            Some(Self { syntax })
17647        } else {
17648            None
17649        }
17650    }
17651    #[inline]
17652    fn syntax(&self) -> &SyntaxNode {
17653        &self.syntax
17654    }
17655}
17656impl AstNode for AlterDomain {
17657    #[inline]
17658    fn can_cast(kind: SyntaxKind) -> bool {
17659        kind == SyntaxKind::ALTER_DOMAIN
17660    }
17661    #[inline]
17662    fn cast(syntax: SyntaxNode) -> Option<Self> {
17663        if Self::can_cast(syntax.kind()) {
17664            Some(Self { syntax })
17665        } else {
17666            None
17667        }
17668    }
17669    #[inline]
17670    fn syntax(&self) -> &SyntaxNode {
17671        &self.syntax
17672    }
17673}
17674impl AstNode for AlterEventTrigger {
17675    #[inline]
17676    fn can_cast(kind: SyntaxKind) -> bool {
17677        kind == SyntaxKind::ALTER_EVENT_TRIGGER
17678    }
17679    #[inline]
17680    fn cast(syntax: SyntaxNode) -> Option<Self> {
17681        if Self::can_cast(syntax.kind()) {
17682            Some(Self { syntax })
17683        } else {
17684            None
17685        }
17686    }
17687    #[inline]
17688    fn syntax(&self) -> &SyntaxNode {
17689        &self.syntax
17690    }
17691}
17692impl AstNode for AlterExtension {
17693    #[inline]
17694    fn can_cast(kind: SyntaxKind) -> bool {
17695        kind == SyntaxKind::ALTER_EXTENSION
17696    }
17697    #[inline]
17698    fn cast(syntax: SyntaxNode) -> Option<Self> {
17699        if Self::can_cast(syntax.kind()) {
17700            Some(Self { syntax })
17701        } else {
17702            None
17703        }
17704    }
17705    #[inline]
17706    fn syntax(&self) -> &SyntaxNode {
17707        &self.syntax
17708    }
17709}
17710impl AstNode for AlterForeignDataWrapper {
17711    #[inline]
17712    fn can_cast(kind: SyntaxKind) -> bool {
17713        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
17714    }
17715    #[inline]
17716    fn cast(syntax: SyntaxNode) -> Option<Self> {
17717        if Self::can_cast(syntax.kind()) {
17718            Some(Self { syntax })
17719        } else {
17720            None
17721        }
17722    }
17723    #[inline]
17724    fn syntax(&self) -> &SyntaxNode {
17725        &self.syntax
17726    }
17727}
17728impl AstNode for AlterForeignTable {
17729    #[inline]
17730    fn can_cast(kind: SyntaxKind) -> bool {
17731        kind == SyntaxKind::ALTER_FOREIGN_TABLE
17732    }
17733    #[inline]
17734    fn cast(syntax: SyntaxNode) -> Option<Self> {
17735        if Self::can_cast(syntax.kind()) {
17736            Some(Self { syntax })
17737        } else {
17738            None
17739        }
17740    }
17741    #[inline]
17742    fn syntax(&self) -> &SyntaxNode {
17743        &self.syntax
17744    }
17745}
17746impl AstNode for AlterFunction {
17747    #[inline]
17748    fn can_cast(kind: SyntaxKind) -> bool {
17749        kind == SyntaxKind::ALTER_FUNCTION
17750    }
17751    #[inline]
17752    fn cast(syntax: SyntaxNode) -> Option<Self> {
17753        if Self::can_cast(syntax.kind()) {
17754            Some(Self { syntax })
17755        } else {
17756            None
17757        }
17758    }
17759    #[inline]
17760    fn syntax(&self) -> &SyntaxNode {
17761        &self.syntax
17762    }
17763}
17764impl AstNode for AlterGroup {
17765    #[inline]
17766    fn can_cast(kind: SyntaxKind) -> bool {
17767        kind == SyntaxKind::ALTER_GROUP
17768    }
17769    #[inline]
17770    fn cast(syntax: SyntaxNode) -> Option<Self> {
17771        if Self::can_cast(syntax.kind()) {
17772            Some(Self { syntax })
17773        } else {
17774            None
17775        }
17776    }
17777    #[inline]
17778    fn syntax(&self) -> &SyntaxNode {
17779        &self.syntax
17780    }
17781}
17782impl AstNode for AlterIndex {
17783    #[inline]
17784    fn can_cast(kind: SyntaxKind) -> bool {
17785        kind == SyntaxKind::ALTER_INDEX
17786    }
17787    #[inline]
17788    fn cast(syntax: SyntaxNode) -> Option<Self> {
17789        if Self::can_cast(syntax.kind()) {
17790            Some(Self { syntax })
17791        } else {
17792            None
17793        }
17794    }
17795    #[inline]
17796    fn syntax(&self) -> &SyntaxNode {
17797        &self.syntax
17798    }
17799}
17800impl AstNode for AlterLanguage {
17801    #[inline]
17802    fn can_cast(kind: SyntaxKind) -> bool {
17803        kind == SyntaxKind::ALTER_LANGUAGE
17804    }
17805    #[inline]
17806    fn cast(syntax: SyntaxNode) -> Option<Self> {
17807        if Self::can_cast(syntax.kind()) {
17808            Some(Self { syntax })
17809        } else {
17810            None
17811        }
17812    }
17813    #[inline]
17814    fn syntax(&self) -> &SyntaxNode {
17815        &self.syntax
17816    }
17817}
17818impl AstNode for AlterLargeObject {
17819    #[inline]
17820    fn can_cast(kind: SyntaxKind) -> bool {
17821        kind == SyntaxKind::ALTER_LARGE_OBJECT
17822    }
17823    #[inline]
17824    fn cast(syntax: SyntaxNode) -> Option<Self> {
17825        if Self::can_cast(syntax.kind()) {
17826            Some(Self { syntax })
17827        } else {
17828            None
17829        }
17830    }
17831    #[inline]
17832    fn syntax(&self) -> &SyntaxNode {
17833        &self.syntax
17834    }
17835}
17836impl AstNode for AlterMaterializedView {
17837    #[inline]
17838    fn can_cast(kind: SyntaxKind) -> bool {
17839        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
17840    }
17841    #[inline]
17842    fn cast(syntax: SyntaxNode) -> Option<Self> {
17843        if Self::can_cast(syntax.kind()) {
17844            Some(Self { syntax })
17845        } else {
17846            None
17847        }
17848    }
17849    #[inline]
17850    fn syntax(&self) -> &SyntaxNode {
17851        &self.syntax
17852    }
17853}
17854impl AstNode for AlterOperator {
17855    #[inline]
17856    fn can_cast(kind: SyntaxKind) -> bool {
17857        kind == SyntaxKind::ALTER_OPERATOR
17858    }
17859    #[inline]
17860    fn cast(syntax: SyntaxNode) -> Option<Self> {
17861        if Self::can_cast(syntax.kind()) {
17862            Some(Self { syntax })
17863        } else {
17864            None
17865        }
17866    }
17867    #[inline]
17868    fn syntax(&self) -> &SyntaxNode {
17869        &self.syntax
17870    }
17871}
17872impl AstNode for AlterOperatorClass {
17873    #[inline]
17874    fn can_cast(kind: SyntaxKind) -> bool {
17875        kind == SyntaxKind::ALTER_OPERATOR_CLASS
17876    }
17877    #[inline]
17878    fn cast(syntax: SyntaxNode) -> Option<Self> {
17879        if Self::can_cast(syntax.kind()) {
17880            Some(Self { syntax })
17881        } else {
17882            None
17883        }
17884    }
17885    #[inline]
17886    fn syntax(&self) -> &SyntaxNode {
17887        &self.syntax
17888    }
17889}
17890impl AstNode for AlterOperatorFamily {
17891    #[inline]
17892    fn can_cast(kind: SyntaxKind) -> bool {
17893        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
17894    }
17895    #[inline]
17896    fn cast(syntax: SyntaxNode) -> Option<Self> {
17897        if Self::can_cast(syntax.kind()) {
17898            Some(Self { syntax })
17899        } else {
17900            None
17901        }
17902    }
17903    #[inline]
17904    fn syntax(&self) -> &SyntaxNode {
17905        &self.syntax
17906    }
17907}
17908impl AstNode for AlterOption {
17909    #[inline]
17910    fn can_cast(kind: SyntaxKind) -> bool {
17911        kind == SyntaxKind::ALTER_OPTION
17912    }
17913    #[inline]
17914    fn cast(syntax: SyntaxNode) -> Option<Self> {
17915        if Self::can_cast(syntax.kind()) {
17916            Some(Self { syntax })
17917        } else {
17918            None
17919        }
17920    }
17921    #[inline]
17922    fn syntax(&self) -> &SyntaxNode {
17923        &self.syntax
17924    }
17925}
17926impl AstNode for AlterOptionList {
17927    #[inline]
17928    fn can_cast(kind: SyntaxKind) -> bool {
17929        kind == SyntaxKind::ALTER_OPTION_LIST
17930    }
17931    #[inline]
17932    fn cast(syntax: SyntaxNode) -> Option<Self> {
17933        if Self::can_cast(syntax.kind()) {
17934            Some(Self { syntax })
17935        } else {
17936            None
17937        }
17938    }
17939    #[inline]
17940    fn syntax(&self) -> &SyntaxNode {
17941        &self.syntax
17942    }
17943}
17944impl AstNode for AlterPolicy {
17945    #[inline]
17946    fn can_cast(kind: SyntaxKind) -> bool {
17947        kind == SyntaxKind::ALTER_POLICY
17948    }
17949    #[inline]
17950    fn cast(syntax: SyntaxNode) -> Option<Self> {
17951        if Self::can_cast(syntax.kind()) {
17952            Some(Self { syntax })
17953        } else {
17954            None
17955        }
17956    }
17957    #[inline]
17958    fn syntax(&self) -> &SyntaxNode {
17959        &self.syntax
17960    }
17961}
17962impl AstNode for AlterProcedure {
17963    #[inline]
17964    fn can_cast(kind: SyntaxKind) -> bool {
17965        kind == SyntaxKind::ALTER_PROCEDURE
17966    }
17967    #[inline]
17968    fn cast(syntax: SyntaxNode) -> Option<Self> {
17969        if Self::can_cast(syntax.kind()) {
17970            Some(Self { syntax })
17971        } else {
17972            None
17973        }
17974    }
17975    #[inline]
17976    fn syntax(&self) -> &SyntaxNode {
17977        &self.syntax
17978    }
17979}
17980impl AstNode for AlterPublication {
17981    #[inline]
17982    fn can_cast(kind: SyntaxKind) -> bool {
17983        kind == SyntaxKind::ALTER_PUBLICATION
17984    }
17985    #[inline]
17986    fn cast(syntax: SyntaxNode) -> Option<Self> {
17987        if Self::can_cast(syntax.kind()) {
17988            Some(Self { syntax })
17989        } else {
17990            None
17991        }
17992    }
17993    #[inline]
17994    fn syntax(&self) -> &SyntaxNode {
17995        &self.syntax
17996    }
17997}
17998impl AstNode for AlterRole {
17999    #[inline]
18000    fn can_cast(kind: SyntaxKind) -> bool {
18001        kind == SyntaxKind::ALTER_ROLE
18002    }
18003    #[inline]
18004    fn cast(syntax: SyntaxNode) -> Option<Self> {
18005        if Self::can_cast(syntax.kind()) {
18006            Some(Self { syntax })
18007        } else {
18008            None
18009        }
18010    }
18011    #[inline]
18012    fn syntax(&self) -> &SyntaxNode {
18013        &self.syntax
18014    }
18015}
18016impl AstNode for AlterRoutine {
18017    #[inline]
18018    fn can_cast(kind: SyntaxKind) -> bool {
18019        kind == SyntaxKind::ALTER_ROUTINE
18020    }
18021    #[inline]
18022    fn cast(syntax: SyntaxNode) -> Option<Self> {
18023        if Self::can_cast(syntax.kind()) {
18024            Some(Self { syntax })
18025        } else {
18026            None
18027        }
18028    }
18029    #[inline]
18030    fn syntax(&self) -> &SyntaxNode {
18031        &self.syntax
18032    }
18033}
18034impl AstNode for AlterRule {
18035    #[inline]
18036    fn can_cast(kind: SyntaxKind) -> bool {
18037        kind == SyntaxKind::ALTER_RULE
18038    }
18039    #[inline]
18040    fn cast(syntax: SyntaxNode) -> Option<Self> {
18041        if Self::can_cast(syntax.kind()) {
18042            Some(Self { syntax })
18043        } else {
18044            None
18045        }
18046    }
18047    #[inline]
18048    fn syntax(&self) -> &SyntaxNode {
18049        &self.syntax
18050    }
18051}
18052impl AstNode for AlterSchema {
18053    #[inline]
18054    fn can_cast(kind: SyntaxKind) -> bool {
18055        kind == SyntaxKind::ALTER_SCHEMA
18056    }
18057    #[inline]
18058    fn cast(syntax: SyntaxNode) -> Option<Self> {
18059        if Self::can_cast(syntax.kind()) {
18060            Some(Self { syntax })
18061        } else {
18062            None
18063        }
18064    }
18065    #[inline]
18066    fn syntax(&self) -> &SyntaxNode {
18067        &self.syntax
18068    }
18069}
18070impl AstNode for AlterSequence {
18071    #[inline]
18072    fn can_cast(kind: SyntaxKind) -> bool {
18073        kind == SyntaxKind::ALTER_SEQUENCE
18074    }
18075    #[inline]
18076    fn cast(syntax: SyntaxNode) -> Option<Self> {
18077        if Self::can_cast(syntax.kind()) {
18078            Some(Self { syntax })
18079        } else {
18080            None
18081        }
18082    }
18083    #[inline]
18084    fn syntax(&self) -> &SyntaxNode {
18085        &self.syntax
18086    }
18087}
18088impl AstNode for AlterServer {
18089    #[inline]
18090    fn can_cast(kind: SyntaxKind) -> bool {
18091        kind == SyntaxKind::ALTER_SERVER
18092    }
18093    #[inline]
18094    fn cast(syntax: SyntaxNode) -> Option<Self> {
18095        if Self::can_cast(syntax.kind()) {
18096            Some(Self { syntax })
18097        } else {
18098            None
18099        }
18100    }
18101    #[inline]
18102    fn syntax(&self) -> &SyntaxNode {
18103        &self.syntax
18104    }
18105}
18106impl AstNode for AlterSetStatistics {
18107    #[inline]
18108    fn can_cast(kind: SyntaxKind) -> bool {
18109        kind == SyntaxKind::ALTER_SET_STATISTICS
18110    }
18111    #[inline]
18112    fn cast(syntax: SyntaxNode) -> Option<Self> {
18113        if Self::can_cast(syntax.kind()) {
18114            Some(Self { syntax })
18115        } else {
18116            None
18117        }
18118    }
18119    #[inline]
18120    fn syntax(&self) -> &SyntaxNode {
18121        &self.syntax
18122    }
18123}
18124impl AstNode for AlterStatistics {
18125    #[inline]
18126    fn can_cast(kind: SyntaxKind) -> bool {
18127        kind == SyntaxKind::ALTER_STATISTICS
18128    }
18129    #[inline]
18130    fn cast(syntax: SyntaxNode) -> Option<Self> {
18131        if Self::can_cast(syntax.kind()) {
18132            Some(Self { syntax })
18133        } else {
18134            None
18135        }
18136    }
18137    #[inline]
18138    fn syntax(&self) -> &SyntaxNode {
18139        &self.syntax
18140    }
18141}
18142impl AstNode for AlterSubscription {
18143    #[inline]
18144    fn can_cast(kind: SyntaxKind) -> bool {
18145        kind == SyntaxKind::ALTER_SUBSCRIPTION
18146    }
18147    #[inline]
18148    fn cast(syntax: SyntaxNode) -> Option<Self> {
18149        if Self::can_cast(syntax.kind()) {
18150            Some(Self { syntax })
18151        } else {
18152            None
18153        }
18154    }
18155    #[inline]
18156    fn syntax(&self) -> &SyntaxNode {
18157        &self.syntax
18158    }
18159}
18160impl AstNode for AlterSystem {
18161    #[inline]
18162    fn can_cast(kind: SyntaxKind) -> bool {
18163        kind == SyntaxKind::ALTER_SYSTEM
18164    }
18165    #[inline]
18166    fn cast(syntax: SyntaxNode) -> Option<Self> {
18167        if Self::can_cast(syntax.kind()) {
18168            Some(Self { syntax })
18169        } else {
18170            None
18171        }
18172    }
18173    #[inline]
18174    fn syntax(&self) -> &SyntaxNode {
18175        &self.syntax
18176    }
18177}
18178impl AstNode for AlterTable {
18179    #[inline]
18180    fn can_cast(kind: SyntaxKind) -> bool {
18181        kind == SyntaxKind::ALTER_TABLE
18182    }
18183    #[inline]
18184    fn cast(syntax: SyntaxNode) -> Option<Self> {
18185        if Self::can_cast(syntax.kind()) {
18186            Some(Self { syntax })
18187        } else {
18188            None
18189        }
18190    }
18191    #[inline]
18192    fn syntax(&self) -> &SyntaxNode {
18193        &self.syntax
18194    }
18195}
18196impl AstNode for AlterTablespace {
18197    #[inline]
18198    fn can_cast(kind: SyntaxKind) -> bool {
18199        kind == SyntaxKind::ALTER_TABLESPACE
18200    }
18201    #[inline]
18202    fn cast(syntax: SyntaxNode) -> Option<Self> {
18203        if Self::can_cast(syntax.kind()) {
18204            Some(Self { syntax })
18205        } else {
18206            None
18207        }
18208    }
18209    #[inline]
18210    fn syntax(&self) -> &SyntaxNode {
18211        &self.syntax
18212    }
18213}
18214impl AstNode for AlterTextSearchConfiguration {
18215    #[inline]
18216    fn can_cast(kind: SyntaxKind) -> bool {
18217        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
18218    }
18219    #[inline]
18220    fn cast(syntax: SyntaxNode) -> Option<Self> {
18221        if Self::can_cast(syntax.kind()) {
18222            Some(Self { syntax })
18223        } else {
18224            None
18225        }
18226    }
18227    #[inline]
18228    fn syntax(&self) -> &SyntaxNode {
18229        &self.syntax
18230    }
18231}
18232impl AstNode for AlterTextSearchDictionary {
18233    #[inline]
18234    fn can_cast(kind: SyntaxKind) -> bool {
18235        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
18236    }
18237    #[inline]
18238    fn cast(syntax: SyntaxNode) -> Option<Self> {
18239        if Self::can_cast(syntax.kind()) {
18240            Some(Self { syntax })
18241        } else {
18242            None
18243        }
18244    }
18245    #[inline]
18246    fn syntax(&self) -> &SyntaxNode {
18247        &self.syntax
18248    }
18249}
18250impl AstNode for AlterTextSearchParser {
18251    #[inline]
18252    fn can_cast(kind: SyntaxKind) -> bool {
18253        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
18254    }
18255    #[inline]
18256    fn cast(syntax: SyntaxNode) -> Option<Self> {
18257        if Self::can_cast(syntax.kind()) {
18258            Some(Self { syntax })
18259        } else {
18260            None
18261        }
18262    }
18263    #[inline]
18264    fn syntax(&self) -> &SyntaxNode {
18265        &self.syntax
18266    }
18267}
18268impl AstNode for AlterTextSearchTemplate {
18269    #[inline]
18270    fn can_cast(kind: SyntaxKind) -> bool {
18271        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
18272    }
18273    #[inline]
18274    fn cast(syntax: SyntaxNode) -> Option<Self> {
18275        if Self::can_cast(syntax.kind()) {
18276            Some(Self { syntax })
18277        } else {
18278            None
18279        }
18280    }
18281    #[inline]
18282    fn syntax(&self) -> &SyntaxNode {
18283        &self.syntax
18284    }
18285}
18286impl AstNode for AlterTrigger {
18287    #[inline]
18288    fn can_cast(kind: SyntaxKind) -> bool {
18289        kind == SyntaxKind::ALTER_TRIGGER
18290    }
18291    #[inline]
18292    fn cast(syntax: SyntaxNode) -> Option<Self> {
18293        if Self::can_cast(syntax.kind()) {
18294            Some(Self { syntax })
18295        } else {
18296            None
18297        }
18298    }
18299    #[inline]
18300    fn syntax(&self) -> &SyntaxNode {
18301        &self.syntax
18302    }
18303}
18304impl AstNode for AlterType {
18305    #[inline]
18306    fn can_cast(kind: SyntaxKind) -> bool {
18307        kind == SyntaxKind::ALTER_TYPE
18308    }
18309    #[inline]
18310    fn cast(syntax: SyntaxNode) -> Option<Self> {
18311        if Self::can_cast(syntax.kind()) {
18312            Some(Self { syntax })
18313        } else {
18314            None
18315        }
18316    }
18317    #[inline]
18318    fn syntax(&self) -> &SyntaxNode {
18319        &self.syntax
18320    }
18321}
18322impl AstNode for AlterUser {
18323    #[inline]
18324    fn can_cast(kind: SyntaxKind) -> bool {
18325        kind == SyntaxKind::ALTER_USER
18326    }
18327    #[inline]
18328    fn cast(syntax: SyntaxNode) -> Option<Self> {
18329        if Self::can_cast(syntax.kind()) {
18330            Some(Self { syntax })
18331        } else {
18332            None
18333        }
18334    }
18335    #[inline]
18336    fn syntax(&self) -> &SyntaxNode {
18337        &self.syntax
18338    }
18339}
18340impl AstNode for AlterUserMapping {
18341    #[inline]
18342    fn can_cast(kind: SyntaxKind) -> bool {
18343        kind == SyntaxKind::ALTER_USER_MAPPING
18344    }
18345    #[inline]
18346    fn cast(syntax: SyntaxNode) -> Option<Self> {
18347        if Self::can_cast(syntax.kind()) {
18348            Some(Self { syntax })
18349        } else {
18350            None
18351        }
18352    }
18353    #[inline]
18354    fn syntax(&self) -> &SyntaxNode {
18355        &self.syntax
18356    }
18357}
18358impl AstNode for AlterView {
18359    #[inline]
18360    fn can_cast(kind: SyntaxKind) -> bool {
18361        kind == SyntaxKind::ALTER_VIEW
18362    }
18363    #[inline]
18364    fn cast(syntax: SyntaxNode) -> Option<Self> {
18365        if Self::can_cast(syntax.kind()) {
18366            Some(Self { syntax })
18367        } else {
18368            None
18369        }
18370    }
18371    #[inline]
18372    fn syntax(&self) -> &SyntaxNode {
18373        &self.syntax
18374    }
18375}
18376impl AstNode for Analyze {
18377    #[inline]
18378    fn can_cast(kind: SyntaxKind) -> bool {
18379        kind == SyntaxKind::ANALYZE
18380    }
18381    #[inline]
18382    fn cast(syntax: SyntaxNode) -> Option<Self> {
18383        if Self::can_cast(syntax.kind()) {
18384            Some(Self { syntax })
18385        } else {
18386            None
18387        }
18388    }
18389    #[inline]
18390    fn syntax(&self) -> &SyntaxNode {
18391        &self.syntax
18392    }
18393}
18394impl AstNode for AnyFn {
18395    #[inline]
18396    fn can_cast(kind: SyntaxKind) -> bool {
18397        kind == SyntaxKind::ANY_FN
18398    }
18399    #[inline]
18400    fn cast(syntax: SyntaxNode) -> Option<Self> {
18401        if Self::can_cast(syntax.kind()) {
18402            Some(Self { syntax })
18403        } else {
18404            None
18405        }
18406    }
18407    #[inline]
18408    fn syntax(&self) -> &SyntaxNode {
18409        &self.syntax
18410    }
18411}
18412impl AstNode for Arg {
18413    #[inline]
18414    fn can_cast(kind: SyntaxKind) -> bool {
18415        kind == SyntaxKind::ARG
18416    }
18417    #[inline]
18418    fn cast(syntax: SyntaxNode) -> Option<Self> {
18419        if Self::can_cast(syntax.kind()) {
18420            Some(Self { syntax })
18421        } else {
18422            None
18423        }
18424    }
18425    #[inline]
18426    fn syntax(&self) -> &SyntaxNode {
18427        &self.syntax
18428    }
18429}
18430impl AstNode for ArgList {
18431    #[inline]
18432    fn can_cast(kind: SyntaxKind) -> bool {
18433        kind == SyntaxKind::ARG_LIST
18434    }
18435    #[inline]
18436    fn cast(syntax: SyntaxNode) -> Option<Self> {
18437        if Self::can_cast(syntax.kind()) {
18438            Some(Self { syntax })
18439        } else {
18440            None
18441        }
18442    }
18443    #[inline]
18444    fn syntax(&self) -> &SyntaxNode {
18445        &self.syntax
18446    }
18447}
18448impl AstNode for ArrayExpr {
18449    #[inline]
18450    fn can_cast(kind: SyntaxKind) -> bool {
18451        kind == SyntaxKind::ARRAY_EXPR
18452    }
18453    #[inline]
18454    fn cast(syntax: SyntaxNode) -> Option<Self> {
18455        if Self::can_cast(syntax.kind()) {
18456            Some(Self { syntax })
18457        } else {
18458            None
18459        }
18460    }
18461    #[inline]
18462    fn syntax(&self) -> &SyntaxNode {
18463        &self.syntax
18464    }
18465}
18466impl AstNode for ArrayType {
18467    #[inline]
18468    fn can_cast(kind: SyntaxKind) -> bool {
18469        kind == SyntaxKind::ARRAY_TYPE
18470    }
18471    #[inline]
18472    fn cast(syntax: SyntaxNode) -> Option<Self> {
18473        if Self::can_cast(syntax.kind()) {
18474            Some(Self { syntax })
18475        } else {
18476            None
18477        }
18478    }
18479    #[inline]
18480    fn syntax(&self) -> &SyntaxNode {
18481        &self.syntax
18482    }
18483}
18484impl AstNode for AsFuncOption {
18485    #[inline]
18486    fn can_cast(kind: SyntaxKind) -> bool {
18487        kind == SyntaxKind::AS_FUNC_OPTION
18488    }
18489    #[inline]
18490    fn cast(syntax: SyntaxNode) -> Option<Self> {
18491        if Self::can_cast(syntax.kind()) {
18492            Some(Self { syntax })
18493        } else {
18494            None
18495        }
18496    }
18497    #[inline]
18498    fn syntax(&self) -> &SyntaxNode {
18499        &self.syntax
18500    }
18501}
18502impl AstNode for AsName {
18503    #[inline]
18504    fn can_cast(kind: SyntaxKind) -> bool {
18505        kind == SyntaxKind::AS_NAME
18506    }
18507    #[inline]
18508    fn cast(syntax: SyntaxNode) -> Option<Self> {
18509        if Self::can_cast(syntax.kind()) {
18510            Some(Self { syntax })
18511        } else {
18512            None
18513        }
18514    }
18515    #[inline]
18516    fn syntax(&self) -> &SyntaxNode {
18517        &self.syntax
18518    }
18519}
18520impl AstNode for AsPolicyType {
18521    #[inline]
18522    fn can_cast(kind: SyntaxKind) -> bool {
18523        kind == SyntaxKind::AS_POLICY_TYPE
18524    }
18525    #[inline]
18526    fn cast(syntax: SyntaxNode) -> Option<Self> {
18527        if Self::can_cast(syntax.kind()) {
18528            Some(Self { syntax })
18529        } else {
18530            None
18531        }
18532    }
18533    #[inline]
18534    fn syntax(&self) -> &SyntaxNode {
18535        &self.syntax
18536    }
18537}
18538impl AstNode for AtTimeZone {
18539    #[inline]
18540    fn can_cast(kind: SyntaxKind) -> bool {
18541        kind == SyntaxKind::AT_TIME_ZONE
18542    }
18543    #[inline]
18544    fn cast(syntax: SyntaxNode) -> Option<Self> {
18545        if Self::can_cast(syntax.kind()) {
18546            Some(Self { syntax })
18547        } else {
18548            None
18549        }
18550    }
18551    #[inline]
18552    fn syntax(&self) -> &SyntaxNode {
18553        &self.syntax
18554    }
18555}
18556impl AstNode for AttachPartition {
18557    #[inline]
18558    fn can_cast(kind: SyntaxKind) -> bool {
18559        kind == SyntaxKind::ATTACH_PARTITION
18560    }
18561    #[inline]
18562    fn cast(syntax: SyntaxNode) -> Option<Self> {
18563        if Self::can_cast(syntax.kind()) {
18564            Some(Self { syntax })
18565        } else {
18566            None
18567        }
18568    }
18569    #[inline]
18570    fn syntax(&self) -> &SyntaxNode {
18571        &self.syntax
18572    }
18573}
18574impl AstNode for AttributeList {
18575    #[inline]
18576    fn can_cast(kind: SyntaxKind) -> bool {
18577        kind == SyntaxKind::ATTRIBUTE_LIST
18578    }
18579    #[inline]
18580    fn cast(syntax: SyntaxNode) -> Option<Self> {
18581        if Self::can_cast(syntax.kind()) {
18582            Some(Self { syntax })
18583        } else {
18584            None
18585        }
18586    }
18587    #[inline]
18588    fn syntax(&self) -> &SyntaxNode {
18589        &self.syntax
18590    }
18591}
18592impl AstNode for AttributeOption {
18593    #[inline]
18594    fn can_cast(kind: SyntaxKind) -> bool {
18595        kind == SyntaxKind::ATTRIBUTE_OPTION
18596    }
18597    #[inline]
18598    fn cast(syntax: SyntaxNode) -> Option<Self> {
18599        if Self::can_cast(syntax.kind()) {
18600            Some(Self { syntax })
18601        } else {
18602            None
18603        }
18604    }
18605    #[inline]
18606    fn syntax(&self) -> &SyntaxNode {
18607        &self.syntax
18608    }
18609}
18610impl AstNode for AttributeValue {
18611    #[inline]
18612    fn can_cast(kind: SyntaxKind) -> bool {
18613        kind == SyntaxKind::ATTRIBUTE_VALUE
18614    }
18615    #[inline]
18616    fn cast(syntax: SyntaxNode) -> Option<Self> {
18617        if Self::can_cast(syntax.kind()) {
18618            Some(Self { syntax })
18619        } else {
18620            None
18621        }
18622    }
18623    #[inline]
18624    fn syntax(&self) -> &SyntaxNode {
18625        &self.syntax
18626    }
18627}
18628impl AstNode for Begin {
18629    #[inline]
18630    fn can_cast(kind: SyntaxKind) -> bool {
18631        kind == SyntaxKind::BEGIN
18632    }
18633    #[inline]
18634    fn cast(syntax: SyntaxNode) -> Option<Self> {
18635        if Self::can_cast(syntax.kind()) {
18636            Some(Self { syntax })
18637        } else {
18638            None
18639        }
18640    }
18641    #[inline]
18642    fn syntax(&self) -> &SyntaxNode {
18643        &self.syntax
18644    }
18645}
18646impl AstNode for BeginFuncOption {
18647    #[inline]
18648    fn can_cast(kind: SyntaxKind) -> bool {
18649        kind == SyntaxKind::BEGIN_FUNC_OPTION
18650    }
18651    #[inline]
18652    fn cast(syntax: SyntaxNode) -> Option<Self> {
18653        if Self::can_cast(syntax.kind()) {
18654            Some(Self { syntax })
18655        } else {
18656            None
18657        }
18658    }
18659    #[inline]
18660    fn syntax(&self) -> &SyntaxNode {
18661        &self.syntax
18662    }
18663}
18664impl AstNode for BeginFuncOptionList {
18665    #[inline]
18666    fn can_cast(kind: SyntaxKind) -> bool {
18667        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
18668    }
18669    #[inline]
18670    fn cast(syntax: SyntaxNode) -> Option<Self> {
18671        if Self::can_cast(syntax.kind()) {
18672            Some(Self { syntax })
18673        } else {
18674            None
18675        }
18676    }
18677    #[inline]
18678    fn syntax(&self) -> &SyntaxNode {
18679        &self.syntax
18680    }
18681}
18682impl AstNode for BetweenExpr {
18683    #[inline]
18684    fn can_cast(kind: SyntaxKind) -> bool {
18685        kind == SyntaxKind::BETWEEN_EXPR
18686    }
18687    #[inline]
18688    fn cast(syntax: SyntaxNode) -> Option<Self> {
18689        if Self::can_cast(syntax.kind()) {
18690            Some(Self { syntax })
18691        } else {
18692            None
18693        }
18694    }
18695    #[inline]
18696    fn syntax(&self) -> &SyntaxNode {
18697        &self.syntax
18698    }
18699}
18700impl AstNode for BinExpr {
18701    #[inline]
18702    fn can_cast(kind: SyntaxKind) -> bool {
18703        kind == SyntaxKind::BIN_EXPR
18704    }
18705    #[inline]
18706    fn cast(syntax: SyntaxNode) -> Option<Self> {
18707        if Self::can_cast(syntax.kind()) {
18708            Some(Self { syntax })
18709        } else {
18710            None
18711        }
18712    }
18713    #[inline]
18714    fn syntax(&self) -> &SyntaxNode {
18715        &self.syntax
18716    }
18717}
18718impl AstNode for BitType {
18719    #[inline]
18720    fn can_cast(kind: SyntaxKind) -> bool {
18721        kind == SyntaxKind::BIT_TYPE
18722    }
18723    #[inline]
18724    fn cast(syntax: SyntaxNode) -> Option<Self> {
18725        if Self::can_cast(syntax.kind()) {
18726            Some(Self { syntax })
18727        } else {
18728            None
18729        }
18730    }
18731    #[inline]
18732    fn syntax(&self) -> &SyntaxNode {
18733        &self.syntax
18734    }
18735}
18736impl AstNode for Call {
18737    #[inline]
18738    fn can_cast(kind: SyntaxKind) -> bool {
18739        kind == SyntaxKind::CALL
18740    }
18741    #[inline]
18742    fn cast(syntax: SyntaxNode) -> Option<Self> {
18743        if Self::can_cast(syntax.kind()) {
18744            Some(Self { syntax })
18745        } else {
18746            None
18747        }
18748    }
18749    #[inline]
18750    fn syntax(&self) -> &SyntaxNode {
18751        &self.syntax
18752    }
18753}
18754impl AstNode for CallExpr {
18755    #[inline]
18756    fn can_cast(kind: SyntaxKind) -> bool {
18757        kind == SyntaxKind::CALL_EXPR
18758    }
18759    #[inline]
18760    fn cast(syntax: SyntaxNode) -> Option<Self> {
18761        if Self::can_cast(syntax.kind()) {
18762            Some(Self { syntax })
18763        } else {
18764            None
18765        }
18766    }
18767    #[inline]
18768    fn syntax(&self) -> &SyntaxNode {
18769        &self.syntax
18770    }
18771}
18772impl AstNode for Cascade {
18773    #[inline]
18774    fn can_cast(kind: SyntaxKind) -> bool {
18775        kind == SyntaxKind::CASCADE
18776    }
18777    #[inline]
18778    fn cast(syntax: SyntaxNode) -> Option<Self> {
18779        if Self::can_cast(syntax.kind()) {
18780            Some(Self { syntax })
18781        } else {
18782            None
18783        }
18784    }
18785    #[inline]
18786    fn syntax(&self) -> &SyntaxNode {
18787        &self.syntax
18788    }
18789}
18790impl AstNode for CaseExpr {
18791    #[inline]
18792    fn can_cast(kind: SyntaxKind) -> bool {
18793        kind == SyntaxKind::CASE_EXPR
18794    }
18795    #[inline]
18796    fn cast(syntax: SyntaxNode) -> Option<Self> {
18797        if Self::can_cast(syntax.kind()) {
18798            Some(Self { syntax })
18799        } else {
18800            None
18801        }
18802    }
18803    #[inline]
18804    fn syntax(&self) -> &SyntaxNode {
18805        &self.syntax
18806    }
18807}
18808impl AstNode for CastExpr {
18809    #[inline]
18810    fn can_cast(kind: SyntaxKind) -> bool {
18811        kind == SyntaxKind::CAST_EXPR
18812    }
18813    #[inline]
18814    fn cast(syntax: SyntaxNode) -> Option<Self> {
18815        if Self::can_cast(syntax.kind()) {
18816            Some(Self { syntax })
18817        } else {
18818            None
18819        }
18820    }
18821    #[inline]
18822    fn syntax(&self) -> &SyntaxNode {
18823        &self.syntax
18824    }
18825}
18826impl AstNode for CastSig {
18827    #[inline]
18828    fn can_cast(kind: SyntaxKind) -> bool {
18829        kind == SyntaxKind::CAST_SIG
18830    }
18831    #[inline]
18832    fn cast(syntax: SyntaxNode) -> Option<Self> {
18833        if Self::can_cast(syntax.kind()) {
18834            Some(Self { syntax })
18835        } else {
18836            None
18837        }
18838    }
18839    #[inline]
18840    fn syntax(&self) -> &SyntaxNode {
18841        &self.syntax
18842    }
18843}
18844impl AstNode for CharType {
18845    #[inline]
18846    fn can_cast(kind: SyntaxKind) -> bool {
18847        kind == SyntaxKind::CHAR_TYPE
18848    }
18849    #[inline]
18850    fn cast(syntax: SyntaxNode) -> Option<Self> {
18851        if Self::can_cast(syntax.kind()) {
18852            Some(Self { syntax })
18853        } else {
18854            None
18855        }
18856    }
18857    #[inline]
18858    fn syntax(&self) -> &SyntaxNode {
18859        &self.syntax
18860    }
18861}
18862impl AstNode for CheckConstraint {
18863    #[inline]
18864    fn can_cast(kind: SyntaxKind) -> bool {
18865        kind == SyntaxKind::CHECK_CONSTRAINT
18866    }
18867    #[inline]
18868    fn cast(syntax: SyntaxNode) -> Option<Self> {
18869        if Self::can_cast(syntax.kind()) {
18870            Some(Self { syntax })
18871        } else {
18872            None
18873        }
18874    }
18875    #[inline]
18876    fn syntax(&self) -> &SyntaxNode {
18877        &self.syntax
18878    }
18879}
18880impl AstNode for Checkpoint {
18881    #[inline]
18882    fn can_cast(kind: SyntaxKind) -> bool {
18883        kind == SyntaxKind::CHECKPOINT
18884    }
18885    #[inline]
18886    fn cast(syntax: SyntaxNode) -> Option<Self> {
18887        if Self::can_cast(syntax.kind()) {
18888            Some(Self { syntax })
18889        } else {
18890            None
18891        }
18892    }
18893    #[inline]
18894    fn syntax(&self) -> &SyntaxNode {
18895        &self.syntax
18896    }
18897}
18898impl AstNode for Close {
18899    #[inline]
18900    fn can_cast(kind: SyntaxKind) -> bool {
18901        kind == SyntaxKind::CLOSE
18902    }
18903    #[inline]
18904    fn cast(syntax: SyntaxNode) -> Option<Self> {
18905        if Self::can_cast(syntax.kind()) {
18906            Some(Self { syntax })
18907        } else {
18908            None
18909        }
18910    }
18911    #[inline]
18912    fn syntax(&self) -> &SyntaxNode {
18913        &self.syntax
18914    }
18915}
18916impl AstNode for Cluster {
18917    #[inline]
18918    fn can_cast(kind: SyntaxKind) -> bool {
18919        kind == SyntaxKind::CLUSTER
18920    }
18921    #[inline]
18922    fn cast(syntax: SyntaxNode) -> Option<Self> {
18923        if Self::can_cast(syntax.kind()) {
18924            Some(Self { syntax })
18925        } else {
18926            None
18927        }
18928    }
18929    #[inline]
18930    fn syntax(&self) -> &SyntaxNode {
18931        &self.syntax
18932    }
18933}
18934impl AstNode for ClusterOn {
18935    #[inline]
18936    fn can_cast(kind: SyntaxKind) -> bool {
18937        kind == SyntaxKind::CLUSTER_ON
18938    }
18939    #[inline]
18940    fn cast(syntax: SyntaxNode) -> Option<Self> {
18941        if Self::can_cast(syntax.kind()) {
18942            Some(Self { syntax })
18943        } else {
18944            None
18945        }
18946    }
18947    #[inline]
18948    fn syntax(&self) -> &SyntaxNode {
18949        &self.syntax
18950    }
18951}
18952impl AstNode for Collate {
18953    #[inline]
18954    fn can_cast(kind: SyntaxKind) -> bool {
18955        kind == SyntaxKind::COLLATE
18956    }
18957    #[inline]
18958    fn cast(syntax: SyntaxNode) -> Option<Self> {
18959        if Self::can_cast(syntax.kind()) {
18960            Some(Self { syntax })
18961        } else {
18962            None
18963        }
18964    }
18965    #[inline]
18966    fn syntax(&self) -> &SyntaxNode {
18967        &self.syntax
18968    }
18969}
18970impl AstNode for ColonColon {
18971    #[inline]
18972    fn can_cast(kind: SyntaxKind) -> bool {
18973        kind == SyntaxKind::COLON_COLON
18974    }
18975    #[inline]
18976    fn cast(syntax: SyntaxNode) -> Option<Self> {
18977        if Self::can_cast(syntax.kind()) {
18978            Some(Self { syntax })
18979        } else {
18980            None
18981        }
18982    }
18983    #[inline]
18984    fn syntax(&self) -> &SyntaxNode {
18985        &self.syntax
18986    }
18987}
18988impl AstNode for ColonEq {
18989    #[inline]
18990    fn can_cast(kind: SyntaxKind) -> bool {
18991        kind == SyntaxKind::COLON_EQ
18992    }
18993    #[inline]
18994    fn cast(syntax: SyntaxNode) -> Option<Self> {
18995        if Self::can_cast(syntax.kind()) {
18996            Some(Self { syntax })
18997        } else {
18998            None
18999        }
19000    }
19001    #[inline]
19002    fn syntax(&self) -> &SyntaxNode {
19003        &self.syntax
19004    }
19005}
19006impl AstNode for Column {
19007    #[inline]
19008    fn can_cast(kind: SyntaxKind) -> bool {
19009        kind == SyntaxKind::COLUMN
19010    }
19011    #[inline]
19012    fn cast(syntax: SyntaxNode) -> Option<Self> {
19013        if Self::can_cast(syntax.kind()) {
19014            Some(Self { syntax })
19015        } else {
19016            None
19017        }
19018    }
19019    #[inline]
19020    fn syntax(&self) -> &SyntaxNode {
19021        &self.syntax
19022    }
19023}
19024impl AstNode for ColumnList {
19025    #[inline]
19026    fn can_cast(kind: SyntaxKind) -> bool {
19027        kind == SyntaxKind::COLUMN_LIST
19028    }
19029    #[inline]
19030    fn cast(syntax: SyntaxNode) -> Option<Self> {
19031        if Self::can_cast(syntax.kind()) {
19032            Some(Self { syntax })
19033        } else {
19034            None
19035        }
19036    }
19037    #[inline]
19038    fn syntax(&self) -> &SyntaxNode {
19039        &self.syntax
19040    }
19041}
19042impl AstNode for CommentOn {
19043    #[inline]
19044    fn can_cast(kind: SyntaxKind) -> bool {
19045        kind == SyntaxKind::COMMENT_ON
19046    }
19047    #[inline]
19048    fn cast(syntax: SyntaxNode) -> Option<Self> {
19049        if Self::can_cast(syntax.kind()) {
19050            Some(Self { syntax })
19051        } else {
19052            None
19053        }
19054    }
19055    #[inline]
19056    fn syntax(&self) -> &SyntaxNode {
19057        &self.syntax
19058    }
19059}
19060impl AstNode for Commit {
19061    #[inline]
19062    fn can_cast(kind: SyntaxKind) -> bool {
19063        kind == SyntaxKind::COMMIT
19064    }
19065    #[inline]
19066    fn cast(syntax: SyntaxNode) -> Option<Self> {
19067        if Self::can_cast(syntax.kind()) {
19068            Some(Self { syntax })
19069        } else {
19070            None
19071        }
19072    }
19073    #[inline]
19074    fn syntax(&self) -> &SyntaxNode {
19075        &self.syntax
19076    }
19077}
19078impl AstNode for CompoundSelect {
19079    #[inline]
19080    fn can_cast(kind: SyntaxKind) -> bool {
19081        kind == SyntaxKind::COMPOUND_SELECT
19082    }
19083    #[inline]
19084    fn cast(syntax: SyntaxNode) -> Option<Self> {
19085        if Self::can_cast(syntax.kind()) {
19086            Some(Self { syntax })
19087        } else {
19088            None
19089        }
19090    }
19091    #[inline]
19092    fn syntax(&self) -> &SyntaxNode {
19093        &self.syntax
19094    }
19095}
19096impl AstNode for CompressionMethod {
19097    #[inline]
19098    fn can_cast(kind: SyntaxKind) -> bool {
19099        kind == SyntaxKind::COMPRESSION_METHOD
19100    }
19101    #[inline]
19102    fn cast(syntax: SyntaxNode) -> Option<Self> {
19103        if Self::can_cast(syntax.kind()) {
19104            Some(Self { syntax })
19105        } else {
19106            None
19107        }
19108    }
19109    #[inline]
19110    fn syntax(&self) -> &SyntaxNode {
19111        &self.syntax
19112    }
19113}
19114impl AstNode for ConflictDoNothing {
19115    #[inline]
19116    fn can_cast(kind: SyntaxKind) -> bool {
19117        kind == SyntaxKind::CONFLICT_DO_NOTHING
19118    }
19119    #[inline]
19120    fn cast(syntax: SyntaxNode) -> Option<Self> {
19121        if Self::can_cast(syntax.kind()) {
19122            Some(Self { syntax })
19123        } else {
19124            None
19125        }
19126    }
19127    #[inline]
19128    fn syntax(&self) -> &SyntaxNode {
19129        &self.syntax
19130    }
19131}
19132impl AstNode for ConflictDoUpdateSet {
19133    #[inline]
19134    fn can_cast(kind: SyntaxKind) -> bool {
19135        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
19136    }
19137    #[inline]
19138    fn cast(syntax: SyntaxNode) -> Option<Self> {
19139        if Self::can_cast(syntax.kind()) {
19140            Some(Self { syntax })
19141        } else {
19142            None
19143        }
19144    }
19145    #[inline]
19146    fn syntax(&self) -> &SyntaxNode {
19147        &self.syntax
19148    }
19149}
19150impl AstNode for ConflictIndexItem {
19151    #[inline]
19152    fn can_cast(kind: SyntaxKind) -> bool {
19153        kind == SyntaxKind::CONFLICT_INDEX_ITEM
19154    }
19155    #[inline]
19156    fn cast(syntax: SyntaxNode) -> Option<Self> {
19157        if Self::can_cast(syntax.kind()) {
19158            Some(Self { syntax })
19159        } else {
19160            None
19161        }
19162    }
19163    #[inline]
19164    fn syntax(&self) -> &SyntaxNode {
19165        &self.syntax
19166    }
19167}
19168impl AstNode for ConflictIndexItemList {
19169    #[inline]
19170    fn can_cast(kind: SyntaxKind) -> bool {
19171        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
19172    }
19173    #[inline]
19174    fn cast(syntax: SyntaxNode) -> Option<Self> {
19175        if Self::can_cast(syntax.kind()) {
19176            Some(Self { syntax })
19177        } else {
19178            None
19179        }
19180    }
19181    #[inline]
19182    fn syntax(&self) -> &SyntaxNode {
19183        &self.syntax
19184    }
19185}
19186impl AstNode for ConflictOnConstraint {
19187    #[inline]
19188    fn can_cast(kind: SyntaxKind) -> bool {
19189        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
19190    }
19191    #[inline]
19192    fn cast(syntax: SyntaxNode) -> Option<Self> {
19193        if Self::can_cast(syntax.kind()) {
19194            Some(Self { syntax })
19195        } else {
19196            None
19197        }
19198    }
19199    #[inline]
19200    fn syntax(&self) -> &SyntaxNode {
19201        &self.syntax
19202    }
19203}
19204impl AstNode for ConflictOnIndex {
19205    #[inline]
19206    fn can_cast(kind: SyntaxKind) -> bool {
19207        kind == SyntaxKind::CONFLICT_ON_INDEX
19208    }
19209    #[inline]
19210    fn cast(syntax: SyntaxNode) -> Option<Self> {
19211        if Self::can_cast(syntax.kind()) {
19212            Some(Self { syntax })
19213        } else {
19214            None
19215        }
19216    }
19217    #[inline]
19218    fn syntax(&self) -> &SyntaxNode {
19219        &self.syntax
19220    }
19221}
19222impl AstNode for ConstraintExclusion {
19223    #[inline]
19224    fn can_cast(kind: SyntaxKind) -> bool {
19225        kind == SyntaxKind::CONSTRAINT_EXCLUSION
19226    }
19227    #[inline]
19228    fn cast(syntax: SyntaxNode) -> Option<Self> {
19229        if Self::can_cast(syntax.kind()) {
19230            Some(Self { syntax })
19231        } else {
19232            None
19233        }
19234    }
19235    #[inline]
19236    fn syntax(&self) -> &SyntaxNode {
19237        &self.syntax
19238    }
19239}
19240impl AstNode for ConstraintExclusionList {
19241    #[inline]
19242    fn can_cast(kind: SyntaxKind) -> bool {
19243        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
19244    }
19245    #[inline]
19246    fn cast(syntax: SyntaxNode) -> Option<Self> {
19247        if Self::can_cast(syntax.kind()) {
19248            Some(Self { syntax })
19249        } else {
19250            None
19251        }
19252    }
19253    #[inline]
19254    fn syntax(&self) -> &SyntaxNode {
19255        &self.syntax
19256    }
19257}
19258impl AstNode for ConstraintIncludeClause {
19259    #[inline]
19260    fn can_cast(kind: SyntaxKind) -> bool {
19261        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
19262    }
19263    #[inline]
19264    fn cast(syntax: SyntaxNode) -> Option<Self> {
19265        if Self::can_cast(syntax.kind()) {
19266            Some(Self { syntax })
19267        } else {
19268            None
19269        }
19270    }
19271    #[inline]
19272    fn syntax(&self) -> &SyntaxNode {
19273        &self.syntax
19274    }
19275}
19276impl AstNode for ConstraintIndexMethod {
19277    #[inline]
19278    fn can_cast(kind: SyntaxKind) -> bool {
19279        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
19280    }
19281    #[inline]
19282    fn cast(syntax: SyntaxNode) -> Option<Self> {
19283        if Self::can_cast(syntax.kind()) {
19284            Some(Self { syntax })
19285        } else {
19286            None
19287        }
19288    }
19289    #[inline]
19290    fn syntax(&self) -> &SyntaxNode {
19291        &self.syntax
19292    }
19293}
19294impl AstNode for ConstraintIndexTablespace {
19295    #[inline]
19296    fn can_cast(kind: SyntaxKind) -> bool {
19297        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
19298    }
19299    #[inline]
19300    fn cast(syntax: SyntaxNode) -> Option<Self> {
19301        if Self::can_cast(syntax.kind()) {
19302            Some(Self { syntax })
19303        } else {
19304            None
19305        }
19306    }
19307    #[inline]
19308    fn syntax(&self) -> &SyntaxNode {
19309        &self.syntax
19310    }
19311}
19312impl AstNode for ConstraintName {
19313    #[inline]
19314    fn can_cast(kind: SyntaxKind) -> bool {
19315        kind == SyntaxKind::CONSTRAINT_NAME
19316    }
19317    #[inline]
19318    fn cast(syntax: SyntaxNode) -> Option<Self> {
19319        if Self::can_cast(syntax.kind()) {
19320            Some(Self { syntax })
19321        } else {
19322            None
19323        }
19324    }
19325    #[inline]
19326    fn syntax(&self) -> &SyntaxNode {
19327        &self.syntax
19328    }
19329}
19330impl AstNode for Copy {
19331    #[inline]
19332    fn can_cast(kind: SyntaxKind) -> bool {
19333        kind == SyntaxKind::COPY
19334    }
19335    #[inline]
19336    fn cast(syntax: SyntaxNode) -> Option<Self> {
19337        if Self::can_cast(syntax.kind()) {
19338            Some(Self { syntax })
19339        } else {
19340            None
19341        }
19342    }
19343    #[inline]
19344    fn syntax(&self) -> &SyntaxNode {
19345        &self.syntax
19346    }
19347}
19348impl AstNode for CopyOption {
19349    #[inline]
19350    fn can_cast(kind: SyntaxKind) -> bool {
19351        kind == SyntaxKind::COPY_OPTION
19352    }
19353    #[inline]
19354    fn cast(syntax: SyntaxNode) -> Option<Self> {
19355        if Self::can_cast(syntax.kind()) {
19356            Some(Self { syntax })
19357        } else {
19358            None
19359        }
19360    }
19361    #[inline]
19362    fn syntax(&self) -> &SyntaxNode {
19363        &self.syntax
19364    }
19365}
19366impl AstNode for CopyOptionList {
19367    #[inline]
19368    fn can_cast(kind: SyntaxKind) -> bool {
19369        kind == SyntaxKind::COPY_OPTION_LIST
19370    }
19371    #[inline]
19372    fn cast(syntax: SyntaxNode) -> Option<Self> {
19373        if Self::can_cast(syntax.kind()) {
19374            Some(Self { syntax })
19375        } else {
19376            None
19377        }
19378    }
19379    #[inline]
19380    fn syntax(&self) -> &SyntaxNode {
19381        &self.syntax
19382    }
19383}
19384impl AstNode for CostFuncOption {
19385    #[inline]
19386    fn can_cast(kind: SyntaxKind) -> bool {
19387        kind == SyntaxKind::COST_FUNC_OPTION
19388    }
19389    #[inline]
19390    fn cast(syntax: SyntaxNode) -> Option<Self> {
19391        if Self::can_cast(syntax.kind()) {
19392            Some(Self { syntax })
19393        } else {
19394            None
19395        }
19396    }
19397    #[inline]
19398    fn syntax(&self) -> &SyntaxNode {
19399        &self.syntax
19400    }
19401}
19402impl AstNode for CreateAccessMethod {
19403    #[inline]
19404    fn can_cast(kind: SyntaxKind) -> bool {
19405        kind == SyntaxKind::CREATE_ACCESS_METHOD
19406    }
19407    #[inline]
19408    fn cast(syntax: SyntaxNode) -> Option<Self> {
19409        if Self::can_cast(syntax.kind()) {
19410            Some(Self { syntax })
19411        } else {
19412            None
19413        }
19414    }
19415    #[inline]
19416    fn syntax(&self) -> &SyntaxNode {
19417        &self.syntax
19418    }
19419}
19420impl AstNode for CreateAggregate {
19421    #[inline]
19422    fn can_cast(kind: SyntaxKind) -> bool {
19423        kind == SyntaxKind::CREATE_AGGREGATE
19424    }
19425    #[inline]
19426    fn cast(syntax: SyntaxNode) -> Option<Self> {
19427        if Self::can_cast(syntax.kind()) {
19428            Some(Self { syntax })
19429        } else {
19430            None
19431        }
19432    }
19433    #[inline]
19434    fn syntax(&self) -> &SyntaxNode {
19435        &self.syntax
19436    }
19437}
19438impl AstNode for CreateCast {
19439    #[inline]
19440    fn can_cast(kind: SyntaxKind) -> bool {
19441        kind == SyntaxKind::CREATE_CAST
19442    }
19443    #[inline]
19444    fn cast(syntax: SyntaxNode) -> Option<Self> {
19445        if Self::can_cast(syntax.kind()) {
19446            Some(Self { syntax })
19447        } else {
19448            None
19449        }
19450    }
19451    #[inline]
19452    fn syntax(&self) -> &SyntaxNode {
19453        &self.syntax
19454    }
19455}
19456impl AstNode for CreateCollation {
19457    #[inline]
19458    fn can_cast(kind: SyntaxKind) -> bool {
19459        kind == SyntaxKind::CREATE_COLLATION
19460    }
19461    #[inline]
19462    fn cast(syntax: SyntaxNode) -> Option<Self> {
19463        if Self::can_cast(syntax.kind()) {
19464            Some(Self { syntax })
19465        } else {
19466            None
19467        }
19468    }
19469    #[inline]
19470    fn syntax(&self) -> &SyntaxNode {
19471        &self.syntax
19472    }
19473}
19474impl AstNode for CreateConversion {
19475    #[inline]
19476    fn can_cast(kind: SyntaxKind) -> bool {
19477        kind == SyntaxKind::CREATE_CONVERSION
19478    }
19479    #[inline]
19480    fn cast(syntax: SyntaxNode) -> Option<Self> {
19481        if Self::can_cast(syntax.kind()) {
19482            Some(Self { syntax })
19483        } else {
19484            None
19485        }
19486    }
19487    #[inline]
19488    fn syntax(&self) -> &SyntaxNode {
19489        &self.syntax
19490    }
19491}
19492impl AstNode for CreateDatabase {
19493    #[inline]
19494    fn can_cast(kind: SyntaxKind) -> bool {
19495        kind == SyntaxKind::CREATE_DATABASE
19496    }
19497    #[inline]
19498    fn cast(syntax: SyntaxNode) -> Option<Self> {
19499        if Self::can_cast(syntax.kind()) {
19500            Some(Self { syntax })
19501        } else {
19502            None
19503        }
19504    }
19505    #[inline]
19506    fn syntax(&self) -> &SyntaxNode {
19507        &self.syntax
19508    }
19509}
19510impl AstNode for CreateDatabaseOption {
19511    #[inline]
19512    fn can_cast(kind: SyntaxKind) -> bool {
19513        kind == SyntaxKind::CREATE_DATABASE_OPTION
19514    }
19515    #[inline]
19516    fn cast(syntax: SyntaxNode) -> Option<Self> {
19517        if Self::can_cast(syntax.kind()) {
19518            Some(Self { syntax })
19519        } else {
19520            None
19521        }
19522    }
19523    #[inline]
19524    fn syntax(&self) -> &SyntaxNode {
19525        &self.syntax
19526    }
19527}
19528impl AstNode for CreateDatabaseOptionList {
19529    #[inline]
19530    fn can_cast(kind: SyntaxKind) -> bool {
19531        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
19532    }
19533    #[inline]
19534    fn cast(syntax: SyntaxNode) -> Option<Self> {
19535        if Self::can_cast(syntax.kind()) {
19536            Some(Self { syntax })
19537        } else {
19538            None
19539        }
19540    }
19541    #[inline]
19542    fn syntax(&self) -> &SyntaxNode {
19543        &self.syntax
19544    }
19545}
19546impl AstNode for CreateDomain {
19547    #[inline]
19548    fn can_cast(kind: SyntaxKind) -> bool {
19549        kind == SyntaxKind::CREATE_DOMAIN
19550    }
19551    #[inline]
19552    fn cast(syntax: SyntaxNode) -> Option<Self> {
19553        if Self::can_cast(syntax.kind()) {
19554            Some(Self { syntax })
19555        } else {
19556            None
19557        }
19558    }
19559    #[inline]
19560    fn syntax(&self) -> &SyntaxNode {
19561        &self.syntax
19562    }
19563}
19564impl AstNode for CreateEventTrigger {
19565    #[inline]
19566    fn can_cast(kind: SyntaxKind) -> bool {
19567        kind == SyntaxKind::CREATE_EVENT_TRIGGER
19568    }
19569    #[inline]
19570    fn cast(syntax: SyntaxNode) -> Option<Self> {
19571        if Self::can_cast(syntax.kind()) {
19572            Some(Self { syntax })
19573        } else {
19574            None
19575        }
19576    }
19577    #[inline]
19578    fn syntax(&self) -> &SyntaxNode {
19579        &self.syntax
19580    }
19581}
19582impl AstNode for CreateExtension {
19583    #[inline]
19584    fn can_cast(kind: SyntaxKind) -> bool {
19585        kind == SyntaxKind::CREATE_EXTENSION
19586    }
19587    #[inline]
19588    fn cast(syntax: SyntaxNode) -> Option<Self> {
19589        if Self::can_cast(syntax.kind()) {
19590            Some(Self { syntax })
19591        } else {
19592            None
19593        }
19594    }
19595    #[inline]
19596    fn syntax(&self) -> &SyntaxNode {
19597        &self.syntax
19598    }
19599}
19600impl AstNode for CreateForeignDataWrapper {
19601    #[inline]
19602    fn can_cast(kind: SyntaxKind) -> bool {
19603        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
19604    }
19605    #[inline]
19606    fn cast(syntax: SyntaxNode) -> Option<Self> {
19607        if Self::can_cast(syntax.kind()) {
19608            Some(Self { syntax })
19609        } else {
19610            None
19611        }
19612    }
19613    #[inline]
19614    fn syntax(&self) -> &SyntaxNode {
19615        &self.syntax
19616    }
19617}
19618impl AstNode for CreateForeignTable {
19619    #[inline]
19620    fn can_cast(kind: SyntaxKind) -> bool {
19621        kind == SyntaxKind::CREATE_FOREIGN_TABLE
19622    }
19623    #[inline]
19624    fn cast(syntax: SyntaxNode) -> Option<Self> {
19625        if Self::can_cast(syntax.kind()) {
19626            Some(Self { syntax })
19627        } else {
19628            None
19629        }
19630    }
19631    #[inline]
19632    fn syntax(&self) -> &SyntaxNode {
19633        &self.syntax
19634    }
19635}
19636impl AstNode for CreateFunction {
19637    #[inline]
19638    fn can_cast(kind: SyntaxKind) -> bool {
19639        kind == SyntaxKind::CREATE_FUNCTION
19640    }
19641    #[inline]
19642    fn cast(syntax: SyntaxNode) -> Option<Self> {
19643        if Self::can_cast(syntax.kind()) {
19644            Some(Self { syntax })
19645        } else {
19646            None
19647        }
19648    }
19649    #[inline]
19650    fn syntax(&self) -> &SyntaxNode {
19651        &self.syntax
19652    }
19653}
19654impl AstNode for CreateGroup {
19655    #[inline]
19656    fn can_cast(kind: SyntaxKind) -> bool {
19657        kind == SyntaxKind::CREATE_GROUP
19658    }
19659    #[inline]
19660    fn cast(syntax: SyntaxNode) -> Option<Self> {
19661        if Self::can_cast(syntax.kind()) {
19662            Some(Self { syntax })
19663        } else {
19664            None
19665        }
19666    }
19667    #[inline]
19668    fn syntax(&self) -> &SyntaxNode {
19669        &self.syntax
19670    }
19671}
19672impl AstNode for CreateIndex {
19673    #[inline]
19674    fn can_cast(kind: SyntaxKind) -> bool {
19675        kind == SyntaxKind::CREATE_INDEX
19676    }
19677    #[inline]
19678    fn cast(syntax: SyntaxNode) -> Option<Self> {
19679        if Self::can_cast(syntax.kind()) {
19680            Some(Self { syntax })
19681        } else {
19682            None
19683        }
19684    }
19685    #[inline]
19686    fn syntax(&self) -> &SyntaxNode {
19687        &self.syntax
19688    }
19689}
19690impl AstNode for CreateLanguage {
19691    #[inline]
19692    fn can_cast(kind: SyntaxKind) -> bool {
19693        kind == SyntaxKind::CREATE_LANGUAGE
19694    }
19695    #[inline]
19696    fn cast(syntax: SyntaxNode) -> Option<Self> {
19697        if Self::can_cast(syntax.kind()) {
19698            Some(Self { syntax })
19699        } else {
19700            None
19701        }
19702    }
19703    #[inline]
19704    fn syntax(&self) -> &SyntaxNode {
19705        &self.syntax
19706    }
19707}
19708impl AstNode for CreateMaterializedView {
19709    #[inline]
19710    fn can_cast(kind: SyntaxKind) -> bool {
19711        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
19712    }
19713    #[inline]
19714    fn cast(syntax: SyntaxNode) -> Option<Self> {
19715        if Self::can_cast(syntax.kind()) {
19716            Some(Self { syntax })
19717        } else {
19718            None
19719        }
19720    }
19721    #[inline]
19722    fn syntax(&self) -> &SyntaxNode {
19723        &self.syntax
19724    }
19725}
19726impl AstNode for CreateOperator {
19727    #[inline]
19728    fn can_cast(kind: SyntaxKind) -> bool {
19729        kind == SyntaxKind::CREATE_OPERATOR
19730    }
19731    #[inline]
19732    fn cast(syntax: SyntaxNode) -> Option<Self> {
19733        if Self::can_cast(syntax.kind()) {
19734            Some(Self { syntax })
19735        } else {
19736            None
19737        }
19738    }
19739    #[inline]
19740    fn syntax(&self) -> &SyntaxNode {
19741        &self.syntax
19742    }
19743}
19744impl AstNode for CreateOperatorClass {
19745    #[inline]
19746    fn can_cast(kind: SyntaxKind) -> bool {
19747        kind == SyntaxKind::CREATE_OPERATOR_CLASS
19748    }
19749    #[inline]
19750    fn cast(syntax: SyntaxNode) -> Option<Self> {
19751        if Self::can_cast(syntax.kind()) {
19752            Some(Self { syntax })
19753        } else {
19754            None
19755        }
19756    }
19757    #[inline]
19758    fn syntax(&self) -> &SyntaxNode {
19759        &self.syntax
19760    }
19761}
19762impl AstNode for CreateOperatorFamily {
19763    #[inline]
19764    fn can_cast(kind: SyntaxKind) -> bool {
19765        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
19766    }
19767    #[inline]
19768    fn cast(syntax: SyntaxNode) -> Option<Self> {
19769        if Self::can_cast(syntax.kind()) {
19770            Some(Self { syntax })
19771        } else {
19772            None
19773        }
19774    }
19775    #[inline]
19776    fn syntax(&self) -> &SyntaxNode {
19777        &self.syntax
19778    }
19779}
19780impl AstNode for CreatePolicy {
19781    #[inline]
19782    fn can_cast(kind: SyntaxKind) -> bool {
19783        kind == SyntaxKind::CREATE_POLICY
19784    }
19785    #[inline]
19786    fn cast(syntax: SyntaxNode) -> Option<Self> {
19787        if Self::can_cast(syntax.kind()) {
19788            Some(Self { syntax })
19789        } else {
19790            None
19791        }
19792    }
19793    #[inline]
19794    fn syntax(&self) -> &SyntaxNode {
19795        &self.syntax
19796    }
19797}
19798impl AstNode for CreateProcedure {
19799    #[inline]
19800    fn can_cast(kind: SyntaxKind) -> bool {
19801        kind == SyntaxKind::CREATE_PROCEDURE
19802    }
19803    #[inline]
19804    fn cast(syntax: SyntaxNode) -> Option<Self> {
19805        if Self::can_cast(syntax.kind()) {
19806            Some(Self { syntax })
19807        } else {
19808            None
19809        }
19810    }
19811    #[inline]
19812    fn syntax(&self) -> &SyntaxNode {
19813        &self.syntax
19814    }
19815}
19816impl AstNode for CreatePublication {
19817    #[inline]
19818    fn can_cast(kind: SyntaxKind) -> bool {
19819        kind == SyntaxKind::CREATE_PUBLICATION
19820    }
19821    #[inline]
19822    fn cast(syntax: SyntaxNode) -> Option<Self> {
19823        if Self::can_cast(syntax.kind()) {
19824            Some(Self { syntax })
19825        } else {
19826            None
19827        }
19828    }
19829    #[inline]
19830    fn syntax(&self) -> &SyntaxNode {
19831        &self.syntax
19832    }
19833}
19834impl AstNode for CreateRole {
19835    #[inline]
19836    fn can_cast(kind: SyntaxKind) -> bool {
19837        kind == SyntaxKind::CREATE_ROLE
19838    }
19839    #[inline]
19840    fn cast(syntax: SyntaxNode) -> Option<Self> {
19841        if Self::can_cast(syntax.kind()) {
19842            Some(Self { syntax })
19843        } else {
19844            None
19845        }
19846    }
19847    #[inline]
19848    fn syntax(&self) -> &SyntaxNode {
19849        &self.syntax
19850    }
19851}
19852impl AstNode for CreateRule {
19853    #[inline]
19854    fn can_cast(kind: SyntaxKind) -> bool {
19855        kind == SyntaxKind::CREATE_RULE
19856    }
19857    #[inline]
19858    fn cast(syntax: SyntaxNode) -> Option<Self> {
19859        if Self::can_cast(syntax.kind()) {
19860            Some(Self { syntax })
19861        } else {
19862            None
19863        }
19864    }
19865    #[inline]
19866    fn syntax(&self) -> &SyntaxNode {
19867        &self.syntax
19868    }
19869}
19870impl AstNode for CreateSchema {
19871    #[inline]
19872    fn can_cast(kind: SyntaxKind) -> bool {
19873        kind == SyntaxKind::CREATE_SCHEMA
19874    }
19875    #[inline]
19876    fn cast(syntax: SyntaxNode) -> Option<Self> {
19877        if Self::can_cast(syntax.kind()) {
19878            Some(Self { syntax })
19879        } else {
19880            None
19881        }
19882    }
19883    #[inline]
19884    fn syntax(&self) -> &SyntaxNode {
19885        &self.syntax
19886    }
19887}
19888impl AstNode for CreateSequence {
19889    #[inline]
19890    fn can_cast(kind: SyntaxKind) -> bool {
19891        kind == SyntaxKind::CREATE_SEQUENCE
19892    }
19893    #[inline]
19894    fn cast(syntax: SyntaxNode) -> Option<Self> {
19895        if Self::can_cast(syntax.kind()) {
19896            Some(Self { syntax })
19897        } else {
19898            None
19899        }
19900    }
19901    #[inline]
19902    fn syntax(&self) -> &SyntaxNode {
19903        &self.syntax
19904    }
19905}
19906impl AstNode for CreateServer {
19907    #[inline]
19908    fn can_cast(kind: SyntaxKind) -> bool {
19909        kind == SyntaxKind::CREATE_SERVER
19910    }
19911    #[inline]
19912    fn cast(syntax: SyntaxNode) -> Option<Self> {
19913        if Self::can_cast(syntax.kind()) {
19914            Some(Self { syntax })
19915        } else {
19916            None
19917        }
19918    }
19919    #[inline]
19920    fn syntax(&self) -> &SyntaxNode {
19921        &self.syntax
19922    }
19923}
19924impl AstNode for CreateStatistics {
19925    #[inline]
19926    fn can_cast(kind: SyntaxKind) -> bool {
19927        kind == SyntaxKind::CREATE_STATISTICS
19928    }
19929    #[inline]
19930    fn cast(syntax: SyntaxNode) -> Option<Self> {
19931        if Self::can_cast(syntax.kind()) {
19932            Some(Self { syntax })
19933        } else {
19934            None
19935        }
19936    }
19937    #[inline]
19938    fn syntax(&self) -> &SyntaxNode {
19939        &self.syntax
19940    }
19941}
19942impl AstNode for CreateSubscription {
19943    #[inline]
19944    fn can_cast(kind: SyntaxKind) -> bool {
19945        kind == SyntaxKind::CREATE_SUBSCRIPTION
19946    }
19947    #[inline]
19948    fn cast(syntax: SyntaxNode) -> Option<Self> {
19949        if Self::can_cast(syntax.kind()) {
19950            Some(Self { syntax })
19951        } else {
19952            None
19953        }
19954    }
19955    #[inline]
19956    fn syntax(&self) -> &SyntaxNode {
19957        &self.syntax
19958    }
19959}
19960impl AstNode for CreateTable {
19961    #[inline]
19962    fn can_cast(kind: SyntaxKind) -> bool {
19963        kind == SyntaxKind::CREATE_TABLE
19964    }
19965    #[inline]
19966    fn cast(syntax: SyntaxNode) -> Option<Self> {
19967        if Self::can_cast(syntax.kind()) {
19968            Some(Self { syntax })
19969        } else {
19970            None
19971        }
19972    }
19973    #[inline]
19974    fn syntax(&self) -> &SyntaxNode {
19975        &self.syntax
19976    }
19977}
19978impl AstNode for CreateTableAs {
19979    #[inline]
19980    fn can_cast(kind: SyntaxKind) -> bool {
19981        kind == SyntaxKind::CREATE_TABLE_AS
19982    }
19983    #[inline]
19984    fn cast(syntax: SyntaxNode) -> Option<Self> {
19985        if Self::can_cast(syntax.kind()) {
19986            Some(Self { syntax })
19987        } else {
19988            None
19989        }
19990    }
19991    #[inline]
19992    fn syntax(&self) -> &SyntaxNode {
19993        &self.syntax
19994    }
19995}
19996impl AstNode for CreateTablespace {
19997    #[inline]
19998    fn can_cast(kind: SyntaxKind) -> bool {
19999        kind == SyntaxKind::CREATE_TABLESPACE
20000    }
20001    #[inline]
20002    fn cast(syntax: SyntaxNode) -> Option<Self> {
20003        if Self::can_cast(syntax.kind()) {
20004            Some(Self { syntax })
20005        } else {
20006            None
20007        }
20008    }
20009    #[inline]
20010    fn syntax(&self) -> &SyntaxNode {
20011        &self.syntax
20012    }
20013}
20014impl AstNode for CreateTextSearchConfiguration {
20015    #[inline]
20016    fn can_cast(kind: SyntaxKind) -> bool {
20017        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
20018    }
20019    #[inline]
20020    fn cast(syntax: SyntaxNode) -> Option<Self> {
20021        if Self::can_cast(syntax.kind()) {
20022            Some(Self { syntax })
20023        } else {
20024            None
20025        }
20026    }
20027    #[inline]
20028    fn syntax(&self) -> &SyntaxNode {
20029        &self.syntax
20030    }
20031}
20032impl AstNode for CreateTextSearchDictionary {
20033    #[inline]
20034    fn can_cast(kind: SyntaxKind) -> bool {
20035        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
20036    }
20037    #[inline]
20038    fn cast(syntax: SyntaxNode) -> Option<Self> {
20039        if Self::can_cast(syntax.kind()) {
20040            Some(Self { syntax })
20041        } else {
20042            None
20043        }
20044    }
20045    #[inline]
20046    fn syntax(&self) -> &SyntaxNode {
20047        &self.syntax
20048    }
20049}
20050impl AstNode for CreateTextSearchParser {
20051    #[inline]
20052    fn can_cast(kind: SyntaxKind) -> bool {
20053        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
20054    }
20055    #[inline]
20056    fn cast(syntax: SyntaxNode) -> Option<Self> {
20057        if Self::can_cast(syntax.kind()) {
20058            Some(Self { syntax })
20059        } else {
20060            None
20061        }
20062    }
20063    #[inline]
20064    fn syntax(&self) -> &SyntaxNode {
20065        &self.syntax
20066    }
20067}
20068impl AstNode for CreateTextSearchTemplate {
20069    #[inline]
20070    fn can_cast(kind: SyntaxKind) -> bool {
20071        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
20072    }
20073    #[inline]
20074    fn cast(syntax: SyntaxNode) -> Option<Self> {
20075        if Self::can_cast(syntax.kind()) {
20076            Some(Self { syntax })
20077        } else {
20078            None
20079        }
20080    }
20081    #[inline]
20082    fn syntax(&self) -> &SyntaxNode {
20083        &self.syntax
20084    }
20085}
20086impl AstNode for CreateTransform {
20087    #[inline]
20088    fn can_cast(kind: SyntaxKind) -> bool {
20089        kind == SyntaxKind::CREATE_TRANSFORM
20090    }
20091    #[inline]
20092    fn cast(syntax: SyntaxNode) -> Option<Self> {
20093        if Self::can_cast(syntax.kind()) {
20094            Some(Self { syntax })
20095        } else {
20096            None
20097        }
20098    }
20099    #[inline]
20100    fn syntax(&self) -> &SyntaxNode {
20101        &self.syntax
20102    }
20103}
20104impl AstNode for CreateTrigger {
20105    #[inline]
20106    fn can_cast(kind: SyntaxKind) -> bool {
20107        kind == SyntaxKind::CREATE_TRIGGER
20108    }
20109    #[inline]
20110    fn cast(syntax: SyntaxNode) -> Option<Self> {
20111        if Self::can_cast(syntax.kind()) {
20112            Some(Self { syntax })
20113        } else {
20114            None
20115        }
20116    }
20117    #[inline]
20118    fn syntax(&self) -> &SyntaxNode {
20119        &self.syntax
20120    }
20121}
20122impl AstNode for CreateType {
20123    #[inline]
20124    fn can_cast(kind: SyntaxKind) -> bool {
20125        kind == SyntaxKind::CREATE_TYPE
20126    }
20127    #[inline]
20128    fn cast(syntax: SyntaxNode) -> Option<Self> {
20129        if Self::can_cast(syntax.kind()) {
20130            Some(Self { syntax })
20131        } else {
20132            None
20133        }
20134    }
20135    #[inline]
20136    fn syntax(&self) -> &SyntaxNode {
20137        &self.syntax
20138    }
20139}
20140impl AstNode for CreateUser {
20141    #[inline]
20142    fn can_cast(kind: SyntaxKind) -> bool {
20143        kind == SyntaxKind::CREATE_USER
20144    }
20145    #[inline]
20146    fn cast(syntax: SyntaxNode) -> Option<Self> {
20147        if Self::can_cast(syntax.kind()) {
20148            Some(Self { syntax })
20149        } else {
20150            None
20151        }
20152    }
20153    #[inline]
20154    fn syntax(&self) -> &SyntaxNode {
20155        &self.syntax
20156    }
20157}
20158impl AstNode for CreateUserMapping {
20159    #[inline]
20160    fn can_cast(kind: SyntaxKind) -> bool {
20161        kind == SyntaxKind::CREATE_USER_MAPPING
20162    }
20163    #[inline]
20164    fn cast(syntax: SyntaxNode) -> Option<Self> {
20165        if Self::can_cast(syntax.kind()) {
20166            Some(Self { syntax })
20167        } else {
20168            None
20169        }
20170    }
20171    #[inline]
20172    fn syntax(&self) -> &SyntaxNode {
20173        &self.syntax
20174    }
20175}
20176impl AstNode for CreateView {
20177    #[inline]
20178    fn can_cast(kind: SyntaxKind) -> bool {
20179        kind == SyntaxKind::CREATE_VIEW
20180    }
20181    #[inline]
20182    fn cast(syntax: SyntaxNode) -> Option<Self> {
20183        if Self::can_cast(syntax.kind()) {
20184            Some(Self { syntax })
20185        } else {
20186            None
20187        }
20188    }
20189    #[inline]
20190    fn syntax(&self) -> &SyntaxNode {
20191        &self.syntax
20192    }
20193}
20194impl AstNode for CustomOp {
20195    #[inline]
20196    fn can_cast(kind: SyntaxKind) -> bool {
20197        kind == SyntaxKind::CUSTOM_OP
20198    }
20199    #[inline]
20200    fn cast(syntax: SyntaxNode) -> Option<Self> {
20201        if Self::can_cast(syntax.kind()) {
20202            Some(Self { syntax })
20203        } else {
20204            None
20205        }
20206    }
20207    #[inline]
20208    fn syntax(&self) -> &SyntaxNode {
20209        &self.syntax
20210    }
20211}
20212impl AstNode for Deallocate {
20213    #[inline]
20214    fn can_cast(kind: SyntaxKind) -> bool {
20215        kind == SyntaxKind::DEALLOCATE
20216    }
20217    #[inline]
20218    fn cast(syntax: SyntaxNode) -> Option<Self> {
20219        if Self::can_cast(syntax.kind()) {
20220            Some(Self { syntax })
20221        } else {
20222            None
20223        }
20224    }
20225    #[inline]
20226    fn syntax(&self) -> &SyntaxNode {
20227        &self.syntax
20228    }
20229}
20230impl AstNode for Declare {
20231    #[inline]
20232    fn can_cast(kind: SyntaxKind) -> bool {
20233        kind == SyntaxKind::DECLARE
20234    }
20235    #[inline]
20236    fn cast(syntax: SyntaxNode) -> Option<Self> {
20237        if Self::can_cast(syntax.kind()) {
20238            Some(Self { syntax })
20239        } else {
20240            None
20241        }
20242    }
20243    #[inline]
20244    fn syntax(&self) -> &SyntaxNode {
20245        &self.syntax
20246    }
20247}
20248impl AstNode for DefaultConstraint {
20249    #[inline]
20250    fn can_cast(kind: SyntaxKind) -> bool {
20251        kind == SyntaxKind::DEFAULT_CONSTRAINT
20252    }
20253    #[inline]
20254    fn cast(syntax: SyntaxNode) -> Option<Self> {
20255        if Self::can_cast(syntax.kind()) {
20256            Some(Self { syntax })
20257        } else {
20258            None
20259        }
20260    }
20261    #[inline]
20262    fn syntax(&self) -> &SyntaxNode {
20263        &self.syntax
20264    }
20265}
20266impl AstNode for Deferrable {
20267    #[inline]
20268    fn can_cast(kind: SyntaxKind) -> bool {
20269        kind == SyntaxKind::DEFERRABLE
20270    }
20271    #[inline]
20272    fn cast(syntax: SyntaxNode) -> Option<Self> {
20273        if Self::can_cast(syntax.kind()) {
20274            Some(Self { syntax })
20275        } else {
20276            None
20277        }
20278    }
20279    #[inline]
20280    fn syntax(&self) -> &SyntaxNode {
20281        &self.syntax
20282    }
20283}
20284impl AstNode for DeferrableConstraintOption {
20285    #[inline]
20286    fn can_cast(kind: SyntaxKind) -> bool {
20287        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
20288    }
20289    #[inline]
20290    fn cast(syntax: SyntaxNode) -> Option<Self> {
20291        if Self::can_cast(syntax.kind()) {
20292            Some(Self { syntax })
20293        } else {
20294            None
20295        }
20296    }
20297    #[inline]
20298    fn syntax(&self) -> &SyntaxNode {
20299        &self.syntax
20300    }
20301}
20302impl AstNode for Delete {
20303    #[inline]
20304    fn can_cast(kind: SyntaxKind) -> bool {
20305        kind == SyntaxKind::DELETE
20306    }
20307    #[inline]
20308    fn cast(syntax: SyntaxNode) -> Option<Self> {
20309        if Self::can_cast(syntax.kind()) {
20310            Some(Self { syntax })
20311        } else {
20312            None
20313        }
20314    }
20315    #[inline]
20316    fn syntax(&self) -> &SyntaxNode {
20317        &self.syntax
20318    }
20319}
20320impl AstNode for DeleteRows {
20321    #[inline]
20322    fn can_cast(kind: SyntaxKind) -> bool {
20323        kind == SyntaxKind::DELETE_ROWS
20324    }
20325    #[inline]
20326    fn cast(syntax: SyntaxNode) -> Option<Self> {
20327        if Self::can_cast(syntax.kind()) {
20328            Some(Self { syntax })
20329        } else {
20330            None
20331        }
20332    }
20333    #[inline]
20334    fn syntax(&self) -> &SyntaxNode {
20335        &self.syntax
20336    }
20337}
20338impl AstNode for DependsOnExtension {
20339    #[inline]
20340    fn can_cast(kind: SyntaxKind) -> bool {
20341        kind == SyntaxKind::DEPENDS_ON_EXTENSION
20342    }
20343    #[inline]
20344    fn cast(syntax: SyntaxNode) -> Option<Self> {
20345        if Self::can_cast(syntax.kind()) {
20346            Some(Self { syntax })
20347        } else {
20348            None
20349        }
20350    }
20351    #[inline]
20352    fn syntax(&self) -> &SyntaxNode {
20353        &self.syntax
20354    }
20355}
20356impl AstNode for DetachPartition {
20357    #[inline]
20358    fn can_cast(kind: SyntaxKind) -> bool {
20359        kind == SyntaxKind::DETACH_PARTITION
20360    }
20361    #[inline]
20362    fn cast(syntax: SyntaxNode) -> Option<Self> {
20363        if Self::can_cast(syntax.kind()) {
20364            Some(Self { syntax })
20365        } else {
20366            None
20367        }
20368    }
20369    #[inline]
20370    fn syntax(&self) -> &SyntaxNode {
20371        &self.syntax
20372    }
20373}
20374impl AstNode for DisableRls {
20375    #[inline]
20376    fn can_cast(kind: SyntaxKind) -> bool {
20377        kind == SyntaxKind::DISABLE_RLS
20378    }
20379    #[inline]
20380    fn cast(syntax: SyntaxNode) -> Option<Self> {
20381        if Self::can_cast(syntax.kind()) {
20382            Some(Self { syntax })
20383        } else {
20384            None
20385        }
20386    }
20387    #[inline]
20388    fn syntax(&self) -> &SyntaxNode {
20389        &self.syntax
20390    }
20391}
20392impl AstNode for DisableRule {
20393    #[inline]
20394    fn can_cast(kind: SyntaxKind) -> bool {
20395        kind == SyntaxKind::DISABLE_RULE
20396    }
20397    #[inline]
20398    fn cast(syntax: SyntaxNode) -> Option<Self> {
20399        if Self::can_cast(syntax.kind()) {
20400            Some(Self { syntax })
20401        } else {
20402            None
20403        }
20404    }
20405    #[inline]
20406    fn syntax(&self) -> &SyntaxNode {
20407        &self.syntax
20408    }
20409}
20410impl AstNode for DisableTrigger {
20411    #[inline]
20412    fn can_cast(kind: SyntaxKind) -> bool {
20413        kind == SyntaxKind::DISABLE_TRIGGER
20414    }
20415    #[inline]
20416    fn cast(syntax: SyntaxNode) -> Option<Self> {
20417        if Self::can_cast(syntax.kind()) {
20418            Some(Self { syntax })
20419        } else {
20420            None
20421        }
20422    }
20423    #[inline]
20424    fn syntax(&self) -> &SyntaxNode {
20425        &self.syntax
20426    }
20427}
20428impl AstNode for Discard {
20429    #[inline]
20430    fn can_cast(kind: SyntaxKind) -> bool {
20431        kind == SyntaxKind::DISCARD
20432    }
20433    #[inline]
20434    fn cast(syntax: SyntaxNode) -> Option<Self> {
20435        if Self::can_cast(syntax.kind()) {
20436            Some(Self { syntax })
20437        } else {
20438            None
20439        }
20440    }
20441    #[inline]
20442    fn syntax(&self) -> &SyntaxNode {
20443        &self.syntax
20444    }
20445}
20446impl AstNode for DistinctClause {
20447    #[inline]
20448    fn can_cast(kind: SyntaxKind) -> bool {
20449        kind == SyntaxKind::DISTINCT_CLAUSE
20450    }
20451    #[inline]
20452    fn cast(syntax: SyntaxNode) -> Option<Self> {
20453        if Self::can_cast(syntax.kind()) {
20454            Some(Self { syntax })
20455        } else {
20456            None
20457        }
20458    }
20459    #[inline]
20460    fn syntax(&self) -> &SyntaxNode {
20461        &self.syntax
20462    }
20463}
20464impl AstNode for Do {
20465    #[inline]
20466    fn can_cast(kind: SyntaxKind) -> bool {
20467        kind == SyntaxKind::DO
20468    }
20469    #[inline]
20470    fn cast(syntax: SyntaxNode) -> Option<Self> {
20471        if Self::can_cast(syntax.kind()) {
20472            Some(Self { syntax })
20473        } else {
20474            None
20475        }
20476    }
20477    #[inline]
20478    fn syntax(&self) -> &SyntaxNode {
20479        &self.syntax
20480    }
20481}
20482impl AstNode for DoubleType {
20483    #[inline]
20484    fn can_cast(kind: SyntaxKind) -> bool {
20485        kind == SyntaxKind::DOUBLE_TYPE
20486    }
20487    #[inline]
20488    fn cast(syntax: SyntaxNode) -> Option<Self> {
20489        if Self::can_cast(syntax.kind()) {
20490            Some(Self { syntax })
20491        } else {
20492            None
20493        }
20494    }
20495    #[inline]
20496    fn syntax(&self) -> &SyntaxNode {
20497        &self.syntax
20498    }
20499}
20500impl AstNode for Drop {
20501    #[inline]
20502    fn can_cast(kind: SyntaxKind) -> bool {
20503        kind == SyntaxKind::DROP
20504    }
20505    #[inline]
20506    fn cast(syntax: SyntaxNode) -> Option<Self> {
20507        if Self::can_cast(syntax.kind()) {
20508            Some(Self { syntax })
20509        } else {
20510            None
20511        }
20512    }
20513    #[inline]
20514    fn syntax(&self) -> &SyntaxNode {
20515        &self.syntax
20516    }
20517}
20518impl AstNode for DropAccessMethod {
20519    #[inline]
20520    fn can_cast(kind: SyntaxKind) -> bool {
20521        kind == SyntaxKind::DROP_ACCESS_METHOD
20522    }
20523    #[inline]
20524    fn cast(syntax: SyntaxNode) -> Option<Self> {
20525        if Self::can_cast(syntax.kind()) {
20526            Some(Self { syntax })
20527        } else {
20528            None
20529        }
20530    }
20531    #[inline]
20532    fn syntax(&self) -> &SyntaxNode {
20533        &self.syntax
20534    }
20535}
20536impl AstNode for DropAggregate {
20537    #[inline]
20538    fn can_cast(kind: SyntaxKind) -> bool {
20539        kind == SyntaxKind::DROP_AGGREGATE
20540    }
20541    #[inline]
20542    fn cast(syntax: SyntaxNode) -> Option<Self> {
20543        if Self::can_cast(syntax.kind()) {
20544            Some(Self { syntax })
20545        } else {
20546            None
20547        }
20548    }
20549    #[inline]
20550    fn syntax(&self) -> &SyntaxNode {
20551        &self.syntax
20552    }
20553}
20554impl AstNode for DropCast {
20555    #[inline]
20556    fn can_cast(kind: SyntaxKind) -> bool {
20557        kind == SyntaxKind::DROP_CAST
20558    }
20559    #[inline]
20560    fn cast(syntax: SyntaxNode) -> Option<Self> {
20561        if Self::can_cast(syntax.kind()) {
20562            Some(Self { syntax })
20563        } else {
20564            None
20565        }
20566    }
20567    #[inline]
20568    fn syntax(&self) -> &SyntaxNode {
20569        &self.syntax
20570    }
20571}
20572impl AstNode for DropCollation {
20573    #[inline]
20574    fn can_cast(kind: SyntaxKind) -> bool {
20575        kind == SyntaxKind::DROP_COLLATION
20576    }
20577    #[inline]
20578    fn cast(syntax: SyntaxNode) -> Option<Self> {
20579        if Self::can_cast(syntax.kind()) {
20580            Some(Self { syntax })
20581        } else {
20582            None
20583        }
20584    }
20585    #[inline]
20586    fn syntax(&self) -> &SyntaxNode {
20587        &self.syntax
20588    }
20589}
20590impl AstNode for DropColumn {
20591    #[inline]
20592    fn can_cast(kind: SyntaxKind) -> bool {
20593        kind == SyntaxKind::DROP_COLUMN
20594    }
20595    #[inline]
20596    fn cast(syntax: SyntaxNode) -> Option<Self> {
20597        if Self::can_cast(syntax.kind()) {
20598            Some(Self { syntax })
20599        } else {
20600            None
20601        }
20602    }
20603    #[inline]
20604    fn syntax(&self) -> &SyntaxNode {
20605        &self.syntax
20606    }
20607}
20608impl AstNode for DropConstraint {
20609    #[inline]
20610    fn can_cast(kind: SyntaxKind) -> bool {
20611        kind == SyntaxKind::DROP_CONSTRAINT
20612    }
20613    #[inline]
20614    fn cast(syntax: SyntaxNode) -> Option<Self> {
20615        if Self::can_cast(syntax.kind()) {
20616            Some(Self { syntax })
20617        } else {
20618            None
20619        }
20620    }
20621    #[inline]
20622    fn syntax(&self) -> &SyntaxNode {
20623        &self.syntax
20624    }
20625}
20626impl AstNode for DropConversion {
20627    #[inline]
20628    fn can_cast(kind: SyntaxKind) -> bool {
20629        kind == SyntaxKind::DROP_CONVERSION
20630    }
20631    #[inline]
20632    fn cast(syntax: SyntaxNode) -> Option<Self> {
20633        if Self::can_cast(syntax.kind()) {
20634            Some(Self { syntax })
20635        } else {
20636            None
20637        }
20638    }
20639    #[inline]
20640    fn syntax(&self) -> &SyntaxNode {
20641        &self.syntax
20642    }
20643}
20644impl AstNode for DropDatabase {
20645    #[inline]
20646    fn can_cast(kind: SyntaxKind) -> bool {
20647        kind == SyntaxKind::DROP_DATABASE
20648    }
20649    #[inline]
20650    fn cast(syntax: SyntaxNode) -> Option<Self> {
20651        if Self::can_cast(syntax.kind()) {
20652            Some(Self { syntax })
20653        } else {
20654            None
20655        }
20656    }
20657    #[inline]
20658    fn syntax(&self) -> &SyntaxNode {
20659        &self.syntax
20660    }
20661}
20662impl AstNode for DropDefault {
20663    #[inline]
20664    fn can_cast(kind: SyntaxKind) -> bool {
20665        kind == SyntaxKind::DROP_DEFAULT
20666    }
20667    #[inline]
20668    fn cast(syntax: SyntaxNode) -> Option<Self> {
20669        if Self::can_cast(syntax.kind()) {
20670            Some(Self { syntax })
20671        } else {
20672            None
20673        }
20674    }
20675    #[inline]
20676    fn syntax(&self) -> &SyntaxNode {
20677        &self.syntax
20678    }
20679}
20680impl AstNode for DropDomain {
20681    #[inline]
20682    fn can_cast(kind: SyntaxKind) -> bool {
20683        kind == SyntaxKind::DROP_DOMAIN
20684    }
20685    #[inline]
20686    fn cast(syntax: SyntaxNode) -> Option<Self> {
20687        if Self::can_cast(syntax.kind()) {
20688            Some(Self { syntax })
20689        } else {
20690            None
20691        }
20692    }
20693    #[inline]
20694    fn syntax(&self) -> &SyntaxNode {
20695        &self.syntax
20696    }
20697}
20698impl AstNode for DropEventTrigger {
20699    #[inline]
20700    fn can_cast(kind: SyntaxKind) -> bool {
20701        kind == SyntaxKind::DROP_EVENT_TRIGGER
20702    }
20703    #[inline]
20704    fn cast(syntax: SyntaxNode) -> Option<Self> {
20705        if Self::can_cast(syntax.kind()) {
20706            Some(Self { syntax })
20707        } else {
20708            None
20709        }
20710    }
20711    #[inline]
20712    fn syntax(&self) -> &SyntaxNode {
20713        &self.syntax
20714    }
20715}
20716impl AstNode for DropExpression {
20717    #[inline]
20718    fn can_cast(kind: SyntaxKind) -> bool {
20719        kind == SyntaxKind::DROP_EXPRESSION
20720    }
20721    #[inline]
20722    fn cast(syntax: SyntaxNode) -> Option<Self> {
20723        if Self::can_cast(syntax.kind()) {
20724            Some(Self { syntax })
20725        } else {
20726            None
20727        }
20728    }
20729    #[inline]
20730    fn syntax(&self) -> &SyntaxNode {
20731        &self.syntax
20732    }
20733}
20734impl AstNode for DropExtension {
20735    #[inline]
20736    fn can_cast(kind: SyntaxKind) -> bool {
20737        kind == SyntaxKind::DROP_EXTENSION
20738    }
20739    #[inline]
20740    fn cast(syntax: SyntaxNode) -> Option<Self> {
20741        if Self::can_cast(syntax.kind()) {
20742            Some(Self { syntax })
20743        } else {
20744            None
20745        }
20746    }
20747    #[inline]
20748    fn syntax(&self) -> &SyntaxNode {
20749        &self.syntax
20750    }
20751}
20752impl AstNode for DropForeignDataWrapper {
20753    #[inline]
20754    fn can_cast(kind: SyntaxKind) -> bool {
20755        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
20756    }
20757    #[inline]
20758    fn cast(syntax: SyntaxNode) -> Option<Self> {
20759        if Self::can_cast(syntax.kind()) {
20760            Some(Self { syntax })
20761        } else {
20762            None
20763        }
20764    }
20765    #[inline]
20766    fn syntax(&self) -> &SyntaxNode {
20767        &self.syntax
20768    }
20769}
20770impl AstNode for DropForeignTable {
20771    #[inline]
20772    fn can_cast(kind: SyntaxKind) -> bool {
20773        kind == SyntaxKind::DROP_FOREIGN_TABLE
20774    }
20775    #[inline]
20776    fn cast(syntax: SyntaxNode) -> Option<Self> {
20777        if Self::can_cast(syntax.kind()) {
20778            Some(Self { syntax })
20779        } else {
20780            None
20781        }
20782    }
20783    #[inline]
20784    fn syntax(&self) -> &SyntaxNode {
20785        &self.syntax
20786    }
20787}
20788impl AstNode for DropFunction {
20789    #[inline]
20790    fn can_cast(kind: SyntaxKind) -> bool {
20791        kind == SyntaxKind::DROP_FUNCTION
20792    }
20793    #[inline]
20794    fn cast(syntax: SyntaxNode) -> Option<Self> {
20795        if Self::can_cast(syntax.kind()) {
20796            Some(Self { syntax })
20797        } else {
20798            None
20799        }
20800    }
20801    #[inline]
20802    fn syntax(&self) -> &SyntaxNode {
20803        &self.syntax
20804    }
20805}
20806impl AstNode for DropGroup {
20807    #[inline]
20808    fn can_cast(kind: SyntaxKind) -> bool {
20809        kind == SyntaxKind::DROP_GROUP
20810    }
20811    #[inline]
20812    fn cast(syntax: SyntaxNode) -> Option<Self> {
20813        if Self::can_cast(syntax.kind()) {
20814            Some(Self { syntax })
20815        } else {
20816            None
20817        }
20818    }
20819    #[inline]
20820    fn syntax(&self) -> &SyntaxNode {
20821        &self.syntax
20822    }
20823}
20824impl AstNode for DropIdentity {
20825    #[inline]
20826    fn can_cast(kind: SyntaxKind) -> bool {
20827        kind == SyntaxKind::DROP_IDENTITY
20828    }
20829    #[inline]
20830    fn cast(syntax: SyntaxNode) -> Option<Self> {
20831        if Self::can_cast(syntax.kind()) {
20832            Some(Self { syntax })
20833        } else {
20834            None
20835        }
20836    }
20837    #[inline]
20838    fn syntax(&self) -> &SyntaxNode {
20839        &self.syntax
20840    }
20841}
20842impl AstNode for DropIndex {
20843    #[inline]
20844    fn can_cast(kind: SyntaxKind) -> bool {
20845        kind == SyntaxKind::DROP_INDEX
20846    }
20847    #[inline]
20848    fn cast(syntax: SyntaxNode) -> Option<Self> {
20849        if Self::can_cast(syntax.kind()) {
20850            Some(Self { syntax })
20851        } else {
20852            None
20853        }
20854    }
20855    #[inline]
20856    fn syntax(&self) -> &SyntaxNode {
20857        &self.syntax
20858    }
20859}
20860impl AstNode for DropLanguage {
20861    #[inline]
20862    fn can_cast(kind: SyntaxKind) -> bool {
20863        kind == SyntaxKind::DROP_LANGUAGE
20864    }
20865    #[inline]
20866    fn cast(syntax: SyntaxNode) -> Option<Self> {
20867        if Self::can_cast(syntax.kind()) {
20868            Some(Self { syntax })
20869        } else {
20870            None
20871        }
20872    }
20873    #[inline]
20874    fn syntax(&self) -> &SyntaxNode {
20875        &self.syntax
20876    }
20877}
20878impl AstNode for DropMaterializedView {
20879    #[inline]
20880    fn can_cast(kind: SyntaxKind) -> bool {
20881        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
20882    }
20883    #[inline]
20884    fn cast(syntax: SyntaxNode) -> Option<Self> {
20885        if Self::can_cast(syntax.kind()) {
20886            Some(Self { syntax })
20887        } else {
20888            None
20889        }
20890    }
20891    #[inline]
20892    fn syntax(&self) -> &SyntaxNode {
20893        &self.syntax
20894    }
20895}
20896impl AstNode for DropNotNull {
20897    #[inline]
20898    fn can_cast(kind: SyntaxKind) -> bool {
20899        kind == SyntaxKind::DROP_NOT_NULL
20900    }
20901    #[inline]
20902    fn cast(syntax: SyntaxNode) -> Option<Self> {
20903        if Self::can_cast(syntax.kind()) {
20904            Some(Self { syntax })
20905        } else {
20906            None
20907        }
20908    }
20909    #[inline]
20910    fn syntax(&self) -> &SyntaxNode {
20911        &self.syntax
20912    }
20913}
20914impl AstNode for DropOpClassOption {
20915    #[inline]
20916    fn can_cast(kind: SyntaxKind) -> bool {
20917        kind == SyntaxKind::DROP_OP_CLASS_OPTION
20918    }
20919    #[inline]
20920    fn cast(syntax: SyntaxNode) -> Option<Self> {
20921        if Self::can_cast(syntax.kind()) {
20922            Some(Self { syntax })
20923        } else {
20924            None
20925        }
20926    }
20927    #[inline]
20928    fn syntax(&self) -> &SyntaxNode {
20929        &self.syntax
20930    }
20931}
20932impl AstNode for DropOpClassOptionList {
20933    #[inline]
20934    fn can_cast(kind: SyntaxKind) -> bool {
20935        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
20936    }
20937    #[inline]
20938    fn cast(syntax: SyntaxNode) -> Option<Self> {
20939        if Self::can_cast(syntax.kind()) {
20940            Some(Self { syntax })
20941        } else {
20942            None
20943        }
20944    }
20945    #[inline]
20946    fn syntax(&self) -> &SyntaxNode {
20947        &self.syntax
20948    }
20949}
20950impl AstNode for DropOpClassOptions {
20951    #[inline]
20952    fn can_cast(kind: SyntaxKind) -> bool {
20953        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
20954    }
20955    #[inline]
20956    fn cast(syntax: SyntaxNode) -> Option<Self> {
20957        if Self::can_cast(syntax.kind()) {
20958            Some(Self { syntax })
20959        } else {
20960            None
20961        }
20962    }
20963    #[inline]
20964    fn syntax(&self) -> &SyntaxNode {
20965        &self.syntax
20966    }
20967}
20968impl AstNode for DropOperator {
20969    #[inline]
20970    fn can_cast(kind: SyntaxKind) -> bool {
20971        kind == SyntaxKind::DROP_OPERATOR
20972    }
20973    #[inline]
20974    fn cast(syntax: SyntaxNode) -> Option<Self> {
20975        if Self::can_cast(syntax.kind()) {
20976            Some(Self { syntax })
20977        } else {
20978            None
20979        }
20980    }
20981    #[inline]
20982    fn syntax(&self) -> &SyntaxNode {
20983        &self.syntax
20984    }
20985}
20986impl AstNode for DropOperatorClass {
20987    #[inline]
20988    fn can_cast(kind: SyntaxKind) -> bool {
20989        kind == SyntaxKind::DROP_OPERATOR_CLASS
20990    }
20991    #[inline]
20992    fn cast(syntax: SyntaxNode) -> Option<Self> {
20993        if Self::can_cast(syntax.kind()) {
20994            Some(Self { syntax })
20995        } else {
20996            None
20997        }
20998    }
20999    #[inline]
21000    fn syntax(&self) -> &SyntaxNode {
21001        &self.syntax
21002    }
21003}
21004impl AstNode for DropOperatorFamily {
21005    #[inline]
21006    fn can_cast(kind: SyntaxKind) -> bool {
21007        kind == SyntaxKind::DROP_OPERATOR_FAMILY
21008    }
21009    #[inline]
21010    fn cast(syntax: SyntaxNode) -> Option<Self> {
21011        if Self::can_cast(syntax.kind()) {
21012            Some(Self { syntax })
21013        } else {
21014            None
21015        }
21016    }
21017    #[inline]
21018    fn syntax(&self) -> &SyntaxNode {
21019        &self.syntax
21020    }
21021}
21022impl AstNode for DropOwned {
21023    #[inline]
21024    fn can_cast(kind: SyntaxKind) -> bool {
21025        kind == SyntaxKind::DROP_OWNED
21026    }
21027    #[inline]
21028    fn cast(syntax: SyntaxNode) -> Option<Self> {
21029        if Self::can_cast(syntax.kind()) {
21030            Some(Self { syntax })
21031        } else {
21032            None
21033        }
21034    }
21035    #[inline]
21036    fn syntax(&self) -> &SyntaxNode {
21037        &self.syntax
21038    }
21039}
21040impl AstNode for DropPolicy {
21041    #[inline]
21042    fn can_cast(kind: SyntaxKind) -> bool {
21043        kind == SyntaxKind::DROP_POLICY
21044    }
21045    #[inline]
21046    fn cast(syntax: SyntaxNode) -> Option<Self> {
21047        if Self::can_cast(syntax.kind()) {
21048            Some(Self { syntax })
21049        } else {
21050            None
21051        }
21052    }
21053    #[inline]
21054    fn syntax(&self) -> &SyntaxNode {
21055        &self.syntax
21056    }
21057}
21058impl AstNode for DropProcedure {
21059    #[inline]
21060    fn can_cast(kind: SyntaxKind) -> bool {
21061        kind == SyntaxKind::DROP_PROCEDURE
21062    }
21063    #[inline]
21064    fn cast(syntax: SyntaxNode) -> Option<Self> {
21065        if Self::can_cast(syntax.kind()) {
21066            Some(Self { syntax })
21067        } else {
21068            None
21069        }
21070    }
21071    #[inline]
21072    fn syntax(&self) -> &SyntaxNode {
21073        &self.syntax
21074    }
21075}
21076impl AstNode for DropPublication {
21077    #[inline]
21078    fn can_cast(kind: SyntaxKind) -> bool {
21079        kind == SyntaxKind::DROP_PUBLICATION
21080    }
21081    #[inline]
21082    fn cast(syntax: SyntaxNode) -> Option<Self> {
21083        if Self::can_cast(syntax.kind()) {
21084            Some(Self { syntax })
21085        } else {
21086            None
21087        }
21088    }
21089    #[inline]
21090    fn syntax(&self) -> &SyntaxNode {
21091        &self.syntax
21092    }
21093}
21094impl AstNode for DropRole {
21095    #[inline]
21096    fn can_cast(kind: SyntaxKind) -> bool {
21097        kind == SyntaxKind::DROP_ROLE
21098    }
21099    #[inline]
21100    fn cast(syntax: SyntaxNode) -> Option<Self> {
21101        if Self::can_cast(syntax.kind()) {
21102            Some(Self { syntax })
21103        } else {
21104            None
21105        }
21106    }
21107    #[inline]
21108    fn syntax(&self) -> &SyntaxNode {
21109        &self.syntax
21110    }
21111}
21112impl AstNode for DropRoutine {
21113    #[inline]
21114    fn can_cast(kind: SyntaxKind) -> bool {
21115        kind == SyntaxKind::DROP_ROUTINE
21116    }
21117    #[inline]
21118    fn cast(syntax: SyntaxNode) -> Option<Self> {
21119        if Self::can_cast(syntax.kind()) {
21120            Some(Self { syntax })
21121        } else {
21122            None
21123        }
21124    }
21125    #[inline]
21126    fn syntax(&self) -> &SyntaxNode {
21127        &self.syntax
21128    }
21129}
21130impl AstNode for DropRule {
21131    #[inline]
21132    fn can_cast(kind: SyntaxKind) -> bool {
21133        kind == SyntaxKind::DROP_RULE
21134    }
21135    #[inline]
21136    fn cast(syntax: SyntaxNode) -> Option<Self> {
21137        if Self::can_cast(syntax.kind()) {
21138            Some(Self { syntax })
21139        } else {
21140            None
21141        }
21142    }
21143    #[inline]
21144    fn syntax(&self) -> &SyntaxNode {
21145        &self.syntax
21146    }
21147}
21148impl AstNode for DropSchema {
21149    #[inline]
21150    fn can_cast(kind: SyntaxKind) -> bool {
21151        kind == SyntaxKind::DROP_SCHEMA
21152    }
21153    #[inline]
21154    fn cast(syntax: SyntaxNode) -> Option<Self> {
21155        if Self::can_cast(syntax.kind()) {
21156            Some(Self { syntax })
21157        } else {
21158            None
21159        }
21160    }
21161    #[inline]
21162    fn syntax(&self) -> &SyntaxNode {
21163        &self.syntax
21164    }
21165}
21166impl AstNode for DropSequence {
21167    #[inline]
21168    fn can_cast(kind: SyntaxKind) -> bool {
21169        kind == SyntaxKind::DROP_SEQUENCE
21170    }
21171    #[inline]
21172    fn cast(syntax: SyntaxNode) -> Option<Self> {
21173        if Self::can_cast(syntax.kind()) {
21174            Some(Self { syntax })
21175        } else {
21176            None
21177        }
21178    }
21179    #[inline]
21180    fn syntax(&self) -> &SyntaxNode {
21181        &self.syntax
21182    }
21183}
21184impl AstNode for DropServer {
21185    #[inline]
21186    fn can_cast(kind: SyntaxKind) -> bool {
21187        kind == SyntaxKind::DROP_SERVER
21188    }
21189    #[inline]
21190    fn cast(syntax: SyntaxNode) -> Option<Self> {
21191        if Self::can_cast(syntax.kind()) {
21192            Some(Self { syntax })
21193        } else {
21194            None
21195        }
21196    }
21197    #[inline]
21198    fn syntax(&self) -> &SyntaxNode {
21199        &self.syntax
21200    }
21201}
21202impl AstNode for DropStatistics {
21203    #[inline]
21204    fn can_cast(kind: SyntaxKind) -> bool {
21205        kind == SyntaxKind::DROP_STATISTICS
21206    }
21207    #[inline]
21208    fn cast(syntax: SyntaxNode) -> Option<Self> {
21209        if Self::can_cast(syntax.kind()) {
21210            Some(Self { syntax })
21211        } else {
21212            None
21213        }
21214    }
21215    #[inline]
21216    fn syntax(&self) -> &SyntaxNode {
21217        &self.syntax
21218    }
21219}
21220impl AstNode for DropSubscription {
21221    #[inline]
21222    fn can_cast(kind: SyntaxKind) -> bool {
21223        kind == SyntaxKind::DROP_SUBSCRIPTION
21224    }
21225    #[inline]
21226    fn cast(syntax: SyntaxNode) -> Option<Self> {
21227        if Self::can_cast(syntax.kind()) {
21228            Some(Self { syntax })
21229        } else {
21230            None
21231        }
21232    }
21233    #[inline]
21234    fn syntax(&self) -> &SyntaxNode {
21235        &self.syntax
21236    }
21237}
21238impl AstNode for DropTable {
21239    #[inline]
21240    fn can_cast(kind: SyntaxKind) -> bool {
21241        kind == SyntaxKind::DROP_TABLE
21242    }
21243    #[inline]
21244    fn cast(syntax: SyntaxNode) -> Option<Self> {
21245        if Self::can_cast(syntax.kind()) {
21246            Some(Self { syntax })
21247        } else {
21248            None
21249        }
21250    }
21251    #[inline]
21252    fn syntax(&self) -> &SyntaxNode {
21253        &self.syntax
21254    }
21255}
21256impl AstNode for DropTablespace {
21257    #[inline]
21258    fn can_cast(kind: SyntaxKind) -> bool {
21259        kind == SyntaxKind::DROP_TABLESPACE
21260    }
21261    #[inline]
21262    fn cast(syntax: SyntaxNode) -> Option<Self> {
21263        if Self::can_cast(syntax.kind()) {
21264            Some(Self { syntax })
21265        } else {
21266            None
21267        }
21268    }
21269    #[inline]
21270    fn syntax(&self) -> &SyntaxNode {
21271        &self.syntax
21272    }
21273}
21274impl AstNode for DropTextSearchConfig {
21275    #[inline]
21276    fn can_cast(kind: SyntaxKind) -> bool {
21277        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
21278    }
21279    #[inline]
21280    fn cast(syntax: SyntaxNode) -> Option<Self> {
21281        if Self::can_cast(syntax.kind()) {
21282            Some(Self { syntax })
21283        } else {
21284            None
21285        }
21286    }
21287    #[inline]
21288    fn syntax(&self) -> &SyntaxNode {
21289        &self.syntax
21290    }
21291}
21292impl AstNode for DropTextSearchDict {
21293    #[inline]
21294    fn can_cast(kind: SyntaxKind) -> bool {
21295        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
21296    }
21297    #[inline]
21298    fn cast(syntax: SyntaxNode) -> Option<Self> {
21299        if Self::can_cast(syntax.kind()) {
21300            Some(Self { syntax })
21301        } else {
21302            None
21303        }
21304    }
21305    #[inline]
21306    fn syntax(&self) -> &SyntaxNode {
21307        &self.syntax
21308    }
21309}
21310impl AstNode for DropTextSearchParser {
21311    #[inline]
21312    fn can_cast(kind: SyntaxKind) -> bool {
21313        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
21314    }
21315    #[inline]
21316    fn cast(syntax: SyntaxNode) -> Option<Self> {
21317        if Self::can_cast(syntax.kind()) {
21318            Some(Self { syntax })
21319        } else {
21320            None
21321        }
21322    }
21323    #[inline]
21324    fn syntax(&self) -> &SyntaxNode {
21325        &self.syntax
21326    }
21327}
21328impl AstNode for DropTextSearchTemplate {
21329    #[inline]
21330    fn can_cast(kind: SyntaxKind) -> bool {
21331        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
21332    }
21333    #[inline]
21334    fn cast(syntax: SyntaxNode) -> Option<Self> {
21335        if Self::can_cast(syntax.kind()) {
21336            Some(Self { syntax })
21337        } else {
21338            None
21339        }
21340    }
21341    #[inline]
21342    fn syntax(&self) -> &SyntaxNode {
21343        &self.syntax
21344    }
21345}
21346impl AstNode for DropTransform {
21347    #[inline]
21348    fn can_cast(kind: SyntaxKind) -> bool {
21349        kind == SyntaxKind::DROP_TRANSFORM
21350    }
21351    #[inline]
21352    fn cast(syntax: SyntaxNode) -> Option<Self> {
21353        if Self::can_cast(syntax.kind()) {
21354            Some(Self { syntax })
21355        } else {
21356            None
21357        }
21358    }
21359    #[inline]
21360    fn syntax(&self) -> &SyntaxNode {
21361        &self.syntax
21362    }
21363}
21364impl AstNode for DropTrigger {
21365    #[inline]
21366    fn can_cast(kind: SyntaxKind) -> bool {
21367        kind == SyntaxKind::DROP_TRIGGER
21368    }
21369    #[inline]
21370    fn cast(syntax: SyntaxNode) -> Option<Self> {
21371        if Self::can_cast(syntax.kind()) {
21372            Some(Self { syntax })
21373        } else {
21374            None
21375        }
21376    }
21377    #[inline]
21378    fn syntax(&self) -> &SyntaxNode {
21379        &self.syntax
21380    }
21381}
21382impl AstNode for DropType {
21383    #[inline]
21384    fn can_cast(kind: SyntaxKind) -> bool {
21385        kind == SyntaxKind::DROP_TYPE
21386    }
21387    #[inline]
21388    fn cast(syntax: SyntaxNode) -> Option<Self> {
21389        if Self::can_cast(syntax.kind()) {
21390            Some(Self { syntax })
21391        } else {
21392            None
21393        }
21394    }
21395    #[inline]
21396    fn syntax(&self) -> &SyntaxNode {
21397        &self.syntax
21398    }
21399}
21400impl AstNode for DropUser {
21401    #[inline]
21402    fn can_cast(kind: SyntaxKind) -> bool {
21403        kind == SyntaxKind::DROP_USER
21404    }
21405    #[inline]
21406    fn cast(syntax: SyntaxNode) -> Option<Self> {
21407        if Self::can_cast(syntax.kind()) {
21408            Some(Self { syntax })
21409        } else {
21410            None
21411        }
21412    }
21413    #[inline]
21414    fn syntax(&self) -> &SyntaxNode {
21415        &self.syntax
21416    }
21417}
21418impl AstNode for DropUserMapping {
21419    #[inline]
21420    fn can_cast(kind: SyntaxKind) -> bool {
21421        kind == SyntaxKind::DROP_USER_MAPPING
21422    }
21423    #[inline]
21424    fn cast(syntax: SyntaxNode) -> Option<Self> {
21425        if Self::can_cast(syntax.kind()) {
21426            Some(Self { syntax })
21427        } else {
21428            None
21429        }
21430    }
21431    #[inline]
21432    fn syntax(&self) -> &SyntaxNode {
21433        &self.syntax
21434    }
21435}
21436impl AstNode for DropView {
21437    #[inline]
21438    fn can_cast(kind: SyntaxKind) -> bool {
21439        kind == SyntaxKind::DROP_VIEW
21440    }
21441    #[inline]
21442    fn cast(syntax: SyntaxNode) -> Option<Self> {
21443        if Self::can_cast(syntax.kind()) {
21444            Some(Self { syntax })
21445        } else {
21446            None
21447        }
21448    }
21449    #[inline]
21450    fn syntax(&self) -> &SyntaxNode {
21451        &self.syntax
21452    }
21453}
21454impl AstNode for ElseClause {
21455    #[inline]
21456    fn can_cast(kind: SyntaxKind) -> bool {
21457        kind == SyntaxKind::ELSE_CLAUSE
21458    }
21459    #[inline]
21460    fn cast(syntax: SyntaxNode) -> Option<Self> {
21461        if Self::can_cast(syntax.kind()) {
21462            Some(Self { syntax })
21463        } else {
21464            None
21465        }
21466    }
21467    #[inline]
21468    fn syntax(&self) -> &SyntaxNode {
21469        &self.syntax
21470    }
21471}
21472impl AstNode for EnableAlwaysRule {
21473    #[inline]
21474    fn can_cast(kind: SyntaxKind) -> bool {
21475        kind == SyntaxKind::ENABLE_ALWAYS_RULE
21476    }
21477    #[inline]
21478    fn cast(syntax: SyntaxNode) -> Option<Self> {
21479        if Self::can_cast(syntax.kind()) {
21480            Some(Self { syntax })
21481        } else {
21482            None
21483        }
21484    }
21485    #[inline]
21486    fn syntax(&self) -> &SyntaxNode {
21487        &self.syntax
21488    }
21489}
21490impl AstNode for EnableAlwaysTrigger {
21491    #[inline]
21492    fn can_cast(kind: SyntaxKind) -> bool {
21493        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
21494    }
21495    #[inline]
21496    fn cast(syntax: SyntaxNode) -> Option<Self> {
21497        if Self::can_cast(syntax.kind()) {
21498            Some(Self { syntax })
21499        } else {
21500            None
21501        }
21502    }
21503    #[inline]
21504    fn syntax(&self) -> &SyntaxNode {
21505        &self.syntax
21506    }
21507}
21508impl AstNode for EnableReplicaRule {
21509    #[inline]
21510    fn can_cast(kind: SyntaxKind) -> bool {
21511        kind == SyntaxKind::ENABLE_REPLICA_RULE
21512    }
21513    #[inline]
21514    fn cast(syntax: SyntaxNode) -> Option<Self> {
21515        if Self::can_cast(syntax.kind()) {
21516            Some(Self { syntax })
21517        } else {
21518            None
21519        }
21520    }
21521    #[inline]
21522    fn syntax(&self) -> &SyntaxNode {
21523        &self.syntax
21524    }
21525}
21526impl AstNode for EnableReplicaTrigger {
21527    #[inline]
21528    fn can_cast(kind: SyntaxKind) -> bool {
21529        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
21530    }
21531    #[inline]
21532    fn cast(syntax: SyntaxNode) -> Option<Self> {
21533        if Self::can_cast(syntax.kind()) {
21534            Some(Self { syntax })
21535        } else {
21536            None
21537        }
21538    }
21539    #[inline]
21540    fn syntax(&self) -> &SyntaxNode {
21541        &self.syntax
21542    }
21543}
21544impl AstNode for EnableRls {
21545    #[inline]
21546    fn can_cast(kind: SyntaxKind) -> bool {
21547        kind == SyntaxKind::ENABLE_RLS
21548    }
21549    #[inline]
21550    fn cast(syntax: SyntaxNode) -> Option<Self> {
21551        if Self::can_cast(syntax.kind()) {
21552            Some(Self { syntax })
21553        } else {
21554            None
21555        }
21556    }
21557    #[inline]
21558    fn syntax(&self) -> &SyntaxNode {
21559        &self.syntax
21560    }
21561}
21562impl AstNode for EnableRule {
21563    #[inline]
21564    fn can_cast(kind: SyntaxKind) -> bool {
21565        kind == SyntaxKind::ENABLE_RULE
21566    }
21567    #[inline]
21568    fn cast(syntax: SyntaxNode) -> Option<Self> {
21569        if Self::can_cast(syntax.kind()) {
21570            Some(Self { syntax })
21571        } else {
21572            None
21573        }
21574    }
21575    #[inline]
21576    fn syntax(&self) -> &SyntaxNode {
21577        &self.syntax
21578    }
21579}
21580impl AstNode for EnableTrigger {
21581    #[inline]
21582    fn can_cast(kind: SyntaxKind) -> bool {
21583        kind == SyntaxKind::ENABLE_TRIGGER
21584    }
21585    #[inline]
21586    fn cast(syntax: SyntaxNode) -> Option<Self> {
21587        if Self::can_cast(syntax.kind()) {
21588            Some(Self { syntax })
21589        } else {
21590            None
21591        }
21592    }
21593    #[inline]
21594    fn syntax(&self) -> &SyntaxNode {
21595        &self.syntax
21596    }
21597}
21598impl AstNode for Enforced {
21599    #[inline]
21600    fn can_cast(kind: SyntaxKind) -> bool {
21601        kind == SyntaxKind::ENFORCED
21602    }
21603    #[inline]
21604    fn cast(syntax: SyntaxNode) -> Option<Self> {
21605        if Self::can_cast(syntax.kind()) {
21606            Some(Self { syntax })
21607        } else {
21608            None
21609        }
21610    }
21611    #[inline]
21612    fn syntax(&self) -> &SyntaxNode {
21613        &self.syntax
21614    }
21615}
21616impl AstNode for EventTriggerWhen {
21617    #[inline]
21618    fn can_cast(kind: SyntaxKind) -> bool {
21619        kind == SyntaxKind::EVENT_TRIGGER_WHEN
21620    }
21621    #[inline]
21622    fn cast(syntax: SyntaxNode) -> Option<Self> {
21623        if Self::can_cast(syntax.kind()) {
21624            Some(Self { syntax })
21625        } else {
21626            None
21627        }
21628    }
21629    #[inline]
21630    fn syntax(&self) -> &SyntaxNode {
21631        &self.syntax
21632    }
21633}
21634impl AstNode for EventTriggerWhenClause {
21635    #[inline]
21636    fn can_cast(kind: SyntaxKind) -> bool {
21637        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
21638    }
21639    #[inline]
21640    fn cast(syntax: SyntaxNode) -> Option<Self> {
21641        if Self::can_cast(syntax.kind()) {
21642            Some(Self { syntax })
21643        } else {
21644            None
21645        }
21646    }
21647    #[inline]
21648    fn syntax(&self) -> &SyntaxNode {
21649        &self.syntax
21650    }
21651}
21652impl AstNode for ExceptTables {
21653    #[inline]
21654    fn can_cast(kind: SyntaxKind) -> bool {
21655        kind == SyntaxKind::EXCEPT_TABLES
21656    }
21657    #[inline]
21658    fn cast(syntax: SyntaxNode) -> Option<Self> {
21659        if Self::can_cast(syntax.kind()) {
21660            Some(Self { syntax })
21661        } else {
21662            None
21663        }
21664    }
21665    #[inline]
21666    fn syntax(&self) -> &SyntaxNode {
21667        &self.syntax
21668    }
21669}
21670impl AstNode for ExcludeConstraint {
21671    #[inline]
21672    fn can_cast(kind: SyntaxKind) -> bool {
21673        kind == SyntaxKind::EXCLUDE_CONSTRAINT
21674    }
21675    #[inline]
21676    fn cast(syntax: SyntaxNode) -> Option<Self> {
21677        if Self::can_cast(syntax.kind()) {
21678            Some(Self { syntax })
21679        } else {
21680            None
21681        }
21682    }
21683    #[inline]
21684    fn syntax(&self) -> &SyntaxNode {
21685        &self.syntax
21686    }
21687}
21688impl AstNode for Execute {
21689    #[inline]
21690    fn can_cast(kind: SyntaxKind) -> bool {
21691        kind == SyntaxKind::EXECUTE
21692    }
21693    #[inline]
21694    fn cast(syntax: SyntaxNode) -> Option<Self> {
21695        if Self::can_cast(syntax.kind()) {
21696            Some(Self { syntax })
21697        } else {
21698            None
21699        }
21700    }
21701    #[inline]
21702    fn syntax(&self) -> &SyntaxNode {
21703        &self.syntax
21704    }
21705}
21706impl AstNode for ExistsFn {
21707    #[inline]
21708    fn can_cast(kind: SyntaxKind) -> bool {
21709        kind == SyntaxKind::EXISTS_FN
21710    }
21711    #[inline]
21712    fn cast(syntax: SyntaxNode) -> Option<Self> {
21713        if Self::can_cast(syntax.kind()) {
21714            Some(Self { syntax })
21715        } else {
21716            None
21717        }
21718    }
21719    #[inline]
21720    fn syntax(&self) -> &SyntaxNode {
21721        &self.syntax
21722    }
21723}
21724impl AstNode for Explain {
21725    #[inline]
21726    fn can_cast(kind: SyntaxKind) -> bool {
21727        kind == SyntaxKind::EXPLAIN
21728    }
21729    #[inline]
21730    fn cast(syntax: SyntaxNode) -> Option<Self> {
21731        if Self::can_cast(syntax.kind()) {
21732            Some(Self { syntax })
21733        } else {
21734            None
21735        }
21736    }
21737    #[inline]
21738    fn syntax(&self) -> &SyntaxNode {
21739        &self.syntax
21740    }
21741}
21742impl AstNode for ExprAsName {
21743    #[inline]
21744    fn can_cast(kind: SyntaxKind) -> bool {
21745        kind == SyntaxKind::EXPR_AS_NAME
21746    }
21747    #[inline]
21748    fn cast(syntax: SyntaxNode) -> Option<Self> {
21749        if Self::can_cast(syntax.kind()) {
21750            Some(Self { syntax })
21751        } else {
21752            None
21753        }
21754    }
21755    #[inline]
21756    fn syntax(&self) -> &SyntaxNode {
21757        &self.syntax
21758    }
21759}
21760impl AstNode for ExprType {
21761    #[inline]
21762    fn can_cast(kind: SyntaxKind) -> bool {
21763        kind == SyntaxKind::EXPR_TYPE
21764    }
21765    #[inline]
21766    fn cast(syntax: SyntaxNode) -> Option<Self> {
21767        if Self::can_cast(syntax.kind()) {
21768            Some(Self { syntax })
21769        } else {
21770            None
21771        }
21772    }
21773    #[inline]
21774    fn syntax(&self) -> &SyntaxNode {
21775        &self.syntax
21776    }
21777}
21778impl AstNode for ExtractFn {
21779    #[inline]
21780    fn can_cast(kind: SyntaxKind) -> bool {
21781        kind == SyntaxKind::EXTRACT_FN
21782    }
21783    #[inline]
21784    fn cast(syntax: SyntaxNode) -> Option<Self> {
21785        if Self::can_cast(syntax.kind()) {
21786            Some(Self { syntax })
21787        } else {
21788            None
21789        }
21790    }
21791    #[inline]
21792    fn syntax(&self) -> &SyntaxNode {
21793        &self.syntax
21794    }
21795}
21796impl AstNode for FatArrow {
21797    #[inline]
21798    fn can_cast(kind: SyntaxKind) -> bool {
21799        kind == SyntaxKind::FAT_ARROW
21800    }
21801    #[inline]
21802    fn cast(syntax: SyntaxNode) -> Option<Self> {
21803        if Self::can_cast(syntax.kind()) {
21804            Some(Self { syntax })
21805        } else {
21806            None
21807        }
21808    }
21809    #[inline]
21810    fn syntax(&self) -> &SyntaxNode {
21811        &self.syntax
21812    }
21813}
21814impl AstNode for FdwOption {
21815    #[inline]
21816    fn can_cast(kind: SyntaxKind) -> bool {
21817        kind == SyntaxKind::FDW_OPTION
21818    }
21819    #[inline]
21820    fn cast(syntax: SyntaxNode) -> Option<Self> {
21821        if Self::can_cast(syntax.kind()) {
21822            Some(Self { syntax })
21823        } else {
21824            None
21825        }
21826    }
21827    #[inline]
21828    fn syntax(&self) -> &SyntaxNode {
21829        &self.syntax
21830    }
21831}
21832impl AstNode for FdwOptionList {
21833    #[inline]
21834    fn can_cast(kind: SyntaxKind) -> bool {
21835        kind == SyntaxKind::FDW_OPTION_LIST
21836    }
21837    #[inline]
21838    fn cast(syntax: SyntaxNode) -> Option<Self> {
21839        if Self::can_cast(syntax.kind()) {
21840            Some(Self { syntax })
21841        } else {
21842            None
21843        }
21844    }
21845    #[inline]
21846    fn syntax(&self) -> &SyntaxNode {
21847        &self.syntax
21848    }
21849}
21850impl AstNode for Fetch {
21851    #[inline]
21852    fn can_cast(kind: SyntaxKind) -> bool {
21853        kind == SyntaxKind::FETCH
21854    }
21855    #[inline]
21856    fn cast(syntax: SyntaxNode) -> Option<Self> {
21857        if Self::can_cast(syntax.kind()) {
21858            Some(Self { syntax })
21859        } else {
21860            None
21861        }
21862    }
21863    #[inline]
21864    fn syntax(&self) -> &SyntaxNode {
21865        &self.syntax
21866    }
21867}
21868impl AstNode for FetchClause {
21869    #[inline]
21870    fn can_cast(kind: SyntaxKind) -> bool {
21871        kind == SyntaxKind::FETCH_CLAUSE
21872    }
21873    #[inline]
21874    fn cast(syntax: SyntaxNode) -> Option<Self> {
21875        if Self::can_cast(syntax.kind()) {
21876            Some(Self { syntax })
21877        } else {
21878            None
21879        }
21880    }
21881    #[inline]
21882    fn syntax(&self) -> &SyntaxNode {
21883        &self.syntax
21884    }
21885}
21886impl AstNode for FieldExpr {
21887    #[inline]
21888    fn can_cast(kind: SyntaxKind) -> bool {
21889        kind == SyntaxKind::FIELD_EXPR
21890    }
21891    #[inline]
21892    fn cast(syntax: SyntaxNode) -> Option<Self> {
21893        if Self::can_cast(syntax.kind()) {
21894            Some(Self { syntax })
21895        } else {
21896            None
21897        }
21898    }
21899    #[inline]
21900    fn syntax(&self) -> &SyntaxNode {
21901        &self.syntax
21902    }
21903}
21904impl AstNode for FilterClause {
21905    #[inline]
21906    fn can_cast(kind: SyntaxKind) -> bool {
21907        kind == SyntaxKind::FILTER_CLAUSE
21908    }
21909    #[inline]
21910    fn cast(syntax: SyntaxNode) -> Option<Self> {
21911        if Self::can_cast(syntax.kind()) {
21912            Some(Self { syntax })
21913        } else {
21914            None
21915        }
21916    }
21917    #[inline]
21918    fn syntax(&self) -> &SyntaxNode {
21919        &self.syntax
21920    }
21921}
21922impl AstNode for ForProvider {
21923    #[inline]
21924    fn can_cast(kind: SyntaxKind) -> bool {
21925        kind == SyntaxKind::FOR_PROVIDER
21926    }
21927    #[inline]
21928    fn cast(syntax: SyntaxNode) -> Option<Self> {
21929        if Self::can_cast(syntax.kind()) {
21930            Some(Self { syntax })
21931        } else {
21932            None
21933        }
21934    }
21935    #[inline]
21936    fn syntax(&self) -> &SyntaxNode {
21937        &self.syntax
21938    }
21939}
21940impl AstNode for ForceRls {
21941    #[inline]
21942    fn can_cast(kind: SyntaxKind) -> bool {
21943        kind == SyntaxKind::FORCE_RLS
21944    }
21945    #[inline]
21946    fn cast(syntax: SyntaxNode) -> Option<Self> {
21947        if Self::can_cast(syntax.kind()) {
21948            Some(Self { syntax })
21949        } else {
21950            None
21951        }
21952    }
21953    #[inline]
21954    fn syntax(&self) -> &SyntaxNode {
21955        &self.syntax
21956    }
21957}
21958impl AstNode for ForeignKeyConstraint {
21959    #[inline]
21960    fn can_cast(kind: SyntaxKind) -> bool {
21961        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
21962    }
21963    #[inline]
21964    fn cast(syntax: SyntaxNode) -> Option<Self> {
21965        if Self::can_cast(syntax.kind()) {
21966            Some(Self { syntax })
21967        } else {
21968            None
21969        }
21970    }
21971    #[inline]
21972    fn syntax(&self) -> &SyntaxNode {
21973        &self.syntax
21974    }
21975}
21976impl AstNode for FrameClause {
21977    #[inline]
21978    fn can_cast(kind: SyntaxKind) -> bool {
21979        kind == SyntaxKind::FRAME_CLAUSE
21980    }
21981    #[inline]
21982    fn cast(syntax: SyntaxNode) -> Option<Self> {
21983        if Self::can_cast(syntax.kind()) {
21984            Some(Self { syntax })
21985        } else {
21986            None
21987        }
21988    }
21989    #[inline]
21990    fn syntax(&self) -> &SyntaxNode {
21991        &self.syntax
21992    }
21993}
21994impl AstNode for FromClause {
21995    #[inline]
21996    fn can_cast(kind: SyntaxKind) -> bool {
21997        kind == SyntaxKind::FROM_CLAUSE
21998    }
21999    #[inline]
22000    fn cast(syntax: SyntaxNode) -> Option<Self> {
22001        if Self::can_cast(syntax.kind()) {
22002            Some(Self { syntax })
22003        } else {
22004            None
22005        }
22006    }
22007    #[inline]
22008    fn syntax(&self) -> &SyntaxNode {
22009        &self.syntax
22010    }
22011}
22012impl AstNode for FromItem {
22013    #[inline]
22014    fn can_cast(kind: SyntaxKind) -> bool {
22015        kind == SyntaxKind::FROM_ITEM
22016    }
22017    #[inline]
22018    fn cast(syntax: SyntaxNode) -> Option<Self> {
22019        if Self::can_cast(syntax.kind()) {
22020            Some(Self { syntax })
22021        } else {
22022            None
22023        }
22024    }
22025    #[inline]
22026    fn syntax(&self) -> &SyntaxNode {
22027        &self.syntax
22028    }
22029}
22030impl AstNode for FromTable {
22031    #[inline]
22032    fn can_cast(kind: SyntaxKind) -> bool {
22033        kind == SyntaxKind::FROM_TABLE
22034    }
22035    #[inline]
22036    fn cast(syntax: SyntaxNode) -> Option<Self> {
22037        if Self::can_cast(syntax.kind()) {
22038            Some(Self { syntax })
22039        } else {
22040            None
22041        }
22042    }
22043    #[inline]
22044    fn syntax(&self) -> &SyntaxNode {
22045        &self.syntax
22046    }
22047}
22048impl AstNode for FuncOptionList {
22049    #[inline]
22050    fn can_cast(kind: SyntaxKind) -> bool {
22051        kind == SyntaxKind::FUNC_OPTION_LIST
22052    }
22053    #[inline]
22054    fn cast(syntax: SyntaxNode) -> Option<Self> {
22055        if Self::can_cast(syntax.kind()) {
22056            Some(Self { syntax })
22057        } else {
22058            None
22059        }
22060    }
22061    #[inline]
22062    fn syntax(&self) -> &SyntaxNode {
22063        &self.syntax
22064    }
22065}
22066impl AstNode for FunctionSig {
22067    #[inline]
22068    fn can_cast(kind: SyntaxKind) -> bool {
22069        kind == SyntaxKind::FUNCTION_SIG
22070    }
22071    #[inline]
22072    fn cast(syntax: SyntaxNode) -> Option<Self> {
22073        if Self::can_cast(syntax.kind()) {
22074            Some(Self { syntax })
22075        } else {
22076            None
22077        }
22078    }
22079    #[inline]
22080    fn syntax(&self) -> &SyntaxNode {
22081        &self.syntax
22082    }
22083}
22084impl AstNode for FunctionSigList {
22085    #[inline]
22086    fn can_cast(kind: SyntaxKind) -> bool {
22087        kind == SyntaxKind::FUNCTION_SIG_LIST
22088    }
22089    #[inline]
22090    fn cast(syntax: SyntaxNode) -> Option<Self> {
22091        if Self::can_cast(syntax.kind()) {
22092            Some(Self { syntax })
22093        } else {
22094            None
22095        }
22096    }
22097    #[inline]
22098    fn syntax(&self) -> &SyntaxNode {
22099        &self.syntax
22100    }
22101}
22102impl AstNode for GeneratedConstraint {
22103    #[inline]
22104    fn can_cast(kind: SyntaxKind) -> bool {
22105        kind == SyntaxKind::GENERATED_CONSTRAINT
22106    }
22107    #[inline]
22108    fn cast(syntax: SyntaxNode) -> Option<Self> {
22109        if Self::can_cast(syntax.kind()) {
22110            Some(Self { syntax })
22111        } else {
22112            None
22113        }
22114    }
22115    #[inline]
22116    fn syntax(&self) -> &SyntaxNode {
22117        &self.syntax
22118    }
22119}
22120impl AstNode for Grant {
22121    #[inline]
22122    fn can_cast(kind: SyntaxKind) -> bool {
22123        kind == SyntaxKind::GRANT
22124    }
22125    #[inline]
22126    fn cast(syntax: SyntaxNode) -> Option<Self> {
22127        if Self::can_cast(syntax.kind()) {
22128            Some(Self { syntax })
22129        } else {
22130            None
22131        }
22132    }
22133    #[inline]
22134    fn syntax(&self) -> &SyntaxNode {
22135        &self.syntax
22136    }
22137}
22138impl AstNode for GrantDefaultPrivileges {
22139    #[inline]
22140    fn can_cast(kind: SyntaxKind) -> bool {
22141        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
22142    }
22143    #[inline]
22144    fn cast(syntax: SyntaxNode) -> Option<Self> {
22145        if Self::can_cast(syntax.kind()) {
22146            Some(Self { syntax })
22147        } else {
22148            None
22149        }
22150    }
22151    #[inline]
22152    fn syntax(&self) -> &SyntaxNode {
22153        &self.syntax
22154    }
22155}
22156impl AstNode for GroupByClause {
22157    #[inline]
22158    fn can_cast(kind: SyntaxKind) -> bool {
22159        kind == SyntaxKind::GROUP_BY_CLAUSE
22160    }
22161    #[inline]
22162    fn cast(syntax: SyntaxNode) -> Option<Self> {
22163        if Self::can_cast(syntax.kind()) {
22164            Some(Self { syntax })
22165        } else {
22166            None
22167        }
22168    }
22169    #[inline]
22170    fn syntax(&self) -> &SyntaxNode {
22171        &self.syntax
22172    }
22173}
22174impl AstNode for GroupByList {
22175    #[inline]
22176    fn can_cast(kind: SyntaxKind) -> bool {
22177        kind == SyntaxKind::GROUP_BY_LIST
22178    }
22179    #[inline]
22180    fn cast(syntax: SyntaxNode) -> Option<Self> {
22181        if Self::can_cast(syntax.kind()) {
22182            Some(Self { syntax })
22183        } else {
22184            None
22185        }
22186    }
22187    #[inline]
22188    fn syntax(&self) -> &SyntaxNode {
22189        &self.syntax
22190    }
22191}
22192impl AstNode for GroupingCube {
22193    #[inline]
22194    fn can_cast(kind: SyntaxKind) -> bool {
22195        kind == SyntaxKind::GROUPING_CUBE
22196    }
22197    #[inline]
22198    fn cast(syntax: SyntaxNode) -> Option<Self> {
22199        if Self::can_cast(syntax.kind()) {
22200            Some(Self { syntax })
22201        } else {
22202            None
22203        }
22204    }
22205    #[inline]
22206    fn syntax(&self) -> &SyntaxNode {
22207        &self.syntax
22208    }
22209}
22210impl AstNode for GroupingExpr {
22211    #[inline]
22212    fn can_cast(kind: SyntaxKind) -> bool {
22213        kind == SyntaxKind::GROUPING_EXPR
22214    }
22215    #[inline]
22216    fn cast(syntax: SyntaxNode) -> Option<Self> {
22217        if Self::can_cast(syntax.kind()) {
22218            Some(Self { syntax })
22219        } else {
22220            None
22221        }
22222    }
22223    #[inline]
22224    fn syntax(&self) -> &SyntaxNode {
22225        &self.syntax
22226    }
22227}
22228impl AstNode for GroupingRollup {
22229    #[inline]
22230    fn can_cast(kind: SyntaxKind) -> bool {
22231        kind == SyntaxKind::GROUPING_ROLLUP
22232    }
22233    #[inline]
22234    fn cast(syntax: SyntaxNode) -> Option<Self> {
22235        if Self::can_cast(syntax.kind()) {
22236            Some(Self { syntax })
22237        } else {
22238            None
22239        }
22240    }
22241    #[inline]
22242    fn syntax(&self) -> &SyntaxNode {
22243        &self.syntax
22244    }
22245}
22246impl AstNode for GroupingSets {
22247    #[inline]
22248    fn can_cast(kind: SyntaxKind) -> bool {
22249        kind == SyntaxKind::GROUPING_SETS
22250    }
22251    #[inline]
22252    fn cast(syntax: SyntaxNode) -> Option<Self> {
22253        if Self::can_cast(syntax.kind()) {
22254            Some(Self { syntax })
22255        } else {
22256            None
22257        }
22258    }
22259    #[inline]
22260    fn syntax(&self) -> &SyntaxNode {
22261        &self.syntax
22262    }
22263}
22264impl AstNode for Gteq {
22265    #[inline]
22266    fn can_cast(kind: SyntaxKind) -> bool {
22267        kind == SyntaxKind::GTEQ
22268    }
22269    #[inline]
22270    fn cast(syntax: SyntaxNode) -> Option<Self> {
22271        if Self::can_cast(syntax.kind()) {
22272            Some(Self { syntax })
22273        } else {
22274            None
22275        }
22276    }
22277    #[inline]
22278    fn syntax(&self) -> &SyntaxNode {
22279        &self.syntax
22280    }
22281}
22282impl AstNode for HandlerClause {
22283    #[inline]
22284    fn can_cast(kind: SyntaxKind) -> bool {
22285        kind == SyntaxKind::HANDLER_CLAUSE
22286    }
22287    #[inline]
22288    fn cast(syntax: SyntaxNode) -> Option<Self> {
22289        if Self::can_cast(syntax.kind()) {
22290            Some(Self { syntax })
22291        } else {
22292            None
22293        }
22294    }
22295    #[inline]
22296    fn syntax(&self) -> &SyntaxNode {
22297        &self.syntax
22298    }
22299}
22300impl AstNode for HavingClause {
22301    #[inline]
22302    fn can_cast(kind: SyntaxKind) -> bool {
22303        kind == SyntaxKind::HAVING_CLAUSE
22304    }
22305    #[inline]
22306    fn cast(syntax: SyntaxNode) -> Option<Self> {
22307        if Self::can_cast(syntax.kind()) {
22308            Some(Self { syntax })
22309        } else {
22310            None
22311        }
22312    }
22313    #[inline]
22314    fn syntax(&self) -> &SyntaxNode {
22315        &self.syntax
22316    }
22317}
22318impl AstNode for IfExists {
22319    #[inline]
22320    fn can_cast(kind: SyntaxKind) -> bool {
22321        kind == SyntaxKind::IF_EXISTS
22322    }
22323    #[inline]
22324    fn cast(syntax: SyntaxNode) -> Option<Self> {
22325        if Self::can_cast(syntax.kind()) {
22326            Some(Self { syntax })
22327        } else {
22328            None
22329        }
22330    }
22331    #[inline]
22332    fn syntax(&self) -> &SyntaxNode {
22333        &self.syntax
22334    }
22335}
22336impl AstNode for IfNotExists {
22337    #[inline]
22338    fn can_cast(kind: SyntaxKind) -> bool {
22339        kind == SyntaxKind::IF_NOT_EXISTS
22340    }
22341    #[inline]
22342    fn cast(syntax: SyntaxNode) -> Option<Self> {
22343        if Self::can_cast(syntax.kind()) {
22344            Some(Self { syntax })
22345        } else {
22346            None
22347        }
22348    }
22349    #[inline]
22350    fn syntax(&self) -> &SyntaxNode {
22351        &self.syntax
22352    }
22353}
22354impl AstNode for ImportForeignSchema {
22355    #[inline]
22356    fn can_cast(kind: SyntaxKind) -> bool {
22357        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
22358    }
22359    #[inline]
22360    fn cast(syntax: SyntaxNode) -> Option<Self> {
22361        if Self::can_cast(syntax.kind()) {
22362            Some(Self { syntax })
22363        } else {
22364            None
22365        }
22366    }
22367    #[inline]
22368    fn syntax(&self) -> &SyntaxNode {
22369        &self.syntax
22370    }
22371}
22372impl AstNode for IndexExpr {
22373    #[inline]
22374    fn can_cast(kind: SyntaxKind) -> bool {
22375        kind == SyntaxKind::INDEX_EXPR
22376    }
22377    #[inline]
22378    fn cast(syntax: SyntaxNode) -> Option<Self> {
22379        if Self::can_cast(syntax.kind()) {
22380            Some(Self { syntax })
22381        } else {
22382            None
22383        }
22384    }
22385    #[inline]
22386    fn syntax(&self) -> &SyntaxNode {
22387        &self.syntax
22388    }
22389}
22390impl AstNode for Inherit {
22391    #[inline]
22392    fn can_cast(kind: SyntaxKind) -> bool {
22393        kind == SyntaxKind::INHERIT
22394    }
22395    #[inline]
22396    fn cast(syntax: SyntaxNode) -> Option<Self> {
22397        if Self::can_cast(syntax.kind()) {
22398            Some(Self { syntax })
22399        } else {
22400            None
22401        }
22402    }
22403    #[inline]
22404    fn syntax(&self) -> &SyntaxNode {
22405        &self.syntax
22406    }
22407}
22408impl AstNode for InheritTable {
22409    #[inline]
22410    fn can_cast(kind: SyntaxKind) -> bool {
22411        kind == SyntaxKind::INHERIT_TABLE
22412    }
22413    #[inline]
22414    fn cast(syntax: SyntaxNode) -> Option<Self> {
22415        if Self::can_cast(syntax.kind()) {
22416            Some(Self { syntax })
22417        } else {
22418            None
22419        }
22420    }
22421    #[inline]
22422    fn syntax(&self) -> &SyntaxNode {
22423        &self.syntax
22424    }
22425}
22426impl AstNode for Inherits {
22427    #[inline]
22428    fn can_cast(kind: SyntaxKind) -> bool {
22429        kind == SyntaxKind::INHERITS
22430    }
22431    #[inline]
22432    fn cast(syntax: SyntaxNode) -> Option<Self> {
22433        if Self::can_cast(syntax.kind()) {
22434            Some(Self { syntax })
22435        } else {
22436            None
22437        }
22438    }
22439    #[inline]
22440    fn syntax(&self) -> &SyntaxNode {
22441        &self.syntax
22442    }
22443}
22444impl AstNode for InitiallyDeferredConstraintOption {
22445    #[inline]
22446    fn can_cast(kind: SyntaxKind) -> bool {
22447        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
22448    }
22449    #[inline]
22450    fn cast(syntax: SyntaxNode) -> Option<Self> {
22451        if Self::can_cast(syntax.kind()) {
22452            Some(Self { syntax })
22453        } else {
22454            None
22455        }
22456    }
22457    #[inline]
22458    fn syntax(&self) -> &SyntaxNode {
22459        &self.syntax
22460    }
22461}
22462impl AstNode for InitiallyImmediateConstraintOption {
22463    #[inline]
22464    fn can_cast(kind: SyntaxKind) -> bool {
22465        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
22466    }
22467    #[inline]
22468    fn cast(syntax: SyntaxNode) -> Option<Self> {
22469        if Self::can_cast(syntax.kind()) {
22470            Some(Self { syntax })
22471        } else {
22472            None
22473        }
22474    }
22475    #[inline]
22476    fn syntax(&self) -> &SyntaxNode {
22477        &self.syntax
22478    }
22479}
22480impl AstNode for Insert {
22481    #[inline]
22482    fn can_cast(kind: SyntaxKind) -> bool {
22483        kind == SyntaxKind::INSERT
22484    }
22485    #[inline]
22486    fn cast(syntax: SyntaxNode) -> Option<Self> {
22487        if Self::can_cast(syntax.kind()) {
22488            Some(Self { syntax })
22489        } else {
22490            None
22491        }
22492    }
22493    #[inline]
22494    fn syntax(&self) -> &SyntaxNode {
22495        &self.syntax
22496    }
22497}
22498impl AstNode for IntervalType {
22499    #[inline]
22500    fn can_cast(kind: SyntaxKind) -> bool {
22501        kind == SyntaxKind::INTERVAL_TYPE
22502    }
22503    #[inline]
22504    fn cast(syntax: SyntaxNode) -> Option<Self> {
22505        if Self::can_cast(syntax.kind()) {
22506            Some(Self { syntax })
22507        } else {
22508            None
22509        }
22510    }
22511    #[inline]
22512    fn syntax(&self) -> &SyntaxNode {
22513        &self.syntax
22514    }
22515}
22516impl AstNode for IntoClause {
22517    #[inline]
22518    fn can_cast(kind: SyntaxKind) -> bool {
22519        kind == SyntaxKind::INTO_CLAUSE
22520    }
22521    #[inline]
22522    fn cast(syntax: SyntaxNode) -> Option<Self> {
22523        if Self::can_cast(syntax.kind()) {
22524            Some(Self { syntax })
22525        } else {
22526            None
22527        }
22528    }
22529    #[inline]
22530    fn syntax(&self) -> &SyntaxNode {
22531        &self.syntax
22532    }
22533}
22534impl AstNode for IntoSchema {
22535    #[inline]
22536    fn can_cast(kind: SyntaxKind) -> bool {
22537        kind == SyntaxKind::INTO_SCHEMA
22538    }
22539    #[inline]
22540    fn cast(syntax: SyntaxNode) -> Option<Self> {
22541        if Self::can_cast(syntax.kind()) {
22542            Some(Self { syntax })
22543        } else {
22544            None
22545        }
22546    }
22547    #[inline]
22548    fn syntax(&self) -> &SyntaxNode {
22549        &self.syntax
22550    }
22551}
22552impl AstNode for IsDistinctFrom {
22553    #[inline]
22554    fn can_cast(kind: SyntaxKind) -> bool {
22555        kind == SyntaxKind::IS_DISTINCT_FROM
22556    }
22557    #[inline]
22558    fn cast(syntax: SyntaxNode) -> Option<Self> {
22559        if Self::can_cast(syntax.kind()) {
22560            Some(Self { syntax })
22561        } else {
22562            None
22563        }
22564    }
22565    #[inline]
22566    fn syntax(&self) -> &SyntaxNode {
22567        &self.syntax
22568    }
22569}
22570impl AstNode for IsJson {
22571    #[inline]
22572    fn can_cast(kind: SyntaxKind) -> bool {
22573        kind == SyntaxKind::IS_JSON
22574    }
22575    #[inline]
22576    fn cast(syntax: SyntaxNode) -> Option<Self> {
22577        if Self::can_cast(syntax.kind()) {
22578            Some(Self { syntax })
22579        } else {
22580            None
22581        }
22582    }
22583    #[inline]
22584    fn syntax(&self) -> &SyntaxNode {
22585        &self.syntax
22586    }
22587}
22588impl AstNode for IsJsonArray {
22589    #[inline]
22590    fn can_cast(kind: SyntaxKind) -> bool {
22591        kind == SyntaxKind::IS_JSON_ARRAY
22592    }
22593    #[inline]
22594    fn cast(syntax: SyntaxNode) -> Option<Self> {
22595        if Self::can_cast(syntax.kind()) {
22596            Some(Self { syntax })
22597        } else {
22598            None
22599        }
22600    }
22601    #[inline]
22602    fn syntax(&self) -> &SyntaxNode {
22603        &self.syntax
22604    }
22605}
22606impl AstNode for IsJsonObject {
22607    #[inline]
22608    fn can_cast(kind: SyntaxKind) -> bool {
22609        kind == SyntaxKind::IS_JSON_OBJECT
22610    }
22611    #[inline]
22612    fn cast(syntax: SyntaxNode) -> Option<Self> {
22613        if Self::can_cast(syntax.kind()) {
22614            Some(Self { syntax })
22615        } else {
22616            None
22617        }
22618    }
22619    #[inline]
22620    fn syntax(&self) -> &SyntaxNode {
22621        &self.syntax
22622    }
22623}
22624impl AstNode for IsJsonScalar {
22625    #[inline]
22626    fn can_cast(kind: SyntaxKind) -> bool {
22627        kind == SyntaxKind::IS_JSON_SCALAR
22628    }
22629    #[inline]
22630    fn cast(syntax: SyntaxNode) -> Option<Self> {
22631        if Self::can_cast(syntax.kind()) {
22632            Some(Self { syntax })
22633        } else {
22634            None
22635        }
22636    }
22637    #[inline]
22638    fn syntax(&self) -> &SyntaxNode {
22639        &self.syntax
22640    }
22641}
22642impl AstNode for IsJsonValue {
22643    #[inline]
22644    fn can_cast(kind: SyntaxKind) -> bool {
22645        kind == SyntaxKind::IS_JSON_VALUE
22646    }
22647    #[inline]
22648    fn cast(syntax: SyntaxNode) -> Option<Self> {
22649        if Self::can_cast(syntax.kind()) {
22650            Some(Self { syntax })
22651        } else {
22652            None
22653        }
22654    }
22655    #[inline]
22656    fn syntax(&self) -> &SyntaxNode {
22657        &self.syntax
22658    }
22659}
22660impl AstNode for IsNormalized {
22661    #[inline]
22662    fn can_cast(kind: SyntaxKind) -> bool {
22663        kind == SyntaxKind::IS_NORMALIZED
22664    }
22665    #[inline]
22666    fn cast(syntax: SyntaxNode) -> Option<Self> {
22667        if Self::can_cast(syntax.kind()) {
22668            Some(Self { syntax })
22669        } else {
22670            None
22671        }
22672    }
22673    #[inline]
22674    fn syntax(&self) -> &SyntaxNode {
22675        &self.syntax
22676    }
22677}
22678impl AstNode for IsNot {
22679    #[inline]
22680    fn can_cast(kind: SyntaxKind) -> bool {
22681        kind == SyntaxKind::IS_NOT
22682    }
22683    #[inline]
22684    fn cast(syntax: SyntaxNode) -> Option<Self> {
22685        if Self::can_cast(syntax.kind()) {
22686            Some(Self { syntax })
22687        } else {
22688            None
22689        }
22690    }
22691    #[inline]
22692    fn syntax(&self) -> &SyntaxNode {
22693        &self.syntax
22694    }
22695}
22696impl AstNode for IsNotDistinctFrom {
22697    #[inline]
22698    fn can_cast(kind: SyntaxKind) -> bool {
22699        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
22700    }
22701    #[inline]
22702    fn cast(syntax: SyntaxNode) -> Option<Self> {
22703        if Self::can_cast(syntax.kind()) {
22704            Some(Self { syntax })
22705        } else {
22706            None
22707        }
22708    }
22709    #[inline]
22710    fn syntax(&self) -> &SyntaxNode {
22711        &self.syntax
22712    }
22713}
22714impl AstNode for IsNotJson {
22715    #[inline]
22716    fn can_cast(kind: SyntaxKind) -> bool {
22717        kind == SyntaxKind::IS_NOT_JSON
22718    }
22719    #[inline]
22720    fn cast(syntax: SyntaxNode) -> Option<Self> {
22721        if Self::can_cast(syntax.kind()) {
22722            Some(Self { syntax })
22723        } else {
22724            None
22725        }
22726    }
22727    #[inline]
22728    fn syntax(&self) -> &SyntaxNode {
22729        &self.syntax
22730    }
22731}
22732impl AstNode for IsNotJsonArray {
22733    #[inline]
22734    fn can_cast(kind: SyntaxKind) -> bool {
22735        kind == SyntaxKind::IS_NOT_JSON_ARRAY
22736    }
22737    #[inline]
22738    fn cast(syntax: SyntaxNode) -> Option<Self> {
22739        if Self::can_cast(syntax.kind()) {
22740            Some(Self { syntax })
22741        } else {
22742            None
22743        }
22744    }
22745    #[inline]
22746    fn syntax(&self) -> &SyntaxNode {
22747        &self.syntax
22748    }
22749}
22750impl AstNode for IsNotJsonObject {
22751    #[inline]
22752    fn can_cast(kind: SyntaxKind) -> bool {
22753        kind == SyntaxKind::IS_NOT_JSON_OBJECT
22754    }
22755    #[inline]
22756    fn cast(syntax: SyntaxNode) -> Option<Self> {
22757        if Self::can_cast(syntax.kind()) {
22758            Some(Self { syntax })
22759        } else {
22760            None
22761        }
22762    }
22763    #[inline]
22764    fn syntax(&self) -> &SyntaxNode {
22765        &self.syntax
22766    }
22767}
22768impl AstNode for IsNotJsonScalar {
22769    #[inline]
22770    fn can_cast(kind: SyntaxKind) -> bool {
22771        kind == SyntaxKind::IS_NOT_JSON_SCALAR
22772    }
22773    #[inline]
22774    fn cast(syntax: SyntaxNode) -> Option<Self> {
22775        if Self::can_cast(syntax.kind()) {
22776            Some(Self { syntax })
22777        } else {
22778            None
22779        }
22780    }
22781    #[inline]
22782    fn syntax(&self) -> &SyntaxNode {
22783        &self.syntax
22784    }
22785}
22786impl AstNode for IsNotJsonValue {
22787    #[inline]
22788    fn can_cast(kind: SyntaxKind) -> bool {
22789        kind == SyntaxKind::IS_NOT_JSON_VALUE
22790    }
22791    #[inline]
22792    fn cast(syntax: SyntaxNode) -> Option<Self> {
22793        if Self::can_cast(syntax.kind()) {
22794            Some(Self { syntax })
22795        } else {
22796            None
22797        }
22798    }
22799    #[inline]
22800    fn syntax(&self) -> &SyntaxNode {
22801        &self.syntax
22802    }
22803}
22804impl AstNode for IsNotNormalized {
22805    #[inline]
22806    fn can_cast(kind: SyntaxKind) -> bool {
22807        kind == SyntaxKind::IS_NOT_NORMALIZED
22808    }
22809    #[inline]
22810    fn cast(syntax: SyntaxNode) -> Option<Self> {
22811        if Self::can_cast(syntax.kind()) {
22812            Some(Self { syntax })
22813        } else {
22814            None
22815        }
22816    }
22817    #[inline]
22818    fn syntax(&self) -> &SyntaxNode {
22819        &self.syntax
22820    }
22821}
22822impl AstNode for Join {
22823    #[inline]
22824    fn can_cast(kind: SyntaxKind) -> bool {
22825        kind == SyntaxKind::JOIN
22826    }
22827    #[inline]
22828    fn cast(syntax: SyntaxNode) -> Option<Self> {
22829        if Self::can_cast(syntax.kind()) {
22830            Some(Self { syntax })
22831        } else {
22832            None
22833        }
22834    }
22835    #[inline]
22836    fn syntax(&self) -> &SyntaxNode {
22837        &self.syntax
22838    }
22839}
22840impl AstNode for JoinCross {
22841    #[inline]
22842    fn can_cast(kind: SyntaxKind) -> bool {
22843        kind == SyntaxKind::JOIN_CROSS
22844    }
22845    #[inline]
22846    fn cast(syntax: SyntaxNode) -> Option<Self> {
22847        if Self::can_cast(syntax.kind()) {
22848            Some(Self { syntax })
22849        } else {
22850            None
22851        }
22852    }
22853    #[inline]
22854    fn syntax(&self) -> &SyntaxNode {
22855        &self.syntax
22856    }
22857}
22858impl AstNode for JoinExpr {
22859    #[inline]
22860    fn can_cast(kind: SyntaxKind) -> bool {
22861        kind == SyntaxKind::JOIN_EXPR
22862    }
22863    #[inline]
22864    fn cast(syntax: SyntaxNode) -> Option<Self> {
22865        if Self::can_cast(syntax.kind()) {
22866            Some(Self { syntax })
22867        } else {
22868            None
22869        }
22870    }
22871    #[inline]
22872    fn syntax(&self) -> &SyntaxNode {
22873        &self.syntax
22874    }
22875}
22876impl AstNode for JoinFull {
22877    #[inline]
22878    fn can_cast(kind: SyntaxKind) -> bool {
22879        kind == SyntaxKind::JOIN_FULL
22880    }
22881    #[inline]
22882    fn cast(syntax: SyntaxNode) -> Option<Self> {
22883        if Self::can_cast(syntax.kind()) {
22884            Some(Self { syntax })
22885        } else {
22886            None
22887        }
22888    }
22889    #[inline]
22890    fn syntax(&self) -> &SyntaxNode {
22891        &self.syntax
22892    }
22893}
22894impl AstNode for JoinInner {
22895    #[inline]
22896    fn can_cast(kind: SyntaxKind) -> bool {
22897        kind == SyntaxKind::JOIN_INNER
22898    }
22899    #[inline]
22900    fn cast(syntax: SyntaxNode) -> Option<Self> {
22901        if Self::can_cast(syntax.kind()) {
22902            Some(Self { syntax })
22903        } else {
22904            None
22905        }
22906    }
22907    #[inline]
22908    fn syntax(&self) -> &SyntaxNode {
22909        &self.syntax
22910    }
22911}
22912impl AstNode for JoinLeft {
22913    #[inline]
22914    fn can_cast(kind: SyntaxKind) -> bool {
22915        kind == SyntaxKind::JOIN_LEFT
22916    }
22917    #[inline]
22918    fn cast(syntax: SyntaxNode) -> Option<Self> {
22919        if Self::can_cast(syntax.kind()) {
22920            Some(Self { syntax })
22921        } else {
22922            None
22923        }
22924    }
22925    #[inline]
22926    fn syntax(&self) -> &SyntaxNode {
22927        &self.syntax
22928    }
22929}
22930impl AstNode for JoinRight {
22931    #[inline]
22932    fn can_cast(kind: SyntaxKind) -> bool {
22933        kind == SyntaxKind::JOIN_RIGHT
22934    }
22935    #[inline]
22936    fn cast(syntax: SyntaxNode) -> Option<Self> {
22937        if Self::can_cast(syntax.kind()) {
22938            Some(Self { syntax })
22939        } else {
22940            None
22941        }
22942    }
22943    #[inline]
22944    fn syntax(&self) -> &SyntaxNode {
22945        &self.syntax
22946    }
22947}
22948impl AstNode for JoinUsingClause {
22949    #[inline]
22950    fn can_cast(kind: SyntaxKind) -> bool {
22951        kind == SyntaxKind::JOIN_USING_CLAUSE
22952    }
22953    #[inline]
22954    fn cast(syntax: SyntaxNode) -> Option<Self> {
22955        if Self::can_cast(syntax.kind()) {
22956            Some(Self { syntax })
22957        } else {
22958            None
22959        }
22960    }
22961    #[inline]
22962    fn syntax(&self) -> &SyntaxNode {
22963        &self.syntax
22964    }
22965}
22966impl AstNode for JsonArrayAggFn {
22967    #[inline]
22968    fn can_cast(kind: SyntaxKind) -> bool {
22969        kind == SyntaxKind::JSON_ARRAY_AGG_FN
22970    }
22971    #[inline]
22972    fn cast(syntax: SyntaxNode) -> Option<Self> {
22973        if Self::can_cast(syntax.kind()) {
22974            Some(Self { syntax })
22975        } else {
22976            None
22977        }
22978    }
22979    #[inline]
22980    fn syntax(&self) -> &SyntaxNode {
22981        &self.syntax
22982    }
22983}
22984impl AstNode for JsonArrayFn {
22985    #[inline]
22986    fn can_cast(kind: SyntaxKind) -> bool {
22987        kind == SyntaxKind::JSON_ARRAY_FN
22988    }
22989    #[inline]
22990    fn cast(syntax: SyntaxNode) -> Option<Self> {
22991        if Self::can_cast(syntax.kind()) {
22992            Some(Self { syntax })
22993        } else {
22994            None
22995        }
22996    }
22997    #[inline]
22998    fn syntax(&self) -> &SyntaxNode {
22999        &self.syntax
23000    }
23001}
23002impl AstNode for JsonBehaviorClause {
23003    #[inline]
23004    fn can_cast(kind: SyntaxKind) -> bool {
23005        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
23006    }
23007    #[inline]
23008    fn cast(syntax: SyntaxNode) -> Option<Self> {
23009        if Self::can_cast(syntax.kind()) {
23010            Some(Self { syntax })
23011        } else {
23012            None
23013        }
23014    }
23015    #[inline]
23016    fn syntax(&self) -> &SyntaxNode {
23017        &self.syntax
23018    }
23019}
23020impl AstNode for JsonBehaviorDefault {
23021    #[inline]
23022    fn can_cast(kind: SyntaxKind) -> bool {
23023        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
23024    }
23025    #[inline]
23026    fn cast(syntax: SyntaxNode) -> Option<Self> {
23027        if Self::can_cast(syntax.kind()) {
23028            Some(Self { syntax })
23029        } else {
23030            None
23031        }
23032    }
23033    #[inline]
23034    fn syntax(&self) -> &SyntaxNode {
23035        &self.syntax
23036    }
23037}
23038impl AstNode for JsonBehaviorEmptyArray {
23039    #[inline]
23040    fn can_cast(kind: SyntaxKind) -> bool {
23041        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
23042    }
23043    #[inline]
23044    fn cast(syntax: SyntaxNode) -> Option<Self> {
23045        if Self::can_cast(syntax.kind()) {
23046            Some(Self { syntax })
23047        } else {
23048            None
23049        }
23050    }
23051    #[inline]
23052    fn syntax(&self) -> &SyntaxNode {
23053        &self.syntax
23054    }
23055}
23056impl AstNode for JsonBehaviorEmptyObject {
23057    #[inline]
23058    fn can_cast(kind: SyntaxKind) -> bool {
23059        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
23060    }
23061    #[inline]
23062    fn cast(syntax: SyntaxNode) -> Option<Self> {
23063        if Self::can_cast(syntax.kind()) {
23064            Some(Self { syntax })
23065        } else {
23066            None
23067        }
23068    }
23069    #[inline]
23070    fn syntax(&self) -> &SyntaxNode {
23071        &self.syntax
23072    }
23073}
23074impl AstNode for JsonBehaviorError {
23075    #[inline]
23076    fn can_cast(kind: SyntaxKind) -> bool {
23077        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
23078    }
23079    #[inline]
23080    fn cast(syntax: SyntaxNode) -> Option<Self> {
23081        if Self::can_cast(syntax.kind()) {
23082            Some(Self { syntax })
23083        } else {
23084            None
23085        }
23086    }
23087    #[inline]
23088    fn syntax(&self) -> &SyntaxNode {
23089        &self.syntax
23090    }
23091}
23092impl AstNode for JsonBehaviorFalse {
23093    #[inline]
23094    fn can_cast(kind: SyntaxKind) -> bool {
23095        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
23096    }
23097    #[inline]
23098    fn cast(syntax: SyntaxNode) -> Option<Self> {
23099        if Self::can_cast(syntax.kind()) {
23100            Some(Self { syntax })
23101        } else {
23102            None
23103        }
23104    }
23105    #[inline]
23106    fn syntax(&self) -> &SyntaxNode {
23107        &self.syntax
23108    }
23109}
23110impl AstNode for JsonBehaviorNull {
23111    #[inline]
23112    fn can_cast(kind: SyntaxKind) -> bool {
23113        kind == SyntaxKind::JSON_BEHAVIOR_NULL
23114    }
23115    #[inline]
23116    fn cast(syntax: SyntaxNode) -> Option<Self> {
23117        if Self::can_cast(syntax.kind()) {
23118            Some(Self { syntax })
23119        } else {
23120            None
23121        }
23122    }
23123    #[inline]
23124    fn syntax(&self) -> &SyntaxNode {
23125        &self.syntax
23126    }
23127}
23128impl AstNode for JsonBehaviorTrue {
23129    #[inline]
23130    fn can_cast(kind: SyntaxKind) -> bool {
23131        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
23132    }
23133    #[inline]
23134    fn cast(syntax: SyntaxNode) -> Option<Self> {
23135        if Self::can_cast(syntax.kind()) {
23136            Some(Self { syntax })
23137        } else {
23138            None
23139        }
23140    }
23141    #[inline]
23142    fn syntax(&self) -> &SyntaxNode {
23143        &self.syntax
23144    }
23145}
23146impl AstNode for JsonBehaviorUnknown {
23147    #[inline]
23148    fn can_cast(kind: SyntaxKind) -> bool {
23149        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
23150    }
23151    #[inline]
23152    fn cast(syntax: SyntaxNode) -> Option<Self> {
23153        if Self::can_cast(syntax.kind()) {
23154            Some(Self { syntax })
23155        } else {
23156            None
23157        }
23158    }
23159    #[inline]
23160    fn syntax(&self) -> &SyntaxNode {
23161        &self.syntax
23162    }
23163}
23164impl AstNode for JsonEncodingClause {
23165    #[inline]
23166    fn can_cast(kind: SyntaxKind) -> bool {
23167        kind == SyntaxKind::JSON_ENCODING_CLAUSE
23168    }
23169    #[inline]
23170    fn cast(syntax: SyntaxNode) -> Option<Self> {
23171        if Self::can_cast(syntax.kind()) {
23172            Some(Self { syntax })
23173        } else {
23174            None
23175        }
23176    }
23177    #[inline]
23178    fn syntax(&self) -> &SyntaxNode {
23179        &self.syntax
23180    }
23181}
23182impl AstNode for JsonExistsFn {
23183    #[inline]
23184    fn can_cast(kind: SyntaxKind) -> bool {
23185        kind == SyntaxKind::JSON_EXISTS_FN
23186    }
23187    #[inline]
23188    fn cast(syntax: SyntaxNode) -> Option<Self> {
23189        if Self::can_cast(syntax.kind()) {
23190            Some(Self { syntax })
23191        } else {
23192            None
23193        }
23194    }
23195    #[inline]
23196    fn syntax(&self) -> &SyntaxNode {
23197        &self.syntax
23198    }
23199}
23200impl AstNode for JsonExprFormat {
23201    #[inline]
23202    fn can_cast(kind: SyntaxKind) -> bool {
23203        kind == SyntaxKind::JSON_EXPR_FORMAT
23204    }
23205    #[inline]
23206    fn cast(syntax: SyntaxNode) -> Option<Self> {
23207        if Self::can_cast(syntax.kind()) {
23208            Some(Self { syntax })
23209        } else {
23210            None
23211        }
23212    }
23213    #[inline]
23214    fn syntax(&self) -> &SyntaxNode {
23215        &self.syntax
23216    }
23217}
23218impl AstNode for JsonFn {
23219    #[inline]
23220    fn can_cast(kind: SyntaxKind) -> bool {
23221        kind == SyntaxKind::JSON_FN
23222    }
23223    #[inline]
23224    fn cast(syntax: SyntaxNode) -> Option<Self> {
23225        if Self::can_cast(syntax.kind()) {
23226            Some(Self { syntax })
23227        } else {
23228            None
23229        }
23230    }
23231    #[inline]
23232    fn syntax(&self) -> &SyntaxNode {
23233        &self.syntax
23234    }
23235}
23236impl AstNode for JsonFormatClause {
23237    #[inline]
23238    fn can_cast(kind: SyntaxKind) -> bool {
23239        kind == SyntaxKind::JSON_FORMAT_CLAUSE
23240    }
23241    #[inline]
23242    fn cast(syntax: SyntaxNode) -> Option<Self> {
23243        if Self::can_cast(syntax.kind()) {
23244            Some(Self { syntax })
23245        } else {
23246            None
23247        }
23248    }
23249    #[inline]
23250    fn syntax(&self) -> &SyntaxNode {
23251        &self.syntax
23252    }
23253}
23254impl AstNode for JsonKeyValue {
23255    #[inline]
23256    fn can_cast(kind: SyntaxKind) -> bool {
23257        kind == SyntaxKind::JSON_KEY_VALUE
23258    }
23259    #[inline]
23260    fn cast(syntax: SyntaxNode) -> Option<Self> {
23261        if Self::can_cast(syntax.kind()) {
23262            Some(Self { syntax })
23263        } else {
23264            None
23265        }
23266    }
23267    #[inline]
23268    fn syntax(&self) -> &SyntaxNode {
23269        &self.syntax
23270    }
23271}
23272impl AstNode for JsonKeysUniqueClause {
23273    #[inline]
23274    fn can_cast(kind: SyntaxKind) -> bool {
23275        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
23276    }
23277    #[inline]
23278    fn cast(syntax: SyntaxNode) -> Option<Self> {
23279        if Self::can_cast(syntax.kind()) {
23280            Some(Self { syntax })
23281        } else {
23282            None
23283        }
23284    }
23285    #[inline]
23286    fn syntax(&self) -> &SyntaxNode {
23287        &self.syntax
23288    }
23289}
23290impl AstNode for JsonNullClause {
23291    #[inline]
23292    fn can_cast(kind: SyntaxKind) -> bool {
23293        kind == SyntaxKind::JSON_NULL_CLAUSE
23294    }
23295    #[inline]
23296    fn cast(syntax: SyntaxNode) -> Option<Self> {
23297        if Self::can_cast(syntax.kind()) {
23298            Some(Self { syntax })
23299        } else {
23300            None
23301        }
23302    }
23303    #[inline]
23304    fn syntax(&self) -> &SyntaxNode {
23305        &self.syntax
23306    }
23307}
23308impl AstNode for JsonObjectAggFn {
23309    #[inline]
23310    fn can_cast(kind: SyntaxKind) -> bool {
23311        kind == SyntaxKind::JSON_OBJECT_AGG_FN
23312    }
23313    #[inline]
23314    fn cast(syntax: SyntaxNode) -> Option<Self> {
23315        if Self::can_cast(syntax.kind()) {
23316            Some(Self { syntax })
23317        } else {
23318            None
23319        }
23320    }
23321    #[inline]
23322    fn syntax(&self) -> &SyntaxNode {
23323        &self.syntax
23324    }
23325}
23326impl AstNode for JsonObjectFn {
23327    #[inline]
23328    fn can_cast(kind: SyntaxKind) -> bool {
23329        kind == SyntaxKind::JSON_OBJECT_FN
23330    }
23331    #[inline]
23332    fn cast(syntax: SyntaxNode) -> Option<Self> {
23333        if Self::can_cast(syntax.kind()) {
23334            Some(Self { syntax })
23335        } else {
23336            None
23337        }
23338    }
23339    #[inline]
23340    fn syntax(&self) -> &SyntaxNode {
23341        &self.syntax
23342    }
23343}
23344impl AstNode for JsonOnEmptyClause {
23345    #[inline]
23346    fn can_cast(kind: SyntaxKind) -> bool {
23347        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
23348    }
23349    #[inline]
23350    fn cast(syntax: SyntaxNode) -> Option<Self> {
23351        if Self::can_cast(syntax.kind()) {
23352            Some(Self { syntax })
23353        } else {
23354            None
23355        }
23356    }
23357    #[inline]
23358    fn syntax(&self) -> &SyntaxNode {
23359        &self.syntax
23360    }
23361}
23362impl AstNode for JsonOnErrorClause {
23363    #[inline]
23364    fn can_cast(kind: SyntaxKind) -> bool {
23365        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
23366    }
23367    #[inline]
23368    fn cast(syntax: SyntaxNode) -> Option<Self> {
23369        if Self::can_cast(syntax.kind()) {
23370            Some(Self { syntax })
23371        } else {
23372            None
23373        }
23374    }
23375    #[inline]
23376    fn syntax(&self) -> &SyntaxNode {
23377        &self.syntax
23378    }
23379}
23380impl AstNode for JsonPassingArg {
23381    #[inline]
23382    fn can_cast(kind: SyntaxKind) -> bool {
23383        kind == SyntaxKind::JSON_PASSING_ARG
23384    }
23385    #[inline]
23386    fn cast(syntax: SyntaxNode) -> Option<Self> {
23387        if Self::can_cast(syntax.kind()) {
23388            Some(Self { syntax })
23389        } else {
23390            None
23391        }
23392    }
23393    #[inline]
23394    fn syntax(&self) -> &SyntaxNode {
23395        &self.syntax
23396    }
23397}
23398impl AstNode for JsonPassingClause {
23399    #[inline]
23400    fn can_cast(kind: SyntaxKind) -> bool {
23401        kind == SyntaxKind::JSON_PASSING_CLAUSE
23402    }
23403    #[inline]
23404    fn cast(syntax: SyntaxNode) -> Option<Self> {
23405        if Self::can_cast(syntax.kind()) {
23406            Some(Self { syntax })
23407        } else {
23408            None
23409        }
23410    }
23411    #[inline]
23412    fn syntax(&self) -> &SyntaxNode {
23413        &self.syntax
23414    }
23415}
23416impl AstNode for JsonPathClause {
23417    #[inline]
23418    fn can_cast(kind: SyntaxKind) -> bool {
23419        kind == SyntaxKind::JSON_PATH_CLAUSE
23420    }
23421    #[inline]
23422    fn cast(syntax: SyntaxNode) -> Option<Self> {
23423        if Self::can_cast(syntax.kind()) {
23424            Some(Self { syntax })
23425        } else {
23426            None
23427        }
23428    }
23429    #[inline]
23430    fn syntax(&self) -> &SyntaxNode {
23431        &self.syntax
23432    }
23433}
23434impl AstNode for JsonQueryFn {
23435    #[inline]
23436    fn can_cast(kind: SyntaxKind) -> bool {
23437        kind == SyntaxKind::JSON_QUERY_FN
23438    }
23439    #[inline]
23440    fn cast(syntax: SyntaxNode) -> Option<Self> {
23441        if Self::can_cast(syntax.kind()) {
23442            Some(Self { syntax })
23443        } else {
23444            None
23445        }
23446    }
23447    #[inline]
23448    fn syntax(&self) -> &SyntaxNode {
23449        &self.syntax
23450    }
23451}
23452impl AstNode for JsonQuotesClause {
23453    #[inline]
23454    fn can_cast(kind: SyntaxKind) -> bool {
23455        kind == SyntaxKind::JSON_QUOTES_CLAUSE
23456    }
23457    #[inline]
23458    fn cast(syntax: SyntaxNode) -> Option<Self> {
23459        if Self::can_cast(syntax.kind()) {
23460            Some(Self { syntax })
23461        } else {
23462            None
23463        }
23464    }
23465    #[inline]
23466    fn syntax(&self) -> &SyntaxNode {
23467        &self.syntax
23468    }
23469}
23470impl AstNode for JsonReturningClause {
23471    #[inline]
23472    fn can_cast(kind: SyntaxKind) -> bool {
23473        kind == SyntaxKind::JSON_RETURNING_CLAUSE
23474    }
23475    #[inline]
23476    fn cast(syntax: SyntaxNode) -> Option<Self> {
23477        if Self::can_cast(syntax.kind()) {
23478            Some(Self { syntax })
23479        } else {
23480            None
23481        }
23482    }
23483    #[inline]
23484    fn syntax(&self) -> &SyntaxNode {
23485        &self.syntax
23486    }
23487}
23488impl AstNode for JsonScalarFn {
23489    #[inline]
23490    fn can_cast(kind: SyntaxKind) -> bool {
23491        kind == SyntaxKind::JSON_SCALAR_FN
23492    }
23493    #[inline]
23494    fn cast(syntax: SyntaxNode) -> Option<Self> {
23495        if Self::can_cast(syntax.kind()) {
23496            Some(Self { syntax })
23497        } else {
23498            None
23499        }
23500    }
23501    #[inline]
23502    fn syntax(&self) -> &SyntaxNode {
23503        &self.syntax
23504    }
23505}
23506impl AstNode for JsonSelectFormat {
23507    #[inline]
23508    fn can_cast(kind: SyntaxKind) -> bool {
23509        kind == SyntaxKind::JSON_SELECT_FORMAT
23510    }
23511    #[inline]
23512    fn cast(syntax: SyntaxNode) -> Option<Self> {
23513        if Self::can_cast(syntax.kind()) {
23514            Some(Self { syntax })
23515        } else {
23516            None
23517        }
23518    }
23519    #[inline]
23520    fn syntax(&self) -> &SyntaxNode {
23521        &self.syntax
23522    }
23523}
23524impl AstNode for JsonSerializeFn {
23525    #[inline]
23526    fn can_cast(kind: SyntaxKind) -> bool {
23527        kind == SyntaxKind::JSON_SERIALIZE_FN
23528    }
23529    #[inline]
23530    fn cast(syntax: SyntaxNode) -> Option<Self> {
23531        if Self::can_cast(syntax.kind()) {
23532            Some(Self { syntax })
23533        } else {
23534            None
23535        }
23536    }
23537    #[inline]
23538    fn syntax(&self) -> &SyntaxNode {
23539        &self.syntax
23540    }
23541}
23542impl AstNode for JsonTable {
23543    #[inline]
23544    fn can_cast(kind: SyntaxKind) -> bool {
23545        kind == SyntaxKind::JSON_TABLE
23546    }
23547    #[inline]
23548    fn cast(syntax: SyntaxNode) -> Option<Self> {
23549        if Self::can_cast(syntax.kind()) {
23550            Some(Self { syntax })
23551        } else {
23552            None
23553        }
23554    }
23555    #[inline]
23556    fn syntax(&self) -> &SyntaxNode {
23557        &self.syntax
23558    }
23559}
23560impl AstNode for JsonTableColumn {
23561    #[inline]
23562    fn can_cast(kind: SyntaxKind) -> bool {
23563        kind == SyntaxKind::JSON_TABLE_COLUMN
23564    }
23565    #[inline]
23566    fn cast(syntax: SyntaxNode) -> Option<Self> {
23567        if Self::can_cast(syntax.kind()) {
23568            Some(Self { syntax })
23569        } else {
23570            None
23571        }
23572    }
23573    #[inline]
23574    fn syntax(&self) -> &SyntaxNode {
23575        &self.syntax
23576    }
23577}
23578impl AstNode for JsonTableColumnList {
23579    #[inline]
23580    fn can_cast(kind: SyntaxKind) -> bool {
23581        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
23582    }
23583    #[inline]
23584    fn cast(syntax: SyntaxNode) -> Option<Self> {
23585        if Self::can_cast(syntax.kind()) {
23586            Some(Self { syntax })
23587        } else {
23588            None
23589        }
23590    }
23591    #[inline]
23592    fn syntax(&self) -> &SyntaxNode {
23593        &self.syntax
23594    }
23595}
23596impl AstNode for JsonValueExpr {
23597    #[inline]
23598    fn can_cast(kind: SyntaxKind) -> bool {
23599        kind == SyntaxKind::JSON_VALUE_EXPR
23600    }
23601    #[inline]
23602    fn cast(syntax: SyntaxNode) -> Option<Self> {
23603        if Self::can_cast(syntax.kind()) {
23604            Some(Self { syntax })
23605        } else {
23606            None
23607        }
23608    }
23609    #[inline]
23610    fn syntax(&self) -> &SyntaxNode {
23611        &self.syntax
23612    }
23613}
23614impl AstNode for JsonValueFn {
23615    #[inline]
23616    fn can_cast(kind: SyntaxKind) -> bool {
23617        kind == SyntaxKind::JSON_VALUE_FN
23618    }
23619    #[inline]
23620    fn cast(syntax: SyntaxNode) -> Option<Self> {
23621        if Self::can_cast(syntax.kind()) {
23622            Some(Self { syntax })
23623        } else {
23624            None
23625        }
23626    }
23627    #[inline]
23628    fn syntax(&self) -> &SyntaxNode {
23629        &self.syntax
23630    }
23631}
23632impl AstNode for JsonWrapperBehaviorClause {
23633    #[inline]
23634    fn can_cast(kind: SyntaxKind) -> bool {
23635        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
23636    }
23637    #[inline]
23638    fn cast(syntax: SyntaxNode) -> Option<Self> {
23639        if Self::can_cast(syntax.kind()) {
23640            Some(Self { syntax })
23641        } else {
23642            None
23643        }
23644    }
23645    #[inline]
23646    fn syntax(&self) -> &SyntaxNode {
23647        &self.syntax
23648    }
23649}
23650impl AstNode for LanguageFuncOption {
23651    #[inline]
23652    fn can_cast(kind: SyntaxKind) -> bool {
23653        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
23654    }
23655    #[inline]
23656    fn cast(syntax: SyntaxNode) -> Option<Self> {
23657        if Self::can_cast(syntax.kind()) {
23658            Some(Self { syntax })
23659        } else {
23660            None
23661        }
23662    }
23663    #[inline]
23664    fn syntax(&self) -> &SyntaxNode {
23665        &self.syntax
23666    }
23667}
23668impl AstNode for LeakproofFuncOption {
23669    #[inline]
23670    fn can_cast(kind: SyntaxKind) -> bool {
23671        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
23672    }
23673    #[inline]
23674    fn cast(syntax: SyntaxNode) -> Option<Self> {
23675        if Self::can_cast(syntax.kind()) {
23676            Some(Self { syntax })
23677        } else {
23678            None
23679        }
23680    }
23681    #[inline]
23682    fn syntax(&self) -> &SyntaxNode {
23683        &self.syntax
23684    }
23685}
23686impl AstNode for LikeClause {
23687    #[inline]
23688    fn can_cast(kind: SyntaxKind) -> bool {
23689        kind == SyntaxKind::LIKE_CLAUSE
23690    }
23691    #[inline]
23692    fn cast(syntax: SyntaxNode) -> Option<Self> {
23693        if Self::can_cast(syntax.kind()) {
23694            Some(Self { syntax })
23695        } else {
23696            None
23697        }
23698    }
23699    #[inline]
23700    fn syntax(&self) -> &SyntaxNode {
23701        &self.syntax
23702    }
23703}
23704impl AstNode for LikeOption {
23705    #[inline]
23706    fn can_cast(kind: SyntaxKind) -> bool {
23707        kind == SyntaxKind::LIKE_OPTION
23708    }
23709    #[inline]
23710    fn cast(syntax: SyntaxNode) -> Option<Self> {
23711        if Self::can_cast(syntax.kind()) {
23712            Some(Self { syntax })
23713        } else {
23714            None
23715        }
23716    }
23717    #[inline]
23718    fn syntax(&self) -> &SyntaxNode {
23719        &self.syntax
23720    }
23721}
23722impl AstNode for LimitClause {
23723    #[inline]
23724    fn can_cast(kind: SyntaxKind) -> bool {
23725        kind == SyntaxKind::LIMIT_CLAUSE
23726    }
23727    #[inline]
23728    fn cast(syntax: SyntaxNode) -> Option<Self> {
23729        if Self::can_cast(syntax.kind()) {
23730            Some(Self { syntax })
23731        } else {
23732            None
23733        }
23734    }
23735    #[inline]
23736    fn syntax(&self) -> &SyntaxNode {
23737        &self.syntax
23738    }
23739}
23740impl AstNode for LimitToTables {
23741    #[inline]
23742    fn can_cast(kind: SyntaxKind) -> bool {
23743        kind == SyntaxKind::LIMIT_TO_TABLES
23744    }
23745    #[inline]
23746    fn cast(syntax: SyntaxNode) -> Option<Self> {
23747        if Self::can_cast(syntax.kind()) {
23748            Some(Self { syntax })
23749        } else {
23750            None
23751        }
23752    }
23753    #[inline]
23754    fn syntax(&self) -> &SyntaxNode {
23755        &self.syntax
23756    }
23757}
23758impl AstNode for Listen {
23759    #[inline]
23760    fn can_cast(kind: SyntaxKind) -> bool {
23761        kind == SyntaxKind::LISTEN
23762    }
23763    #[inline]
23764    fn cast(syntax: SyntaxNode) -> Option<Self> {
23765        if Self::can_cast(syntax.kind()) {
23766            Some(Self { syntax })
23767        } else {
23768            None
23769        }
23770    }
23771    #[inline]
23772    fn syntax(&self) -> &SyntaxNode {
23773        &self.syntax
23774    }
23775}
23776impl AstNode for Literal {
23777    #[inline]
23778    fn can_cast(kind: SyntaxKind) -> bool {
23779        kind == SyntaxKind::LITERAL
23780    }
23781    #[inline]
23782    fn cast(syntax: SyntaxNode) -> Option<Self> {
23783        if Self::can_cast(syntax.kind()) {
23784            Some(Self { syntax })
23785        } else {
23786            None
23787        }
23788    }
23789    #[inline]
23790    fn syntax(&self) -> &SyntaxNode {
23791        &self.syntax
23792    }
23793}
23794impl AstNode for Load {
23795    #[inline]
23796    fn can_cast(kind: SyntaxKind) -> bool {
23797        kind == SyntaxKind::LOAD
23798    }
23799    #[inline]
23800    fn cast(syntax: SyntaxNode) -> Option<Self> {
23801        if Self::can_cast(syntax.kind()) {
23802            Some(Self { syntax })
23803        } else {
23804            None
23805        }
23806    }
23807    #[inline]
23808    fn syntax(&self) -> &SyntaxNode {
23809        &self.syntax
23810    }
23811}
23812impl AstNode for Lock {
23813    #[inline]
23814    fn can_cast(kind: SyntaxKind) -> bool {
23815        kind == SyntaxKind::LOCK
23816    }
23817    #[inline]
23818    fn cast(syntax: SyntaxNode) -> Option<Self> {
23819        if Self::can_cast(syntax.kind()) {
23820            Some(Self { syntax })
23821        } else {
23822            None
23823        }
23824    }
23825    #[inline]
23826    fn syntax(&self) -> &SyntaxNode {
23827        &self.syntax
23828    }
23829}
23830impl AstNode for LockingClause {
23831    #[inline]
23832    fn can_cast(kind: SyntaxKind) -> bool {
23833        kind == SyntaxKind::LOCKING_CLAUSE
23834    }
23835    #[inline]
23836    fn cast(syntax: SyntaxNode) -> Option<Self> {
23837        if Self::can_cast(syntax.kind()) {
23838            Some(Self { syntax })
23839        } else {
23840            None
23841        }
23842    }
23843    #[inline]
23844    fn syntax(&self) -> &SyntaxNode {
23845        &self.syntax
23846    }
23847}
23848impl AstNode for Lteq {
23849    #[inline]
23850    fn can_cast(kind: SyntaxKind) -> bool {
23851        kind == SyntaxKind::LTEQ
23852    }
23853    #[inline]
23854    fn cast(syntax: SyntaxNode) -> Option<Self> {
23855        if Self::can_cast(syntax.kind()) {
23856            Some(Self { syntax })
23857        } else {
23858            None
23859        }
23860    }
23861    #[inline]
23862    fn syntax(&self) -> &SyntaxNode {
23863        &self.syntax
23864    }
23865}
23866impl AstNode for MatchFull {
23867    #[inline]
23868    fn can_cast(kind: SyntaxKind) -> bool {
23869        kind == SyntaxKind::MATCH_FULL
23870    }
23871    #[inline]
23872    fn cast(syntax: SyntaxNode) -> Option<Self> {
23873        if Self::can_cast(syntax.kind()) {
23874            Some(Self { syntax })
23875        } else {
23876            None
23877        }
23878    }
23879    #[inline]
23880    fn syntax(&self) -> &SyntaxNode {
23881        &self.syntax
23882    }
23883}
23884impl AstNode for MatchPartial {
23885    #[inline]
23886    fn can_cast(kind: SyntaxKind) -> bool {
23887        kind == SyntaxKind::MATCH_PARTIAL
23888    }
23889    #[inline]
23890    fn cast(syntax: SyntaxNode) -> Option<Self> {
23891        if Self::can_cast(syntax.kind()) {
23892            Some(Self { syntax })
23893        } else {
23894            None
23895        }
23896    }
23897    #[inline]
23898    fn syntax(&self) -> &SyntaxNode {
23899        &self.syntax
23900    }
23901}
23902impl AstNode for MatchSimple {
23903    #[inline]
23904    fn can_cast(kind: SyntaxKind) -> bool {
23905        kind == SyntaxKind::MATCH_SIMPLE
23906    }
23907    #[inline]
23908    fn cast(syntax: SyntaxNode) -> Option<Self> {
23909        if Self::can_cast(syntax.kind()) {
23910            Some(Self { syntax })
23911        } else {
23912            None
23913        }
23914    }
23915    #[inline]
23916    fn syntax(&self) -> &SyntaxNode {
23917        &self.syntax
23918    }
23919}
23920impl AstNode for Materialized {
23921    #[inline]
23922    fn can_cast(kind: SyntaxKind) -> bool {
23923        kind == SyntaxKind::MATERIALIZED
23924    }
23925    #[inline]
23926    fn cast(syntax: SyntaxNode) -> Option<Self> {
23927        if Self::can_cast(syntax.kind()) {
23928            Some(Self { syntax })
23929        } else {
23930            None
23931        }
23932    }
23933    #[inline]
23934    fn syntax(&self) -> &SyntaxNode {
23935        &self.syntax
23936    }
23937}
23938impl AstNode for Merge {
23939    #[inline]
23940    fn can_cast(kind: SyntaxKind) -> bool {
23941        kind == SyntaxKind::MERGE
23942    }
23943    #[inline]
23944    fn cast(syntax: SyntaxNode) -> Option<Self> {
23945        if Self::can_cast(syntax.kind()) {
23946            Some(Self { syntax })
23947        } else {
23948            None
23949        }
23950    }
23951    #[inline]
23952    fn syntax(&self) -> &SyntaxNode {
23953        &self.syntax
23954    }
23955}
23956impl AstNode for MergeDelete {
23957    #[inline]
23958    fn can_cast(kind: SyntaxKind) -> bool {
23959        kind == SyntaxKind::MERGE_DELETE
23960    }
23961    #[inline]
23962    fn cast(syntax: SyntaxNode) -> Option<Self> {
23963        if Self::can_cast(syntax.kind()) {
23964            Some(Self { syntax })
23965        } else {
23966            None
23967        }
23968    }
23969    #[inline]
23970    fn syntax(&self) -> &SyntaxNode {
23971        &self.syntax
23972    }
23973}
23974impl AstNode for MergeDoNothing {
23975    #[inline]
23976    fn can_cast(kind: SyntaxKind) -> bool {
23977        kind == SyntaxKind::MERGE_DO_NOTHING
23978    }
23979    #[inline]
23980    fn cast(syntax: SyntaxNode) -> Option<Self> {
23981        if Self::can_cast(syntax.kind()) {
23982            Some(Self { syntax })
23983        } else {
23984            None
23985        }
23986    }
23987    #[inline]
23988    fn syntax(&self) -> &SyntaxNode {
23989        &self.syntax
23990    }
23991}
23992impl AstNode for MergeInsert {
23993    #[inline]
23994    fn can_cast(kind: SyntaxKind) -> bool {
23995        kind == SyntaxKind::MERGE_INSERT
23996    }
23997    #[inline]
23998    fn cast(syntax: SyntaxNode) -> Option<Self> {
23999        if Self::can_cast(syntax.kind()) {
24000            Some(Self { syntax })
24001        } else {
24002            None
24003        }
24004    }
24005    #[inline]
24006    fn syntax(&self) -> &SyntaxNode {
24007        &self.syntax
24008    }
24009}
24010impl AstNode for MergePartitions {
24011    #[inline]
24012    fn can_cast(kind: SyntaxKind) -> bool {
24013        kind == SyntaxKind::MERGE_PARTITIONS
24014    }
24015    #[inline]
24016    fn cast(syntax: SyntaxNode) -> Option<Self> {
24017        if Self::can_cast(syntax.kind()) {
24018            Some(Self { syntax })
24019        } else {
24020            None
24021        }
24022    }
24023    #[inline]
24024    fn syntax(&self) -> &SyntaxNode {
24025        &self.syntax
24026    }
24027}
24028impl AstNode for MergeUpdate {
24029    #[inline]
24030    fn can_cast(kind: SyntaxKind) -> bool {
24031        kind == SyntaxKind::MERGE_UPDATE
24032    }
24033    #[inline]
24034    fn cast(syntax: SyntaxNode) -> Option<Self> {
24035        if Self::can_cast(syntax.kind()) {
24036            Some(Self { syntax })
24037        } else {
24038            None
24039        }
24040    }
24041    #[inline]
24042    fn syntax(&self) -> &SyntaxNode {
24043        &self.syntax
24044    }
24045}
24046impl AstNode for MergeWhenMatched {
24047    #[inline]
24048    fn can_cast(kind: SyntaxKind) -> bool {
24049        kind == SyntaxKind::MERGE_WHEN_MATCHED
24050    }
24051    #[inline]
24052    fn cast(syntax: SyntaxNode) -> Option<Self> {
24053        if Self::can_cast(syntax.kind()) {
24054            Some(Self { syntax })
24055        } else {
24056            None
24057        }
24058    }
24059    #[inline]
24060    fn syntax(&self) -> &SyntaxNode {
24061        &self.syntax
24062    }
24063}
24064impl AstNode for MergeWhenNotMatchedSource {
24065    #[inline]
24066    fn can_cast(kind: SyntaxKind) -> bool {
24067        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
24068    }
24069    #[inline]
24070    fn cast(syntax: SyntaxNode) -> Option<Self> {
24071        if Self::can_cast(syntax.kind()) {
24072            Some(Self { syntax })
24073        } else {
24074            None
24075        }
24076    }
24077    #[inline]
24078    fn syntax(&self) -> &SyntaxNode {
24079        &self.syntax
24080    }
24081}
24082impl AstNode for MergeWhenNotMatchedTarget {
24083    #[inline]
24084    fn can_cast(kind: SyntaxKind) -> bool {
24085        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
24086    }
24087    #[inline]
24088    fn cast(syntax: SyntaxNode) -> Option<Self> {
24089        if Self::can_cast(syntax.kind()) {
24090            Some(Self { syntax })
24091        } else {
24092            None
24093        }
24094    }
24095    #[inline]
24096    fn syntax(&self) -> &SyntaxNode {
24097        &self.syntax
24098    }
24099}
24100impl AstNode for Move {
24101    #[inline]
24102    fn can_cast(kind: SyntaxKind) -> bool {
24103        kind == SyntaxKind::MOVE
24104    }
24105    #[inline]
24106    fn cast(syntax: SyntaxNode) -> Option<Self> {
24107        if Self::can_cast(syntax.kind()) {
24108            Some(Self { syntax })
24109        } else {
24110            None
24111        }
24112    }
24113    #[inline]
24114    fn syntax(&self) -> &SyntaxNode {
24115        &self.syntax
24116    }
24117}
24118impl AstNode for Name {
24119    #[inline]
24120    fn can_cast(kind: SyntaxKind) -> bool {
24121        kind == SyntaxKind::NAME
24122    }
24123    #[inline]
24124    fn cast(syntax: SyntaxNode) -> Option<Self> {
24125        if Self::can_cast(syntax.kind()) {
24126            Some(Self { syntax })
24127        } else {
24128            None
24129        }
24130    }
24131    #[inline]
24132    fn syntax(&self) -> &SyntaxNode {
24133        &self.syntax
24134    }
24135}
24136impl AstNode for NameRef {
24137    #[inline]
24138    fn can_cast(kind: SyntaxKind) -> bool {
24139        kind == SyntaxKind::NAME_REF
24140    }
24141    #[inline]
24142    fn cast(syntax: SyntaxNode) -> Option<Self> {
24143        if Self::can_cast(syntax.kind()) {
24144            Some(Self { syntax })
24145        } else {
24146            None
24147        }
24148    }
24149    #[inline]
24150    fn syntax(&self) -> &SyntaxNode {
24151        &self.syntax
24152    }
24153}
24154impl AstNode for NamedArg {
24155    #[inline]
24156    fn can_cast(kind: SyntaxKind) -> bool {
24157        kind == SyntaxKind::NAMED_ARG
24158    }
24159    #[inline]
24160    fn cast(syntax: SyntaxNode) -> Option<Self> {
24161        if Self::can_cast(syntax.kind()) {
24162            Some(Self { syntax })
24163        } else {
24164            None
24165        }
24166    }
24167    #[inline]
24168    fn syntax(&self) -> &SyntaxNode {
24169        &self.syntax
24170    }
24171}
24172impl AstNode for Neq {
24173    #[inline]
24174    fn can_cast(kind: SyntaxKind) -> bool {
24175        kind == SyntaxKind::NEQ
24176    }
24177    #[inline]
24178    fn cast(syntax: SyntaxNode) -> Option<Self> {
24179        if Self::can_cast(syntax.kind()) {
24180            Some(Self { syntax })
24181        } else {
24182            None
24183        }
24184    }
24185    #[inline]
24186    fn syntax(&self) -> &SyntaxNode {
24187        &self.syntax
24188    }
24189}
24190impl AstNode for Neqb {
24191    #[inline]
24192    fn can_cast(kind: SyntaxKind) -> bool {
24193        kind == SyntaxKind::NEQB
24194    }
24195    #[inline]
24196    fn cast(syntax: SyntaxNode) -> Option<Self> {
24197        if Self::can_cast(syntax.kind()) {
24198            Some(Self { syntax })
24199        } else {
24200            None
24201        }
24202    }
24203    #[inline]
24204    fn syntax(&self) -> &SyntaxNode {
24205        &self.syntax
24206    }
24207}
24208impl AstNode for NoAction {
24209    #[inline]
24210    fn can_cast(kind: SyntaxKind) -> bool {
24211        kind == SyntaxKind::NO_ACTION
24212    }
24213    #[inline]
24214    fn cast(syntax: SyntaxNode) -> Option<Self> {
24215        if Self::can_cast(syntax.kind()) {
24216            Some(Self { syntax })
24217        } else {
24218            None
24219        }
24220    }
24221    #[inline]
24222    fn syntax(&self) -> &SyntaxNode {
24223        &self.syntax
24224    }
24225}
24226impl AstNode for NoDependsOnExtension {
24227    #[inline]
24228    fn can_cast(kind: SyntaxKind) -> bool {
24229        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
24230    }
24231    #[inline]
24232    fn cast(syntax: SyntaxNode) -> Option<Self> {
24233        if Self::can_cast(syntax.kind()) {
24234            Some(Self { syntax })
24235        } else {
24236            None
24237        }
24238    }
24239    #[inline]
24240    fn syntax(&self) -> &SyntaxNode {
24241        &self.syntax
24242    }
24243}
24244impl AstNode for NoForceRls {
24245    #[inline]
24246    fn can_cast(kind: SyntaxKind) -> bool {
24247        kind == SyntaxKind::NO_FORCE_RLS
24248    }
24249    #[inline]
24250    fn cast(syntax: SyntaxNode) -> Option<Self> {
24251        if Self::can_cast(syntax.kind()) {
24252            Some(Self { syntax })
24253        } else {
24254            None
24255        }
24256    }
24257    #[inline]
24258    fn syntax(&self) -> &SyntaxNode {
24259        &self.syntax
24260    }
24261}
24262impl AstNode for NoInherit {
24263    #[inline]
24264    fn can_cast(kind: SyntaxKind) -> bool {
24265        kind == SyntaxKind::NO_INHERIT
24266    }
24267    #[inline]
24268    fn cast(syntax: SyntaxNode) -> Option<Self> {
24269        if Self::can_cast(syntax.kind()) {
24270            Some(Self { syntax })
24271        } else {
24272            None
24273        }
24274    }
24275    #[inline]
24276    fn syntax(&self) -> &SyntaxNode {
24277        &self.syntax
24278    }
24279}
24280impl AstNode for NoInheritTable {
24281    #[inline]
24282    fn can_cast(kind: SyntaxKind) -> bool {
24283        kind == SyntaxKind::NO_INHERIT_TABLE
24284    }
24285    #[inline]
24286    fn cast(syntax: SyntaxNode) -> Option<Self> {
24287        if Self::can_cast(syntax.kind()) {
24288            Some(Self { syntax })
24289        } else {
24290            None
24291        }
24292    }
24293    #[inline]
24294    fn syntax(&self) -> &SyntaxNode {
24295        &self.syntax
24296    }
24297}
24298impl AstNode for NonStandardParam {
24299    #[inline]
24300    fn can_cast(kind: SyntaxKind) -> bool {
24301        kind == SyntaxKind::NON_STANDARD_PARAM
24302    }
24303    #[inline]
24304    fn cast(syntax: SyntaxNode) -> Option<Self> {
24305        if Self::can_cast(syntax.kind()) {
24306            Some(Self { syntax })
24307        } else {
24308            None
24309        }
24310    }
24311    #[inline]
24312    fn syntax(&self) -> &SyntaxNode {
24313        &self.syntax
24314    }
24315}
24316impl AstNode for NotDeferrable {
24317    #[inline]
24318    fn can_cast(kind: SyntaxKind) -> bool {
24319        kind == SyntaxKind::NOT_DEFERRABLE
24320    }
24321    #[inline]
24322    fn cast(syntax: SyntaxNode) -> Option<Self> {
24323        if Self::can_cast(syntax.kind()) {
24324            Some(Self { syntax })
24325        } else {
24326            None
24327        }
24328    }
24329    #[inline]
24330    fn syntax(&self) -> &SyntaxNode {
24331        &self.syntax
24332    }
24333}
24334impl AstNode for NotDeferrableConstraintOption {
24335    #[inline]
24336    fn can_cast(kind: SyntaxKind) -> bool {
24337        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
24338    }
24339    #[inline]
24340    fn cast(syntax: SyntaxNode) -> Option<Self> {
24341        if Self::can_cast(syntax.kind()) {
24342            Some(Self { syntax })
24343        } else {
24344            None
24345        }
24346    }
24347    #[inline]
24348    fn syntax(&self) -> &SyntaxNode {
24349        &self.syntax
24350    }
24351}
24352impl AstNode for NotEnforced {
24353    #[inline]
24354    fn can_cast(kind: SyntaxKind) -> bool {
24355        kind == SyntaxKind::NOT_ENFORCED
24356    }
24357    #[inline]
24358    fn cast(syntax: SyntaxNode) -> Option<Self> {
24359        if Self::can_cast(syntax.kind()) {
24360            Some(Self { syntax })
24361        } else {
24362            None
24363        }
24364    }
24365    #[inline]
24366    fn syntax(&self) -> &SyntaxNode {
24367        &self.syntax
24368    }
24369}
24370impl AstNode for NotIlike {
24371    #[inline]
24372    fn can_cast(kind: SyntaxKind) -> bool {
24373        kind == SyntaxKind::NOT_ILIKE
24374    }
24375    #[inline]
24376    fn cast(syntax: SyntaxNode) -> Option<Self> {
24377        if Self::can_cast(syntax.kind()) {
24378            Some(Self { syntax })
24379        } else {
24380            None
24381        }
24382    }
24383    #[inline]
24384    fn syntax(&self) -> &SyntaxNode {
24385        &self.syntax
24386    }
24387}
24388impl AstNode for NotIn {
24389    #[inline]
24390    fn can_cast(kind: SyntaxKind) -> bool {
24391        kind == SyntaxKind::NOT_IN
24392    }
24393    #[inline]
24394    fn cast(syntax: SyntaxNode) -> Option<Self> {
24395        if Self::can_cast(syntax.kind()) {
24396            Some(Self { syntax })
24397        } else {
24398            None
24399        }
24400    }
24401    #[inline]
24402    fn syntax(&self) -> &SyntaxNode {
24403        &self.syntax
24404    }
24405}
24406impl AstNode for NotLike {
24407    #[inline]
24408    fn can_cast(kind: SyntaxKind) -> bool {
24409        kind == SyntaxKind::NOT_LIKE
24410    }
24411    #[inline]
24412    fn cast(syntax: SyntaxNode) -> Option<Self> {
24413        if Self::can_cast(syntax.kind()) {
24414            Some(Self { syntax })
24415        } else {
24416            None
24417        }
24418    }
24419    #[inline]
24420    fn syntax(&self) -> &SyntaxNode {
24421        &self.syntax
24422    }
24423}
24424impl AstNode for NotMaterialized {
24425    #[inline]
24426    fn can_cast(kind: SyntaxKind) -> bool {
24427        kind == SyntaxKind::NOT_MATERIALIZED
24428    }
24429    #[inline]
24430    fn cast(syntax: SyntaxNode) -> Option<Self> {
24431        if Self::can_cast(syntax.kind()) {
24432            Some(Self { syntax })
24433        } else {
24434            None
24435        }
24436    }
24437    #[inline]
24438    fn syntax(&self) -> &SyntaxNode {
24439        &self.syntax
24440    }
24441}
24442impl AstNode for NotNullConstraint {
24443    #[inline]
24444    fn can_cast(kind: SyntaxKind) -> bool {
24445        kind == SyntaxKind::NOT_NULL_CONSTRAINT
24446    }
24447    #[inline]
24448    fn cast(syntax: SyntaxNode) -> Option<Self> {
24449        if Self::can_cast(syntax.kind()) {
24450            Some(Self { syntax })
24451        } else {
24452            None
24453        }
24454    }
24455    #[inline]
24456    fn syntax(&self) -> &SyntaxNode {
24457        &self.syntax
24458    }
24459}
24460impl AstNode for NotOf {
24461    #[inline]
24462    fn can_cast(kind: SyntaxKind) -> bool {
24463        kind == SyntaxKind::NOT_OF
24464    }
24465    #[inline]
24466    fn cast(syntax: SyntaxNode) -> Option<Self> {
24467        if Self::can_cast(syntax.kind()) {
24468            Some(Self { syntax })
24469        } else {
24470            None
24471        }
24472    }
24473    #[inline]
24474    fn syntax(&self) -> &SyntaxNode {
24475        &self.syntax
24476    }
24477}
24478impl AstNode for NotSimilarTo {
24479    #[inline]
24480    fn can_cast(kind: SyntaxKind) -> bool {
24481        kind == SyntaxKind::NOT_SIMILAR_TO
24482    }
24483    #[inline]
24484    fn cast(syntax: SyntaxNode) -> Option<Self> {
24485        if Self::can_cast(syntax.kind()) {
24486            Some(Self { syntax })
24487        } else {
24488            None
24489        }
24490    }
24491    #[inline]
24492    fn syntax(&self) -> &SyntaxNode {
24493        &self.syntax
24494    }
24495}
24496impl AstNode for NotValid {
24497    #[inline]
24498    fn can_cast(kind: SyntaxKind) -> bool {
24499        kind == SyntaxKind::NOT_VALID
24500    }
24501    #[inline]
24502    fn cast(syntax: SyntaxNode) -> Option<Self> {
24503        if Self::can_cast(syntax.kind()) {
24504            Some(Self { syntax })
24505        } else {
24506            None
24507        }
24508    }
24509    #[inline]
24510    fn syntax(&self) -> &SyntaxNode {
24511        &self.syntax
24512    }
24513}
24514impl AstNode for Notify {
24515    #[inline]
24516    fn can_cast(kind: SyntaxKind) -> bool {
24517        kind == SyntaxKind::NOTIFY
24518    }
24519    #[inline]
24520    fn cast(syntax: SyntaxNode) -> Option<Self> {
24521        if Self::can_cast(syntax.kind()) {
24522            Some(Self { syntax })
24523        } else {
24524            None
24525        }
24526    }
24527    #[inline]
24528    fn syntax(&self) -> &SyntaxNode {
24529        &self.syntax
24530    }
24531}
24532impl AstNode for NullConstraint {
24533    #[inline]
24534    fn can_cast(kind: SyntaxKind) -> bool {
24535        kind == SyntaxKind::NULL_CONSTRAINT
24536    }
24537    #[inline]
24538    fn cast(syntax: SyntaxNode) -> Option<Self> {
24539        if Self::can_cast(syntax.kind()) {
24540            Some(Self { syntax })
24541        } else {
24542            None
24543        }
24544    }
24545    #[inline]
24546    fn syntax(&self) -> &SyntaxNode {
24547        &self.syntax
24548    }
24549}
24550impl AstNode for NullsDistinct {
24551    #[inline]
24552    fn can_cast(kind: SyntaxKind) -> bool {
24553        kind == SyntaxKind::NULLS_DISTINCT
24554    }
24555    #[inline]
24556    fn cast(syntax: SyntaxNode) -> Option<Self> {
24557        if Self::can_cast(syntax.kind()) {
24558            Some(Self { syntax })
24559        } else {
24560            None
24561        }
24562    }
24563    #[inline]
24564    fn syntax(&self) -> &SyntaxNode {
24565        &self.syntax
24566    }
24567}
24568impl AstNode for NullsFirst {
24569    #[inline]
24570    fn can_cast(kind: SyntaxKind) -> bool {
24571        kind == SyntaxKind::NULLS_FIRST
24572    }
24573    #[inline]
24574    fn cast(syntax: SyntaxNode) -> Option<Self> {
24575        if Self::can_cast(syntax.kind()) {
24576            Some(Self { syntax })
24577        } else {
24578            None
24579        }
24580    }
24581    #[inline]
24582    fn syntax(&self) -> &SyntaxNode {
24583        &self.syntax
24584    }
24585}
24586impl AstNode for NullsLast {
24587    #[inline]
24588    fn can_cast(kind: SyntaxKind) -> bool {
24589        kind == SyntaxKind::NULLS_LAST
24590    }
24591    #[inline]
24592    fn cast(syntax: SyntaxNode) -> Option<Self> {
24593        if Self::can_cast(syntax.kind()) {
24594            Some(Self { syntax })
24595        } else {
24596            None
24597        }
24598    }
24599    #[inline]
24600    fn syntax(&self) -> &SyntaxNode {
24601        &self.syntax
24602    }
24603}
24604impl AstNode for NullsNotDistinct {
24605    #[inline]
24606    fn can_cast(kind: SyntaxKind) -> bool {
24607        kind == SyntaxKind::NULLS_NOT_DISTINCT
24608    }
24609    #[inline]
24610    fn cast(syntax: SyntaxNode) -> Option<Self> {
24611        if Self::can_cast(syntax.kind()) {
24612            Some(Self { syntax })
24613        } else {
24614            None
24615        }
24616    }
24617    #[inline]
24618    fn syntax(&self) -> &SyntaxNode {
24619        &self.syntax
24620    }
24621}
24622impl AstNode for OfType {
24623    #[inline]
24624    fn can_cast(kind: SyntaxKind) -> bool {
24625        kind == SyntaxKind::OF_TYPE
24626    }
24627    #[inline]
24628    fn cast(syntax: SyntaxNode) -> Option<Self> {
24629        if Self::can_cast(syntax.kind()) {
24630            Some(Self { syntax })
24631        } else {
24632            None
24633        }
24634    }
24635    #[inline]
24636    fn syntax(&self) -> &SyntaxNode {
24637        &self.syntax
24638    }
24639}
24640impl AstNode for OffsetClause {
24641    #[inline]
24642    fn can_cast(kind: SyntaxKind) -> bool {
24643        kind == SyntaxKind::OFFSET_CLAUSE
24644    }
24645    #[inline]
24646    fn cast(syntax: SyntaxNode) -> Option<Self> {
24647        if Self::can_cast(syntax.kind()) {
24648            Some(Self { syntax })
24649        } else {
24650            None
24651        }
24652    }
24653    #[inline]
24654    fn syntax(&self) -> &SyntaxNode {
24655        &self.syntax
24656    }
24657}
24658impl AstNode for OnClause {
24659    #[inline]
24660    fn can_cast(kind: SyntaxKind) -> bool {
24661        kind == SyntaxKind::ON_CLAUSE
24662    }
24663    #[inline]
24664    fn cast(syntax: SyntaxNode) -> Option<Self> {
24665        if Self::can_cast(syntax.kind()) {
24666            Some(Self { syntax })
24667        } else {
24668            None
24669        }
24670    }
24671    #[inline]
24672    fn syntax(&self) -> &SyntaxNode {
24673        &self.syntax
24674    }
24675}
24676impl AstNode for OnCommit {
24677    #[inline]
24678    fn can_cast(kind: SyntaxKind) -> bool {
24679        kind == SyntaxKind::ON_COMMIT
24680    }
24681    #[inline]
24682    fn cast(syntax: SyntaxNode) -> Option<Self> {
24683        if Self::can_cast(syntax.kind()) {
24684            Some(Self { syntax })
24685        } else {
24686            None
24687        }
24688    }
24689    #[inline]
24690    fn syntax(&self) -> &SyntaxNode {
24691        &self.syntax
24692    }
24693}
24694impl AstNode for OnConflictClause {
24695    #[inline]
24696    fn can_cast(kind: SyntaxKind) -> bool {
24697        kind == SyntaxKind::ON_CONFLICT_CLAUSE
24698    }
24699    #[inline]
24700    fn cast(syntax: SyntaxNode) -> Option<Self> {
24701        if Self::can_cast(syntax.kind()) {
24702            Some(Self { syntax })
24703        } else {
24704            None
24705        }
24706    }
24707    #[inline]
24708    fn syntax(&self) -> &SyntaxNode {
24709        &self.syntax
24710    }
24711}
24712impl AstNode for OnDeleteAction {
24713    #[inline]
24714    fn can_cast(kind: SyntaxKind) -> bool {
24715        kind == SyntaxKind::ON_DELETE_ACTION
24716    }
24717    #[inline]
24718    fn cast(syntax: SyntaxNode) -> Option<Self> {
24719        if Self::can_cast(syntax.kind()) {
24720            Some(Self { syntax })
24721        } else {
24722            None
24723        }
24724    }
24725    #[inline]
24726    fn syntax(&self) -> &SyntaxNode {
24727        &self.syntax
24728    }
24729}
24730impl AstNode for OnTable {
24731    #[inline]
24732    fn can_cast(kind: SyntaxKind) -> bool {
24733        kind == SyntaxKind::ON_TABLE
24734    }
24735    #[inline]
24736    fn cast(syntax: SyntaxNode) -> Option<Self> {
24737        if Self::can_cast(syntax.kind()) {
24738            Some(Self { syntax })
24739        } else {
24740            None
24741        }
24742    }
24743    #[inline]
24744    fn syntax(&self) -> &SyntaxNode {
24745        &self.syntax
24746    }
24747}
24748impl AstNode for OnUpdateAction {
24749    #[inline]
24750    fn can_cast(kind: SyntaxKind) -> bool {
24751        kind == SyntaxKind::ON_UPDATE_ACTION
24752    }
24753    #[inline]
24754    fn cast(syntax: SyntaxNode) -> Option<Self> {
24755        if Self::can_cast(syntax.kind()) {
24756            Some(Self { syntax })
24757        } else {
24758            None
24759        }
24760    }
24761    #[inline]
24762    fn syntax(&self) -> &SyntaxNode {
24763        &self.syntax
24764    }
24765}
24766impl AstNode for Op {
24767    #[inline]
24768    fn can_cast(kind: SyntaxKind) -> bool {
24769        kind == SyntaxKind::OP
24770    }
24771    #[inline]
24772    fn cast(syntax: SyntaxNode) -> Option<Self> {
24773        if Self::can_cast(syntax.kind()) {
24774            Some(Self { syntax })
24775        } else {
24776            None
24777        }
24778    }
24779    #[inline]
24780    fn syntax(&self) -> &SyntaxNode {
24781        &self.syntax
24782    }
24783}
24784impl AstNode for OpClassOption {
24785    #[inline]
24786    fn can_cast(kind: SyntaxKind) -> bool {
24787        kind == SyntaxKind::OP_CLASS_OPTION
24788    }
24789    #[inline]
24790    fn cast(syntax: SyntaxNode) -> Option<Self> {
24791        if Self::can_cast(syntax.kind()) {
24792            Some(Self { syntax })
24793        } else {
24794            None
24795        }
24796    }
24797    #[inline]
24798    fn syntax(&self) -> &SyntaxNode {
24799        &self.syntax
24800    }
24801}
24802impl AstNode for OpSig {
24803    #[inline]
24804    fn can_cast(kind: SyntaxKind) -> bool {
24805        kind == SyntaxKind::OP_SIG
24806    }
24807    #[inline]
24808    fn cast(syntax: SyntaxNode) -> Option<Self> {
24809        if Self::can_cast(syntax.kind()) {
24810            Some(Self { syntax })
24811        } else {
24812            None
24813        }
24814    }
24815    #[inline]
24816    fn syntax(&self) -> &SyntaxNode {
24817        &self.syntax
24818    }
24819}
24820impl AstNode for OpSigList {
24821    #[inline]
24822    fn can_cast(kind: SyntaxKind) -> bool {
24823        kind == SyntaxKind::OP_SIG_LIST
24824    }
24825    #[inline]
24826    fn cast(syntax: SyntaxNode) -> Option<Self> {
24827        if Self::can_cast(syntax.kind()) {
24828            Some(Self { syntax })
24829        } else {
24830            None
24831        }
24832    }
24833    #[inline]
24834    fn syntax(&self) -> &SyntaxNode {
24835        &self.syntax
24836    }
24837}
24838impl AstNode for OperatorCall {
24839    #[inline]
24840    fn can_cast(kind: SyntaxKind) -> bool {
24841        kind == SyntaxKind::OPERATOR_CALL
24842    }
24843    #[inline]
24844    fn cast(syntax: SyntaxNode) -> Option<Self> {
24845        if Self::can_cast(syntax.kind()) {
24846            Some(Self { syntax })
24847        } else {
24848            None
24849        }
24850    }
24851    #[inline]
24852    fn syntax(&self) -> &SyntaxNode {
24853        &self.syntax
24854    }
24855}
24856impl AstNode for OperatorClassOptionList {
24857    #[inline]
24858    fn can_cast(kind: SyntaxKind) -> bool {
24859        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
24860    }
24861    #[inline]
24862    fn cast(syntax: SyntaxNode) -> Option<Self> {
24863        if Self::can_cast(syntax.kind()) {
24864            Some(Self { syntax })
24865        } else {
24866            None
24867        }
24868    }
24869    #[inline]
24870    fn syntax(&self) -> &SyntaxNode {
24871        &self.syntax
24872    }
24873}
24874impl AstNode for OptionItem {
24875    #[inline]
24876    fn can_cast(kind: SyntaxKind) -> bool {
24877        kind == SyntaxKind::OPTION_ITEM
24878    }
24879    #[inline]
24880    fn cast(syntax: SyntaxNode) -> Option<Self> {
24881        if Self::can_cast(syntax.kind()) {
24882            Some(Self { syntax })
24883        } else {
24884            None
24885        }
24886    }
24887    #[inline]
24888    fn syntax(&self) -> &SyntaxNode {
24889        &self.syntax
24890    }
24891}
24892impl AstNode for OptionItemList {
24893    #[inline]
24894    fn can_cast(kind: SyntaxKind) -> bool {
24895        kind == SyntaxKind::OPTION_ITEM_LIST
24896    }
24897    #[inline]
24898    fn cast(syntax: SyntaxNode) -> Option<Self> {
24899        if Self::can_cast(syntax.kind()) {
24900            Some(Self { syntax })
24901        } else {
24902            None
24903        }
24904    }
24905    #[inline]
24906    fn syntax(&self) -> &SyntaxNode {
24907        &self.syntax
24908    }
24909}
24910impl AstNode for OrReplace {
24911    #[inline]
24912    fn can_cast(kind: SyntaxKind) -> bool {
24913        kind == SyntaxKind::OR_REPLACE
24914    }
24915    #[inline]
24916    fn cast(syntax: SyntaxNode) -> Option<Self> {
24917        if Self::can_cast(syntax.kind()) {
24918            Some(Self { syntax })
24919        } else {
24920            None
24921        }
24922    }
24923    #[inline]
24924    fn syntax(&self) -> &SyntaxNode {
24925        &self.syntax
24926    }
24927}
24928impl AstNode for OrderByClause {
24929    #[inline]
24930    fn can_cast(kind: SyntaxKind) -> bool {
24931        kind == SyntaxKind::ORDER_BY_CLAUSE
24932    }
24933    #[inline]
24934    fn cast(syntax: SyntaxNode) -> Option<Self> {
24935        if Self::can_cast(syntax.kind()) {
24936            Some(Self { syntax })
24937        } else {
24938            None
24939        }
24940    }
24941    #[inline]
24942    fn syntax(&self) -> &SyntaxNode {
24943        &self.syntax
24944    }
24945}
24946impl AstNode for OverClause {
24947    #[inline]
24948    fn can_cast(kind: SyntaxKind) -> bool {
24949        kind == SyntaxKind::OVER_CLAUSE
24950    }
24951    #[inline]
24952    fn cast(syntax: SyntaxNode) -> Option<Self> {
24953        if Self::can_cast(syntax.kind()) {
24954            Some(Self { syntax })
24955        } else {
24956            None
24957        }
24958    }
24959    #[inline]
24960    fn syntax(&self) -> &SyntaxNode {
24961        &self.syntax
24962    }
24963}
24964impl AstNode for OverlayFn {
24965    #[inline]
24966    fn can_cast(kind: SyntaxKind) -> bool {
24967        kind == SyntaxKind::OVERLAY_FN
24968    }
24969    #[inline]
24970    fn cast(syntax: SyntaxNode) -> Option<Self> {
24971        if Self::can_cast(syntax.kind()) {
24972            Some(Self { syntax })
24973        } else {
24974            None
24975        }
24976    }
24977    #[inline]
24978    fn syntax(&self) -> &SyntaxNode {
24979        &self.syntax
24980    }
24981}
24982impl AstNode for OwnedByRoles {
24983    #[inline]
24984    fn can_cast(kind: SyntaxKind) -> bool {
24985        kind == SyntaxKind::OWNED_BY_ROLES
24986    }
24987    #[inline]
24988    fn cast(syntax: SyntaxNode) -> Option<Self> {
24989        if Self::can_cast(syntax.kind()) {
24990            Some(Self { syntax })
24991        } else {
24992            None
24993        }
24994    }
24995    #[inline]
24996    fn syntax(&self) -> &SyntaxNode {
24997        &self.syntax
24998    }
24999}
25000impl AstNode for OwnerTo {
25001    #[inline]
25002    fn can_cast(kind: SyntaxKind) -> bool {
25003        kind == SyntaxKind::OWNER_TO
25004    }
25005    #[inline]
25006    fn cast(syntax: SyntaxNode) -> Option<Self> {
25007        if Self::can_cast(syntax.kind()) {
25008            Some(Self { syntax })
25009        } else {
25010            None
25011        }
25012    }
25013    #[inline]
25014    fn syntax(&self) -> &SyntaxNode {
25015        &self.syntax
25016    }
25017}
25018impl AstNode for ParallelFuncOption {
25019    #[inline]
25020    fn can_cast(kind: SyntaxKind) -> bool {
25021        kind == SyntaxKind::PARALLEL_FUNC_OPTION
25022    }
25023    #[inline]
25024    fn cast(syntax: SyntaxNode) -> Option<Self> {
25025        if Self::can_cast(syntax.kind()) {
25026            Some(Self { syntax })
25027        } else {
25028            None
25029        }
25030    }
25031    #[inline]
25032    fn syntax(&self) -> &SyntaxNode {
25033        &self.syntax
25034    }
25035}
25036impl AstNode for Param {
25037    #[inline]
25038    fn can_cast(kind: SyntaxKind) -> bool {
25039        kind == SyntaxKind::PARAM
25040    }
25041    #[inline]
25042    fn cast(syntax: SyntaxNode) -> Option<Self> {
25043        if Self::can_cast(syntax.kind()) {
25044            Some(Self { syntax })
25045        } else {
25046            None
25047        }
25048    }
25049    #[inline]
25050    fn syntax(&self) -> &SyntaxNode {
25051        &self.syntax
25052    }
25053}
25054impl AstNode for ParamDefault {
25055    #[inline]
25056    fn can_cast(kind: SyntaxKind) -> bool {
25057        kind == SyntaxKind::PARAM_DEFAULT
25058    }
25059    #[inline]
25060    fn cast(syntax: SyntaxNode) -> Option<Self> {
25061        if Self::can_cast(syntax.kind()) {
25062            Some(Self { syntax })
25063        } else {
25064            None
25065        }
25066    }
25067    #[inline]
25068    fn syntax(&self) -> &SyntaxNode {
25069        &self.syntax
25070    }
25071}
25072impl AstNode for ParamIn {
25073    #[inline]
25074    fn can_cast(kind: SyntaxKind) -> bool {
25075        kind == SyntaxKind::PARAM_IN
25076    }
25077    #[inline]
25078    fn cast(syntax: SyntaxNode) -> Option<Self> {
25079        if Self::can_cast(syntax.kind()) {
25080            Some(Self { syntax })
25081        } else {
25082            None
25083        }
25084    }
25085    #[inline]
25086    fn syntax(&self) -> &SyntaxNode {
25087        &self.syntax
25088    }
25089}
25090impl AstNode for ParamInOut {
25091    #[inline]
25092    fn can_cast(kind: SyntaxKind) -> bool {
25093        kind == SyntaxKind::PARAM_IN_OUT
25094    }
25095    #[inline]
25096    fn cast(syntax: SyntaxNode) -> Option<Self> {
25097        if Self::can_cast(syntax.kind()) {
25098            Some(Self { syntax })
25099        } else {
25100            None
25101        }
25102    }
25103    #[inline]
25104    fn syntax(&self) -> &SyntaxNode {
25105        &self.syntax
25106    }
25107}
25108impl AstNode for ParamList {
25109    #[inline]
25110    fn can_cast(kind: SyntaxKind) -> bool {
25111        kind == SyntaxKind::PARAM_LIST
25112    }
25113    #[inline]
25114    fn cast(syntax: SyntaxNode) -> Option<Self> {
25115        if Self::can_cast(syntax.kind()) {
25116            Some(Self { syntax })
25117        } else {
25118            None
25119        }
25120    }
25121    #[inline]
25122    fn syntax(&self) -> &SyntaxNode {
25123        &self.syntax
25124    }
25125}
25126impl AstNode for ParamOut {
25127    #[inline]
25128    fn can_cast(kind: SyntaxKind) -> bool {
25129        kind == SyntaxKind::PARAM_OUT
25130    }
25131    #[inline]
25132    fn cast(syntax: SyntaxNode) -> Option<Self> {
25133        if Self::can_cast(syntax.kind()) {
25134            Some(Self { syntax })
25135        } else {
25136            None
25137        }
25138    }
25139    #[inline]
25140    fn syntax(&self) -> &SyntaxNode {
25141        &self.syntax
25142    }
25143}
25144impl AstNode for ParamVariadic {
25145    #[inline]
25146    fn can_cast(kind: SyntaxKind) -> bool {
25147        kind == SyntaxKind::PARAM_VARIADIC
25148    }
25149    #[inline]
25150    fn cast(syntax: SyntaxNode) -> Option<Self> {
25151        if Self::can_cast(syntax.kind()) {
25152            Some(Self { syntax })
25153        } else {
25154            None
25155        }
25156    }
25157    #[inline]
25158    fn syntax(&self) -> &SyntaxNode {
25159        &self.syntax
25160    }
25161}
25162impl AstNode for ParenExpr {
25163    #[inline]
25164    fn can_cast(kind: SyntaxKind) -> bool {
25165        kind == SyntaxKind::PAREN_EXPR
25166    }
25167    #[inline]
25168    fn cast(syntax: SyntaxNode) -> Option<Self> {
25169        if Self::can_cast(syntax.kind()) {
25170            Some(Self { syntax })
25171        } else {
25172            None
25173        }
25174    }
25175    #[inline]
25176    fn syntax(&self) -> &SyntaxNode {
25177        &self.syntax
25178    }
25179}
25180impl AstNode for ParenSelect {
25181    #[inline]
25182    fn can_cast(kind: SyntaxKind) -> bool {
25183        kind == SyntaxKind::PAREN_SELECT
25184    }
25185    #[inline]
25186    fn cast(syntax: SyntaxNode) -> Option<Self> {
25187        if Self::can_cast(syntax.kind()) {
25188            Some(Self { syntax })
25189        } else {
25190            None
25191        }
25192    }
25193    #[inline]
25194    fn syntax(&self) -> &SyntaxNode {
25195        &self.syntax
25196    }
25197}
25198impl AstNode for Partition {
25199    #[inline]
25200    fn can_cast(kind: SyntaxKind) -> bool {
25201        kind == SyntaxKind::PARTITION
25202    }
25203    #[inline]
25204    fn cast(syntax: SyntaxNode) -> Option<Self> {
25205        if Self::can_cast(syntax.kind()) {
25206            Some(Self { syntax })
25207        } else {
25208            None
25209        }
25210    }
25211    #[inline]
25212    fn syntax(&self) -> &SyntaxNode {
25213        &self.syntax
25214    }
25215}
25216impl AstNode for PartitionBy {
25217    #[inline]
25218    fn can_cast(kind: SyntaxKind) -> bool {
25219        kind == SyntaxKind::PARTITION_BY
25220    }
25221    #[inline]
25222    fn cast(syntax: SyntaxNode) -> Option<Self> {
25223        if Self::can_cast(syntax.kind()) {
25224            Some(Self { syntax })
25225        } else {
25226            None
25227        }
25228    }
25229    #[inline]
25230    fn syntax(&self) -> &SyntaxNode {
25231        &self.syntax
25232    }
25233}
25234impl AstNode for PartitionDefault {
25235    #[inline]
25236    fn can_cast(kind: SyntaxKind) -> bool {
25237        kind == SyntaxKind::PARTITION_DEFAULT
25238    }
25239    #[inline]
25240    fn cast(syntax: SyntaxNode) -> Option<Self> {
25241        if Self::can_cast(syntax.kind()) {
25242            Some(Self { syntax })
25243        } else {
25244            None
25245        }
25246    }
25247    #[inline]
25248    fn syntax(&self) -> &SyntaxNode {
25249        &self.syntax
25250    }
25251}
25252impl AstNode for PartitionForValuesFrom {
25253    #[inline]
25254    fn can_cast(kind: SyntaxKind) -> bool {
25255        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
25256    }
25257    #[inline]
25258    fn cast(syntax: SyntaxNode) -> Option<Self> {
25259        if Self::can_cast(syntax.kind()) {
25260            Some(Self { syntax })
25261        } else {
25262            None
25263        }
25264    }
25265    #[inline]
25266    fn syntax(&self) -> &SyntaxNode {
25267        &self.syntax
25268    }
25269}
25270impl AstNode for PartitionForValuesIn {
25271    #[inline]
25272    fn can_cast(kind: SyntaxKind) -> bool {
25273        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
25274    }
25275    #[inline]
25276    fn cast(syntax: SyntaxNode) -> Option<Self> {
25277        if Self::can_cast(syntax.kind()) {
25278            Some(Self { syntax })
25279        } else {
25280            None
25281        }
25282    }
25283    #[inline]
25284    fn syntax(&self) -> &SyntaxNode {
25285        &self.syntax
25286    }
25287}
25288impl AstNode for PartitionForValuesWith {
25289    #[inline]
25290    fn can_cast(kind: SyntaxKind) -> bool {
25291        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
25292    }
25293    #[inline]
25294    fn cast(syntax: SyntaxNode) -> Option<Self> {
25295        if Self::can_cast(syntax.kind()) {
25296            Some(Self { syntax })
25297        } else {
25298            None
25299        }
25300    }
25301    #[inline]
25302    fn syntax(&self) -> &SyntaxNode {
25303        &self.syntax
25304    }
25305}
25306impl AstNode for PartitionItem {
25307    #[inline]
25308    fn can_cast(kind: SyntaxKind) -> bool {
25309        kind == SyntaxKind::PARTITION_ITEM
25310    }
25311    #[inline]
25312    fn cast(syntax: SyntaxNode) -> Option<Self> {
25313        if Self::can_cast(syntax.kind()) {
25314            Some(Self { syntax })
25315        } else {
25316            None
25317        }
25318    }
25319    #[inline]
25320    fn syntax(&self) -> &SyntaxNode {
25321        &self.syntax
25322    }
25323}
25324impl AstNode for PartitionItemList {
25325    #[inline]
25326    fn can_cast(kind: SyntaxKind) -> bool {
25327        kind == SyntaxKind::PARTITION_ITEM_LIST
25328    }
25329    #[inline]
25330    fn cast(syntax: SyntaxNode) -> Option<Self> {
25331        if Self::can_cast(syntax.kind()) {
25332            Some(Self { syntax })
25333        } else {
25334            None
25335        }
25336    }
25337    #[inline]
25338    fn syntax(&self) -> &SyntaxNode {
25339        &self.syntax
25340    }
25341}
25342impl AstNode for PartitionList {
25343    #[inline]
25344    fn can_cast(kind: SyntaxKind) -> bool {
25345        kind == SyntaxKind::PARTITION_LIST
25346    }
25347    #[inline]
25348    fn cast(syntax: SyntaxNode) -> Option<Self> {
25349        if Self::can_cast(syntax.kind()) {
25350            Some(Self { syntax })
25351        } else {
25352            None
25353        }
25354    }
25355    #[inline]
25356    fn syntax(&self) -> &SyntaxNode {
25357        &self.syntax
25358    }
25359}
25360impl AstNode for PartitionOf {
25361    #[inline]
25362    fn can_cast(kind: SyntaxKind) -> bool {
25363        kind == SyntaxKind::PARTITION_OF
25364    }
25365    #[inline]
25366    fn cast(syntax: SyntaxNode) -> Option<Self> {
25367        if Self::can_cast(syntax.kind()) {
25368            Some(Self { syntax })
25369        } else {
25370            None
25371        }
25372    }
25373    #[inline]
25374    fn syntax(&self) -> &SyntaxNode {
25375        &self.syntax
25376    }
25377}
25378impl AstNode for Path {
25379    #[inline]
25380    fn can_cast(kind: SyntaxKind) -> bool {
25381        kind == SyntaxKind::PATH
25382    }
25383    #[inline]
25384    fn cast(syntax: SyntaxNode) -> Option<Self> {
25385        if Self::can_cast(syntax.kind()) {
25386            Some(Self { syntax })
25387        } else {
25388            None
25389        }
25390    }
25391    #[inline]
25392    fn syntax(&self) -> &SyntaxNode {
25393        &self.syntax
25394    }
25395}
25396impl AstNode for PathSegment {
25397    #[inline]
25398    fn can_cast(kind: SyntaxKind) -> bool {
25399        kind == SyntaxKind::PATH_SEGMENT
25400    }
25401    #[inline]
25402    fn cast(syntax: SyntaxNode) -> Option<Self> {
25403        if Self::can_cast(syntax.kind()) {
25404            Some(Self { syntax })
25405        } else {
25406            None
25407        }
25408    }
25409    #[inline]
25410    fn syntax(&self) -> &SyntaxNode {
25411        &self.syntax
25412    }
25413}
25414impl AstNode for PathType {
25415    #[inline]
25416    fn can_cast(kind: SyntaxKind) -> bool {
25417        kind == SyntaxKind::PATH_TYPE
25418    }
25419    #[inline]
25420    fn cast(syntax: SyntaxNode) -> Option<Self> {
25421        if Self::can_cast(syntax.kind()) {
25422            Some(Self { syntax })
25423        } else {
25424            None
25425        }
25426    }
25427    #[inline]
25428    fn syntax(&self) -> &SyntaxNode {
25429        &self.syntax
25430    }
25431}
25432impl AstNode for PercentType {
25433    #[inline]
25434    fn can_cast(kind: SyntaxKind) -> bool {
25435        kind == SyntaxKind::PERCENT_TYPE
25436    }
25437    #[inline]
25438    fn cast(syntax: SyntaxNode) -> Option<Self> {
25439        if Self::can_cast(syntax.kind()) {
25440            Some(Self { syntax })
25441        } else {
25442            None
25443        }
25444    }
25445    #[inline]
25446    fn syntax(&self) -> &SyntaxNode {
25447        &self.syntax
25448    }
25449}
25450impl AstNode for PercentTypeClause {
25451    #[inline]
25452    fn can_cast(kind: SyntaxKind) -> bool {
25453        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
25454    }
25455    #[inline]
25456    fn cast(syntax: SyntaxNode) -> Option<Self> {
25457        if Self::can_cast(syntax.kind()) {
25458            Some(Self { syntax })
25459        } else {
25460            None
25461        }
25462    }
25463    #[inline]
25464    fn syntax(&self) -> &SyntaxNode {
25465        &self.syntax
25466    }
25467}
25468impl AstNode for PositionFn {
25469    #[inline]
25470    fn can_cast(kind: SyntaxKind) -> bool {
25471        kind == SyntaxKind::POSITION_FN
25472    }
25473    #[inline]
25474    fn cast(syntax: SyntaxNode) -> Option<Self> {
25475        if Self::can_cast(syntax.kind()) {
25476            Some(Self { syntax })
25477        } else {
25478            None
25479        }
25480    }
25481    #[inline]
25482    fn syntax(&self) -> &SyntaxNode {
25483        &self.syntax
25484    }
25485}
25486impl AstNode for PostfixExpr {
25487    #[inline]
25488    fn can_cast(kind: SyntaxKind) -> bool {
25489        kind == SyntaxKind::POSTFIX_EXPR
25490    }
25491    #[inline]
25492    fn cast(syntax: SyntaxNode) -> Option<Self> {
25493        if Self::can_cast(syntax.kind()) {
25494            Some(Self { syntax })
25495        } else {
25496            None
25497        }
25498    }
25499    #[inline]
25500    fn syntax(&self) -> &SyntaxNode {
25501        &self.syntax
25502    }
25503}
25504impl AstNode for PrefixExpr {
25505    #[inline]
25506    fn can_cast(kind: SyntaxKind) -> bool {
25507        kind == SyntaxKind::PREFIX_EXPR
25508    }
25509    #[inline]
25510    fn cast(syntax: SyntaxNode) -> Option<Self> {
25511        if Self::can_cast(syntax.kind()) {
25512            Some(Self { syntax })
25513        } else {
25514            None
25515        }
25516    }
25517    #[inline]
25518    fn syntax(&self) -> &SyntaxNode {
25519        &self.syntax
25520    }
25521}
25522impl AstNode for Prepare {
25523    #[inline]
25524    fn can_cast(kind: SyntaxKind) -> bool {
25525        kind == SyntaxKind::PREPARE
25526    }
25527    #[inline]
25528    fn cast(syntax: SyntaxNode) -> Option<Self> {
25529        if Self::can_cast(syntax.kind()) {
25530            Some(Self { syntax })
25531        } else {
25532            None
25533        }
25534    }
25535    #[inline]
25536    fn syntax(&self) -> &SyntaxNode {
25537        &self.syntax
25538    }
25539}
25540impl AstNode for PrepareTransaction {
25541    #[inline]
25542    fn can_cast(kind: SyntaxKind) -> bool {
25543        kind == SyntaxKind::PREPARE_TRANSACTION
25544    }
25545    #[inline]
25546    fn cast(syntax: SyntaxNode) -> Option<Self> {
25547        if Self::can_cast(syntax.kind()) {
25548            Some(Self { syntax })
25549        } else {
25550            None
25551        }
25552    }
25553    #[inline]
25554    fn syntax(&self) -> &SyntaxNode {
25555        &self.syntax
25556    }
25557}
25558impl AstNode for PreserveRows {
25559    #[inline]
25560    fn can_cast(kind: SyntaxKind) -> bool {
25561        kind == SyntaxKind::PRESERVE_ROWS
25562    }
25563    #[inline]
25564    fn cast(syntax: SyntaxNode) -> Option<Self> {
25565        if Self::can_cast(syntax.kind()) {
25566            Some(Self { syntax })
25567        } else {
25568            None
25569        }
25570    }
25571    #[inline]
25572    fn syntax(&self) -> &SyntaxNode {
25573        &self.syntax
25574    }
25575}
25576impl AstNode for PrimaryKeyConstraint {
25577    #[inline]
25578    fn can_cast(kind: SyntaxKind) -> bool {
25579        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
25580    }
25581    #[inline]
25582    fn cast(syntax: SyntaxNode) -> Option<Self> {
25583        if Self::can_cast(syntax.kind()) {
25584            Some(Self { syntax })
25585        } else {
25586            None
25587        }
25588    }
25589    #[inline]
25590    fn syntax(&self) -> &SyntaxNode {
25591        &self.syntax
25592    }
25593}
25594impl AstNode for PrivilegeTarget {
25595    #[inline]
25596    fn can_cast(kind: SyntaxKind) -> bool {
25597        kind == SyntaxKind::PRIVILEGE_TARGET
25598    }
25599    #[inline]
25600    fn cast(syntax: SyntaxNode) -> Option<Self> {
25601        if Self::can_cast(syntax.kind()) {
25602            Some(Self { syntax })
25603        } else {
25604            None
25605        }
25606    }
25607    #[inline]
25608    fn syntax(&self) -> &SyntaxNode {
25609        &self.syntax
25610    }
25611}
25612impl AstNode for Privileges {
25613    #[inline]
25614    fn can_cast(kind: SyntaxKind) -> bool {
25615        kind == SyntaxKind::PRIVILEGES
25616    }
25617    #[inline]
25618    fn cast(syntax: SyntaxNode) -> Option<Self> {
25619        if Self::can_cast(syntax.kind()) {
25620            Some(Self { syntax })
25621        } else {
25622            None
25623        }
25624    }
25625    #[inline]
25626    fn syntax(&self) -> &SyntaxNode {
25627        &self.syntax
25628    }
25629}
25630impl AstNode for PublicationObject {
25631    #[inline]
25632    fn can_cast(kind: SyntaxKind) -> bool {
25633        kind == SyntaxKind::PUBLICATION_OBJECT
25634    }
25635    #[inline]
25636    fn cast(syntax: SyntaxNode) -> Option<Self> {
25637        if Self::can_cast(syntax.kind()) {
25638            Some(Self { syntax })
25639        } else {
25640            None
25641        }
25642    }
25643    #[inline]
25644    fn syntax(&self) -> &SyntaxNode {
25645        &self.syntax
25646    }
25647}
25648impl AstNode for ReadCommitted {
25649    #[inline]
25650    fn can_cast(kind: SyntaxKind) -> bool {
25651        kind == SyntaxKind::READ_COMMITTED
25652    }
25653    #[inline]
25654    fn cast(syntax: SyntaxNode) -> Option<Self> {
25655        if Self::can_cast(syntax.kind()) {
25656            Some(Self { syntax })
25657        } else {
25658            None
25659        }
25660    }
25661    #[inline]
25662    fn syntax(&self) -> &SyntaxNode {
25663        &self.syntax
25664    }
25665}
25666impl AstNode for ReadOnly {
25667    #[inline]
25668    fn can_cast(kind: SyntaxKind) -> bool {
25669        kind == SyntaxKind::READ_ONLY
25670    }
25671    #[inline]
25672    fn cast(syntax: SyntaxNode) -> Option<Self> {
25673        if Self::can_cast(syntax.kind()) {
25674            Some(Self { syntax })
25675        } else {
25676            None
25677        }
25678    }
25679    #[inline]
25680    fn syntax(&self) -> &SyntaxNode {
25681        &self.syntax
25682    }
25683}
25684impl AstNode for ReadUncommitted {
25685    #[inline]
25686    fn can_cast(kind: SyntaxKind) -> bool {
25687        kind == SyntaxKind::READ_UNCOMMITTED
25688    }
25689    #[inline]
25690    fn cast(syntax: SyntaxNode) -> Option<Self> {
25691        if Self::can_cast(syntax.kind()) {
25692            Some(Self { syntax })
25693        } else {
25694            None
25695        }
25696    }
25697    #[inline]
25698    fn syntax(&self) -> &SyntaxNode {
25699        &self.syntax
25700    }
25701}
25702impl AstNode for ReadWrite {
25703    #[inline]
25704    fn can_cast(kind: SyntaxKind) -> bool {
25705        kind == SyntaxKind::READ_WRITE
25706    }
25707    #[inline]
25708    fn cast(syntax: SyntaxNode) -> Option<Self> {
25709        if Self::can_cast(syntax.kind()) {
25710            Some(Self { syntax })
25711        } else {
25712            None
25713        }
25714    }
25715    #[inline]
25716    fn syntax(&self) -> &SyntaxNode {
25717        &self.syntax
25718    }
25719}
25720impl AstNode for Reassign {
25721    #[inline]
25722    fn can_cast(kind: SyntaxKind) -> bool {
25723        kind == SyntaxKind::REASSIGN
25724    }
25725    #[inline]
25726    fn cast(syntax: SyntaxNode) -> Option<Self> {
25727        if Self::can_cast(syntax.kind()) {
25728            Some(Self { syntax })
25729        } else {
25730            None
25731        }
25732    }
25733    #[inline]
25734    fn syntax(&self) -> &SyntaxNode {
25735        &self.syntax
25736    }
25737}
25738impl AstNode for ReferencesConstraint {
25739    #[inline]
25740    fn can_cast(kind: SyntaxKind) -> bool {
25741        kind == SyntaxKind::REFERENCES_CONSTRAINT
25742    }
25743    #[inline]
25744    fn cast(syntax: SyntaxNode) -> Option<Self> {
25745        if Self::can_cast(syntax.kind()) {
25746            Some(Self { syntax })
25747        } else {
25748            None
25749        }
25750    }
25751    #[inline]
25752    fn syntax(&self) -> &SyntaxNode {
25753        &self.syntax
25754    }
25755}
25756impl AstNode for Referencing {
25757    #[inline]
25758    fn can_cast(kind: SyntaxKind) -> bool {
25759        kind == SyntaxKind::REFERENCING
25760    }
25761    #[inline]
25762    fn cast(syntax: SyntaxNode) -> Option<Self> {
25763        if Self::can_cast(syntax.kind()) {
25764            Some(Self { syntax })
25765        } else {
25766            None
25767        }
25768    }
25769    #[inline]
25770    fn syntax(&self) -> &SyntaxNode {
25771        &self.syntax
25772    }
25773}
25774impl AstNode for ReferencingTable {
25775    #[inline]
25776    fn can_cast(kind: SyntaxKind) -> bool {
25777        kind == SyntaxKind::REFERENCING_TABLE
25778    }
25779    #[inline]
25780    fn cast(syntax: SyntaxNode) -> Option<Self> {
25781        if Self::can_cast(syntax.kind()) {
25782            Some(Self { syntax })
25783        } else {
25784            None
25785        }
25786    }
25787    #[inline]
25788    fn syntax(&self) -> &SyntaxNode {
25789        &self.syntax
25790    }
25791}
25792impl AstNode for Refresh {
25793    #[inline]
25794    fn can_cast(kind: SyntaxKind) -> bool {
25795        kind == SyntaxKind::REFRESH
25796    }
25797    #[inline]
25798    fn cast(syntax: SyntaxNode) -> Option<Self> {
25799        if Self::can_cast(syntax.kind()) {
25800            Some(Self { syntax })
25801        } else {
25802            None
25803        }
25804    }
25805    #[inline]
25806    fn syntax(&self) -> &SyntaxNode {
25807        &self.syntax
25808    }
25809}
25810impl AstNode for RefreshCollationVersion {
25811    #[inline]
25812    fn can_cast(kind: SyntaxKind) -> bool {
25813        kind == SyntaxKind::REFRESH_COLLATION_VERSION
25814    }
25815    #[inline]
25816    fn cast(syntax: SyntaxNode) -> Option<Self> {
25817        if Self::can_cast(syntax.kind()) {
25818            Some(Self { syntax })
25819        } else {
25820            None
25821        }
25822    }
25823    #[inline]
25824    fn syntax(&self) -> &SyntaxNode {
25825        &self.syntax
25826    }
25827}
25828impl AstNode for RefreshVersion {
25829    #[inline]
25830    fn can_cast(kind: SyntaxKind) -> bool {
25831        kind == SyntaxKind::REFRESH_VERSION
25832    }
25833    #[inline]
25834    fn cast(syntax: SyntaxNode) -> Option<Self> {
25835        if Self::can_cast(syntax.kind()) {
25836            Some(Self { syntax })
25837        } else {
25838            None
25839        }
25840    }
25841    #[inline]
25842    fn syntax(&self) -> &SyntaxNode {
25843        &self.syntax
25844    }
25845}
25846impl AstNode for Reindex {
25847    #[inline]
25848    fn can_cast(kind: SyntaxKind) -> bool {
25849        kind == SyntaxKind::REINDEX
25850    }
25851    #[inline]
25852    fn cast(syntax: SyntaxNode) -> Option<Self> {
25853        if Self::can_cast(syntax.kind()) {
25854            Some(Self { syntax })
25855        } else {
25856            None
25857        }
25858    }
25859    #[inline]
25860    fn syntax(&self) -> &SyntaxNode {
25861        &self.syntax
25862    }
25863}
25864impl AstNode for RelationName {
25865    #[inline]
25866    fn can_cast(kind: SyntaxKind) -> bool {
25867        kind == SyntaxKind::RELATION_NAME
25868    }
25869    #[inline]
25870    fn cast(syntax: SyntaxNode) -> Option<Self> {
25871        if Self::can_cast(syntax.kind()) {
25872            Some(Self { syntax })
25873        } else {
25874            None
25875        }
25876    }
25877    #[inline]
25878    fn syntax(&self) -> &SyntaxNode {
25879        &self.syntax
25880    }
25881}
25882impl AstNode for ReleaseSavepoint {
25883    #[inline]
25884    fn can_cast(kind: SyntaxKind) -> bool {
25885        kind == SyntaxKind::RELEASE_SAVEPOINT
25886    }
25887    #[inline]
25888    fn cast(syntax: SyntaxNode) -> Option<Self> {
25889        if Self::can_cast(syntax.kind()) {
25890            Some(Self { syntax })
25891        } else {
25892            None
25893        }
25894    }
25895    #[inline]
25896    fn syntax(&self) -> &SyntaxNode {
25897        &self.syntax
25898    }
25899}
25900impl AstNode for RenameColumn {
25901    #[inline]
25902    fn can_cast(kind: SyntaxKind) -> bool {
25903        kind == SyntaxKind::RENAME_COLUMN
25904    }
25905    #[inline]
25906    fn cast(syntax: SyntaxNode) -> Option<Self> {
25907        if Self::can_cast(syntax.kind()) {
25908            Some(Self { syntax })
25909        } else {
25910            None
25911        }
25912    }
25913    #[inline]
25914    fn syntax(&self) -> &SyntaxNode {
25915        &self.syntax
25916    }
25917}
25918impl AstNode for RenameConstraint {
25919    #[inline]
25920    fn can_cast(kind: SyntaxKind) -> bool {
25921        kind == SyntaxKind::RENAME_CONSTRAINT
25922    }
25923    #[inline]
25924    fn cast(syntax: SyntaxNode) -> Option<Self> {
25925        if Self::can_cast(syntax.kind()) {
25926            Some(Self { syntax })
25927        } else {
25928            None
25929        }
25930    }
25931    #[inline]
25932    fn syntax(&self) -> &SyntaxNode {
25933        &self.syntax
25934    }
25935}
25936impl AstNode for RenameTo {
25937    #[inline]
25938    fn can_cast(kind: SyntaxKind) -> bool {
25939        kind == SyntaxKind::RENAME_TO
25940    }
25941    #[inline]
25942    fn cast(syntax: SyntaxNode) -> Option<Self> {
25943        if Self::can_cast(syntax.kind()) {
25944            Some(Self { syntax })
25945        } else {
25946            None
25947        }
25948    }
25949    #[inline]
25950    fn syntax(&self) -> &SyntaxNode {
25951        &self.syntax
25952    }
25953}
25954impl AstNode for RepeatableClause {
25955    #[inline]
25956    fn can_cast(kind: SyntaxKind) -> bool {
25957        kind == SyntaxKind::REPEATABLE_CLAUSE
25958    }
25959    #[inline]
25960    fn cast(syntax: SyntaxNode) -> Option<Self> {
25961        if Self::can_cast(syntax.kind()) {
25962            Some(Self { syntax })
25963        } else {
25964            None
25965        }
25966    }
25967    #[inline]
25968    fn syntax(&self) -> &SyntaxNode {
25969        &self.syntax
25970    }
25971}
25972impl AstNode for RepeatableRead {
25973    #[inline]
25974    fn can_cast(kind: SyntaxKind) -> bool {
25975        kind == SyntaxKind::REPEATABLE_READ
25976    }
25977    #[inline]
25978    fn cast(syntax: SyntaxNode) -> Option<Self> {
25979        if Self::can_cast(syntax.kind()) {
25980            Some(Self { syntax })
25981        } else {
25982            None
25983        }
25984    }
25985    #[inline]
25986    fn syntax(&self) -> &SyntaxNode {
25987        &self.syntax
25988    }
25989}
25990impl AstNode for ReplicaIdentity {
25991    #[inline]
25992    fn can_cast(kind: SyntaxKind) -> bool {
25993        kind == SyntaxKind::REPLICA_IDENTITY
25994    }
25995    #[inline]
25996    fn cast(syntax: SyntaxNode) -> Option<Self> {
25997        if Self::can_cast(syntax.kind()) {
25998            Some(Self { syntax })
25999        } else {
26000            None
26001        }
26002    }
26003    #[inline]
26004    fn syntax(&self) -> &SyntaxNode {
26005        &self.syntax
26006    }
26007}
26008impl AstNode for Reset {
26009    #[inline]
26010    fn can_cast(kind: SyntaxKind) -> bool {
26011        kind == SyntaxKind::RESET
26012    }
26013    #[inline]
26014    fn cast(syntax: SyntaxNode) -> Option<Self> {
26015        if Self::can_cast(syntax.kind()) {
26016            Some(Self { syntax })
26017        } else {
26018            None
26019        }
26020    }
26021    #[inline]
26022    fn syntax(&self) -> &SyntaxNode {
26023        &self.syntax
26024    }
26025}
26026impl AstNode for ResetConfigParam {
26027    #[inline]
26028    fn can_cast(kind: SyntaxKind) -> bool {
26029        kind == SyntaxKind::RESET_CONFIG_PARAM
26030    }
26031    #[inline]
26032    fn cast(syntax: SyntaxNode) -> Option<Self> {
26033        if Self::can_cast(syntax.kind()) {
26034            Some(Self { syntax })
26035        } else {
26036            None
26037        }
26038    }
26039    #[inline]
26040    fn syntax(&self) -> &SyntaxNode {
26041        &self.syntax
26042    }
26043}
26044impl AstNode for ResetFuncOption {
26045    #[inline]
26046    fn can_cast(kind: SyntaxKind) -> bool {
26047        kind == SyntaxKind::RESET_FUNC_OPTION
26048    }
26049    #[inline]
26050    fn cast(syntax: SyntaxNode) -> Option<Self> {
26051        if Self::can_cast(syntax.kind()) {
26052            Some(Self { syntax })
26053        } else {
26054            None
26055        }
26056    }
26057    #[inline]
26058    fn syntax(&self) -> &SyntaxNode {
26059        &self.syntax
26060    }
26061}
26062impl AstNode for ResetOptions {
26063    #[inline]
26064    fn can_cast(kind: SyntaxKind) -> bool {
26065        kind == SyntaxKind::RESET_OPTIONS
26066    }
26067    #[inline]
26068    fn cast(syntax: SyntaxNode) -> Option<Self> {
26069        if Self::can_cast(syntax.kind()) {
26070            Some(Self { syntax })
26071        } else {
26072            None
26073        }
26074    }
26075    #[inline]
26076    fn syntax(&self) -> &SyntaxNode {
26077        &self.syntax
26078    }
26079}
26080impl AstNode for ResetSessionAuth {
26081    #[inline]
26082    fn can_cast(kind: SyntaxKind) -> bool {
26083        kind == SyntaxKind::RESET_SESSION_AUTH
26084    }
26085    #[inline]
26086    fn cast(syntax: SyntaxNode) -> Option<Self> {
26087        if Self::can_cast(syntax.kind()) {
26088            Some(Self { syntax })
26089        } else {
26090            None
26091        }
26092    }
26093    #[inline]
26094    fn syntax(&self) -> &SyntaxNode {
26095        &self.syntax
26096    }
26097}
26098impl AstNode for Restart {
26099    #[inline]
26100    fn can_cast(kind: SyntaxKind) -> bool {
26101        kind == SyntaxKind::RESTART
26102    }
26103    #[inline]
26104    fn cast(syntax: SyntaxNode) -> Option<Self> {
26105        if Self::can_cast(syntax.kind()) {
26106            Some(Self { syntax })
26107        } else {
26108            None
26109        }
26110    }
26111    #[inline]
26112    fn syntax(&self) -> &SyntaxNode {
26113        &self.syntax
26114    }
26115}
26116impl AstNode for Restrict {
26117    #[inline]
26118    fn can_cast(kind: SyntaxKind) -> bool {
26119        kind == SyntaxKind::RESTRICT
26120    }
26121    #[inline]
26122    fn cast(syntax: SyntaxNode) -> Option<Self> {
26123        if Self::can_cast(syntax.kind()) {
26124            Some(Self { syntax })
26125        } else {
26126            None
26127        }
26128    }
26129    #[inline]
26130    fn syntax(&self) -> &SyntaxNode {
26131        &self.syntax
26132    }
26133}
26134impl AstNode for RetType {
26135    #[inline]
26136    fn can_cast(kind: SyntaxKind) -> bool {
26137        kind == SyntaxKind::RET_TYPE
26138    }
26139    #[inline]
26140    fn cast(syntax: SyntaxNode) -> Option<Self> {
26141        if Self::can_cast(syntax.kind()) {
26142            Some(Self { syntax })
26143        } else {
26144            None
26145        }
26146    }
26147    #[inline]
26148    fn syntax(&self) -> &SyntaxNode {
26149        &self.syntax
26150    }
26151}
26152impl AstNode for ReturnFuncOption {
26153    #[inline]
26154    fn can_cast(kind: SyntaxKind) -> bool {
26155        kind == SyntaxKind::RETURN_FUNC_OPTION
26156    }
26157    #[inline]
26158    fn cast(syntax: SyntaxNode) -> Option<Self> {
26159        if Self::can_cast(syntax.kind()) {
26160            Some(Self { syntax })
26161        } else {
26162            None
26163        }
26164    }
26165    #[inline]
26166    fn syntax(&self) -> &SyntaxNode {
26167        &self.syntax
26168    }
26169}
26170impl AstNode for ReturningClause {
26171    #[inline]
26172    fn can_cast(kind: SyntaxKind) -> bool {
26173        kind == SyntaxKind::RETURNING_CLAUSE
26174    }
26175    #[inline]
26176    fn cast(syntax: SyntaxNode) -> Option<Self> {
26177        if Self::can_cast(syntax.kind()) {
26178            Some(Self { syntax })
26179        } else {
26180            None
26181        }
26182    }
26183    #[inline]
26184    fn syntax(&self) -> &SyntaxNode {
26185        &self.syntax
26186    }
26187}
26188impl AstNode for ReturningOption {
26189    #[inline]
26190    fn can_cast(kind: SyntaxKind) -> bool {
26191        kind == SyntaxKind::RETURNING_OPTION
26192    }
26193    #[inline]
26194    fn cast(syntax: SyntaxNode) -> Option<Self> {
26195        if Self::can_cast(syntax.kind()) {
26196            Some(Self { syntax })
26197        } else {
26198            None
26199        }
26200    }
26201    #[inline]
26202    fn syntax(&self) -> &SyntaxNode {
26203        &self.syntax
26204    }
26205}
26206impl AstNode for ReturningOptionList {
26207    #[inline]
26208    fn can_cast(kind: SyntaxKind) -> bool {
26209        kind == SyntaxKind::RETURNING_OPTION_LIST
26210    }
26211    #[inline]
26212    fn cast(syntax: SyntaxNode) -> Option<Self> {
26213        if Self::can_cast(syntax.kind()) {
26214            Some(Self { syntax })
26215        } else {
26216            None
26217        }
26218    }
26219    #[inline]
26220    fn syntax(&self) -> &SyntaxNode {
26221        &self.syntax
26222    }
26223}
26224impl AstNode for Revoke {
26225    #[inline]
26226    fn can_cast(kind: SyntaxKind) -> bool {
26227        kind == SyntaxKind::REVOKE
26228    }
26229    #[inline]
26230    fn cast(syntax: SyntaxNode) -> Option<Self> {
26231        if Self::can_cast(syntax.kind()) {
26232            Some(Self { syntax })
26233        } else {
26234            None
26235        }
26236    }
26237    #[inline]
26238    fn syntax(&self) -> &SyntaxNode {
26239        &self.syntax
26240    }
26241}
26242impl AstNode for RevokeCommand {
26243    #[inline]
26244    fn can_cast(kind: SyntaxKind) -> bool {
26245        kind == SyntaxKind::REVOKE_COMMAND
26246    }
26247    #[inline]
26248    fn cast(syntax: SyntaxNode) -> Option<Self> {
26249        if Self::can_cast(syntax.kind()) {
26250            Some(Self { syntax })
26251        } else {
26252            None
26253        }
26254    }
26255    #[inline]
26256    fn syntax(&self) -> &SyntaxNode {
26257        &self.syntax
26258    }
26259}
26260impl AstNode for RevokeCommandList {
26261    #[inline]
26262    fn can_cast(kind: SyntaxKind) -> bool {
26263        kind == SyntaxKind::REVOKE_COMMAND_LIST
26264    }
26265    #[inline]
26266    fn cast(syntax: SyntaxNode) -> Option<Self> {
26267        if Self::can_cast(syntax.kind()) {
26268            Some(Self { syntax })
26269        } else {
26270            None
26271        }
26272    }
26273    #[inline]
26274    fn syntax(&self) -> &SyntaxNode {
26275        &self.syntax
26276    }
26277}
26278impl AstNode for RevokeDefaultPrivileges {
26279    #[inline]
26280    fn can_cast(kind: SyntaxKind) -> bool {
26281        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
26282    }
26283    #[inline]
26284    fn cast(syntax: SyntaxNode) -> Option<Self> {
26285        if Self::can_cast(syntax.kind()) {
26286            Some(Self { syntax })
26287        } else {
26288            None
26289        }
26290    }
26291    #[inline]
26292    fn syntax(&self) -> &SyntaxNode {
26293        &self.syntax
26294    }
26295}
26296impl AstNode for Role {
26297    #[inline]
26298    fn can_cast(kind: SyntaxKind) -> bool {
26299        kind == SyntaxKind::ROLE
26300    }
26301    #[inline]
26302    fn cast(syntax: SyntaxNode) -> Option<Self> {
26303        if Self::can_cast(syntax.kind()) {
26304            Some(Self { syntax })
26305        } else {
26306            None
26307        }
26308    }
26309    #[inline]
26310    fn syntax(&self) -> &SyntaxNode {
26311        &self.syntax
26312    }
26313}
26314impl AstNode for RoleOption {
26315    #[inline]
26316    fn can_cast(kind: SyntaxKind) -> bool {
26317        kind == SyntaxKind::ROLE_OPTION
26318    }
26319    #[inline]
26320    fn cast(syntax: SyntaxNode) -> Option<Self> {
26321        if Self::can_cast(syntax.kind()) {
26322            Some(Self { syntax })
26323        } else {
26324            None
26325        }
26326    }
26327    #[inline]
26328    fn syntax(&self) -> &SyntaxNode {
26329        &self.syntax
26330    }
26331}
26332impl AstNode for RoleOptionList {
26333    #[inline]
26334    fn can_cast(kind: SyntaxKind) -> bool {
26335        kind == SyntaxKind::ROLE_OPTION_LIST
26336    }
26337    #[inline]
26338    fn cast(syntax: SyntaxNode) -> Option<Self> {
26339        if Self::can_cast(syntax.kind()) {
26340            Some(Self { syntax })
26341        } else {
26342            None
26343        }
26344    }
26345    #[inline]
26346    fn syntax(&self) -> &SyntaxNode {
26347        &self.syntax
26348    }
26349}
26350impl AstNode for RoleRef {
26351    #[inline]
26352    fn can_cast(kind: SyntaxKind) -> bool {
26353        kind == SyntaxKind::ROLE_REF
26354    }
26355    #[inline]
26356    fn cast(syntax: SyntaxNode) -> Option<Self> {
26357        if Self::can_cast(syntax.kind()) {
26358            Some(Self { syntax })
26359        } else {
26360            None
26361        }
26362    }
26363    #[inline]
26364    fn syntax(&self) -> &SyntaxNode {
26365        &self.syntax
26366    }
26367}
26368impl AstNode for RoleRefList {
26369    #[inline]
26370    fn can_cast(kind: SyntaxKind) -> bool {
26371        kind == SyntaxKind::ROLE_REF_LIST
26372    }
26373    #[inline]
26374    fn cast(syntax: SyntaxNode) -> Option<Self> {
26375        if Self::can_cast(syntax.kind()) {
26376            Some(Self { syntax })
26377        } else {
26378            None
26379        }
26380    }
26381    #[inline]
26382    fn syntax(&self) -> &SyntaxNode {
26383        &self.syntax
26384    }
26385}
26386impl AstNode for Rollback {
26387    #[inline]
26388    fn can_cast(kind: SyntaxKind) -> bool {
26389        kind == SyntaxKind::ROLLBACK
26390    }
26391    #[inline]
26392    fn cast(syntax: SyntaxNode) -> Option<Self> {
26393        if Self::can_cast(syntax.kind()) {
26394            Some(Self { syntax })
26395        } else {
26396            None
26397        }
26398    }
26399    #[inline]
26400    fn syntax(&self) -> &SyntaxNode {
26401        &self.syntax
26402    }
26403}
26404impl AstNode for Row {
26405    #[inline]
26406    fn can_cast(kind: SyntaxKind) -> bool {
26407        kind == SyntaxKind::ROW
26408    }
26409    #[inline]
26410    fn cast(syntax: SyntaxNode) -> Option<Self> {
26411        if Self::can_cast(syntax.kind()) {
26412            Some(Self { syntax })
26413        } else {
26414            None
26415        }
26416    }
26417    #[inline]
26418    fn syntax(&self) -> &SyntaxNode {
26419        &self.syntax
26420    }
26421}
26422impl AstNode for RowList {
26423    #[inline]
26424    fn can_cast(kind: SyntaxKind) -> bool {
26425        kind == SyntaxKind::ROW_LIST
26426    }
26427    #[inline]
26428    fn cast(syntax: SyntaxNode) -> Option<Self> {
26429        if Self::can_cast(syntax.kind()) {
26430            Some(Self { syntax })
26431        } else {
26432            None
26433        }
26434    }
26435    #[inline]
26436    fn syntax(&self) -> &SyntaxNode {
26437        &self.syntax
26438    }
26439}
26440impl AstNode for RowsFuncOption {
26441    #[inline]
26442    fn can_cast(kind: SyntaxKind) -> bool {
26443        kind == SyntaxKind::ROWS_FUNC_OPTION
26444    }
26445    #[inline]
26446    fn cast(syntax: SyntaxNode) -> Option<Self> {
26447        if Self::can_cast(syntax.kind()) {
26448            Some(Self { syntax })
26449        } else {
26450            None
26451        }
26452    }
26453    #[inline]
26454    fn syntax(&self) -> &SyntaxNode {
26455        &self.syntax
26456    }
26457}
26458impl AstNode for Savepoint {
26459    #[inline]
26460    fn can_cast(kind: SyntaxKind) -> bool {
26461        kind == SyntaxKind::SAVEPOINT
26462    }
26463    #[inline]
26464    fn cast(syntax: SyntaxNode) -> Option<Self> {
26465        if Self::can_cast(syntax.kind()) {
26466            Some(Self { syntax })
26467        } else {
26468            None
26469        }
26470    }
26471    #[inline]
26472    fn syntax(&self) -> &SyntaxNode {
26473        &self.syntax
26474    }
26475}
26476impl AstNode for SecurityFuncOption {
26477    #[inline]
26478    fn can_cast(kind: SyntaxKind) -> bool {
26479        kind == SyntaxKind::SECURITY_FUNC_OPTION
26480    }
26481    #[inline]
26482    fn cast(syntax: SyntaxNode) -> Option<Self> {
26483        if Self::can_cast(syntax.kind()) {
26484            Some(Self { syntax })
26485        } else {
26486            None
26487        }
26488    }
26489    #[inline]
26490    fn syntax(&self) -> &SyntaxNode {
26491        &self.syntax
26492    }
26493}
26494impl AstNode for SecurityLabel {
26495    #[inline]
26496    fn can_cast(kind: SyntaxKind) -> bool {
26497        kind == SyntaxKind::SECURITY_LABEL
26498    }
26499    #[inline]
26500    fn cast(syntax: SyntaxNode) -> Option<Self> {
26501        if Self::can_cast(syntax.kind()) {
26502            Some(Self { syntax })
26503        } else {
26504            None
26505        }
26506    }
26507    #[inline]
26508    fn syntax(&self) -> &SyntaxNode {
26509        &self.syntax
26510    }
26511}
26512impl AstNode for Select {
26513    #[inline]
26514    fn can_cast(kind: SyntaxKind) -> bool {
26515        kind == SyntaxKind::SELECT
26516    }
26517    #[inline]
26518    fn cast(syntax: SyntaxNode) -> Option<Self> {
26519        if Self::can_cast(syntax.kind()) {
26520            Some(Self { syntax })
26521        } else {
26522            None
26523        }
26524    }
26525    #[inline]
26526    fn syntax(&self) -> &SyntaxNode {
26527        &self.syntax
26528    }
26529}
26530impl AstNode for SelectClause {
26531    #[inline]
26532    fn can_cast(kind: SyntaxKind) -> bool {
26533        kind == SyntaxKind::SELECT_CLAUSE
26534    }
26535    #[inline]
26536    fn cast(syntax: SyntaxNode) -> Option<Self> {
26537        if Self::can_cast(syntax.kind()) {
26538            Some(Self { syntax })
26539        } else {
26540            None
26541        }
26542    }
26543    #[inline]
26544    fn syntax(&self) -> &SyntaxNode {
26545        &self.syntax
26546    }
26547}
26548impl AstNode for SelectInto {
26549    #[inline]
26550    fn can_cast(kind: SyntaxKind) -> bool {
26551        kind == SyntaxKind::SELECT_INTO
26552    }
26553    #[inline]
26554    fn cast(syntax: SyntaxNode) -> Option<Self> {
26555        if Self::can_cast(syntax.kind()) {
26556            Some(Self { syntax })
26557        } else {
26558            None
26559        }
26560    }
26561    #[inline]
26562    fn syntax(&self) -> &SyntaxNode {
26563        &self.syntax
26564    }
26565}
26566impl AstNode for SequenceOption {
26567    #[inline]
26568    fn can_cast(kind: SyntaxKind) -> bool {
26569        kind == SyntaxKind::SEQUENCE_OPTION
26570    }
26571    #[inline]
26572    fn cast(syntax: SyntaxNode) -> Option<Self> {
26573        if Self::can_cast(syntax.kind()) {
26574            Some(Self { syntax })
26575        } else {
26576            None
26577        }
26578    }
26579    #[inline]
26580    fn syntax(&self) -> &SyntaxNode {
26581        &self.syntax
26582    }
26583}
26584impl AstNode for SequenceOptionList {
26585    #[inline]
26586    fn can_cast(kind: SyntaxKind) -> bool {
26587        kind == SyntaxKind::SEQUENCE_OPTION_LIST
26588    }
26589    #[inline]
26590    fn cast(syntax: SyntaxNode) -> Option<Self> {
26591        if Self::can_cast(syntax.kind()) {
26592            Some(Self { syntax })
26593        } else {
26594            None
26595        }
26596    }
26597    #[inline]
26598    fn syntax(&self) -> &SyntaxNode {
26599        &self.syntax
26600    }
26601}
26602impl AstNode for Serializable {
26603    #[inline]
26604    fn can_cast(kind: SyntaxKind) -> bool {
26605        kind == SyntaxKind::SERIALIZABLE
26606    }
26607    #[inline]
26608    fn cast(syntax: SyntaxNode) -> Option<Self> {
26609        if Self::can_cast(syntax.kind()) {
26610            Some(Self { syntax })
26611        } else {
26612            None
26613        }
26614    }
26615    #[inline]
26616    fn syntax(&self) -> &SyntaxNode {
26617        &self.syntax
26618    }
26619}
26620impl AstNode for ServerName {
26621    #[inline]
26622    fn can_cast(kind: SyntaxKind) -> bool {
26623        kind == SyntaxKind::SERVER_NAME
26624    }
26625    #[inline]
26626    fn cast(syntax: SyntaxNode) -> Option<Self> {
26627        if Self::can_cast(syntax.kind()) {
26628            Some(Self { syntax })
26629        } else {
26630            None
26631        }
26632    }
26633    #[inline]
26634    fn syntax(&self) -> &SyntaxNode {
26635        &self.syntax
26636    }
26637}
26638impl AstNode for Set {
26639    #[inline]
26640    fn can_cast(kind: SyntaxKind) -> bool {
26641        kind == SyntaxKind::SET
26642    }
26643    #[inline]
26644    fn cast(syntax: SyntaxNode) -> Option<Self> {
26645        if Self::can_cast(syntax.kind()) {
26646            Some(Self { syntax })
26647        } else {
26648            None
26649        }
26650    }
26651    #[inline]
26652    fn syntax(&self) -> &SyntaxNode {
26653        &self.syntax
26654    }
26655}
26656impl AstNode for SetAccessMethod {
26657    #[inline]
26658    fn can_cast(kind: SyntaxKind) -> bool {
26659        kind == SyntaxKind::SET_ACCESS_METHOD
26660    }
26661    #[inline]
26662    fn cast(syntax: SyntaxNode) -> Option<Self> {
26663        if Self::can_cast(syntax.kind()) {
26664            Some(Self { syntax })
26665        } else {
26666            None
26667        }
26668    }
26669    #[inline]
26670    fn syntax(&self) -> &SyntaxNode {
26671        &self.syntax
26672    }
26673}
26674impl AstNode for SetClause {
26675    #[inline]
26676    fn can_cast(kind: SyntaxKind) -> bool {
26677        kind == SyntaxKind::SET_CLAUSE
26678    }
26679    #[inline]
26680    fn cast(syntax: SyntaxNode) -> Option<Self> {
26681        if Self::can_cast(syntax.kind()) {
26682            Some(Self { syntax })
26683        } else {
26684            None
26685        }
26686    }
26687    #[inline]
26688    fn syntax(&self) -> &SyntaxNode {
26689        &self.syntax
26690    }
26691}
26692impl AstNode for SetColumnList {
26693    #[inline]
26694    fn can_cast(kind: SyntaxKind) -> bool {
26695        kind == SyntaxKind::SET_COLUMN_LIST
26696    }
26697    #[inline]
26698    fn cast(syntax: SyntaxNode) -> Option<Self> {
26699        if Self::can_cast(syntax.kind()) {
26700            Some(Self { syntax })
26701        } else {
26702            None
26703        }
26704    }
26705    #[inline]
26706    fn syntax(&self) -> &SyntaxNode {
26707        &self.syntax
26708    }
26709}
26710impl AstNode for SetCompression {
26711    #[inline]
26712    fn can_cast(kind: SyntaxKind) -> bool {
26713        kind == SyntaxKind::SET_COMPRESSION
26714    }
26715    #[inline]
26716    fn cast(syntax: SyntaxNode) -> Option<Self> {
26717        if Self::can_cast(syntax.kind()) {
26718            Some(Self { syntax })
26719        } else {
26720            None
26721        }
26722    }
26723    #[inline]
26724    fn syntax(&self) -> &SyntaxNode {
26725        &self.syntax
26726    }
26727}
26728impl AstNode for SetConfigParam {
26729    #[inline]
26730    fn can_cast(kind: SyntaxKind) -> bool {
26731        kind == SyntaxKind::SET_CONFIG_PARAM
26732    }
26733    #[inline]
26734    fn cast(syntax: SyntaxNode) -> Option<Self> {
26735        if Self::can_cast(syntax.kind()) {
26736            Some(Self { syntax })
26737        } else {
26738            None
26739        }
26740    }
26741    #[inline]
26742    fn syntax(&self) -> &SyntaxNode {
26743        &self.syntax
26744    }
26745}
26746impl AstNode for SetConstraints {
26747    #[inline]
26748    fn can_cast(kind: SyntaxKind) -> bool {
26749        kind == SyntaxKind::SET_CONSTRAINTS
26750    }
26751    #[inline]
26752    fn cast(syntax: SyntaxNode) -> Option<Self> {
26753        if Self::can_cast(syntax.kind()) {
26754            Some(Self { syntax })
26755        } else {
26756            None
26757        }
26758    }
26759    #[inline]
26760    fn syntax(&self) -> &SyntaxNode {
26761        &self.syntax
26762    }
26763}
26764impl AstNode for SetDefault {
26765    #[inline]
26766    fn can_cast(kind: SyntaxKind) -> bool {
26767        kind == SyntaxKind::SET_DEFAULT
26768    }
26769    #[inline]
26770    fn cast(syntax: SyntaxNode) -> Option<Self> {
26771        if Self::can_cast(syntax.kind()) {
26772            Some(Self { syntax })
26773        } else {
26774            None
26775        }
26776    }
26777    #[inline]
26778    fn syntax(&self) -> &SyntaxNode {
26779        &self.syntax
26780    }
26781}
26782impl AstNode for SetDefaultColumns {
26783    #[inline]
26784    fn can_cast(kind: SyntaxKind) -> bool {
26785        kind == SyntaxKind::SET_DEFAULT_COLUMNS
26786    }
26787    #[inline]
26788    fn cast(syntax: SyntaxNode) -> Option<Self> {
26789        if Self::can_cast(syntax.kind()) {
26790            Some(Self { syntax })
26791        } else {
26792            None
26793        }
26794    }
26795    #[inline]
26796    fn syntax(&self) -> &SyntaxNode {
26797        &self.syntax
26798    }
26799}
26800impl AstNode for SetExpr {
26801    #[inline]
26802    fn can_cast(kind: SyntaxKind) -> bool {
26803        kind == SyntaxKind::SET_EXPR
26804    }
26805    #[inline]
26806    fn cast(syntax: SyntaxNode) -> Option<Self> {
26807        if Self::can_cast(syntax.kind()) {
26808            Some(Self { syntax })
26809        } else {
26810            None
26811        }
26812    }
26813    #[inline]
26814    fn syntax(&self) -> &SyntaxNode {
26815        &self.syntax
26816    }
26817}
26818impl AstNode for SetExprList {
26819    #[inline]
26820    fn can_cast(kind: SyntaxKind) -> bool {
26821        kind == SyntaxKind::SET_EXPR_LIST
26822    }
26823    #[inline]
26824    fn cast(syntax: SyntaxNode) -> Option<Self> {
26825        if Self::can_cast(syntax.kind()) {
26826            Some(Self { syntax })
26827        } else {
26828            None
26829        }
26830    }
26831    #[inline]
26832    fn syntax(&self) -> &SyntaxNode {
26833        &self.syntax
26834    }
26835}
26836impl AstNode for SetExpression {
26837    #[inline]
26838    fn can_cast(kind: SyntaxKind) -> bool {
26839        kind == SyntaxKind::SET_EXPRESSION
26840    }
26841    #[inline]
26842    fn cast(syntax: SyntaxNode) -> Option<Self> {
26843        if Self::can_cast(syntax.kind()) {
26844            Some(Self { syntax })
26845        } else {
26846            None
26847        }
26848    }
26849    #[inline]
26850    fn syntax(&self) -> &SyntaxNode {
26851        &self.syntax
26852    }
26853}
26854impl AstNode for SetFuncOption {
26855    #[inline]
26856    fn can_cast(kind: SyntaxKind) -> bool {
26857        kind == SyntaxKind::SET_FUNC_OPTION
26858    }
26859    #[inline]
26860    fn cast(syntax: SyntaxNode) -> Option<Self> {
26861        if Self::can_cast(syntax.kind()) {
26862            Some(Self { syntax })
26863        } else {
26864            None
26865        }
26866    }
26867    #[inline]
26868    fn syntax(&self) -> &SyntaxNode {
26869        &self.syntax
26870    }
26871}
26872impl AstNode for SetGenerated {
26873    #[inline]
26874    fn can_cast(kind: SyntaxKind) -> bool {
26875        kind == SyntaxKind::SET_GENERATED
26876    }
26877    #[inline]
26878    fn cast(syntax: SyntaxNode) -> Option<Self> {
26879        if Self::can_cast(syntax.kind()) {
26880            Some(Self { syntax })
26881        } else {
26882            None
26883        }
26884    }
26885    #[inline]
26886    fn syntax(&self) -> &SyntaxNode {
26887        &self.syntax
26888    }
26889}
26890impl AstNode for SetGeneratedOptions {
26891    #[inline]
26892    fn can_cast(kind: SyntaxKind) -> bool {
26893        kind == SyntaxKind::SET_GENERATED_OPTIONS
26894    }
26895    #[inline]
26896    fn cast(syntax: SyntaxNode) -> Option<Self> {
26897        if Self::can_cast(syntax.kind()) {
26898            Some(Self { syntax })
26899        } else {
26900            None
26901        }
26902    }
26903    #[inline]
26904    fn syntax(&self) -> &SyntaxNode {
26905        &self.syntax
26906    }
26907}
26908impl AstNode for SetLogged {
26909    #[inline]
26910    fn can_cast(kind: SyntaxKind) -> bool {
26911        kind == SyntaxKind::SET_LOGGED
26912    }
26913    #[inline]
26914    fn cast(syntax: SyntaxNode) -> Option<Self> {
26915        if Self::can_cast(syntax.kind()) {
26916            Some(Self { syntax })
26917        } else {
26918            None
26919        }
26920    }
26921    #[inline]
26922    fn syntax(&self) -> &SyntaxNode {
26923        &self.syntax
26924    }
26925}
26926impl AstNode for SetMultipleColumns {
26927    #[inline]
26928    fn can_cast(kind: SyntaxKind) -> bool {
26929        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
26930    }
26931    #[inline]
26932    fn cast(syntax: SyntaxNode) -> Option<Self> {
26933        if Self::can_cast(syntax.kind()) {
26934            Some(Self { syntax })
26935        } else {
26936            None
26937        }
26938    }
26939    #[inline]
26940    fn syntax(&self) -> &SyntaxNode {
26941        &self.syntax
26942    }
26943}
26944impl AstNode for SetNotNull {
26945    #[inline]
26946    fn can_cast(kind: SyntaxKind) -> bool {
26947        kind == SyntaxKind::SET_NOT_NULL
26948    }
26949    #[inline]
26950    fn cast(syntax: SyntaxNode) -> Option<Self> {
26951        if Self::can_cast(syntax.kind()) {
26952            Some(Self { syntax })
26953        } else {
26954            None
26955        }
26956    }
26957    #[inline]
26958    fn syntax(&self) -> &SyntaxNode {
26959        &self.syntax
26960    }
26961}
26962impl AstNode for SetNullColumns {
26963    #[inline]
26964    fn can_cast(kind: SyntaxKind) -> bool {
26965        kind == SyntaxKind::SET_NULL_COLUMNS
26966    }
26967    #[inline]
26968    fn cast(syntax: SyntaxNode) -> Option<Self> {
26969        if Self::can_cast(syntax.kind()) {
26970            Some(Self { syntax })
26971        } else {
26972            None
26973        }
26974    }
26975    #[inline]
26976    fn syntax(&self) -> &SyntaxNode {
26977        &self.syntax
26978    }
26979}
26980impl AstNode for SetOptions {
26981    #[inline]
26982    fn can_cast(kind: SyntaxKind) -> bool {
26983        kind == SyntaxKind::SET_OPTIONS
26984    }
26985    #[inline]
26986    fn cast(syntax: SyntaxNode) -> Option<Self> {
26987        if Self::can_cast(syntax.kind()) {
26988            Some(Self { syntax })
26989        } else {
26990            None
26991        }
26992    }
26993    #[inline]
26994    fn syntax(&self) -> &SyntaxNode {
26995        &self.syntax
26996    }
26997}
26998impl AstNode for SetOptionsList {
26999    #[inline]
27000    fn can_cast(kind: SyntaxKind) -> bool {
27001        kind == SyntaxKind::SET_OPTIONS_LIST
27002    }
27003    #[inline]
27004    fn cast(syntax: SyntaxNode) -> Option<Self> {
27005        if Self::can_cast(syntax.kind()) {
27006            Some(Self { syntax })
27007        } else {
27008            None
27009        }
27010    }
27011    #[inline]
27012    fn syntax(&self) -> &SyntaxNode {
27013        &self.syntax
27014    }
27015}
27016impl AstNode for SetRole {
27017    #[inline]
27018    fn can_cast(kind: SyntaxKind) -> bool {
27019        kind == SyntaxKind::SET_ROLE
27020    }
27021    #[inline]
27022    fn cast(syntax: SyntaxNode) -> Option<Self> {
27023        if Self::can_cast(syntax.kind()) {
27024            Some(Self { syntax })
27025        } else {
27026            None
27027        }
27028    }
27029    #[inline]
27030    fn syntax(&self) -> &SyntaxNode {
27031        &self.syntax
27032    }
27033}
27034impl AstNode for SetSchema {
27035    #[inline]
27036    fn can_cast(kind: SyntaxKind) -> bool {
27037        kind == SyntaxKind::SET_SCHEMA
27038    }
27039    #[inline]
27040    fn cast(syntax: SyntaxNode) -> Option<Self> {
27041        if Self::can_cast(syntax.kind()) {
27042            Some(Self { syntax })
27043        } else {
27044            None
27045        }
27046    }
27047    #[inline]
27048    fn syntax(&self) -> &SyntaxNode {
27049        &self.syntax
27050    }
27051}
27052impl AstNode for SetSequenceOption {
27053    #[inline]
27054    fn can_cast(kind: SyntaxKind) -> bool {
27055        kind == SyntaxKind::SET_SEQUENCE_OPTION
27056    }
27057    #[inline]
27058    fn cast(syntax: SyntaxNode) -> Option<Self> {
27059        if Self::can_cast(syntax.kind()) {
27060            Some(Self { syntax })
27061        } else {
27062            None
27063        }
27064    }
27065    #[inline]
27066    fn syntax(&self) -> &SyntaxNode {
27067        &self.syntax
27068    }
27069}
27070impl AstNode for SetSessionAuth {
27071    #[inline]
27072    fn can_cast(kind: SyntaxKind) -> bool {
27073        kind == SyntaxKind::SET_SESSION_AUTH
27074    }
27075    #[inline]
27076    fn cast(syntax: SyntaxNode) -> Option<Self> {
27077        if Self::can_cast(syntax.kind()) {
27078            Some(Self { syntax })
27079        } else {
27080            None
27081        }
27082    }
27083    #[inline]
27084    fn syntax(&self) -> &SyntaxNode {
27085        &self.syntax
27086    }
27087}
27088impl AstNode for SetSingleColumn {
27089    #[inline]
27090    fn can_cast(kind: SyntaxKind) -> bool {
27091        kind == SyntaxKind::SET_SINGLE_COLUMN
27092    }
27093    #[inline]
27094    fn cast(syntax: SyntaxNode) -> Option<Self> {
27095        if Self::can_cast(syntax.kind()) {
27096            Some(Self { syntax })
27097        } else {
27098            None
27099        }
27100    }
27101    #[inline]
27102    fn syntax(&self) -> &SyntaxNode {
27103        &self.syntax
27104    }
27105}
27106impl AstNode for SetStatistics {
27107    #[inline]
27108    fn can_cast(kind: SyntaxKind) -> bool {
27109        kind == SyntaxKind::SET_STATISTICS
27110    }
27111    #[inline]
27112    fn cast(syntax: SyntaxNode) -> Option<Self> {
27113        if Self::can_cast(syntax.kind()) {
27114            Some(Self { syntax })
27115        } else {
27116            None
27117        }
27118    }
27119    #[inline]
27120    fn syntax(&self) -> &SyntaxNode {
27121        &self.syntax
27122    }
27123}
27124impl AstNode for SetStorage {
27125    #[inline]
27126    fn can_cast(kind: SyntaxKind) -> bool {
27127        kind == SyntaxKind::SET_STORAGE
27128    }
27129    #[inline]
27130    fn cast(syntax: SyntaxNode) -> Option<Self> {
27131        if Self::can_cast(syntax.kind()) {
27132            Some(Self { syntax })
27133        } else {
27134            None
27135        }
27136    }
27137    #[inline]
27138    fn syntax(&self) -> &SyntaxNode {
27139        &self.syntax
27140    }
27141}
27142impl AstNode for SetTablespace {
27143    #[inline]
27144    fn can_cast(kind: SyntaxKind) -> bool {
27145        kind == SyntaxKind::SET_TABLESPACE
27146    }
27147    #[inline]
27148    fn cast(syntax: SyntaxNode) -> Option<Self> {
27149        if Self::can_cast(syntax.kind()) {
27150            Some(Self { syntax })
27151        } else {
27152            None
27153        }
27154    }
27155    #[inline]
27156    fn syntax(&self) -> &SyntaxNode {
27157        &self.syntax
27158    }
27159}
27160impl AstNode for SetTransaction {
27161    #[inline]
27162    fn can_cast(kind: SyntaxKind) -> bool {
27163        kind == SyntaxKind::SET_TRANSACTION
27164    }
27165    #[inline]
27166    fn cast(syntax: SyntaxNode) -> Option<Self> {
27167        if Self::can_cast(syntax.kind()) {
27168            Some(Self { syntax })
27169        } else {
27170            None
27171        }
27172    }
27173    #[inline]
27174    fn syntax(&self) -> &SyntaxNode {
27175        &self.syntax
27176    }
27177}
27178impl AstNode for SetType {
27179    #[inline]
27180    fn can_cast(kind: SyntaxKind) -> bool {
27181        kind == SyntaxKind::SET_TYPE
27182    }
27183    #[inline]
27184    fn cast(syntax: SyntaxNode) -> Option<Self> {
27185        if Self::can_cast(syntax.kind()) {
27186            Some(Self { syntax })
27187        } else {
27188            None
27189        }
27190    }
27191    #[inline]
27192    fn syntax(&self) -> &SyntaxNode {
27193        &self.syntax
27194    }
27195}
27196impl AstNode for SetUnlogged {
27197    #[inline]
27198    fn can_cast(kind: SyntaxKind) -> bool {
27199        kind == SyntaxKind::SET_UNLOGGED
27200    }
27201    #[inline]
27202    fn cast(syntax: SyntaxNode) -> Option<Self> {
27203        if Self::can_cast(syntax.kind()) {
27204            Some(Self { syntax })
27205        } else {
27206            None
27207        }
27208    }
27209    #[inline]
27210    fn syntax(&self) -> &SyntaxNode {
27211        &self.syntax
27212    }
27213}
27214impl AstNode for SetWithoutCluster {
27215    #[inline]
27216    fn can_cast(kind: SyntaxKind) -> bool {
27217        kind == SyntaxKind::SET_WITHOUT_CLUSTER
27218    }
27219    #[inline]
27220    fn cast(syntax: SyntaxNode) -> Option<Self> {
27221        if Self::can_cast(syntax.kind()) {
27222            Some(Self { syntax })
27223        } else {
27224            None
27225        }
27226    }
27227    #[inline]
27228    fn syntax(&self) -> &SyntaxNode {
27229        &self.syntax
27230    }
27231}
27232impl AstNode for SetWithoutOids {
27233    #[inline]
27234    fn can_cast(kind: SyntaxKind) -> bool {
27235        kind == SyntaxKind::SET_WITHOUT_OIDS
27236    }
27237    #[inline]
27238    fn cast(syntax: SyntaxNode) -> Option<Self> {
27239        if Self::can_cast(syntax.kind()) {
27240            Some(Self { syntax })
27241        } else {
27242            None
27243        }
27244    }
27245    #[inline]
27246    fn syntax(&self) -> &SyntaxNode {
27247        &self.syntax
27248    }
27249}
27250impl AstNode for Show {
27251    #[inline]
27252    fn can_cast(kind: SyntaxKind) -> bool {
27253        kind == SyntaxKind::SHOW
27254    }
27255    #[inline]
27256    fn cast(syntax: SyntaxNode) -> Option<Self> {
27257        if Self::can_cast(syntax.kind()) {
27258            Some(Self { syntax })
27259        } else {
27260            None
27261        }
27262    }
27263    #[inline]
27264    fn syntax(&self) -> &SyntaxNode {
27265        &self.syntax
27266    }
27267}
27268impl AstNode for SimilarTo {
27269    #[inline]
27270    fn can_cast(kind: SyntaxKind) -> bool {
27271        kind == SyntaxKind::SIMILAR_TO
27272    }
27273    #[inline]
27274    fn cast(syntax: SyntaxNode) -> Option<Self> {
27275        if Self::can_cast(syntax.kind()) {
27276            Some(Self { syntax })
27277        } else {
27278            None
27279        }
27280    }
27281    #[inline]
27282    fn syntax(&self) -> &SyntaxNode {
27283        &self.syntax
27284    }
27285}
27286impl AstNode for SliceExpr {
27287    #[inline]
27288    fn can_cast(kind: SyntaxKind) -> bool {
27289        kind == SyntaxKind::SLICE_EXPR
27290    }
27291    #[inline]
27292    fn cast(syntax: SyntaxNode) -> Option<Self> {
27293        if Self::can_cast(syntax.kind()) {
27294            Some(Self { syntax })
27295        } else {
27296            None
27297        }
27298    }
27299    #[inline]
27300    fn syntax(&self) -> &SyntaxNode {
27301        &self.syntax
27302    }
27303}
27304impl AstNode for SomeFn {
27305    #[inline]
27306    fn can_cast(kind: SyntaxKind) -> bool {
27307        kind == SyntaxKind::SOME_FN
27308    }
27309    #[inline]
27310    fn cast(syntax: SyntaxNode) -> Option<Self> {
27311        if Self::can_cast(syntax.kind()) {
27312            Some(Self { syntax })
27313        } else {
27314            None
27315        }
27316    }
27317    #[inline]
27318    fn syntax(&self) -> &SyntaxNode {
27319        &self.syntax
27320    }
27321}
27322impl AstNode for SortAsc {
27323    #[inline]
27324    fn can_cast(kind: SyntaxKind) -> bool {
27325        kind == SyntaxKind::SORT_ASC
27326    }
27327    #[inline]
27328    fn cast(syntax: SyntaxNode) -> Option<Self> {
27329        if Self::can_cast(syntax.kind()) {
27330            Some(Self { syntax })
27331        } else {
27332            None
27333        }
27334    }
27335    #[inline]
27336    fn syntax(&self) -> &SyntaxNode {
27337        &self.syntax
27338    }
27339}
27340impl AstNode for SortBy {
27341    #[inline]
27342    fn can_cast(kind: SyntaxKind) -> bool {
27343        kind == SyntaxKind::SORT_BY
27344    }
27345    #[inline]
27346    fn cast(syntax: SyntaxNode) -> Option<Self> {
27347        if Self::can_cast(syntax.kind()) {
27348            Some(Self { syntax })
27349        } else {
27350            None
27351        }
27352    }
27353    #[inline]
27354    fn syntax(&self) -> &SyntaxNode {
27355        &self.syntax
27356    }
27357}
27358impl AstNode for SortByList {
27359    #[inline]
27360    fn can_cast(kind: SyntaxKind) -> bool {
27361        kind == SyntaxKind::SORT_BY_LIST
27362    }
27363    #[inline]
27364    fn cast(syntax: SyntaxNode) -> Option<Self> {
27365        if Self::can_cast(syntax.kind()) {
27366            Some(Self { syntax })
27367        } else {
27368            None
27369        }
27370    }
27371    #[inline]
27372    fn syntax(&self) -> &SyntaxNode {
27373        &self.syntax
27374    }
27375}
27376impl AstNode for SortDesc {
27377    #[inline]
27378    fn can_cast(kind: SyntaxKind) -> bool {
27379        kind == SyntaxKind::SORT_DESC
27380    }
27381    #[inline]
27382    fn cast(syntax: SyntaxNode) -> Option<Self> {
27383        if Self::can_cast(syntax.kind()) {
27384            Some(Self { syntax })
27385        } else {
27386            None
27387        }
27388    }
27389    #[inline]
27390    fn syntax(&self) -> &SyntaxNode {
27391        &self.syntax
27392    }
27393}
27394impl AstNode for SortUsing {
27395    #[inline]
27396    fn can_cast(kind: SyntaxKind) -> bool {
27397        kind == SyntaxKind::SORT_USING
27398    }
27399    #[inline]
27400    fn cast(syntax: SyntaxNode) -> Option<Self> {
27401        if Self::can_cast(syntax.kind()) {
27402            Some(Self { syntax })
27403        } else {
27404            None
27405        }
27406    }
27407    #[inline]
27408    fn syntax(&self) -> &SyntaxNode {
27409        &self.syntax
27410    }
27411}
27412impl AstNode for SourceFile {
27413    #[inline]
27414    fn can_cast(kind: SyntaxKind) -> bool {
27415        kind == SyntaxKind::SOURCE_FILE
27416    }
27417    #[inline]
27418    fn cast(syntax: SyntaxNode) -> Option<Self> {
27419        if Self::can_cast(syntax.kind()) {
27420            Some(Self { syntax })
27421        } else {
27422            None
27423        }
27424    }
27425    #[inline]
27426    fn syntax(&self) -> &SyntaxNode {
27427        &self.syntax
27428    }
27429}
27430impl AstNode for SplitPartition {
27431    #[inline]
27432    fn can_cast(kind: SyntaxKind) -> bool {
27433        kind == SyntaxKind::SPLIT_PARTITION
27434    }
27435    #[inline]
27436    fn cast(syntax: SyntaxNode) -> Option<Self> {
27437        if Self::can_cast(syntax.kind()) {
27438            Some(Self { syntax })
27439        } else {
27440            None
27441        }
27442    }
27443    #[inline]
27444    fn syntax(&self) -> &SyntaxNode {
27445        &self.syntax
27446    }
27447}
27448impl AstNode for Storage {
27449    #[inline]
27450    fn can_cast(kind: SyntaxKind) -> bool {
27451        kind == SyntaxKind::STORAGE
27452    }
27453    #[inline]
27454    fn cast(syntax: SyntaxNode) -> Option<Self> {
27455        if Self::can_cast(syntax.kind()) {
27456            Some(Self { syntax })
27457        } else {
27458            None
27459        }
27460    }
27461    #[inline]
27462    fn syntax(&self) -> &SyntaxNode {
27463        &self.syntax
27464    }
27465}
27466impl AstNode for StrictFuncOption {
27467    #[inline]
27468    fn can_cast(kind: SyntaxKind) -> bool {
27469        kind == SyntaxKind::STRICT_FUNC_OPTION
27470    }
27471    #[inline]
27472    fn cast(syntax: SyntaxNode) -> Option<Self> {
27473        if Self::can_cast(syntax.kind()) {
27474            Some(Self { syntax })
27475        } else {
27476            None
27477        }
27478    }
27479    #[inline]
27480    fn syntax(&self) -> &SyntaxNode {
27481        &self.syntax
27482    }
27483}
27484impl AstNode for SubstringFn {
27485    #[inline]
27486    fn can_cast(kind: SyntaxKind) -> bool {
27487        kind == SyntaxKind::SUBSTRING_FN
27488    }
27489    #[inline]
27490    fn cast(syntax: SyntaxNode) -> Option<Self> {
27491        if Self::can_cast(syntax.kind()) {
27492            Some(Self { syntax })
27493        } else {
27494            None
27495        }
27496    }
27497    #[inline]
27498    fn syntax(&self) -> &SyntaxNode {
27499        &self.syntax
27500    }
27501}
27502impl AstNode for SupportFuncOption {
27503    #[inline]
27504    fn can_cast(kind: SyntaxKind) -> bool {
27505        kind == SyntaxKind::SUPPORT_FUNC_OPTION
27506    }
27507    #[inline]
27508    fn cast(syntax: SyntaxNode) -> Option<Self> {
27509        if Self::can_cast(syntax.kind()) {
27510            Some(Self { syntax })
27511        } else {
27512            None
27513        }
27514    }
27515    #[inline]
27516    fn syntax(&self) -> &SyntaxNode {
27517        &self.syntax
27518    }
27519}
27520impl AstNode for Table {
27521    #[inline]
27522    fn can_cast(kind: SyntaxKind) -> bool {
27523        kind == SyntaxKind::TABLE
27524    }
27525    #[inline]
27526    fn cast(syntax: SyntaxNode) -> Option<Self> {
27527        if Self::can_cast(syntax.kind()) {
27528            Some(Self { syntax })
27529        } else {
27530            None
27531        }
27532    }
27533    #[inline]
27534    fn syntax(&self) -> &SyntaxNode {
27535        &self.syntax
27536    }
27537}
27538impl AstNode for TableAndColumns {
27539    #[inline]
27540    fn can_cast(kind: SyntaxKind) -> bool {
27541        kind == SyntaxKind::TABLE_AND_COLUMNS
27542    }
27543    #[inline]
27544    fn cast(syntax: SyntaxNode) -> Option<Self> {
27545        if Self::can_cast(syntax.kind()) {
27546            Some(Self { syntax })
27547        } else {
27548            None
27549        }
27550    }
27551    #[inline]
27552    fn syntax(&self) -> &SyntaxNode {
27553        &self.syntax
27554    }
27555}
27556impl AstNode for TableAndColumnsList {
27557    #[inline]
27558    fn can_cast(kind: SyntaxKind) -> bool {
27559        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
27560    }
27561    #[inline]
27562    fn cast(syntax: SyntaxNode) -> Option<Self> {
27563        if Self::can_cast(syntax.kind()) {
27564            Some(Self { syntax })
27565        } else {
27566            None
27567        }
27568    }
27569    #[inline]
27570    fn syntax(&self) -> &SyntaxNode {
27571        &self.syntax
27572    }
27573}
27574impl AstNode for TableArgList {
27575    #[inline]
27576    fn can_cast(kind: SyntaxKind) -> bool {
27577        kind == SyntaxKind::TABLE_ARG_LIST
27578    }
27579    #[inline]
27580    fn cast(syntax: SyntaxNode) -> Option<Self> {
27581        if Self::can_cast(syntax.kind()) {
27582            Some(Self { syntax })
27583        } else {
27584            None
27585        }
27586    }
27587    #[inline]
27588    fn syntax(&self) -> &SyntaxNode {
27589        &self.syntax
27590    }
27591}
27592impl AstNode for TableList {
27593    #[inline]
27594    fn can_cast(kind: SyntaxKind) -> bool {
27595        kind == SyntaxKind::TABLE_LIST
27596    }
27597    #[inline]
27598    fn cast(syntax: SyntaxNode) -> Option<Self> {
27599        if Self::can_cast(syntax.kind()) {
27600            Some(Self { syntax })
27601        } else {
27602            None
27603        }
27604    }
27605    #[inline]
27606    fn syntax(&self) -> &SyntaxNode {
27607        &self.syntax
27608    }
27609}
27610impl AstNode for TablesampleClause {
27611    #[inline]
27612    fn can_cast(kind: SyntaxKind) -> bool {
27613        kind == SyntaxKind::TABLESAMPLE_CLAUSE
27614    }
27615    #[inline]
27616    fn cast(syntax: SyntaxNode) -> Option<Self> {
27617        if Self::can_cast(syntax.kind()) {
27618            Some(Self { syntax })
27619        } else {
27620            None
27621        }
27622    }
27623    #[inline]
27624    fn syntax(&self) -> &SyntaxNode {
27625        &self.syntax
27626    }
27627}
27628impl AstNode for Tablespace {
27629    #[inline]
27630    fn can_cast(kind: SyntaxKind) -> bool {
27631        kind == SyntaxKind::TABLESPACE
27632    }
27633    #[inline]
27634    fn cast(syntax: SyntaxNode) -> Option<Self> {
27635        if Self::can_cast(syntax.kind()) {
27636            Some(Self { syntax })
27637        } else {
27638            None
27639        }
27640    }
27641    #[inline]
27642    fn syntax(&self) -> &SyntaxNode {
27643        &self.syntax
27644    }
27645}
27646impl AstNode for Target {
27647    #[inline]
27648    fn can_cast(kind: SyntaxKind) -> bool {
27649        kind == SyntaxKind::TARGET
27650    }
27651    #[inline]
27652    fn cast(syntax: SyntaxNode) -> Option<Self> {
27653        if Self::can_cast(syntax.kind()) {
27654            Some(Self { syntax })
27655        } else {
27656            None
27657        }
27658    }
27659    #[inline]
27660    fn syntax(&self) -> &SyntaxNode {
27661        &self.syntax
27662    }
27663}
27664impl AstNode for TargetList {
27665    #[inline]
27666    fn can_cast(kind: SyntaxKind) -> bool {
27667        kind == SyntaxKind::TARGET_LIST
27668    }
27669    #[inline]
27670    fn cast(syntax: SyntaxNode) -> Option<Self> {
27671        if Self::can_cast(syntax.kind()) {
27672            Some(Self { syntax })
27673        } else {
27674            None
27675        }
27676    }
27677    #[inline]
27678    fn syntax(&self) -> &SyntaxNode {
27679        &self.syntax
27680    }
27681}
27682impl AstNode for TimeType {
27683    #[inline]
27684    fn can_cast(kind: SyntaxKind) -> bool {
27685        kind == SyntaxKind::TIME_TYPE
27686    }
27687    #[inline]
27688    fn cast(syntax: SyntaxNode) -> Option<Self> {
27689        if Self::can_cast(syntax.kind()) {
27690            Some(Self { syntax })
27691        } else {
27692            None
27693        }
27694    }
27695    #[inline]
27696    fn syntax(&self) -> &SyntaxNode {
27697        &self.syntax
27698    }
27699}
27700impl AstNode for Timing {
27701    #[inline]
27702    fn can_cast(kind: SyntaxKind) -> bool {
27703        kind == SyntaxKind::TIMING
27704    }
27705    #[inline]
27706    fn cast(syntax: SyntaxNode) -> Option<Self> {
27707        if Self::can_cast(syntax.kind()) {
27708            Some(Self { syntax })
27709        } else {
27710            None
27711        }
27712    }
27713    #[inline]
27714    fn syntax(&self) -> &SyntaxNode {
27715        &self.syntax
27716    }
27717}
27718impl AstNode for TransactionModeList {
27719    #[inline]
27720    fn can_cast(kind: SyntaxKind) -> bool {
27721        kind == SyntaxKind::TRANSACTION_MODE_LIST
27722    }
27723    #[inline]
27724    fn cast(syntax: SyntaxNode) -> Option<Self> {
27725        if Self::can_cast(syntax.kind()) {
27726            Some(Self { syntax })
27727        } else {
27728            None
27729        }
27730    }
27731    #[inline]
27732    fn syntax(&self) -> &SyntaxNode {
27733        &self.syntax
27734    }
27735}
27736impl AstNode for TransformFromFunc {
27737    #[inline]
27738    fn can_cast(kind: SyntaxKind) -> bool {
27739        kind == SyntaxKind::TRANSFORM_FROM_FUNC
27740    }
27741    #[inline]
27742    fn cast(syntax: SyntaxNode) -> Option<Self> {
27743        if Self::can_cast(syntax.kind()) {
27744            Some(Self { syntax })
27745        } else {
27746            None
27747        }
27748    }
27749    #[inline]
27750    fn syntax(&self) -> &SyntaxNode {
27751        &self.syntax
27752    }
27753}
27754impl AstNode for TransformFuncOption {
27755    #[inline]
27756    fn can_cast(kind: SyntaxKind) -> bool {
27757        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
27758    }
27759    #[inline]
27760    fn cast(syntax: SyntaxNode) -> Option<Self> {
27761        if Self::can_cast(syntax.kind()) {
27762            Some(Self { syntax })
27763        } else {
27764            None
27765        }
27766    }
27767    #[inline]
27768    fn syntax(&self) -> &SyntaxNode {
27769        &self.syntax
27770    }
27771}
27772impl AstNode for TransformToFunc {
27773    #[inline]
27774    fn can_cast(kind: SyntaxKind) -> bool {
27775        kind == SyntaxKind::TRANSFORM_TO_FUNC
27776    }
27777    #[inline]
27778    fn cast(syntax: SyntaxNode) -> Option<Self> {
27779        if Self::can_cast(syntax.kind()) {
27780            Some(Self { syntax })
27781        } else {
27782            None
27783        }
27784    }
27785    #[inline]
27786    fn syntax(&self) -> &SyntaxNode {
27787        &self.syntax
27788    }
27789}
27790impl AstNode for TriggerEvent {
27791    #[inline]
27792    fn can_cast(kind: SyntaxKind) -> bool {
27793        kind == SyntaxKind::TRIGGER_EVENT
27794    }
27795    #[inline]
27796    fn cast(syntax: SyntaxNode) -> Option<Self> {
27797        if Self::can_cast(syntax.kind()) {
27798            Some(Self { syntax })
27799        } else {
27800            None
27801        }
27802    }
27803    #[inline]
27804    fn syntax(&self) -> &SyntaxNode {
27805        &self.syntax
27806    }
27807}
27808impl AstNode for TriggerEventList {
27809    #[inline]
27810    fn can_cast(kind: SyntaxKind) -> bool {
27811        kind == SyntaxKind::TRIGGER_EVENT_LIST
27812    }
27813    #[inline]
27814    fn cast(syntax: SyntaxNode) -> Option<Self> {
27815        if Self::can_cast(syntax.kind()) {
27816            Some(Self { syntax })
27817        } else {
27818            None
27819        }
27820    }
27821    #[inline]
27822    fn syntax(&self) -> &SyntaxNode {
27823        &self.syntax
27824    }
27825}
27826impl AstNode for TriggerEventUpdate {
27827    #[inline]
27828    fn can_cast(kind: SyntaxKind) -> bool {
27829        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
27830    }
27831    #[inline]
27832    fn cast(syntax: SyntaxNode) -> Option<Self> {
27833        if Self::can_cast(syntax.kind()) {
27834            Some(Self { syntax })
27835        } else {
27836            None
27837        }
27838    }
27839    #[inline]
27840    fn syntax(&self) -> &SyntaxNode {
27841        &self.syntax
27842    }
27843}
27844impl AstNode for TrimFn {
27845    #[inline]
27846    fn can_cast(kind: SyntaxKind) -> bool {
27847        kind == SyntaxKind::TRIM_FN
27848    }
27849    #[inline]
27850    fn cast(syntax: SyntaxNode) -> Option<Self> {
27851        if Self::can_cast(syntax.kind()) {
27852            Some(Self { syntax })
27853        } else {
27854            None
27855        }
27856    }
27857    #[inline]
27858    fn syntax(&self) -> &SyntaxNode {
27859        &self.syntax
27860    }
27861}
27862impl AstNode for Truncate {
27863    #[inline]
27864    fn can_cast(kind: SyntaxKind) -> bool {
27865        kind == SyntaxKind::TRUNCATE
27866    }
27867    #[inline]
27868    fn cast(syntax: SyntaxNode) -> Option<Self> {
27869        if Self::can_cast(syntax.kind()) {
27870            Some(Self { syntax })
27871        } else {
27872            None
27873        }
27874    }
27875    #[inline]
27876    fn syntax(&self) -> &SyntaxNode {
27877        &self.syntax
27878    }
27879}
27880impl AstNode for TupleExpr {
27881    #[inline]
27882    fn can_cast(kind: SyntaxKind) -> bool {
27883        kind == SyntaxKind::TUPLE_EXPR
27884    }
27885    #[inline]
27886    fn cast(syntax: SyntaxNode) -> Option<Self> {
27887        if Self::can_cast(syntax.kind()) {
27888            Some(Self { syntax })
27889        } else {
27890            None
27891        }
27892    }
27893    #[inline]
27894    fn syntax(&self) -> &SyntaxNode {
27895        &self.syntax
27896    }
27897}
27898impl AstNode for UnicodeNormalForm {
27899    #[inline]
27900    fn can_cast(kind: SyntaxKind) -> bool {
27901        kind == SyntaxKind::UNICODE_NORMAL_FORM
27902    }
27903    #[inline]
27904    fn cast(syntax: SyntaxNode) -> Option<Self> {
27905        if Self::can_cast(syntax.kind()) {
27906            Some(Self { syntax })
27907        } else {
27908            None
27909        }
27910    }
27911    #[inline]
27912    fn syntax(&self) -> &SyntaxNode {
27913        &self.syntax
27914    }
27915}
27916impl AstNode for UniqueConstraint {
27917    #[inline]
27918    fn can_cast(kind: SyntaxKind) -> bool {
27919        kind == SyntaxKind::UNIQUE_CONSTRAINT
27920    }
27921    #[inline]
27922    fn cast(syntax: SyntaxNode) -> Option<Self> {
27923        if Self::can_cast(syntax.kind()) {
27924            Some(Self { syntax })
27925        } else {
27926            None
27927        }
27928    }
27929    #[inline]
27930    fn syntax(&self) -> &SyntaxNode {
27931        &self.syntax
27932    }
27933}
27934impl AstNode for Unlisten {
27935    #[inline]
27936    fn can_cast(kind: SyntaxKind) -> bool {
27937        kind == SyntaxKind::UNLISTEN
27938    }
27939    #[inline]
27940    fn cast(syntax: SyntaxNode) -> Option<Self> {
27941        if Self::can_cast(syntax.kind()) {
27942            Some(Self { syntax })
27943        } else {
27944            None
27945        }
27946    }
27947    #[inline]
27948    fn syntax(&self) -> &SyntaxNode {
27949        &self.syntax
27950    }
27951}
27952impl AstNode for Update {
27953    #[inline]
27954    fn can_cast(kind: SyntaxKind) -> bool {
27955        kind == SyntaxKind::UPDATE
27956    }
27957    #[inline]
27958    fn cast(syntax: SyntaxNode) -> Option<Self> {
27959        if Self::can_cast(syntax.kind()) {
27960            Some(Self { syntax })
27961        } else {
27962            None
27963        }
27964    }
27965    #[inline]
27966    fn syntax(&self) -> &SyntaxNode {
27967        &self.syntax
27968    }
27969}
27970impl AstNode for UsingClause {
27971    #[inline]
27972    fn can_cast(kind: SyntaxKind) -> bool {
27973        kind == SyntaxKind::USING_CLAUSE
27974    }
27975    #[inline]
27976    fn cast(syntax: SyntaxNode) -> Option<Self> {
27977        if Self::can_cast(syntax.kind()) {
27978            Some(Self { syntax })
27979        } else {
27980            None
27981        }
27982    }
27983    #[inline]
27984    fn syntax(&self) -> &SyntaxNode {
27985        &self.syntax
27986    }
27987}
27988impl AstNode for UsingExprClause {
27989    #[inline]
27990    fn can_cast(kind: SyntaxKind) -> bool {
27991        kind == SyntaxKind::USING_EXPR_CLAUSE
27992    }
27993    #[inline]
27994    fn cast(syntax: SyntaxNode) -> Option<Self> {
27995        if Self::can_cast(syntax.kind()) {
27996            Some(Self { syntax })
27997        } else {
27998            None
27999        }
28000    }
28001    #[inline]
28002    fn syntax(&self) -> &SyntaxNode {
28003        &self.syntax
28004    }
28005}
28006impl AstNode for UsingIndex {
28007    #[inline]
28008    fn can_cast(kind: SyntaxKind) -> bool {
28009        kind == SyntaxKind::USING_INDEX
28010    }
28011    #[inline]
28012    fn cast(syntax: SyntaxNode) -> Option<Self> {
28013        if Self::can_cast(syntax.kind()) {
28014            Some(Self { syntax })
28015        } else {
28016            None
28017        }
28018    }
28019    #[inline]
28020    fn syntax(&self) -> &SyntaxNode {
28021        &self.syntax
28022    }
28023}
28024impl AstNode for UsingMethod {
28025    #[inline]
28026    fn can_cast(kind: SyntaxKind) -> bool {
28027        kind == SyntaxKind::USING_METHOD
28028    }
28029    #[inline]
28030    fn cast(syntax: SyntaxNode) -> Option<Self> {
28031        if Self::can_cast(syntax.kind()) {
28032            Some(Self { syntax })
28033        } else {
28034            None
28035        }
28036    }
28037    #[inline]
28038    fn syntax(&self) -> &SyntaxNode {
28039        &self.syntax
28040    }
28041}
28042impl AstNode for UsingOnClause {
28043    #[inline]
28044    fn can_cast(kind: SyntaxKind) -> bool {
28045        kind == SyntaxKind::USING_ON_CLAUSE
28046    }
28047    #[inline]
28048    fn cast(syntax: SyntaxNode) -> Option<Self> {
28049        if Self::can_cast(syntax.kind()) {
28050            Some(Self { syntax })
28051        } else {
28052            None
28053        }
28054    }
28055    #[inline]
28056    fn syntax(&self) -> &SyntaxNode {
28057        &self.syntax
28058    }
28059}
28060impl AstNode for Vacuum {
28061    #[inline]
28062    fn can_cast(kind: SyntaxKind) -> bool {
28063        kind == SyntaxKind::VACUUM
28064    }
28065    #[inline]
28066    fn cast(syntax: SyntaxNode) -> Option<Self> {
28067        if Self::can_cast(syntax.kind()) {
28068            Some(Self { syntax })
28069        } else {
28070            None
28071        }
28072    }
28073    #[inline]
28074    fn syntax(&self) -> &SyntaxNode {
28075        &self.syntax
28076    }
28077}
28078impl AstNode for VacuumOption {
28079    #[inline]
28080    fn can_cast(kind: SyntaxKind) -> bool {
28081        kind == SyntaxKind::VACUUM_OPTION
28082    }
28083    #[inline]
28084    fn cast(syntax: SyntaxNode) -> Option<Self> {
28085        if Self::can_cast(syntax.kind()) {
28086            Some(Self { syntax })
28087        } else {
28088            None
28089        }
28090    }
28091    #[inline]
28092    fn syntax(&self) -> &SyntaxNode {
28093        &self.syntax
28094    }
28095}
28096impl AstNode for VacuumOptionList {
28097    #[inline]
28098    fn can_cast(kind: SyntaxKind) -> bool {
28099        kind == SyntaxKind::VACUUM_OPTION_LIST
28100    }
28101    #[inline]
28102    fn cast(syntax: SyntaxNode) -> Option<Self> {
28103        if Self::can_cast(syntax.kind()) {
28104            Some(Self { syntax })
28105        } else {
28106            None
28107        }
28108    }
28109    #[inline]
28110    fn syntax(&self) -> &SyntaxNode {
28111        &self.syntax
28112    }
28113}
28114impl AstNode for ValidateConstraint {
28115    #[inline]
28116    fn can_cast(kind: SyntaxKind) -> bool {
28117        kind == SyntaxKind::VALIDATE_CONSTRAINT
28118    }
28119    #[inline]
28120    fn cast(syntax: SyntaxNode) -> Option<Self> {
28121        if Self::can_cast(syntax.kind()) {
28122            Some(Self { syntax })
28123        } else {
28124            None
28125        }
28126    }
28127    #[inline]
28128    fn syntax(&self) -> &SyntaxNode {
28129        &self.syntax
28130    }
28131}
28132impl AstNode for Values {
28133    #[inline]
28134    fn can_cast(kind: SyntaxKind) -> bool {
28135        kind == SyntaxKind::VALUES
28136    }
28137    #[inline]
28138    fn cast(syntax: SyntaxNode) -> Option<Self> {
28139        if Self::can_cast(syntax.kind()) {
28140            Some(Self { syntax })
28141        } else {
28142            None
28143        }
28144    }
28145    #[inline]
28146    fn syntax(&self) -> &SyntaxNode {
28147        &self.syntax
28148    }
28149}
28150impl AstNode for Variant {
28151    #[inline]
28152    fn can_cast(kind: SyntaxKind) -> bool {
28153        kind == SyntaxKind::VARIANT
28154    }
28155    #[inline]
28156    fn cast(syntax: SyntaxNode) -> Option<Self> {
28157        if Self::can_cast(syntax.kind()) {
28158            Some(Self { syntax })
28159        } else {
28160            None
28161        }
28162    }
28163    #[inline]
28164    fn syntax(&self) -> &SyntaxNode {
28165        &self.syntax
28166    }
28167}
28168impl AstNode for VariantList {
28169    #[inline]
28170    fn can_cast(kind: SyntaxKind) -> bool {
28171        kind == SyntaxKind::VARIANT_LIST
28172    }
28173    #[inline]
28174    fn cast(syntax: SyntaxNode) -> Option<Self> {
28175        if Self::can_cast(syntax.kind()) {
28176            Some(Self { syntax })
28177        } else {
28178            None
28179        }
28180    }
28181    #[inline]
28182    fn syntax(&self) -> &SyntaxNode {
28183        &self.syntax
28184    }
28185}
28186impl AstNode for VolatilityFuncOption {
28187    #[inline]
28188    fn can_cast(kind: SyntaxKind) -> bool {
28189        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
28190    }
28191    #[inline]
28192    fn cast(syntax: SyntaxNode) -> Option<Self> {
28193        if Self::can_cast(syntax.kind()) {
28194            Some(Self { syntax })
28195        } else {
28196            None
28197        }
28198    }
28199    #[inline]
28200    fn syntax(&self) -> &SyntaxNode {
28201        &self.syntax
28202    }
28203}
28204impl AstNode for WhenClause {
28205    #[inline]
28206    fn can_cast(kind: SyntaxKind) -> bool {
28207        kind == SyntaxKind::WHEN_CLAUSE
28208    }
28209    #[inline]
28210    fn cast(syntax: SyntaxNode) -> Option<Self> {
28211        if Self::can_cast(syntax.kind()) {
28212            Some(Self { syntax })
28213        } else {
28214            None
28215        }
28216    }
28217    #[inline]
28218    fn syntax(&self) -> &SyntaxNode {
28219        &self.syntax
28220    }
28221}
28222impl AstNode for WhenClauseList {
28223    #[inline]
28224    fn can_cast(kind: SyntaxKind) -> bool {
28225        kind == SyntaxKind::WHEN_CLAUSE_LIST
28226    }
28227    #[inline]
28228    fn cast(syntax: SyntaxNode) -> Option<Self> {
28229        if Self::can_cast(syntax.kind()) {
28230            Some(Self { syntax })
28231        } else {
28232            None
28233        }
28234    }
28235    #[inline]
28236    fn syntax(&self) -> &SyntaxNode {
28237        &self.syntax
28238    }
28239}
28240impl AstNode for WhenCondition {
28241    #[inline]
28242    fn can_cast(kind: SyntaxKind) -> bool {
28243        kind == SyntaxKind::WHEN_CONDITION
28244    }
28245    #[inline]
28246    fn cast(syntax: SyntaxNode) -> Option<Self> {
28247        if Self::can_cast(syntax.kind()) {
28248            Some(Self { syntax })
28249        } else {
28250            None
28251        }
28252    }
28253    #[inline]
28254    fn syntax(&self) -> &SyntaxNode {
28255        &self.syntax
28256    }
28257}
28258impl AstNode for WhereClause {
28259    #[inline]
28260    fn can_cast(kind: SyntaxKind) -> bool {
28261        kind == SyntaxKind::WHERE_CLAUSE
28262    }
28263    #[inline]
28264    fn cast(syntax: SyntaxNode) -> Option<Self> {
28265        if Self::can_cast(syntax.kind()) {
28266            Some(Self { syntax })
28267        } else {
28268            None
28269        }
28270    }
28271    #[inline]
28272    fn syntax(&self) -> &SyntaxNode {
28273        &self.syntax
28274    }
28275}
28276impl AstNode for WhereConditionClause {
28277    #[inline]
28278    fn can_cast(kind: SyntaxKind) -> bool {
28279        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
28280    }
28281    #[inline]
28282    fn cast(syntax: SyntaxNode) -> Option<Self> {
28283        if Self::can_cast(syntax.kind()) {
28284            Some(Self { syntax })
28285        } else {
28286            None
28287        }
28288    }
28289    #[inline]
28290    fn syntax(&self) -> &SyntaxNode {
28291        &self.syntax
28292    }
28293}
28294impl AstNode for WhereCurrentOf {
28295    #[inline]
28296    fn can_cast(kind: SyntaxKind) -> bool {
28297        kind == SyntaxKind::WHERE_CURRENT_OF
28298    }
28299    #[inline]
28300    fn cast(syntax: SyntaxNode) -> Option<Self> {
28301        if Self::can_cast(syntax.kind()) {
28302            Some(Self { syntax })
28303        } else {
28304            None
28305        }
28306    }
28307    #[inline]
28308    fn syntax(&self) -> &SyntaxNode {
28309        &self.syntax
28310    }
28311}
28312impl AstNode for WindowClause {
28313    #[inline]
28314    fn can_cast(kind: SyntaxKind) -> bool {
28315        kind == SyntaxKind::WINDOW_CLAUSE
28316    }
28317    #[inline]
28318    fn cast(syntax: SyntaxNode) -> Option<Self> {
28319        if Self::can_cast(syntax.kind()) {
28320            Some(Self { syntax })
28321        } else {
28322            None
28323        }
28324    }
28325    #[inline]
28326    fn syntax(&self) -> &SyntaxNode {
28327        &self.syntax
28328    }
28329}
28330impl AstNode for WindowDef {
28331    #[inline]
28332    fn can_cast(kind: SyntaxKind) -> bool {
28333        kind == SyntaxKind::WINDOW_DEF
28334    }
28335    #[inline]
28336    fn cast(syntax: SyntaxNode) -> Option<Self> {
28337        if Self::can_cast(syntax.kind()) {
28338            Some(Self { syntax })
28339        } else {
28340            None
28341        }
28342    }
28343    #[inline]
28344    fn syntax(&self) -> &SyntaxNode {
28345        &self.syntax
28346    }
28347}
28348impl AstNode for WindowFuncOption {
28349    #[inline]
28350    fn can_cast(kind: SyntaxKind) -> bool {
28351        kind == SyntaxKind::WINDOW_FUNC_OPTION
28352    }
28353    #[inline]
28354    fn cast(syntax: SyntaxNode) -> Option<Self> {
28355        if Self::can_cast(syntax.kind()) {
28356            Some(Self { syntax })
28357        } else {
28358            None
28359        }
28360    }
28361    #[inline]
28362    fn syntax(&self) -> &SyntaxNode {
28363        &self.syntax
28364    }
28365}
28366impl AstNode for WindowSpec {
28367    #[inline]
28368    fn can_cast(kind: SyntaxKind) -> bool {
28369        kind == SyntaxKind::WINDOW_SPEC
28370    }
28371    #[inline]
28372    fn cast(syntax: SyntaxNode) -> Option<Self> {
28373        if Self::can_cast(syntax.kind()) {
28374            Some(Self { syntax })
28375        } else {
28376            None
28377        }
28378    }
28379    #[inline]
28380    fn syntax(&self) -> &SyntaxNode {
28381        &self.syntax
28382    }
28383}
28384impl AstNode for WithCheckExprClause {
28385    #[inline]
28386    fn can_cast(kind: SyntaxKind) -> bool {
28387        kind == SyntaxKind::WITH_CHECK_EXPR_CLAUSE
28388    }
28389    #[inline]
28390    fn cast(syntax: SyntaxNode) -> Option<Self> {
28391        if Self::can_cast(syntax.kind()) {
28392            Some(Self { syntax })
28393        } else {
28394            None
28395        }
28396    }
28397    #[inline]
28398    fn syntax(&self) -> &SyntaxNode {
28399        &self.syntax
28400    }
28401}
28402impl AstNode for WithClause {
28403    #[inline]
28404    fn can_cast(kind: SyntaxKind) -> bool {
28405        kind == SyntaxKind::WITH_CLAUSE
28406    }
28407    #[inline]
28408    fn cast(syntax: SyntaxNode) -> Option<Self> {
28409        if Self::can_cast(syntax.kind()) {
28410            Some(Self { syntax })
28411        } else {
28412            None
28413        }
28414    }
28415    #[inline]
28416    fn syntax(&self) -> &SyntaxNode {
28417        &self.syntax
28418    }
28419}
28420impl AstNode for WithData {
28421    #[inline]
28422    fn can_cast(kind: SyntaxKind) -> bool {
28423        kind == SyntaxKind::WITH_DATA
28424    }
28425    #[inline]
28426    fn cast(syntax: SyntaxNode) -> Option<Self> {
28427        if Self::can_cast(syntax.kind()) {
28428            Some(Self { syntax })
28429        } else {
28430            None
28431        }
28432    }
28433    #[inline]
28434    fn syntax(&self) -> &SyntaxNode {
28435        &self.syntax
28436    }
28437}
28438impl AstNode for WithNoData {
28439    #[inline]
28440    fn can_cast(kind: SyntaxKind) -> bool {
28441        kind == SyntaxKind::WITH_NO_DATA
28442    }
28443    #[inline]
28444    fn cast(syntax: SyntaxNode) -> Option<Self> {
28445        if Self::can_cast(syntax.kind()) {
28446            Some(Self { syntax })
28447        } else {
28448            None
28449        }
28450    }
28451    #[inline]
28452    fn syntax(&self) -> &SyntaxNode {
28453        &self.syntax
28454    }
28455}
28456impl AstNode for WithOptions {
28457    #[inline]
28458    fn can_cast(kind: SyntaxKind) -> bool {
28459        kind == SyntaxKind::WITH_OPTIONS
28460    }
28461    #[inline]
28462    fn cast(syntax: SyntaxNode) -> Option<Self> {
28463        if Self::can_cast(syntax.kind()) {
28464            Some(Self { syntax })
28465        } else {
28466            None
28467        }
28468    }
28469    #[inline]
28470    fn syntax(&self) -> &SyntaxNode {
28471        &self.syntax
28472    }
28473}
28474impl AstNode for WithParams {
28475    #[inline]
28476    fn can_cast(kind: SyntaxKind) -> bool {
28477        kind == SyntaxKind::WITH_PARAMS
28478    }
28479    #[inline]
28480    fn cast(syntax: SyntaxNode) -> Option<Self> {
28481        if Self::can_cast(syntax.kind()) {
28482            Some(Self { syntax })
28483        } else {
28484            None
28485        }
28486    }
28487    #[inline]
28488    fn syntax(&self) -> &SyntaxNode {
28489        &self.syntax
28490    }
28491}
28492impl AstNode for WithTable {
28493    #[inline]
28494    fn can_cast(kind: SyntaxKind) -> bool {
28495        kind == SyntaxKind::WITH_TABLE
28496    }
28497    #[inline]
28498    fn cast(syntax: SyntaxNode) -> Option<Self> {
28499        if Self::can_cast(syntax.kind()) {
28500            Some(Self { syntax })
28501        } else {
28502            None
28503        }
28504    }
28505    #[inline]
28506    fn syntax(&self) -> &SyntaxNode {
28507        &self.syntax
28508    }
28509}
28510impl AstNode for WithTimezone {
28511    #[inline]
28512    fn can_cast(kind: SyntaxKind) -> bool {
28513        kind == SyntaxKind::WITH_TIMEZONE
28514    }
28515    #[inline]
28516    fn cast(syntax: SyntaxNode) -> Option<Self> {
28517        if Self::can_cast(syntax.kind()) {
28518            Some(Self { syntax })
28519        } else {
28520            None
28521        }
28522    }
28523    #[inline]
28524    fn syntax(&self) -> &SyntaxNode {
28525        &self.syntax
28526    }
28527}
28528impl AstNode for WithinClause {
28529    #[inline]
28530    fn can_cast(kind: SyntaxKind) -> bool {
28531        kind == SyntaxKind::WITHIN_CLAUSE
28532    }
28533    #[inline]
28534    fn cast(syntax: SyntaxNode) -> Option<Self> {
28535        if Self::can_cast(syntax.kind()) {
28536            Some(Self { syntax })
28537        } else {
28538            None
28539        }
28540    }
28541    #[inline]
28542    fn syntax(&self) -> &SyntaxNode {
28543        &self.syntax
28544    }
28545}
28546impl AstNode for WithoutOids {
28547    #[inline]
28548    fn can_cast(kind: SyntaxKind) -> bool {
28549        kind == SyntaxKind::WITHOUT_OIDS
28550    }
28551    #[inline]
28552    fn cast(syntax: SyntaxNode) -> Option<Self> {
28553        if Self::can_cast(syntax.kind()) {
28554            Some(Self { syntax })
28555        } else {
28556            None
28557        }
28558    }
28559    #[inline]
28560    fn syntax(&self) -> &SyntaxNode {
28561        &self.syntax
28562    }
28563}
28564impl AstNode for WithoutTimezone {
28565    #[inline]
28566    fn can_cast(kind: SyntaxKind) -> bool {
28567        kind == SyntaxKind::WITHOUT_TIMEZONE
28568    }
28569    #[inline]
28570    fn cast(syntax: SyntaxNode) -> Option<Self> {
28571        if Self::can_cast(syntax.kind()) {
28572            Some(Self { syntax })
28573        } else {
28574            None
28575        }
28576    }
28577    #[inline]
28578    fn syntax(&self) -> &SyntaxNode {
28579        &self.syntax
28580    }
28581}
28582impl AstNode for XmlAttributeList {
28583    #[inline]
28584    fn can_cast(kind: SyntaxKind) -> bool {
28585        kind == SyntaxKind::XML_ATTRIBUTE_LIST
28586    }
28587    #[inline]
28588    fn cast(syntax: SyntaxNode) -> Option<Self> {
28589        if Self::can_cast(syntax.kind()) {
28590            Some(Self { syntax })
28591        } else {
28592            None
28593        }
28594    }
28595    #[inline]
28596    fn syntax(&self) -> &SyntaxNode {
28597        &self.syntax
28598    }
28599}
28600impl AstNode for XmlColumnOption {
28601    #[inline]
28602    fn can_cast(kind: SyntaxKind) -> bool {
28603        kind == SyntaxKind::XML_COLUMN_OPTION
28604    }
28605    #[inline]
28606    fn cast(syntax: SyntaxNode) -> Option<Self> {
28607        if Self::can_cast(syntax.kind()) {
28608            Some(Self { syntax })
28609        } else {
28610            None
28611        }
28612    }
28613    #[inline]
28614    fn syntax(&self) -> &SyntaxNode {
28615        &self.syntax
28616    }
28617}
28618impl AstNode for XmlColumnOptionList {
28619    #[inline]
28620    fn can_cast(kind: SyntaxKind) -> bool {
28621        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
28622    }
28623    #[inline]
28624    fn cast(syntax: SyntaxNode) -> Option<Self> {
28625        if Self::can_cast(syntax.kind()) {
28626            Some(Self { syntax })
28627        } else {
28628            None
28629        }
28630    }
28631    #[inline]
28632    fn syntax(&self) -> &SyntaxNode {
28633        &self.syntax
28634    }
28635}
28636impl AstNode for XmlElementFn {
28637    #[inline]
28638    fn can_cast(kind: SyntaxKind) -> bool {
28639        kind == SyntaxKind::XML_ELEMENT_FN
28640    }
28641    #[inline]
28642    fn cast(syntax: SyntaxNode) -> Option<Self> {
28643        if Self::can_cast(syntax.kind()) {
28644            Some(Self { syntax })
28645        } else {
28646            None
28647        }
28648    }
28649    #[inline]
28650    fn syntax(&self) -> &SyntaxNode {
28651        &self.syntax
28652    }
28653}
28654impl AstNode for XmlExistsFn {
28655    #[inline]
28656    fn can_cast(kind: SyntaxKind) -> bool {
28657        kind == SyntaxKind::XML_EXISTS_FN
28658    }
28659    #[inline]
28660    fn cast(syntax: SyntaxNode) -> Option<Self> {
28661        if Self::can_cast(syntax.kind()) {
28662            Some(Self { syntax })
28663        } else {
28664            None
28665        }
28666    }
28667    #[inline]
28668    fn syntax(&self) -> &SyntaxNode {
28669        &self.syntax
28670    }
28671}
28672impl AstNode for XmlForestFn {
28673    #[inline]
28674    fn can_cast(kind: SyntaxKind) -> bool {
28675        kind == SyntaxKind::XML_FOREST_FN
28676    }
28677    #[inline]
28678    fn cast(syntax: SyntaxNode) -> Option<Self> {
28679        if Self::can_cast(syntax.kind()) {
28680            Some(Self { syntax })
28681        } else {
28682            None
28683        }
28684    }
28685    #[inline]
28686    fn syntax(&self) -> &SyntaxNode {
28687        &self.syntax
28688    }
28689}
28690impl AstNode for XmlNamespace {
28691    #[inline]
28692    fn can_cast(kind: SyntaxKind) -> bool {
28693        kind == SyntaxKind::XML_NAMESPACE
28694    }
28695    #[inline]
28696    fn cast(syntax: SyntaxNode) -> Option<Self> {
28697        if Self::can_cast(syntax.kind()) {
28698            Some(Self { syntax })
28699        } else {
28700            None
28701        }
28702    }
28703    #[inline]
28704    fn syntax(&self) -> &SyntaxNode {
28705        &self.syntax
28706    }
28707}
28708impl AstNode for XmlNamespaceList {
28709    #[inline]
28710    fn can_cast(kind: SyntaxKind) -> bool {
28711        kind == SyntaxKind::XML_NAMESPACE_LIST
28712    }
28713    #[inline]
28714    fn cast(syntax: SyntaxNode) -> Option<Self> {
28715        if Self::can_cast(syntax.kind()) {
28716            Some(Self { syntax })
28717        } else {
28718            None
28719        }
28720    }
28721    #[inline]
28722    fn syntax(&self) -> &SyntaxNode {
28723        &self.syntax
28724    }
28725}
28726impl AstNode for XmlParseFn {
28727    #[inline]
28728    fn can_cast(kind: SyntaxKind) -> bool {
28729        kind == SyntaxKind::XML_PARSE_FN
28730    }
28731    #[inline]
28732    fn cast(syntax: SyntaxNode) -> Option<Self> {
28733        if Self::can_cast(syntax.kind()) {
28734            Some(Self { syntax })
28735        } else {
28736            None
28737        }
28738    }
28739    #[inline]
28740    fn syntax(&self) -> &SyntaxNode {
28741        &self.syntax
28742    }
28743}
28744impl AstNode for XmlPassingMech {
28745    #[inline]
28746    fn can_cast(kind: SyntaxKind) -> bool {
28747        kind == SyntaxKind::XML_PASSING_MECH
28748    }
28749    #[inline]
28750    fn cast(syntax: SyntaxNode) -> Option<Self> {
28751        if Self::can_cast(syntax.kind()) {
28752            Some(Self { syntax })
28753        } else {
28754            None
28755        }
28756    }
28757    #[inline]
28758    fn syntax(&self) -> &SyntaxNode {
28759        &self.syntax
28760    }
28761}
28762impl AstNode for XmlPiFn {
28763    #[inline]
28764    fn can_cast(kind: SyntaxKind) -> bool {
28765        kind == SyntaxKind::XML_PI_FN
28766    }
28767    #[inline]
28768    fn cast(syntax: SyntaxNode) -> Option<Self> {
28769        if Self::can_cast(syntax.kind()) {
28770            Some(Self { syntax })
28771        } else {
28772            None
28773        }
28774    }
28775    #[inline]
28776    fn syntax(&self) -> &SyntaxNode {
28777        &self.syntax
28778    }
28779}
28780impl AstNode for XmlRootFn {
28781    #[inline]
28782    fn can_cast(kind: SyntaxKind) -> bool {
28783        kind == SyntaxKind::XML_ROOT_FN
28784    }
28785    #[inline]
28786    fn cast(syntax: SyntaxNode) -> Option<Self> {
28787        if Self::can_cast(syntax.kind()) {
28788            Some(Self { syntax })
28789        } else {
28790            None
28791        }
28792    }
28793    #[inline]
28794    fn syntax(&self) -> &SyntaxNode {
28795        &self.syntax
28796    }
28797}
28798impl AstNode for XmlRowPassingClause {
28799    #[inline]
28800    fn can_cast(kind: SyntaxKind) -> bool {
28801        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
28802    }
28803    #[inline]
28804    fn cast(syntax: SyntaxNode) -> Option<Self> {
28805        if Self::can_cast(syntax.kind()) {
28806            Some(Self { syntax })
28807        } else {
28808            None
28809        }
28810    }
28811    #[inline]
28812    fn syntax(&self) -> &SyntaxNode {
28813        &self.syntax
28814    }
28815}
28816impl AstNode for XmlSerializeFn {
28817    #[inline]
28818    fn can_cast(kind: SyntaxKind) -> bool {
28819        kind == SyntaxKind::XML_SERIALIZE_FN
28820    }
28821    #[inline]
28822    fn cast(syntax: SyntaxNode) -> Option<Self> {
28823        if Self::can_cast(syntax.kind()) {
28824            Some(Self { syntax })
28825        } else {
28826            None
28827        }
28828    }
28829    #[inline]
28830    fn syntax(&self) -> &SyntaxNode {
28831        &self.syntax
28832    }
28833}
28834impl AstNode for XmlTable {
28835    #[inline]
28836    fn can_cast(kind: SyntaxKind) -> bool {
28837        kind == SyntaxKind::XML_TABLE
28838    }
28839    #[inline]
28840    fn cast(syntax: SyntaxNode) -> Option<Self> {
28841        if Self::can_cast(syntax.kind()) {
28842            Some(Self { syntax })
28843        } else {
28844            None
28845        }
28846    }
28847    #[inline]
28848    fn syntax(&self) -> &SyntaxNode {
28849        &self.syntax
28850    }
28851}
28852impl AstNode for XmlTableColumn {
28853    #[inline]
28854    fn can_cast(kind: SyntaxKind) -> bool {
28855        kind == SyntaxKind::XML_TABLE_COLUMN
28856    }
28857    #[inline]
28858    fn cast(syntax: SyntaxNode) -> Option<Self> {
28859        if Self::can_cast(syntax.kind()) {
28860            Some(Self { syntax })
28861        } else {
28862            None
28863        }
28864    }
28865    #[inline]
28866    fn syntax(&self) -> &SyntaxNode {
28867        &self.syntax
28868    }
28869}
28870impl AstNode for XmlTableColumnList {
28871    #[inline]
28872    fn can_cast(kind: SyntaxKind) -> bool {
28873        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
28874    }
28875    #[inline]
28876    fn cast(syntax: SyntaxNode) -> Option<Self> {
28877        if Self::can_cast(syntax.kind()) {
28878            Some(Self { syntax })
28879        } else {
28880            None
28881        }
28882    }
28883    #[inline]
28884    fn syntax(&self) -> &SyntaxNode {
28885        &self.syntax
28886    }
28887}
28888impl AstNode for AlterColumnOption {
28889    #[inline]
28890    fn can_cast(kind: SyntaxKind) -> bool {
28891        matches!(
28892            kind,
28893            SyntaxKind::ADD_GENERATED
28894                | SyntaxKind::DROP_DEFAULT
28895                | SyntaxKind::DROP_EXPRESSION
28896                | SyntaxKind::DROP_IDENTITY
28897                | SyntaxKind::DROP_NOT_NULL
28898                | SyntaxKind::INHERIT
28899                | SyntaxKind::NO_INHERIT
28900                | SyntaxKind::RESET_OPTIONS
28901                | SyntaxKind::RESTART
28902                | SyntaxKind::SET_COMPRESSION
28903                | SyntaxKind::SET_DEFAULT
28904                | SyntaxKind::SET_EXPRESSION
28905                | SyntaxKind::SET_GENERATED
28906                | SyntaxKind::SET_GENERATED_OPTIONS
28907                | SyntaxKind::SET_NOT_NULL
28908                | SyntaxKind::SET_OPTIONS
28909                | SyntaxKind::SET_OPTIONS_LIST
28910                | SyntaxKind::SET_SEQUENCE_OPTION
28911                | SyntaxKind::SET_STATISTICS
28912                | SyntaxKind::SET_STORAGE
28913                | SyntaxKind::SET_TYPE
28914        )
28915    }
28916    #[inline]
28917    fn cast(syntax: SyntaxNode) -> Option<Self> {
28918        let res = match syntax.kind() {
28919            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
28920            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
28921            SyntaxKind::DROP_EXPRESSION => {
28922                AlterColumnOption::DropExpression(DropExpression { syntax })
28923            }
28924            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
28925            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
28926            SyntaxKind::INHERIT => AlterColumnOption::Inherit(Inherit { syntax }),
28927            SyntaxKind::NO_INHERIT => AlterColumnOption::NoInherit(NoInherit { syntax }),
28928            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
28929            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
28930            SyntaxKind::SET_COMPRESSION => {
28931                AlterColumnOption::SetCompression(SetCompression { syntax })
28932            }
28933            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
28934            SyntaxKind::SET_EXPRESSION => {
28935                AlterColumnOption::SetExpression(SetExpression { syntax })
28936            }
28937            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
28938            SyntaxKind::SET_GENERATED_OPTIONS => {
28939                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
28940            }
28941            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
28942            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
28943            SyntaxKind::SET_OPTIONS_LIST => {
28944                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
28945            }
28946            SyntaxKind::SET_SEQUENCE_OPTION => {
28947                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
28948            }
28949            SyntaxKind::SET_STATISTICS => {
28950                AlterColumnOption::SetStatistics(SetStatistics { syntax })
28951            }
28952            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
28953            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
28954            _ => {
28955                return None;
28956            }
28957        };
28958        Some(res)
28959    }
28960    #[inline]
28961    fn syntax(&self) -> &SyntaxNode {
28962        match self {
28963            AlterColumnOption::AddGenerated(it) => &it.syntax,
28964            AlterColumnOption::DropDefault(it) => &it.syntax,
28965            AlterColumnOption::DropExpression(it) => &it.syntax,
28966            AlterColumnOption::DropIdentity(it) => &it.syntax,
28967            AlterColumnOption::DropNotNull(it) => &it.syntax,
28968            AlterColumnOption::Inherit(it) => &it.syntax,
28969            AlterColumnOption::NoInherit(it) => &it.syntax,
28970            AlterColumnOption::ResetOptions(it) => &it.syntax,
28971            AlterColumnOption::Restart(it) => &it.syntax,
28972            AlterColumnOption::SetCompression(it) => &it.syntax,
28973            AlterColumnOption::SetDefault(it) => &it.syntax,
28974            AlterColumnOption::SetExpression(it) => &it.syntax,
28975            AlterColumnOption::SetGenerated(it) => &it.syntax,
28976            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
28977            AlterColumnOption::SetNotNull(it) => &it.syntax,
28978            AlterColumnOption::SetOptions(it) => &it.syntax,
28979            AlterColumnOption::SetOptionsList(it) => &it.syntax,
28980            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
28981            AlterColumnOption::SetStatistics(it) => &it.syntax,
28982            AlterColumnOption::SetStorage(it) => &it.syntax,
28983            AlterColumnOption::SetType(it) => &it.syntax,
28984        }
28985    }
28986}
28987impl From<AddGenerated> for AlterColumnOption {
28988    #[inline]
28989    fn from(node: AddGenerated) -> AlterColumnOption {
28990        AlterColumnOption::AddGenerated(node)
28991    }
28992}
28993impl From<DropDefault> for AlterColumnOption {
28994    #[inline]
28995    fn from(node: DropDefault) -> AlterColumnOption {
28996        AlterColumnOption::DropDefault(node)
28997    }
28998}
28999impl From<DropExpression> for AlterColumnOption {
29000    #[inline]
29001    fn from(node: DropExpression) -> AlterColumnOption {
29002        AlterColumnOption::DropExpression(node)
29003    }
29004}
29005impl From<DropIdentity> for AlterColumnOption {
29006    #[inline]
29007    fn from(node: DropIdentity) -> AlterColumnOption {
29008        AlterColumnOption::DropIdentity(node)
29009    }
29010}
29011impl From<DropNotNull> for AlterColumnOption {
29012    #[inline]
29013    fn from(node: DropNotNull) -> AlterColumnOption {
29014        AlterColumnOption::DropNotNull(node)
29015    }
29016}
29017impl From<Inherit> for AlterColumnOption {
29018    #[inline]
29019    fn from(node: Inherit) -> AlterColumnOption {
29020        AlterColumnOption::Inherit(node)
29021    }
29022}
29023impl From<NoInherit> for AlterColumnOption {
29024    #[inline]
29025    fn from(node: NoInherit) -> AlterColumnOption {
29026        AlterColumnOption::NoInherit(node)
29027    }
29028}
29029impl From<ResetOptions> for AlterColumnOption {
29030    #[inline]
29031    fn from(node: ResetOptions) -> AlterColumnOption {
29032        AlterColumnOption::ResetOptions(node)
29033    }
29034}
29035impl From<Restart> for AlterColumnOption {
29036    #[inline]
29037    fn from(node: Restart) -> AlterColumnOption {
29038        AlterColumnOption::Restart(node)
29039    }
29040}
29041impl From<SetCompression> for AlterColumnOption {
29042    #[inline]
29043    fn from(node: SetCompression) -> AlterColumnOption {
29044        AlterColumnOption::SetCompression(node)
29045    }
29046}
29047impl From<SetDefault> for AlterColumnOption {
29048    #[inline]
29049    fn from(node: SetDefault) -> AlterColumnOption {
29050        AlterColumnOption::SetDefault(node)
29051    }
29052}
29053impl From<SetExpression> for AlterColumnOption {
29054    #[inline]
29055    fn from(node: SetExpression) -> AlterColumnOption {
29056        AlterColumnOption::SetExpression(node)
29057    }
29058}
29059impl From<SetGenerated> for AlterColumnOption {
29060    #[inline]
29061    fn from(node: SetGenerated) -> AlterColumnOption {
29062        AlterColumnOption::SetGenerated(node)
29063    }
29064}
29065impl From<SetGeneratedOptions> for AlterColumnOption {
29066    #[inline]
29067    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
29068        AlterColumnOption::SetGeneratedOptions(node)
29069    }
29070}
29071impl From<SetNotNull> for AlterColumnOption {
29072    #[inline]
29073    fn from(node: SetNotNull) -> AlterColumnOption {
29074        AlterColumnOption::SetNotNull(node)
29075    }
29076}
29077impl From<SetOptions> for AlterColumnOption {
29078    #[inline]
29079    fn from(node: SetOptions) -> AlterColumnOption {
29080        AlterColumnOption::SetOptions(node)
29081    }
29082}
29083impl From<SetOptionsList> for AlterColumnOption {
29084    #[inline]
29085    fn from(node: SetOptionsList) -> AlterColumnOption {
29086        AlterColumnOption::SetOptionsList(node)
29087    }
29088}
29089impl From<SetSequenceOption> for AlterColumnOption {
29090    #[inline]
29091    fn from(node: SetSequenceOption) -> AlterColumnOption {
29092        AlterColumnOption::SetSequenceOption(node)
29093    }
29094}
29095impl From<SetStatistics> for AlterColumnOption {
29096    #[inline]
29097    fn from(node: SetStatistics) -> AlterColumnOption {
29098        AlterColumnOption::SetStatistics(node)
29099    }
29100}
29101impl From<SetStorage> for AlterColumnOption {
29102    #[inline]
29103    fn from(node: SetStorage) -> AlterColumnOption {
29104        AlterColumnOption::SetStorage(node)
29105    }
29106}
29107impl From<SetType> for AlterColumnOption {
29108    #[inline]
29109    fn from(node: SetType) -> AlterColumnOption {
29110        AlterColumnOption::SetType(node)
29111    }
29112}
29113impl AstNode for AlterDomainAction {
29114    #[inline]
29115    fn can_cast(kind: SyntaxKind) -> bool {
29116        matches!(
29117            kind,
29118            SyntaxKind::ADD_CONSTRAINT
29119                | SyntaxKind::DROP_CONSTRAINT
29120                | SyntaxKind::DROP_DEFAULT
29121                | SyntaxKind::DROP_NOT_NULL
29122                | SyntaxKind::OWNER_TO
29123                | SyntaxKind::RENAME_CONSTRAINT
29124                | SyntaxKind::RENAME_TO
29125                | SyntaxKind::SET_DEFAULT
29126                | SyntaxKind::SET_NOT_NULL
29127                | SyntaxKind::SET_SCHEMA
29128                | SyntaxKind::VALIDATE_CONSTRAINT
29129        )
29130    }
29131    #[inline]
29132    fn cast(syntax: SyntaxNode) -> Option<Self> {
29133        let res = match syntax.kind() {
29134            SyntaxKind::ADD_CONSTRAINT => {
29135                AlterDomainAction::AddConstraint(AddConstraint { syntax })
29136            }
29137            SyntaxKind::DROP_CONSTRAINT => {
29138                AlterDomainAction::DropConstraint(DropConstraint { syntax })
29139            }
29140            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
29141            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
29142            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
29143            SyntaxKind::RENAME_CONSTRAINT => {
29144                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
29145            }
29146            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
29147            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
29148            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
29149            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
29150            SyntaxKind::VALIDATE_CONSTRAINT => {
29151                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
29152            }
29153            _ => {
29154                return None;
29155            }
29156        };
29157        Some(res)
29158    }
29159    #[inline]
29160    fn syntax(&self) -> &SyntaxNode {
29161        match self {
29162            AlterDomainAction::AddConstraint(it) => &it.syntax,
29163            AlterDomainAction::DropConstraint(it) => &it.syntax,
29164            AlterDomainAction::DropDefault(it) => &it.syntax,
29165            AlterDomainAction::DropNotNull(it) => &it.syntax,
29166            AlterDomainAction::OwnerTo(it) => &it.syntax,
29167            AlterDomainAction::RenameConstraint(it) => &it.syntax,
29168            AlterDomainAction::RenameTo(it) => &it.syntax,
29169            AlterDomainAction::SetDefault(it) => &it.syntax,
29170            AlterDomainAction::SetNotNull(it) => &it.syntax,
29171            AlterDomainAction::SetSchema(it) => &it.syntax,
29172            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
29173        }
29174    }
29175}
29176impl From<AddConstraint> for AlterDomainAction {
29177    #[inline]
29178    fn from(node: AddConstraint) -> AlterDomainAction {
29179        AlterDomainAction::AddConstraint(node)
29180    }
29181}
29182impl From<DropConstraint> for AlterDomainAction {
29183    #[inline]
29184    fn from(node: DropConstraint) -> AlterDomainAction {
29185        AlterDomainAction::DropConstraint(node)
29186    }
29187}
29188impl From<DropDefault> for AlterDomainAction {
29189    #[inline]
29190    fn from(node: DropDefault) -> AlterDomainAction {
29191        AlterDomainAction::DropDefault(node)
29192    }
29193}
29194impl From<DropNotNull> for AlterDomainAction {
29195    #[inline]
29196    fn from(node: DropNotNull) -> AlterDomainAction {
29197        AlterDomainAction::DropNotNull(node)
29198    }
29199}
29200impl From<OwnerTo> for AlterDomainAction {
29201    #[inline]
29202    fn from(node: OwnerTo) -> AlterDomainAction {
29203        AlterDomainAction::OwnerTo(node)
29204    }
29205}
29206impl From<RenameConstraint> for AlterDomainAction {
29207    #[inline]
29208    fn from(node: RenameConstraint) -> AlterDomainAction {
29209        AlterDomainAction::RenameConstraint(node)
29210    }
29211}
29212impl From<RenameTo> for AlterDomainAction {
29213    #[inline]
29214    fn from(node: RenameTo) -> AlterDomainAction {
29215        AlterDomainAction::RenameTo(node)
29216    }
29217}
29218impl From<SetDefault> for AlterDomainAction {
29219    #[inline]
29220    fn from(node: SetDefault) -> AlterDomainAction {
29221        AlterDomainAction::SetDefault(node)
29222    }
29223}
29224impl From<SetNotNull> for AlterDomainAction {
29225    #[inline]
29226    fn from(node: SetNotNull) -> AlterDomainAction {
29227        AlterDomainAction::SetNotNull(node)
29228    }
29229}
29230impl From<SetSchema> for AlterDomainAction {
29231    #[inline]
29232    fn from(node: SetSchema) -> AlterDomainAction {
29233        AlterDomainAction::SetSchema(node)
29234    }
29235}
29236impl From<ValidateConstraint> for AlterDomainAction {
29237    #[inline]
29238    fn from(node: ValidateConstraint) -> AlterDomainAction {
29239        AlterDomainAction::ValidateConstraint(node)
29240    }
29241}
29242impl AstNode for AlterIndexAction {
29243    #[inline]
29244    fn can_cast(kind: SyntaxKind) -> bool {
29245        matches!(
29246            kind,
29247            SyntaxKind::ALTER_SET_STATISTICS
29248                | SyntaxKind::ATTACH_PARTITION
29249                | SyntaxKind::DEPENDS_ON_EXTENSION
29250                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
29251                | SyntaxKind::RENAME_TO
29252                | SyntaxKind::RESET_OPTIONS
29253                | SyntaxKind::SET_OPTIONS
29254                | SyntaxKind::SET_TABLESPACE
29255        )
29256    }
29257    #[inline]
29258    fn cast(syntax: SyntaxNode) -> Option<Self> {
29259        let res = match syntax.kind() {
29260            SyntaxKind::ALTER_SET_STATISTICS => {
29261                AlterIndexAction::AlterSetStatistics(AlterSetStatistics { syntax })
29262            }
29263            SyntaxKind::ATTACH_PARTITION => {
29264                AlterIndexAction::AttachPartition(AttachPartition { syntax })
29265            }
29266            SyntaxKind::DEPENDS_ON_EXTENSION => {
29267                AlterIndexAction::DependsOnExtension(DependsOnExtension { syntax })
29268            }
29269            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
29270                AlterIndexAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
29271            }
29272            SyntaxKind::RENAME_TO => AlterIndexAction::RenameTo(RenameTo { syntax }),
29273            SyntaxKind::RESET_OPTIONS => AlterIndexAction::ResetOptions(ResetOptions { syntax }),
29274            SyntaxKind::SET_OPTIONS => AlterIndexAction::SetOptions(SetOptions { syntax }),
29275            SyntaxKind::SET_TABLESPACE => AlterIndexAction::SetTablespace(SetTablespace { syntax }),
29276            _ => {
29277                return None;
29278            }
29279        };
29280        Some(res)
29281    }
29282    #[inline]
29283    fn syntax(&self) -> &SyntaxNode {
29284        match self {
29285            AlterIndexAction::AlterSetStatistics(it) => &it.syntax,
29286            AlterIndexAction::AttachPartition(it) => &it.syntax,
29287            AlterIndexAction::DependsOnExtension(it) => &it.syntax,
29288            AlterIndexAction::NoDependsOnExtension(it) => &it.syntax,
29289            AlterIndexAction::RenameTo(it) => &it.syntax,
29290            AlterIndexAction::ResetOptions(it) => &it.syntax,
29291            AlterIndexAction::SetOptions(it) => &it.syntax,
29292            AlterIndexAction::SetTablespace(it) => &it.syntax,
29293        }
29294    }
29295}
29296impl From<AlterSetStatistics> for AlterIndexAction {
29297    #[inline]
29298    fn from(node: AlterSetStatistics) -> AlterIndexAction {
29299        AlterIndexAction::AlterSetStatistics(node)
29300    }
29301}
29302impl From<AttachPartition> for AlterIndexAction {
29303    #[inline]
29304    fn from(node: AttachPartition) -> AlterIndexAction {
29305        AlterIndexAction::AttachPartition(node)
29306    }
29307}
29308impl From<DependsOnExtension> for AlterIndexAction {
29309    #[inline]
29310    fn from(node: DependsOnExtension) -> AlterIndexAction {
29311        AlterIndexAction::DependsOnExtension(node)
29312    }
29313}
29314impl From<NoDependsOnExtension> for AlterIndexAction {
29315    #[inline]
29316    fn from(node: NoDependsOnExtension) -> AlterIndexAction {
29317        AlterIndexAction::NoDependsOnExtension(node)
29318    }
29319}
29320impl From<RenameTo> for AlterIndexAction {
29321    #[inline]
29322    fn from(node: RenameTo) -> AlterIndexAction {
29323        AlterIndexAction::RenameTo(node)
29324    }
29325}
29326impl From<ResetOptions> for AlterIndexAction {
29327    #[inline]
29328    fn from(node: ResetOptions) -> AlterIndexAction {
29329        AlterIndexAction::ResetOptions(node)
29330    }
29331}
29332impl From<SetOptions> for AlterIndexAction {
29333    #[inline]
29334    fn from(node: SetOptions) -> AlterIndexAction {
29335        AlterIndexAction::SetOptions(node)
29336    }
29337}
29338impl From<SetTablespace> for AlterIndexAction {
29339    #[inline]
29340    fn from(node: SetTablespace) -> AlterIndexAction {
29341        AlterIndexAction::SetTablespace(node)
29342    }
29343}
29344impl AstNode for AlterMaterializedViewAction {
29345    #[inline]
29346    fn can_cast(kind: SyntaxKind) -> bool {
29347        matches!(
29348            kind,
29349            SyntaxKind::DEPENDS_ON_EXTENSION
29350                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
29351                | SyntaxKind::RENAME_COLUMN
29352                | SyntaxKind::RENAME_TO
29353                | SyntaxKind::SET_SCHEMA
29354        )
29355    }
29356    #[inline]
29357    fn cast(syntax: SyntaxNode) -> Option<Self> {
29358        let res = match syntax.kind() {
29359            SyntaxKind::DEPENDS_ON_EXTENSION => {
29360                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
29361            }
29362            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
29363                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
29364            }
29365            SyntaxKind::RENAME_COLUMN => {
29366                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
29367            }
29368            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
29369            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
29370            _ => {
29371                if let Some(result) = AlterTableAction::cast(syntax) {
29372                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
29373                }
29374                return None;
29375            }
29376        };
29377        Some(res)
29378    }
29379    #[inline]
29380    fn syntax(&self) -> &SyntaxNode {
29381        match self {
29382            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
29383            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
29384            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
29385            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
29386            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
29387            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
29388        }
29389    }
29390}
29391impl From<DependsOnExtension> for AlterMaterializedViewAction {
29392    #[inline]
29393    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
29394        AlterMaterializedViewAction::DependsOnExtension(node)
29395    }
29396}
29397impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
29398    #[inline]
29399    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
29400        AlterMaterializedViewAction::NoDependsOnExtension(node)
29401    }
29402}
29403impl From<RenameColumn> for AlterMaterializedViewAction {
29404    #[inline]
29405    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
29406        AlterMaterializedViewAction::RenameColumn(node)
29407    }
29408}
29409impl From<RenameTo> for AlterMaterializedViewAction {
29410    #[inline]
29411    fn from(node: RenameTo) -> AlterMaterializedViewAction {
29412        AlterMaterializedViewAction::RenameTo(node)
29413    }
29414}
29415impl From<SetSchema> for AlterMaterializedViewAction {
29416    #[inline]
29417    fn from(node: SetSchema) -> AlterMaterializedViewAction {
29418        AlterMaterializedViewAction::SetSchema(node)
29419    }
29420}
29421impl AstNode for AlterTableAction {
29422    #[inline]
29423    fn can_cast(kind: SyntaxKind) -> bool {
29424        matches!(
29425            kind,
29426            SyntaxKind::ADD_COLUMN
29427                | SyntaxKind::ADD_CONSTRAINT
29428                | SyntaxKind::ALTER_COLUMN
29429                | SyntaxKind::ALTER_CONSTRAINT
29430                | SyntaxKind::ATTACH_PARTITION
29431                | SyntaxKind::CLUSTER_ON
29432                | SyntaxKind::DETACH_PARTITION
29433                | SyntaxKind::DISABLE_RLS
29434                | SyntaxKind::DISABLE_RULE
29435                | SyntaxKind::DISABLE_TRIGGER
29436                | SyntaxKind::DROP_COLUMN
29437                | SyntaxKind::DROP_CONSTRAINT
29438                | SyntaxKind::ENABLE_ALWAYS_RULE
29439                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
29440                | SyntaxKind::ENABLE_REPLICA_RULE
29441                | SyntaxKind::ENABLE_REPLICA_TRIGGER
29442                | SyntaxKind::ENABLE_RLS
29443                | SyntaxKind::ENABLE_RULE
29444                | SyntaxKind::ENABLE_TRIGGER
29445                | SyntaxKind::FORCE_RLS
29446                | SyntaxKind::INHERIT_TABLE
29447                | SyntaxKind::MERGE_PARTITIONS
29448                | SyntaxKind::NO_FORCE_RLS
29449                | SyntaxKind::NO_INHERIT_TABLE
29450                | SyntaxKind::NOT_OF
29451                | SyntaxKind::OF_TYPE
29452                | SyntaxKind::OPTION_ITEM_LIST
29453                | SyntaxKind::OWNER_TO
29454                | SyntaxKind::RENAME_COLUMN
29455                | SyntaxKind::RENAME_CONSTRAINT
29456                | SyntaxKind::RENAME_TO
29457                | SyntaxKind::REPLICA_IDENTITY
29458                | SyntaxKind::RESET_OPTIONS
29459                | SyntaxKind::SET_ACCESS_METHOD
29460                | SyntaxKind::SET_LOGGED
29461                | SyntaxKind::SET_OPTIONS
29462                | SyntaxKind::SET_SCHEMA
29463                | SyntaxKind::SET_TABLESPACE
29464                | SyntaxKind::SET_UNLOGGED
29465                | SyntaxKind::SET_WITHOUT_CLUSTER
29466                | SyntaxKind::SET_WITHOUT_OIDS
29467                | SyntaxKind::SPLIT_PARTITION
29468                | SyntaxKind::VALIDATE_CONSTRAINT
29469        )
29470    }
29471    #[inline]
29472    fn cast(syntax: SyntaxNode) -> Option<Self> {
29473        let res = match syntax.kind() {
29474            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
29475            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
29476            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
29477            SyntaxKind::ALTER_CONSTRAINT => {
29478                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
29479            }
29480            SyntaxKind::ATTACH_PARTITION => {
29481                AlterTableAction::AttachPartition(AttachPartition { syntax })
29482            }
29483            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
29484            SyntaxKind::DETACH_PARTITION => {
29485                AlterTableAction::DetachPartition(DetachPartition { syntax })
29486            }
29487            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
29488            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
29489            SyntaxKind::DISABLE_TRIGGER => {
29490                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
29491            }
29492            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
29493            SyntaxKind::DROP_CONSTRAINT => {
29494                AlterTableAction::DropConstraint(DropConstraint { syntax })
29495            }
29496            SyntaxKind::ENABLE_ALWAYS_RULE => {
29497                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
29498            }
29499            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
29500                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
29501            }
29502            SyntaxKind::ENABLE_REPLICA_RULE => {
29503                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
29504            }
29505            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
29506                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
29507            }
29508            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
29509            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
29510            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
29511            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
29512            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
29513            SyntaxKind::MERGE_PARTITIONS => {
29514                AlterTableAction::MergePartitions(MergePartitions { syntax })
29515            }
29516            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
29517            SyntaxKind::NO_INHERIT_TABLE => {
29518                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
29519            }
29520            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
29521            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
29522            SyntaxKind::OPTION_ITEM_LIST => {
29523                AlterTableAction::OptionItemList(OptionItemList { syntax })
29524            }
29525            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
29526            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
29527            SyntaxKind::RENAME_CONSTRAINT => {
29528                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
29529            }
29530            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
29531            SyntaxKind::REPLICA_IDENTITY => {
29532                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
29533            }
29534            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
29535            SyntaxKind::SET_ACCESS_METHOD => {
29536                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
29537            }
29538            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
29539            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
29540            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
29541            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
29542            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
29543            SyntaxKind::SET_WITHOUT_CLUSTER => {
29544                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
29545            }
29546            SyntaxKind::SET_WITHOUT_OIDS => {
29547                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
29548            }
29549            SyntaxKind::SPLIT_PARTITION => {
29550                AlterTableAction::SplitPartition(SplitPartition { syntax })
29551            }
29552            SyntaxKind::VALIDATE_CONSTRAINT => {
29553                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
29554            }
29555            _ => {
29556                return None;
29557            }
29558        };
29559        Some(res)
29560    }
29561    #[inline]
29562    fn syntax(&self) -> &SyntaxNode {
29563        match self {
29564            AlterTableAction::AddColumn(it) => &it.syntax,
29565            AlterTableAction::AddConstraint(it) => &it.syntax,
29566            AlterTableAction::AlterColumn(it) => &it.syntax,
29567            AlterTableAction::AlterConstraint(it) => &it.syntax,
29568            AlterTableAction::AttachPartition(it) => &it.syntax,
29569            AlterTableAction::ClusterOn(it) => &it.syntax,
29570            AlterTableAction::DetachPartition(it) => &it.syntax,
29571            AlterTableAction::DisableRls(it) => &it.syntax,
29572            AlterTableAction::DisableRule(it) => &it.syntax,
29573            AlterTableAction::DisableTrigger(it) => &it.syntax,
29574            AlterTableAction::DropColumn(it) => &it.syntax,
29575            AlterTableAction::DropConstraint(it) => &it.syntax,
29576            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
29577            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
29578            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
29579            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
29580            AlterTableAction::EnableRls(it) => &it.syntax,
29581            AlterTableAction::EnableRule(it) => &it.syntax,
29582            AlterTableAction::EnableTrigger(it) => &it.syntax,
29583            AlterTableAction::ForceRls(it) => &it.syntax,
29584            AlterTableAction::InheritTable(it) => &it.syntax,
29585            AlterTableAction::MergePartitions(it) => &it.syntax,
29586            AlterTableAction::NoForceRls(it) => &it.syntax,
29587            AlterTableAction::NoInheritTable(it) => &it.syntax,
29588            AlterTableAction::NotOf(it) => &it.syntax,
29589            AlterTableAction::OfType(it) => &it.syntax,
29590            AlterTableAction::OptionItemList(it) => &it.syntax,
29591            AlterTableAction::OwnerTo(it) => &it.syntax,
29592            AlterTableAction::RenameColumn(it) => &it.syntax,
29593            AlterTableAction::RenameConstraint(it) => &it.syntax,
29594            AlterTableAction::RenameTo(it) => &it.syntax,
29595            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
29596            AlterTableAction::ResetOptions(it) => &it.syntax,
29597            AlterTableAction::SetAccessMethod(it) => &it.syntax,
29598            AlterTableAction::SetLogged(it) => &it.syntax,
29599            AlterTableAction::SetOptions(it) => &it.syntax,
29600            AlterTableAction::SetSchema(it) => &it.syntax,
29601            AlterTableAction::SetTablespace(it) => &it.syntax,
29602            AlterTableAction::SetUnlogged(it) => &it.syntax,
29603            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
29604            AlterTableAction::SetWithoutOids(it) => &it.syntax,
29605            AlterTableAction::SplitPartition(it) => &it.syntax,
29606            AlterTableAction::ValidateConstraint(it) => &it.syntax,
29607        }
29608    }
29609}
29610impl From<AddColumn> for AlterTableAction {
29611    #[inline]
29612    fn from(node: AddColumn) -> AlterTableAction {
29613        AlterTableAction::AddColumn(node)
29614    }
29615}
29616impl From<AddConstraint> for AlterTableAction {
29617    #[inline]
29618    fn from(node: AddConstraint) -> AlterTableAction {
29619        AlterTableAction::AddConstraint(node)
29620    }
29621}
29622impl From<AlterColumn> for AlterTableAction {
29623    #[inline]
29624    fn from(node: AlterColumn) -> AlterTableAction {
29625        AlterTableAction::AlterColumn(node)
29626    }
29627}
29628impl From<AlterConstraint> for AlterTableAction {
29629    #[inline]
29630    fn from(node: AlterConstraint) -> AlterTableAction {
29631        AlterTableAction::AlterConstraint(node)
29632    }
29633}
29634impl From<AttachPartition> for AlterTableAction {
29635    #[inline]
29636    fn from(node: AttachPartition) -> AlterTableAction {
29637        AlterTableAction::AttachPartition(node)
29638    }
29639}
29640impl From<ClusterOn> for AlterTableAction {
29641    #[inline]
29642    fn from(node: ClusterOn) -> AlterTableAction {
29643        AlterTableAction::ClusterOn(node)
29644    }
29645}
29646impl From<DetachPartition> for AlterTableAction {
29647    #[inline]
29648    fn from(node: DetachPartition) -> AlterTableAction {
29649        AlterTableAction::DetachPartition(node)
29650    }
29651}
29652impl From<DisableRls> for AlterTableAction {
29653    #[inline]
29654    fn from(node: DisableRls) -> AlterTableAction {
29655        AlterTableAction::DisableRls(node)
29656    }
29657}
29658impl From<DisableRule> for AlterTableAction {
29659    #[inline]
29660    fn from(node: DisableRule) -> AlterTableAction {
29661        AlterTableAction::DisableRule(node)
29662    }
29663}
29664impl From<DisableTrigger> for AlterTableAction {
29665    #[inline]
29666    fn from(node: DisableTrigger) -> AlterTableAction {
29667        AlterTableAction::DisableTrigger(node)
29668    }
29669}
29670impl From<DropColumn> for AlterTableAction {
29671    #[inline]
29672    fn from(node: DropColumn) -> AlterTableAction {
29673        AlterTableAction::DropColumn(node)
29674    }
29675}
29676impl From<DropConstraint> for AlterTableAction {
29677    #[inline]
29678    fn from(node: DropConstraint) -> AlterTableAction {
29679        AlterTableAction::DropConstraint(node)
29680    }
29681}
29682impl From<EnableAlwaysRule> for AlterTableAction {
29683    #[inline]
29684    fn from(node: EnableAlwaysRule) -> AlterTableAction {
29685        AlterTableAction::EnableAlwaysRule(node)
29686    }
29687}
29688impl From<EnableAlwaysTrigger> for AlterTableAction {
29689    #[inline]
29690    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
29691        AlterTableAction::EnableAlwaysTrigger(node)
29692    }
29693}
29694impl From<EnableReplicaRule> for AlterTableAction {
29695    #[inline]
29696    fn from(node: EnableReplicaRule) -> AlterTableAction {
29697        AlterTableAction::EnableReplicaRule(node)
29698    }
29699}
29700impl From<EnableReplicaTrigger> for AlterTableAction {
29701    #[inline]
29702    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
29703        AlterTableAction::EnableReplicaTrigger(node)
29704    }
29705}
29706impl From<EnableRls> for AlterTableAction {
29707    #[inline]
29708    fn from(node: EnableRls) -> AlterTableAction {
29709        AlterTableAction::EnableRls(node)
29710    }
29711}
29712impl From<EnableRule> for AlterTableAction {
29713    #[inline]
29714    fn from(node: EnableRule) -> AlterTableAction {
29715        AlterTableAction::EnableRule(node)
29716    }
29717}
29718impl From<EnableTrigger> for AlterTableAction {
29719    #[inline]
29720    fn from(node: EnableTrigger) -> AlterTableAction {
29721        AlterTableAction::EnableTrigger(node)
29722    }
29723}
29724impl From<ForceRls> for AlterTableAction {
29725    #[inline]
29726    fn from(node: ForceRls) -> AlterTableAction {
29727        AlterTableAction::ForceRls(node)
29728    }
29729}
29730impl From<InheritTable> for AlterTableAction {
29731    #[inline]
29732    fn from(node: InheritTable) -> AlterTableAction {
29733        AlterTableAction::InheritTable(node)
29734    }
29735}
29736impl From<MergePartitions> for AlterTableAction {
29737    #[inline]
29738    fn from(node: MergePartitions) -> AlterTableAction {
29739        AlterTableAction::MergePartitions(node)
29740    }
29741}
29742impl From<NoForceRls> for AlterTableAction {
29743    #[inline]
29744    fn from(node: NoForceRls) -> AlterTableAction {
29745        AlterTableAction::NoForceRls(node)
29746    }
29747}
29748impl From<NoInheritTable> for AlterTableAction {
29749    #[inline]
29750    fn from(node: NoInheritTable) -> AlterTableAction {
29751        AlterTableAction::NoInheritTable(node)
29752    }
29753}
29754impl From<NotOf> for AlterTableAction {
29755    #[inline]
29756    fn from(node: NotOf) -> AlterTableAction {
29757        AlterTableAction::NotOf(node)
29758    }
29759}
29760impl From<OfType> for AlterTableAction {
29761    #[inline]
29762    fn from(node: OfType) -> AlterTableAction {
29763        AlterTableAction::OfType(node)
29764    }
29765}
29766impl From<OptionItemList> for AlterTableAction {
29767    #[inline]
29768    fn from(node: OptionItemList) -> AlterTableAction {
29769        AlterTableAction::OptionItemList(node)
29770    }
29771}
29772impl From<OwnerTo> for AlterTableAction {
29773    #[inline]
29774    fn from(node: OwnerTo) -> AlterTableAction {
29775        AlterTableAction::OwnerTo(node)
29776    }
29777}
29778impl From<RenameColumn> for AlterTableAction {
29779    #[inline]
29780    fn from(node: RenameColumn) -> AlterTableAction {
29781        AlterTableAction::RenameColumn(node)
29782    }
29783}
29784impl From<RenameConstraint> for AlterTableAction {
29785    #[inline]
29786    fn from(node: RenameConstraint) -> AlterTableAction {
29787        AlterTableAction::RenameConstraint(node)
29788    }
29789}
29790impl From<RenameTo> for AlterTableAction {
29791    #[inline]
29792    fn from(node: RenameTo) -> AlterTableAction {
29793        AlterTableAction::RenameTo(node)
29794    }
29795}
29796impl From<ReplicaIdentity> for AlterTableAction {
29797    #[inline]
29798    fn from(node: ReplicaIdentity) -> AlterTableAction {
29799        AlterTableAction::ReplicaIdentity(node)
29800    }
29801}
29802impl From<ResetOptions> for AlterTableAction {
29803    #[inline]
29804    fn from(node: ResetOptions) -> AlterTableAction {
29805        AlterTableAction::ResetOptions(node)
29806    }
29807}
29808impl From<SetAccessMethod> for AlterTableAction {
29809    #[inline]
29810    fn from(node: SetAccessMethod) -> AlterTableAction {
29811        AlterTableAction::SetAccessMethod(node)
29812    }
29813}
29814impl From<SetLogged> for AlterTableAction {
29815    #[inline]
29816    fn from(node: SetLogged) -> AlterTableAction {
29817        AlterTableAction::SetLogged(node)
29818    }
29819}
29820impl From<SetOptions> for AlterTableAction {
29821    #[inline]
29822    fn from(node: SetOptions) -> AlterTableAction {
29823        AlterTableAction::SetOptions(node)
29824    }
29825}
29826impl From<SetSchema> for AlterTableAction {
29827    #[inline]
29828    fn from(node: SetSchema) -> AlterTableAction {
29829        AlterTableAction::SetSchema(node)
29830    }
29831}
29832impl From<SetTablespace> for AlterTableAction {
29833    #[inline]
29834    fn from(node: SetTablespace) -> AlterTableAction {
29835        AlterTableAction::SetTablespace(node)
29836    }
29837}
29838impl From<SetUnlogged> for AlterTableAction {
29839    #[inline]
29840    fn from(node: SetUnlogged) -> AlterTableAction {
29841        AlterTableAction::SetUnlogged(node)
29842    }
29843}
29844impl From<SetWithoutCluster> for AlterTableAction {
29845    #[inline]
29846    fn from(node: SetWithoutCluster) -> AlterTableAction {
29847        AlterTableAction::SetWithoutCluster(node)
29848    }
29849}
29850impl From<SetWithoutOids> for AlterTableAction {
29851    #[inline]
29852    fn from(node: SetWithoutOids) -> AlterTableAction {
29853        AlterTableAction::SetWithoutOids(node)
29854    }
29855}
29856impl From<SplitPartition> for AlterTableAction {
29857    #[inline]
29858    fn from(node: SplitPartition) -> AlterTableAction {
29859        AlterTableAction::SplitPartition(node)
29860    }
29861}
29862impl From<ValidateConstraint> for AlterTableAction {
29863    #[inline]
29864    fn from(node: ValidateConstraint) -> AlterTableAction {
29865        AlterTableAction::ValidateConstraint(node)
29866    }
29867}
29868impl AstNode for ColumnConstraint {
29869    #[inline]
29870    fn can_cast(kind: SyntaxKind) -> bool {
29871        matches!(
29872            kind,
29873            SyntaxKind::CHECK_CONSTRAINT
29874                | SyntaxKind::DEFAULT_CONSTRAINT
29875                | SyntaxKind::EXCLUDE_CONSTRAINT
29876                | SyntaxKind::NOT_NULL_CONSTRAINT
29877                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
29878                | SyntaxKind::REFERENCES_CONSTRAINT
29879                | SyntaxKind::UNIQUE_CONSTRAINT
29880        )
29881    }
29882    #[inline]
29883    fn cast(syntax: SyntaxNode) -> Option<Self> {
29884        let res = match syntax.kind() {
29885            SyntaxKind::CHECK_CONSTRAINT => {
29886                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
29887            }
29888            SyntaxKind::DEFAULT_CONSTRAINT => {
29889                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
29890            }
29891            SyntaxKind::EXCLUDE_CONSTRAINT => {
29892                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
29893            }
29894            SyntaxKind::NOT_NULL_CONSTRAINT => {
29895                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
29896            }
29897            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
29898                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
29899            }
29900            SyntaxKind::REFERENCES_CONSTRAINT => {
29901                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
29902            }
29903            SyntaxKind::UNIQUE_CONSTRAINT => {
29904                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
29905            }
29906            _ => {
29907                return None;
29908            }
29909        };
29910        Some(res)
29911    }
29912    #[inline]
29913    fn syntax(&self) -> &SyntaxNode {
29914        match self {
29915            ColumnConstraint::CheckConstraint(it) => &it.syntax,
29916            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
29917            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
29918            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
29919            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
29920            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
29921            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
29922        }
29923    }
29924}
29925impl From<CheckConstraint> for ColumnConstraint {
29926    #[inline]
29927    fn from(node: CheckConstraint) -> ColumnConstraint {
29928        ColumnConstraint::CheckConstraint(node)
29929    }
29930}
29931impl From<DefaultConstraint> for ColumnConstraint {
29932    #[inline]
29933    fn from(node: DefaultConstraint) -> ColumnConstraint {
29934        ColumnConstraint::DefaultConstraint(node)
29935    }
29936}
29937impl From<ExcludeConstraint> for ColumnConstraint {
29938    #[inline]
29939    fn from(node: ExcludeConstraint) -> ColumnConstraint {
29940        ColumnConstraint::ExcludeConstraint(node)
29941    }
29942}
29943impl From<NotNullConstraint> for ColumnConstraint {
29944    #[inline]
29945    fn from(node: NotNullConstraint) -> ColumnConstraint {
29946        ColumnConstraint::NotNullConstraint(node)
29947    }
29948}
29949impl From<PrimaryKeyConstraint> for ColumnConstraint {
29950    #[inline]
29951    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
29952        ColumnConstraint::PrimaryKeyConstraint(node)
29953    }
29954}
29955impl From<ReferencesConstraint> for ColumnConstraint {
29956    #[inline]
29957    fn from(node: ReferencesConstraint) -> ColumnConstraint {
29958        ColumnConstraint::ReferencesConstraint(node)
29959    }
29960}
29961impl From<UniqueConstraint> for ColumnConstraint {
29962    #[inline]
29963    fn from(node: UniqueConstraint) -> ColumnConstraint {
29964        ColumnConstraint::UniqueConstraint(node)
29965    }
29966}
29967impl AstNode for ConfigValue {
29968    #[inline]
29969    fn can_cast(kind: SyntaxKind) -> bool {
29970        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
29971    }
29972    #[inline]
29973    fn cast(syntax: SyntaxNode) -> Option<Self> {
29974        let res = match syntax.kind() {
29975            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
29976            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
29977            _ => {
29978                return None;
29979            }
29980        };
29981        Some(res)
29982    }
29983    #[inline]
29984    fn syntax(&self) -> &SyntaxNode {
29985        match self {
29986            ConfigValue::Literal(it) => &it.syntax,
29987            ConfigValue::NameRef(it) => &it.syntax,
29988        }
29989    }
29990}
29991impl From<Literal> for ConfigValue {
29992    #[inline]
29993    fn from(node: Literal) -> ConfigValue {
29994        ConfigValue::Literal(node)
29995    }
29996}
29997impl From<NameRef> for ConfigValue {
29998    #[inline]
29999    fn from(node: NameRef) -> ConfigValue {
30000        ConfigValue::NameRef(node)
30001    }
30002}
30003impl AstNode for ConflictAction {
30004    #[inline]
30005    fn can_cast(kind: SyntaxKind) -> bool {
30006        matches!(
30007            kind,
30008            SyntaxKind::CONFLICT_DO_NOTHING | SyntaxKind::CONFLICT_DO_UPDATE_SET
30009        )
30010    }
30011    #[inline]
30012    fn cast(syntax: SyntaxNode) -> Option<Self> {
30013        let res = match syntax.kind() {
30014            SyntaxKind::CONFLICT_DO_NOTHING => {
30015                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
30016            }
30017            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
30018                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
30019            }
30020            _ => {
30021                return None;
30022            }
30023        };
30024        Some(res)
30025    }
30026    #[inline]
30027    fn syntax(&self) -> &SyntaxNode {
30028        match self {
30029            ConflictAction::ConflictDoNothing(it) => &it.syntax,
30030            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
30031        }
30032    }
30033}
30034impl From<ConflictDoNothing> for ConflictAction {
30035    #[inline]
30036    fn from(node: ConflictDoNothing) -> ConflictAction {
30037        ConflictAction::ConflictDoNothing(node)
30038    }
30039}
30040impl From<ConflictDoUpdateSet> for ConflictAction {
30041    #[inline]
30042    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
30043        ConflictAction::ConflictDoUpdateSet(node)
30044    }
30045}
30046impl AstNode for ConflictTarget {
30047    #[inline]
30048    fn can_cast(kind: SyntaxKind) -> bool {
30049        matches!(
30050            kind,
30051            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
30052        )
30053    }
30054    #[inline]
30055    fn cast(syntax: SyntaxNode) -> Option<Self> {
30056        let res = match syntax.kind() {
30057            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
30058                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
30059            }
30060            SyntaxKind::CONFLICT_ON_INDEX => {
30061                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
30062            }
30063            _ => {
30064                return None;
30065            }
30066        };
30067        Some(res)
30068    }
30069    #[inline]
30070    fn syntax(&self) -> &SyntaxNode {
30071        match self {
30072            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
30073            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
30074        }
30075    }
30076}
30077impl From<ConflictOnConstraint> for ConflictTarget {
30078    #[inline]
30079    fn from(node: ConflictOnConstraint) -> ConflictTarget {
30080        ConflictTarget::ConflictOnConstraint(node)
30081    }
30082}
30083impl From<ConflictOnIndex> for ConflictTarget {
30084    #[inline]
30085    fn from(node: ConflictOnIndex) -> ConflictTarget {
30086        ConflictTarget::ConflictOnIndex(node)
30087    }
30088}
30089impl AstNode for Constraint {
30090    #[inline]
30091    fn can_cast(kind: SyntaxKind) -> bool {
30092        matches!(
30093            kind,
30094            SyntaxKind::CHECK_CONSTRAINT
30095                | SyntaxKind::DEFAULT_CONSTRAINT
30096                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
30097                | SyntaxKind::GENERATED_CONSTRAINT
30098                | SyntaxKind::NOT_NULL_CONSTRAINT
30099                | SyntaxKind::NULL_CONSTRAINT
30100                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
30101                | SyntaxKind::REFERENCES_CONSTRAINT
30102                | SyntaxKind::UNIQUE_CONSTRAINT
30103        )
30104    }
30105    #[inline]
30106    fn cast(syntax: SyntaxNode) -> Option<Self> {
30107        let res = match syntax.kind() {
30108            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
30109            SyntaxKind::DEFAULT_CONSTRAINT => {
30110                Constraint::DefaultConstraint(DefaultConstraint { syntax })
30111            }
30112            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
30113                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
30114            }
30115            SyntaxKind::GENERATED_CONSTRAINT => {
30116                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
30117            }
30118            SyntaxKind::NOT_NULL_CONSTRAINT => {
30119                Constraint::NotNullConstraint(NotNullConstraint { syntax })
30120            }
30121            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
30122            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
30123                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
30124            }
30125            SyntaxKind::REFERENCES_CONSTRAINT => {
30126                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
30127            }
30128            SyntaxKind::UNIQUE_CONSTRAINT => {
30129                Constraint::UniqueConstraint(UniqueConstraint { syntax })
30130            }
30131            _ => {
30132                return None;
30133            }
30134        };
30135        Some(res)
30136    }
30137    #[inline]
30138    fn syntax(&self) -> &SyntaxNode {
30139        match self {
30140            Constraint::CheckConstraint(it) => &it.syntax,
30141            Constraint::DefaultConstraint(it) => &it.syntax,
30142            Constraint::ForeignKeyConstraint(it) => &it.syntax,
30143            Constraint::GeneratedConstraint(it) => &it.syntax,
30144            Constraint::NotNullConstraint(it) => &it.syntax,
30145            Constraint::NullConstraint(it) => &it.syntax,
30146            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
30147            Constraint::ReferencesConstraint(it) => &it.syntax,
30148            Constraint::UniqueConstraint(it) => &it.syntax,
30149        }
30150    }
30151}
30152impl From<CheckConstraint> for Constraint {
30153    #[inline]
30154    fn from(node: CheckConstraint) -> Constraint {
30155        Constraint::CheckConstraint(node)
30156    }
30157}
30158impl From<DefaultConstraint> for Constraint {
30159    #[inline]
30160    fn from(node: DefaultConstraint) -> Constraint {
30161        Constraint::DefaultConstraint(node)
30162    }
30163}
30164impl From<ForeignKeyConstraint> for Constraint {
30165    #[inline]
30166    fn from(node: ForeignKeyConstraint) -> Constraint {
30167        Constraint::ForeignKeyConstraint(node)
30168    }
30169}
30170impl From<GeneratedConstraint> for Constraint {
30171    #[inline]
30172    fn from(node: GeneratedConstraint) -> Constraint {
30173        Constraint::GeneratedConstraint(node)
30174    }
30175}
30176impl From<NotNullConstraint> for Constraint {
30177    #[inline]
30178    fn from(node: NotNullConstraint) -> Constraint {
30179        Constraint::NotNullConstraint(node)
30180    }
30181}
30182impl From<NullConstraint> for Constraint {
30183    #[inline]
30184    fn from(node: NullConstraint) -> Constraint {
30185        Constraint::NullConstraint(node)
30186    }
30187}
30188impl From<PrimaryKeyConstraint> for Constraint {
30189    #[inline]
30190    fn from(node: PrimaryKeyConstraint) -> Constraint {
30191        Constraint::PrimaryKeyConstraint(node)
30192    }
30193}
30194impl From<ReferencesConstraint> for Constraint {
30195    #[inline]
30196    fn from(node: ReferencesConstraint) -> Constraint {
30197        Constraint::ReferencesConstraint(node)
30198    }
30199}
30200impl From<UniqueConstraint> for Constraint {
30201    #[inline]
30202    fn from(node: UniqueConstraint) -> Constraint {
30203        Constraint::UniqueConstraint(node)
30204    }
30205}
30206impl AstNode for ExplainStmt {
30207    #[inline]
30208    fn can_cast(kind: SyntaxKind) -> bool {
30209        matches!(
30210            kind,
30211            SyntaxKind::COMPOUND_SELECT
30212                | SyntaxKind::CREATE_MATERIALIZED_VIEW
30213                | SyntaxKind::CREATE_TABLE_AS
30214                | SyntaxKind::DECLARE
30215                | SyntaxKind::DELETE
30216                | SyntaxKind::EXECUTE
30217                | SyntaxKind::INSERT
30218                | SyntaxKind::MERGE
30219                | SyntaxKind::PAREN_SELECT
30220                | SyntaxKind::SELECT
30221                | SyntaxKind::SELECT_INTO
30222                | SyntaxKind::TABLE
30223                | SyntaxKind::UPDATE
30224                | SyntaxKind::VALUES
30225        )
30226    }
30227    #[inline]
30228    fn cast(syntax: SyntaxNode) -> Option<Self> {
30229        let res = match syntax.kind() {
30230            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
30231            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
30232                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
30233            }
30234            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
30235            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
30236            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
30237            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
30238            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
30239            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
30240            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
30241            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
30242            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
30243            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
30244            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
30245            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
30246            _ => {
30247                return None;
30248            }
30249        };
30250        Some(res)
30251    }
30252    #[inline]
30253    fn syntax(&self) -> &SyntaxNode {
30254        match self {
30255            ExplainStmt::CompoundSelect(it) => &it.syntax,
30256            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
30257            ExplainStmt::CreateTableAs(it) => &it.syntax,
30258            ExplainStmt::Declare(it) => &it.syntax,
30259            ExplainStmt::Delete(it) => &it.syntax,
30260            ExplainStmt::Execute(it) => &it.syntax,
30261            ExplainStmt::Insert(it) => &it.syntax,
30262            ExplainStmt::Merge(it) => &it.syntax,
30263            ExplainStmt::ParenSelect(it) => &it.syntax,
30264            ExplainStmt::Select(it) => &it.syntax,
30265            ExplainStmt::SelectInto(it) => &it.syntax,
30266            ExplainStmt::Table(it) => &it.syntax,
30267            ExplainStmt::Update(it) => &it.syntax,
30268            ExplainStmt::Values(it) => &it.syntax,
30269        }
30270    }
30271}
30272impl From<CompoundSelect> for ExplainStmt {
30273    #[inline]
30274    fn from(node: CompoundSelect) -> ExplainStmt {
30275        ExplainStmt::CompoundSelect(node)
30276    }
30277}
30278impl From<CreateMaterializedView> for ExplainStmt {
30279    #[inline]
30280    fn from(node: CreateMaterializedView) -> ExplainStmt {
30281        ExplainStmt::CreateMaterializedView(node)
30282    }
30283}
30284impl From<CreateTableAs> for ExplainStmt {
30285    #[inline]
30286    fn from(node: CreateTableAs) -> ExplainStmt {
30287        ExplainStmt::CreateTableAs(node)
30288    }
30289}
30290impl From<Declare> for ExplainStmt {
30291    #[inline]
30292    fn from(node: Declare) -> ExplainStmt {
30293        ExplainStmt::Declare(node)
30294    }
30295}
30296impl From<Delete> for ExplainStmt {
30297    #[inline]
30298    fn from(node: Delete) -> ExplainStmt {
30299        ExplainStmt::Delete(node)
30300    }
30301}
30302impl From<Execute> for ExplainStmt {
30303    #[inline]
30304    fn from(node: Execute) -> ExplainStmt {
30305        ExplainStmt::Execute(node)
30306    }
30307}
30308impl From<Insert> for ExplainStmt {
30309    #[inline]
30310    fn from(node: Insert) -> ExplainStmt {
30311        ExplainStmt::Insert(node)
30312    }
30313}
30314impl From<Merge> for ExplainStmt {
30315    #[inline]
30316    fn from(node: Merge) -> ExplainStmt {
30317        ExplainStmt::Merge(node)
30318    }
30319}
30320impl From<ParenSelect> for ExplainStmt {
30321    #[inline]
30322    fn from(node: ParenSelect) -> ExplainStmt {
30323        ExplainStmt::ParenSelect(node)
30324    }
30325}
30326impl From<Select> for ExplainStmt {
30327    #[inline]
30328    fn from(node: Select) -> ExplainStmt {
30329        ExplainStmt::Select(node)
30330    }
30331}
30332impl From<SelectInto> for ExplainStmt {
30333    #[inline]
30334    fn from(node: SelectInto) -> ExplainStmt {
30335        ExplainStmt::SelectInto(node)
30336    }
30337}
30338impl From<Table> for ExplainStmt {
30339    #[inline]
30340    fn from(node: Table) -> ExplainStmt {
30341        ExplainStmt::Table(node)
30342    }
30343}
30344impl From<Update> for ExplainStmt {
30345    #[inline]
30346    fn from(node: Update) -> ExplainStmt {
30347        ExplainStmt::Update(node)
30348    }
30349}
30350impl From<Values> for ExplainStmt {
30351    #[inline]
30352    fn from(node: Values) -> ExplainStmt {
30353        ExplainStmt::Values(node)
30354    }
30355}
30356impl AstNode for Expr {
30357    #[inline]
30358    fn can_cast(kind: SyntaxKind) -> bool {
30359        matches!(
30360            kind,
30361            SyntaxKind::ARRAY_EXPR
30362                | SyntaxKind::BETWEEN_EXPR
30363                | SyntaxKind::BIN_EXPR
30364                | SyntaxKind::CALL_EXPR
30365                | SyntaxKind::CASE_EXPR
30366                | SyntaxKind::CAST_EXPR
30367                | SyntaxKind::FIELD_EXPR
30368                | SyntaxKind::INDEX_EXPR
30369                | SyntaxKind::LITERAL
30370                | SyntaxKind::NAME_REF
30371                | SyntaxKind::PAREN_EXPR
30372                | SyntaxKind::POSTFIX_EXPR
30373                | SyntaxKind::PREFIX_EXPR
30374                | SyntaxKind::SLICE_EXPR
30375                | SyntaxKind::TUPLE_EXPR
30376        )
30377    }
30378    #[inline]
30379    fn cast(syntax: SyntaxNode) -> Option<Self> {
30380        let res = match syntax.kind() {
30381            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
30382            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
30383            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
30384            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
30385            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
30386            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
30387            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
30388            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
30389            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
30390            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
30391            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
30392            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
30393            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
30394            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
30395            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
30396            _ => {
30397                return None;
30398            }
30399        };
30400        Some(res)
30401    }
30402    #[inline]
30403    fn syntax(&self) -> &SyntaxNode {
30404        match self {
30405            Expr::ArrayExpr(it) => &it.syntax,
30406            Expr::BetweenExpr(it) => &it.syntax,
30407            Expr::BinExpr(it) => &it.syntax,
30408            Expr::CallExpr(it) => &it.syntax,
30409            Expr::CaseExpr(it) => &it.syntax,
30410            Expr::CastExpr(it) => &it.syntax,
30411            Expr::FieldExpr(it) => &it.syntax,
30412            Expr::IndexExpr(it) => &it.syntax,
30413            Expr::Literal(it) => &it.syntax,
30414            Expr::NameRef(it) => &it.syntax,
30415            Expr::ParenExpr(it) => &it.syntax,
30416            Expr::PostfixExpr(it) => &it.syntax,
30417            Expr::PrefixExpr(it) => &it.syntax,
30418            Expr::SliceExpr(it) => &it.syntax,
30419            Expr::TupleExpr(it) => &it.syntax,
30420        }
30421    }
30422}
30423impl From<ArrayExpr> for Expr {
30424    #[inline]
30425    fn from(node: ArrayExpr) -> Expr {
30426        Expr::ArrayExpr(node)
30427    }
30428}
30429impl From<BetweenExpr> for Expr {
30430    #[inline]
30431    fn from(node: BetweenExpr) -> Expr {
30432        Expr::BetweenExpr(node)
30433    }
30434}
30435impl From<BinExpr> for Expr {
30436    #[inline]
30437    fn from(node: BinExpr) -> Expr {
30438        Expr::BinExpr(node)
30439    }
30440}
30441impl From<CallExpr> for Expr {
30442    #[inline]
30443    fn from(node: CallExpr) -> Expr {
30444        Expr::CallExpr(node)
30445    }
30446}
30447impl From<CaseExpr> for Expr {
30448    #[inline]
30449    fn from(node: CaseExpr) -> Expr {
30450        Expr::CaseExpr(node)
30451    }
30452}
30453impl From<CastExpr> for Expr {
30454    #[inline]
30455    fn from(node: CastExpr) -> Expr {
30456        Expr::CastExpr(node)
30457    }
30458}
30459impl From<FieldExpr> for Expr {
30460    #[inline]
30461    fn from(node: FieldExpr) -> Expr {
30462        Expr::FieldExpr(node)
30463    }
30464}
30465impl From<IndexExpr> for Expr {
30466    #[inline]
30467    fn from(node: IndexExpr) -> Expr {
30468        Expr::IndexExpr(node)
30469    }
30470}
30471impl From<Literal> for Expr {
30472    #[inline]
30473    fn from(node: Literal) -> Expr {
30474        Expr::Literal(node)
30475    }
30476}
30477impl From<NameRef> for Expr {
30478    #[inline]
30479    fn from(node: NameRef) -> Expr {
30480        Expr::NameRef(node)
30481    }
30482}
30483impl From<ParenExpr> for Expr {
30484    #[inline]
30485    fn from(node: ParenExpr) -> Expr {
30486        Expr::ParenExpr(node)
30487    }
30488}
30489impl From<PostfixExpr> for Expr {
30490    #[inline]
30491    fn from(node: PostfixExpr) -> Expr {
30492        Expr::PostfixExpr(node)
30493    }
30494}
30495impl From<PrefixExpr> for Expr {
30496    #[inline]
30497    fn from(node: PrefixExpr) -> Expr {
30498        Expr::PrefixExpr(node)
30499    }
30500}
30501impl From<SliceExpr> for Expr {
30502    #[inline]
30503    fn from(node: SliceExpr) -> Expr {
30504        Expr::SliceExpr(node)
30505    }
30506}
30507impl From<TupleExpr> for Expr {
30508    #[inline]
30509    fn from(node: TupleExpr) -> Expr {
30510        Expr::TupleExpr(node)
30511    }
30512}
30513impl AstNode for FuncOption {
30514    #[inline]
30515    fn can_cast(kind: SyntaxKind) -> bool {
30516        matches!(
30517            kind,
30518            SyntaxKind::AS_FUNC_OPTION
30519                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
30520                | SyntaxKind::COST_FUNC_OPTION
30521                | SyntaxKind::LANGUAGE_FUNC_OPTION
30522                | SyntaxKind::LEAKPROOF_FUNC_OPTION
30523                | SyntaxKind::PARALLEL_FUNC_OPTION
30524                | SyntaxKind::RESET_FUNC_OPTION
30525                | SyntaxKind::RETURN_FUNC_OPTION
30526                | SyntaxKind::ROWS_FUNC_OPTION
30527                | SyntaxKind::SECURITY_FUNC_OPTION
30528                | SyntaxKind::SET_FUNC_OPTION
30529                | SyntaxKind::STRICT_FUNC_OPTION
30530                | SyntaxKind::SUPPORT_FUNC_OPTION
30531                | SyntaxKind::TRANSFORM_FUNC_OPTION
30532                | SyntaxKind::VOLATILITY_FUNC_OPTION
30533                | SyntaxKind::WINDOW_FUNC_OPTION
30534        )
30535    }
30536    #[inline]
30537    fn cast(syntax: SyntaxNode) -> Option<Self> {
30538        let res = match syntax.kind() {
30539            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
30540            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
30541                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
30542            }
30543            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
30544            SyntaxKind::LANGUAGE_FUNC_OPTION => {
30545                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
30546            }
30547            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
30548                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
30549            }
30550            SyntaxKind::PARALLEL_FUNC_OPTION => {
30551                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
30552            }
30553            SyntaxKind::RESET_FUNC_OPTION => {
30554                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
30555            }
30556            SyntaxKind::RETURN_FUNC_OPTION => {
30557                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
30558            }
30559            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
30560            SyntaxKind::SECURITY_FUNC_OPTION => {
30561                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
30562            }
30563            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
30564            SyntaxKind::STRICT_FUNC_OPTION => {
30565                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
30566            }
30567            SyntaxKind::SUPPORT_FUNC_OPTION => {
30568                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
30569            }
30570            SyntaxKind::TRANSFORM_FUNC_OPTION => {
30571                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
30572            }
30573            SyntaxKind::VOLATILITY_FUNC_OPTION => {
30574                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
30575            }
30576            SyntaxKind::WINDOW_FUNC_OPTION => {
30577                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
30578            }
30579            _ => {
30580                return None;
30581            }
30582        };
30583        Some(res)
30584    }
30585    #[inline]
30586    fn syntax(&self) -> &SyntaxNode {
30587        match self {
30588            FuncOption::AsFuncOption(it) => &it.syntax,
30589            FuncOption::BeginFuncOptionList(it) => &it.syntax,
30590            FuncOption::CostFuncOption(it) => &it.syntax,
30591            FuncOption::LanguageFuncOption(it) => &it.syntax,
30592            FuncOption::LeakproofFuncOption(it) => &it.syntax,
30593            FuncOption::ParallelFuncOption(it) => &it.syntax,
30594            FuncOption::ResetFuncOption(it) => &it.syntax,
30595            FuncOption::ReturnFuncOption(it) => &it.syntax,
30596            FuncOption::RowsFuncOption(it) => &it.syntax,
30597            FuncOption::SecurityFuncOption(it) => &it.syntax,
30598            FuncOption::SetFuncOption(it) => &it.syntax,
30599            FuncOption::StrictFuncOption(it) => &it.syntax,
30600            FuncOption::SupportFuncOption(it) => &it.syntax,
30601            FuncOption::TransformFuncOption(it) => &it.syntax,
30602            FuncOption::VolatilityFuncOption(it) => &it.syntax,
30603            FuncOption::WindowFuncOption(it) => &it.syntax,
30604        }
30605    }
30606}
30607impl From<AsFuncOption> for FuncOption {
30608    #[inline]
30609    fn from(node: AsFuncOption) -> FuncOption {
30610        FuncOption::AsFuncOption(node)
30611    }
30612}
30613impl From<BeginFuncOptionList> for FuncOption {
30614    #[inline]
30615    fn from(node: BeginFuncOptionList) -> FuncOption {
30616        FuncOption::BeginFuncOptionList(node)
30617    }
30618}
30619impl From<CostFuncOption> for FuncOption {
30620    #[inline]
30621    fn from(node: CostFuncOption) -> FuncOption {
30622        FuncOption::CostFuncOption(node)
30623    }
30624}
30625impl From<LanguageFuncOption> for FuncOption {
30626    #[inline]
30627    fn from(node: LanguageFuncOption) -> FuncOption {
30628        FuncOption::LanguageFuncOption(node)
30629    }
30630}
30631impl From<LeakproofFuncOption> for FuncOption {
30632    #[inline]
30633    fn from(node: LeakproofFuncOption) -> FuncOption {
30634        FuncOption::LeakproofFuncOption(node)
30635    }
30636}
30637impl From<ParallelFuncOption> for FuncOption {
30638    #[inline]
30639    fn from(node: ParallelFuncOption) -> FuncOption {
30640        FuncOption::ParallelFuncOption(node)
30641    }
30642}
30643impl From<ResetFuncOption> for FuncOption {
30644    #[inline]
30645    fn from(node: ResetFuncOption) -> FuncOption {
30646        FuncOption::ResetFuncOption(node)
30647    }
30648}
30649impl From<ReturnFuncOption> for FuncOption {
30650    #[inline]
30651    fn from(node: ReturnFuncOption) -> FuncOption {
30652        FuncOption::ReturnFuncOption(node)
30653    }
30654}
30655impl From<RowsFuncOption> for FuncOption {
30656    #[inline]
30657    fn from(node: RowsFuncOption) -> FuncOption {
30658        FuncOption::RowsFuncOption(node)
30659    }
30660}
30661impl From<SecurityFuncOption> for FuncOption {
30662    #[inline]
30663    fn from(node: SecurityFuncOption) -> FuncOption {
30664        FuncOption::SecurityFuncOption(node)
30665    }
30666}
30667impl From<SetFuncOption> for FuncOption {
30668    #[inline]
30669    fn from(node: SetFuncOption) -> FuncOption {
30670        FuncOption::SetFuncOption(node)
30671    }
30672}
30673impl From<StrictFuncOption> for FuncOption {
30674    #[inline]
30675    fn from(node: StrictFuncOption) -> FuncOption {
30676        FuncOption::StrictFuncOption(node)
30677    }
30678}
30679impl From<SupportFuncOption> for FuncOption {
30680    #[inline]
30681    fn from(node: SupportFuncOption) -> FuncOption {
30682        FuncOption::SupportFuncOption(node)
30683    }
30684}
30685impl From<TransformFuncOption> for FuncOption {
30686    #[inline]
30687    fn from(node: TransformFuncOption) -> FuncOption {
30688        FuncOption::TransformFuncOption(node)
30689    }
30690}
30691impl From<VolatilityFuncOption> for FuncOption {
30692    #[inline]
30693    fn from(node: VolatilityFuncOption) -> FuncOption {
30694        FuncOption::VolatilityFuncOption(node)
30695    }
30696}
30697impl From<WindowFuncOption> for FuncOption {
30698    #[inline]
30699    fn from(node: WindowFuncOption) -> FuncOption {
30700        FuncOption::WindowFuncOption(node)
30701    }
30702}
30703impl AstNode for GroupBy {
30704    #[inline]
30705    fn can_cast(kind: SyntaxKind) -> bool {
30706        matches!(
30707            kind,
30708            SyntaxKind::GROUPING_CUBE
30709                | SyntaxKind::GROUPING_EXPR
30710                | SyntaxKind::GROUPING_ROLLUP
30711                | SyntaxKind::GROUPING_SETS
30712        )
30713    }
30714    #[inline]
30715    fn cast(syntax: SyntaxNode) -> Option<Self> {
30716        let res = match syntax.kind() {
30717            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
30718            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
30719            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
30720            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
30721            _ => {
30722                return None;
30723            }
30724        };
30725        Some(res)
30726    }
30727    #[inline]
30728    fn syntax(&self) -> &SyntaxNode {
30729        match self {
30730            GroupBy::GroupingCube(it) => &it.syntax,
30731            GroupBy::GroupingExpr(it) => &it.syntax,
30732            GroupBy::GroupingRollup(it) => &it.syntax,
30733            GroupBy::GroupingSets(it) => &it.syntax,
30734        }
30735    }
30736}
30737impl From<GroupingCube> for GroupBy {
30738    #[inline]
30739    fn from(node: GroupingCube) -> GroupBy {
30740        GroupBy::GroupingCube(node)
30741    }
30742}
30743impl From<GroupingExpr> for GroupBy {
30744    #[inline]
30745    fn from(node: GroupingExpr) -> GroupBy {
30746        GroupBy::GroupingExpr(node)
30747    }
30748}
30749impl From<GroupingRollup> for GroupBy {
30750    #[inline]
30751    fn from(node: GroupingRollup) -> GroupBy {
30752        GroupBy::GroupingRollup(node)
30753    }
30754}
30755impl From<GroupingSets> for GroupBy {
30756    #[inline]
30757    fn from(node: GroupingSets) -> GroupBy {
30758        GroupBy::GroupingSets(node)
30759    }
30760}
30761impl AstNode for JoinType {
30762    #[inline]
30763    fn can_cast(kind: SyntaxKind) -> bool {
30764        matches!(
30765            kind,
30766            SyntaxKind::JOIN_CROSS
30767                | SyntaxKind::JOIN_FULL
30768                | SyntaxKind::JOIN_INNER
30769                | SyntaxKind::JOIN_LEFT
30770                | SyntaxKind::JOIN_RIGHT
30771        )
30772    }
30773    #[inline]
30774    fn cast(syntax: SyntaxNode) -> Option<Self> {
30775        let res = match syntax.kind() {
30776            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
30777            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
30778            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
30779            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
30780            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
30781            _ => {
30782                return None;
30783            }
30784        };
30785        Some(res)
30786    }
30787    #[inline]
30788    fn syntax(&self) -> &SyntaxNode {
30789        match self {
30790            JoinType::JoinCross(it) => &it.syntax,
30791            JoinType::JoinFull(it) => &it.syntax,
30792            JoinType::JoinInner(it) => &it.syntax,
30793            JoinType::JoinLeft(it) => &it.syntax,
30794            JoinType::JoinRight(it) => &it.syntax,
30795        }
30796    }
30797}
30798impl From<JoinCross> for JoinType {
30799    #[inline]
30800    fn from(node: JoinCross) -> JoinType {
30801        JoinType::JoinCross(node)
30802    }
30803}
30804impl From<JoinFull> for JoinType {
30805    #[inline]
30806    fn from(node: JoinFull) -> JoinType {
30807        JoinType::JoinFull(node)
30808    }
30809}
30810impl From<JoinInner> for JoinType {
30811    #[inline]
30812    fn from(node: JoinInner) -> JoinType {
30813        JoinType::JoinInner(node)
30814    }
30815}
30816impl From<JoinLeft> for JoinType {
30817    #[inline]
30818    fn from(node: JoinLeft) -> JoinType {
30819        JoinType::JoinLeft(node)
30820    }
30821}
30822impl From<JoinRight> for JoinType {
30823    #[inline]
30824    fn from(node: JoinRight) -> JoinType {
30825        JoinType::JoinRight(node)
30826    }
30827}
30828impl AstNode for JsonBehavior {
30829    #[inline]
30830    fn can_cast(kind: SyntaxKind) -> bool {
30831        matches!(
30832            kind,
30833            SyntaxKind::JSON_BEHAVIOR_DEFAULT
30834                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
30835                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
30836                | SyntaxKind::JSON_BEHAVIOR_ERROR
30837                | SyntaxKind::JSON_BEHAVIOR_FALSE
30838                | SyntaxKind::JSON_BEHAVIOR_NULL
30839                | SyntaxKind::JSON_BEHAVIOR_TRUE
30840                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
30841        )
30842    }
30843    #[inline]
30844    fn cast(syntax: SyntaxNode) -> Option<Self> {
30845        let res = match syntax.kind() {
30846            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
30847                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
30848            }
30849            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
30850                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
30851            }
30852            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
30853                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
30854            }
30855            SyntaxKind::JSON_BEHAVIOR_ERROR => {
30856                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
30857            }
30858            SyntaxKind::JSON_BEHAVIOR_FALSE => {
30859                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
30860            }
30861            SyntaxKind::JSON_BEHAVIOR_NULL => {
30862                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
30863            }
30864            SyntaxKind::JSON_BEHAVIOR_TRUE => {
30865                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
30866            }
30867            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
30868                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
30869            }
30870            _ => {
30871                return None;
30872            }
30873        };
30874        Some(res)
30875    }
30876    #[inline]
30877    fn syntax(&self) -> &SyntaxNode {
30878        match self {
30879            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
30880            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
30881            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
30882            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
30883            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
30884            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
30885            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
30886            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
30887        }
30888    }
30889}
30890impl From<JsonBehaviorDefault> for JsonBehavior {
30891    #[inline]
30892    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
30893        JsonBehavior::JsonBehaviorDefault(node)
30894    }
30895}
30896impl From<JsonBehaviorEmptyArray> for JsonBehavior {
30897    #[inline]
30898    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
30899        JsonBehavior::JsonBehaviorEmptyArray(node)
30900    }
30901}
30902impl From<JsonBehaviorEmptyObject> for JsonBehavior {
30903    #[inline]
30904    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
30905        JsonBehavior::JsonBehaviorEmptyObject(node)
30906    }
30907}
30908impl From<JsonBehaviorError> for JsonBehavior {
30909    #[inline]
30910    fn from(node: JsonBehaviorError) -> JsonBehavior {
30911        JsonBehavior::JsonBehaviorError(node)
30912    }
30913}
30914impl From<JsonBehaviorFalse> for JsonBehavior {
30915    #[inline]
30916    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
30917        JsonBehavior::JsonBehaviorFalse(node)
30918    }
30919}
30920impl From<JsonBehaviorNull> for JsonBehavior {
30921    #[inline]
30922    fn from(node: JsonBehaviorNull) -> JsonBehavior {
30923        JsonBehavior::JsonBehaviorNull(node)
30924    }
30925}
30926impl From<JsonBehaviorTrue> for JsonBehavior {
30927    #[inline]
30928    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
30929        JsonBehavior::JsonBehaviorTrue(node)
30930    }
30931}
30932impl From<JsonBehaviorUnknown> for JsonBehavior {
30933    #[inline]
30934    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
30935        JsonBehavior::JsonBehaviorUnknown(node)
30936    }
30937}
30938impl AstNode for MatchType {
30939    #[inline]
30940    fn can_cast(kind: SyntaxKind) -> bool {
30941        matches!(
30942            kind,
30943            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
30944        )
30945    }
30946    #[inline]
30947    fn cast(syntax: SyntaxNode) -> Option<Self> {
30948        let res = match syntax.kind() {
30949            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
30950            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
30951            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
30952            _ => {
30953                return None;
30954            }
30955        };
30956        Some(res)
30957    }
30958    #[inline]
30959    fn syntax(&self) -> &SyntaxNode {
30960        match self {
30961            MatchType::MatchFull(it) => &it.syntax,
30962            MatchType::MatchPartial(it) => &it.syntax,
30963            MatchType::MatchSimple(it) => &it.syntax,
30964        }
30965    }
30966}
30967impl From<MatchFull> for MatchType {
30968    #[inline]
30969    fn from(node: MatchFull) -> MatchType {
30970        MatchType::MatchFull(node)
30971    }
30972}
30973impl From<MatchPartial> for MatchType {
30974    #[inline]
30975    fn from(node: MatchPartial) -> MatchType {
30976        MatchType::MatchPartial(node)
30977    }
30978}
30979impl From<MatchSimple> for MatchType {
30980    #[inline]
30981    fn from(node: MatchSimple) -> MatchType {
30982        MatchType::MatchSimple(node)
30983    }
30984}
30985impl AstNode for MergeAction {
30986    #[inline]
30987    fn can_cast(kind: SyntaxKind) -> bool {
30988        matches!(
30989            kind,
30990            SyntaxKind::MERGE_DELETE
30991                | SyntaxKind::MERGE_DO_NOTHING
30992                | SyntaxKind::MERGE_INSERT
30993                | SyntaxKind::MERGE_UPDATE
30994        )
30995    }
30996    #[inline]
30997    fn cast(syntax: SyntaxNode) -> Option<Self> {
30998        let res = match syntax.kind() {
30999            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
31000            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
31001            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
31002            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
31003            _ => {
31004                return None;
31005            }
31006        };
31007        Some(res)
31008    }
31009    #[inline]
31010    fn syntax(&self) -> &SyntaxNode {
31011        match self {
31012            MergeAction::MergeDelete(it) => &it.syntax,
31013            MergeAction::MergeDoNothing(it) => &it.syntax,
31014            MergeAction::MergeInsert(it) => &it.syntax,
31015            MergeAction::MergeUpdate(it) => &it.syntax,
31016        }
31017    }
31018}
31019impl From<MergeDelete> for MergeAction {
31020    #[inline]
31021    fn from(node: MergeDelete) -> MergeAction {
31022        MergeAction::MergeDelete(node)
31023    }
31024}
31025impl From<MergeDoNothing> for MergeAction {
31026    #[inline]
31027    fn from(node: MergeDoNothing) -> MergeAction {
31028        MergeAction::MergeDoNothing(node)
31029    }
31030}
31031impl From<MergeInsert> for MergeAction {
31032    #[inline]
31033    fn from(node: MergeInsert) -> MergeAction {
31034        MergeAction::MergeInsert(node)
31035    }
31036}
31037impl From<MergeUpdate> for MergeAction {
31038    #[inline]
31039    fn from(node: MergeUpdate) -> MergeAction {
31040        MergeAction::MergeUpdate(node)
31041    }
31042}
31043impl AstNode for MergeWhenClause {
31044    #[inline]
31045    fn can_cast(kind: SyntaxKind) -> bool {
31046        matches!(
31047            kind,
31048            SyntaxKind::MERGE_WHEN_MATCHED
31049                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
31050                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
31051        )
31052    }
31053    #[inline]
31054    fn cast(syntax: SyntaxNode) -> Option<Self> {
31055        let res = match syntax.kind() {
31056            SyntaxKind::MERGE_WHEN_MATCHED => {
31057                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
31058            }
31059            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
31060                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
31061            }
31062            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
31063                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
31064            }
31065            _ => {
31066                return None;
31067            }
31068        };
31069        Some(res)
31070    }
31071    #[inline]
31072    fn syntax(&self) -> &SyntaxNode {
31073        match self {
31074            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
31075            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
31076            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
31077        }
31078    }
31079}
31080impl From<MergeWhenMatched> for MergeWhenClause {
31081    #[inline]
31082    fn from(node: MergeWhenMatched) -> MergeWhenClause {
31083        MergeWhenClause::MergeWhenMatched(node)
31084    }
31085}
31086impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
31087    #[inline]
31088    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
31089        MergeWhenClause::MergeWhenNotMatchedSource(node)
31090    }
31091}
31092impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
31093    #[inline]
31094    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
31095        MergeWhenClause::MergeWhenNotMatchedTarget(node)
31096    }
31097}
31098impl AstNode for OnCommitAction {
31099    #[inline]
31100    fn can_cast(kind: SyntaxKind) -> bool {
31101        matches!(
31102            kind,
31103            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
31104        )
31105    }
31106    #[inline]
31107    fn cast(syntax: SyntaxNode) -> Option<Self> {
31108        let res = match syntax.kind() {
31109            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
31110            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
31111            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
31112            _ => {
31113                return None;
31114            }
31115        };
31116        Some(res)
31117    }
31118    #[inline]
31119    fn syntax(&self) -> &SyntaxNode {
31120        match self {
31121            OnCommitAction::DeleteRows(it) => &it.syntax,
31122            OnCommitAction::Drop(it) => &it.syntax,
31123            OnCommitAction::PreserveRows(it) => &it.syntax,
31124        }
31125    }
31126}
31127impl From<DeleteRows> for OnCommitAction {
31128    #[inline]
31129    fn from(node: DeleteRows) -> OnCommitAction {
31130        OnCommitAction::DeleteRows(node)
31131    }
31132}
31133impl From<Drop> for OnCommitAction {
31134    #[inline]
31135    fn from(node: Drop) -> OnCommitAction {
31136        OnCommitAction::Drop(node)
31137    }
31138}
31139impl From<PreserveRows> for OnCommitAction {
31140    #[inline]
31141    fn from(node: PreserveRows) -> OnCommitAction {
31142        OnCommitAction::PreserveRows(node)
31143    }
31144}
31145impl AstNode for ParamMode {
31146    #[inline]
31147    fn can_cast(kind: SyntaxKind) -> bool {
31148        matches!(
31149            kind,
31150            SyntaxKind::PARAM_IN
31151                | SyntaxKind::PARAM_IN_OUT
31152                | SyntaxKind::PARAM_OUT
31153                | SyntaxKind::PARAM_VARIADIC
31154        )
31155    }
31156    #[inline]
31157    fn cast(syntax: SyntaxNode) -> Option<Self> {
31158        let res = match syntax.kind() {
31159            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
31160            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
31161            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
31162            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
31163            _ => {
31164                return None;
31165            }
31166        };
31167        Some(res)
31168    }
31169    #[inline]
31170    fn syntax(&self) -> &SyntaxNode {
31171        match self {
31172            ParamMode::ParamIn(it) => &it.syntax,
31173            ParamMode::ParamInOut(it) => &it.syntax,
31174            ParamMode::ParamOut(it) => &it.syntax,
31175            ParamMode::ParamVariadic(it) => &it.syntax,
31176        }
31177    }
31178}
31179impl From<ParamIn> for ParamMode {
31180    #[inline]
31181    fn from(node: ParamIn) -> ParamMode {
31182        ParamMode::ParamIn(node)
31183    }
31184}
31185impl From<ParamInOut> for ParamMode {
31186    #[inline]
31187    fn from(node: ParamInOut) -> ParamMode {
31188        ParamMode::ParamInOut(node)
31189    }
31190}
31191impl From<ParamOut> for ParamMode {
31192    #[inline]
31193    fn from(node: ParamOut) -> ParamMode {
31194        ParamMode::ParamOut(node)
31195    }
31196}
31197impl From<ParamVariadic> for ParamMode {
31198    #[inline]
31199    fn from(node: ParamVariadic) -> ParamMode {
31200        ParamMode::ParamVariadic(node)
31201    }
31202}
31203impl AstNode for PartitionType {
31204    #[inline]
31205    fn can_cast(kind: SyntaxKind) -> bool {
31206        matches!(
31207            kind,
31208            SyntaxKind::PARTITION_DEFAULT
31209                | SyntaxKind::PARTITION_FOR_VALUES_FROM
31210                | SyntaxKind::PARTITION_FOR_VALUES_IN
31211                | SyntaxKind::PARTITION_FOR_VALUES_WITH
31212        )
31213    }
31214    #[inline]
31215    fn cast(syntax: SyntaxNode) -> Option<Self> {
31216        let res = match syntax.kind() {
31217            SyntaxKind::PARTITION_DEFAULT => {
31218                PartitionType::PartitionDefault(PartitionDefault { syntax })
31219            }
31220            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
31221                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
31222            }
31223            SyntaxKind::PARTITION_FOR_VALUES_IN => {
31224                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
31225            }
31226            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
31227                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
31228            }
31229            _ => {
31230                return None;
31231            }
31232        };
31233        Some(res)
31234    }
31235    #[inline]
31236    fn syntax(&self) -> &SyntaxNode {
31237        match self {
31238            PartitionType::PartitionDefault(it) => &it.syntax,
31239            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
31240            PartitionType::PartitionForValuesIn(it) => &it.syntax,
31241            PartitionType::PartitionForValuesWith(it) => &it.syntax,
31242        }
31243    }
31244}
31245impl From<PartitionDefault> for PartitionType {
31246    #[inline]
31247    fn from(node: PartitionDefault) -> PartitionType {
31248        PartitionType::PartitionDefault(node)
31249    }
31250}
31251impl From<PartitionForValuesFrom> for PartitionType {
31252    #[inline]
31253    fn from(node: PartitionForValuesFrom) -> PartitionType {
31254        PartitionType::PartitionForValuesFrom(node)
31255    }
31256}
31257impl From<PartitionForValuesIn> for PartitionType {
31258    #[inline]
31259    fn from(node: PartitionForValuesIn) -> PartitionType {
31260        PartitionType::PartitionForValuesIn(node)
31261    }
31262}
31263impl From<PartitionForValuesWith> for PartitionType {
31264    #[inline]
31265    fn from(node: PartitionForValuesWith) -> PartitionType {
31266        PartitionType::PartitionForValuesWith(node)
31267    }
31268}
31269impl AstNode for PreparableStmt {
31270    #[inline]
31271    fn can_cast(kind: SyntaxKind) -> bool {
31272        matches!(
31273            kind,
31274            SyntaxKind::COMPOUND_SELECT
31275                | SyntaxKind::DELETE
31276                | SyntaxKind::INSERT
31277                | SyntaxKind::MERGE
31278                | SyntaxKind::SELECT
31279                | SyntaxKind::SELECT_INTO
31280                | SyntaxKind::TABLE
31281                | SyntaxKind::UPDATE
31282                | SyntaxKind::VALUES
31283        )
31284    }
31285    #[inline]
31286    fn cast(syntax: SyntaxNode) -> Option<Self> {
31287        let res = match syntax.kind() {
31288            SyntaxKind::COMPOUND_SELECT => {
31289                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
31290            }
31291            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
31292            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
31293            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
31294            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
31295            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
31296            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
31297            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
31298            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
31299            _ => {
31300                return None;
31301            }
31302        };
31303        Some(res)
31304    }
31305    #[inline]
31306    fn syntax(&self) -> &SyntaxNode {
31307        match self {
31308            PreparableStmt::CompoundSelect(it) => &it.syntax,
31309            PreparableStmt::Delete(it) => &it.syntax,
31310            PreparableStmt::Insert(it) => &it.syntax,
31311            PreparableStmt::Merge(it) => &it.syntax,
31312            PreparableStmt::Select(it) => &it.syntax,
31313            PreparableStmt::SelectInto(it) => &it.syntax,
31314            PreparableStmt::Table(it) => &it.syntax,
31315            PreparableStmt::Update(it) => &it.syntax,
31316            PreparableStmt::Values(it) => &it.syntax,
31317        }
31318    }
31319}
31320impl From<CompoundSelect> for PreparableStmt {
31321    #[inline]
31322    fn from(node: CompoundSelect) -> PreparableStmt {
31323        PreparableStmt::CompoundSelect(node)
31324    }
31325}
31326impl From<Delete> for PreparableStmt {
31327    #[inline]
31328    fn from(node: Delete) -> PreparableStmt {
31329        PreparableStmt::Delete(node)
31330    }
31331}
31332impl From<Insert> for PreparableStmt {
31333    #[inline]
31334    fn from(node: Insert) -> PreparableStmt {
31335        PreparableStmt::Insert(node)
31336    }
31337}
31338impl From<Merge> for PreparableStmt {
31339    #[inline]
31340    fn from(node: Merge) -> PreparableStmt {
31341        PreparableStmt::Merge(node)
31342    }
31343}
31344impl From<Select> for PreparableStmt {
31345    #[inline]
31346    fn from(node: Select) -> PreparableStmt {
31347        PreparableStmt::Select(node)
31348    }
31349}
31350impl From<SelectInto> for PreparableStmt {
31351    #[inline]
31352    fn from(node: SelectInto) -> PreparableStmt {
31353        PreparableStmt::SelectInto(node)
31354    }
31355}
31356impl From<Table> for PreparableStmt {
31357    #[inline]
31358    fn from(node: Table) -> PreparableStmt {
31359        PreparableStmt::Table(node)
31360    }
31361}
31362impl From<Update> for PreparableStmt {
31363    #[inline]
31364    fn from(node: Update) -> PreparableStmt {
31365        PreparableStmt::Update(node)
31366    }
31367}
31368impl From<Values> for PreparableStmt {
31369    #[inline]
31370    fn from(node: Values) -> PreparableStmt {
31371        PreparableStmt::Values(node)
31372    }
31373}
31374impl AstNode for RefAction {
31375    #[inline]
31376    fn can_cast(kind: SyntaxKind) -> bool {
31377        matches!(
31378            kind,
31379            SyntaxKind::CASCADE
31380                | SyntaxKind::NO_ACTION
31381                | SyntaxKind::RESTRICT
31382                | SyntaxKind::SET_DEFAULT_COLUMNS
31383                | SyntaxKind::SET_NULL_COLUMNS
31384        )
31385    }
31386    #[inline]
31387    fn cast(syntax: SyntaxNode) -> Option<Self> {
31388        let res = match syntax.kind() {
31389            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
31390            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
31391            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
31392            SyntaxKind::SET_DEFAULT_COLUMNS => {
31393                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
31394            }
31395            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
31396            _ => {
31397                return None;
31398            }
31399        };
31400        Some(res)
31401    }
31402    #[inline]
31403    fn syntax(&self) -> &SyntaxNode {
31404        match self {
31405            RefAction::Cascade(it) => &it.syntax,
31406            RefAction::NoAction(it) => &it.syntax,
31407            RefAction::Restrict(it) => &it.syntax,
31408            RefAction::SetDefaultColumns(it) => &it.syntax,
31409            RefAction::SetNullColumns(it) => &it.syntax,
31410        }
31411    }
31412}
31413impl From<Cascade> for RefAction {
31414    #[inline]
31415    fn from(node: Cascade) -> RefAction {
31416        RefAction::Cascade(node)
31417    }
31418}
31419impl From<NoAction> for RefAction {
31420    #[inline]
31421    fn from(node: NoAction) -> RefAction {
31422        RefAction::NoAction(node)
31423    }
31424}
31425impl From<Restrict> for RefAction {
31426    #[inline]
31427    fn from(node: Restrict) -> RefAction {
31428        RefAction::Restrict(node)
31429    }
31430}
31431impl From<SetDefaultColumns> for RefAction {
31432    #[inline]
31433    fn from(node: SetDefaultColumns) -> RefAction {
31434        RefAction::SetDefaultColumns(node)
31435    }
31436}
31437impl From<SetNullColumns> for RefAction {
31438    #[inline]
31439    fn from(node: SetNullColumns) -> RefAction {
31440        RefAction::SetNullColumns(node)
31441    }
31442}
31443impl AstNode for SchemaElement {
31444    #[inline]
31445    fn can_cast(kind: SyntaxKind) -> bool {
31446        matches!(
31447            kind,
31448            SyntaxKind::CREATE_INDEX
31449                | SyntaxKind::CREATE_SEQUENCE
31450                | SyntaxKind::CREATE_TABLE
31451                | SyntaxKind::CREATE_TRIGGER
31452                | SyntaxKind::CREATE_VIEW
31453                | SyntaxKind::GRANT
31454        )
31455    }
31456    #[inline]
31457    fn cast(syntax: SyntaxNode) -> Option<Self> {
31458        let res = match syntax.kind() {
31459            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
31460            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
31461            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
31462            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
31463            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
31464            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
31465            _ => {
31466                return None;
31467            }
31468        };
31469        Some(res)
31470    }
31471    #[inline]
31472    fn syntax(&self) -> &SyntaxNode {
31473        match self {
31474            SchemaElement::CreateIndex(it) => &it.syntax,
31475            SchemaElement::CreateSequence(it) => &it.syntax,
31476            SchemaElement::CreateTable(it) => &it.syntax,
31477            SchemaElement::CreateTrigger(it) => &it.syntax,
31478            SchemaElement::CreateView(it) => &it.syntax,
31479            SchemaElement::Grant(it) => &it.syntax,
31480        }
31481    }
31482}
31483impl From<CreateIndex> for SchemaElement {
31484    #[inline]
31485    fn from(node: CreateIndex) -> SchemaElement {
31486        SchemaElement::CreateIndex(node)
31487    }
31488}
31489impl From<CreateSequence> for SchemaElement {
31490    #[inline]
31491    fn from(node: CreateSequence) -> SchemaElement {
31492        SchemaElement::CreateSequence(node)
31493    }
31494}
31495impl From<CreateTable> for SchemaElement {
31496    #[inline]
31497    fn from(node: CreateTable) -> SchemaElement {
31498        SchemaElement::CreateTable(node)
31499    }
31500}
31501impl From<CreateTrigger> for SchemaElement {
31502    #[inline]
31503    fn from(node: CreateTrigger) -> SchemaElement {
31504        SchemaElement::CreateTrigger(node)
31505    }
31506}
31507impl From<CreateView> for SchemaElement {
31508    #[inline]
31509    fn from(node: CreateView) -> SchemaElement {
31510        SchemaElement::CreateView(node)
31511    }
31512}
31513impl From<Grant> for SchemaElement {
31514    #[inline]
31515    fn from(node: Grant) -> SchemaElement {
31516        SchemaElement::Grant(node)
31517    }
31518}
31519impl AstNode for SelectVariant {
31520    #[inline]
31521    fn can_cast(kind: SyntaxKind) -> bool {
31522        matches!(
31523            kind,
31524            SyntaxKind::COMPOUND_SELECT
31525                | SyntaxKind::PAREN_SELECT
31526                | SyntaxKind::SELECT
31527                | SyntaxKind::SELECT_INTO
31528                | SyntaxKind::TABLE
31529                | SyntaxKind::VALUES
31530        )
31531    }
31532    #[inline]
31533    fn cast(syntax: SyntaxNode) -> Option<Self> {
31534        let res = match syntax.kind() {
31535            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
31536            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
31537            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
31538            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
31539            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
31540            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
31541            _ => {
31542                return None;
31543            }
31544        };
31545        Some(res)
31546    }
31547    #[inline]
31548    fn syntax(&self) -> &SyntaxNode {
31549        match self {
31550            SelectVariant::CompoundSelect(it) => &it.syntax,
31551            SelectVariant::ParenSelect(it) => &it.syntax,
31552            SelectVariant::Select(it) => &it.syntax,
31553            SelectVariant::SelectInto(it) => &it.syntax,
31554            SelectVariant::Table(it) => &it.syntax,
31555            SelectVariant::Values(it) => &it.syntax,
31556        }
31557    }
31558}
31559impl From<CompoundSelect> for SelectVariant {
31560    #[inline]
31561    fn from(node: CompoundSelect) -> SelectVariant {
31562        SelectVariant::CompoundSelect(node)
31563    }
31564}
31565impl From<ParenSelect> for SelectVariant {
31566    #[inline]
31567    fn from(node: ParenSelect) -> SelectVariant {
31568        SelectVariant::ParenSelect(node)
31569    }
31570}
31571impl From<Select> for SelectVariant {
31572    #[inline]
31573    fn from(node: Select) -> SelectVariant {
31574        SelectVariant::Select(node)
31575    }
31576}
31577impl From<SelectInto> for SelectVariant {
31578    #[inline]
31579    fn from(node: SelectInto) -> SelectVariant {
31580        SelectVariant::SelectInto(node)
31581    }
31582}
31583impl From<Table> for SelectVariant {
31584    #[inline]
31585    fn from(node: Table) -> SelectVariant {
31586        SelectVariant::Table(node)
31587    }
31588}
31589impl From<Values> for SelectVariant {
31590    #[inline]
31591    fn from(node: Values) -> SelectVariant {
31592        SelectVariant::Values(node)
31593    }
31594}
31595impl AstNode for SetColumn {
31596    #[inline]
31597    fn can_cast(kind: SyntaxKind) -> bool {
31598        matches!(
31599            kind,
31600            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
31601        )
31602    }
31603    #[inline]
31604    fn cast(syntax: SyntaxNode) -> Option<Self> {
31605        let res = match syntax.kind() {
31606            SyntaxKind::SET_MULTIPLE_COLUMNS => {
31607                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
31608            }
31609            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
31610            _ => {
31611                return None;
31612            }
31613        };
31614        Some(res)
31615    }
31616    #[inline]
31617    fn syntax(&self) -> &SyntaxNode {
31618        match self {
31619            SetColumn::SetMultipleColumns(it) => &it.syntax,
31620            SetColumn::SetSingleColumn(it) => &it.syntax,
31621        }
31622    }
31623}
31624impl From<SetMultipleColumns> for SetColumn {
31625    #[inline]
31626    fn from(node: SetMultipleColumns) -> SetColumn {
31627        SetColumn::SetMultipleColumns(node)
31628    }
31629}
31630impl From<SetSingleColumn> for SetColumn {
31631    #[inline]
31632    fn from(node: SetSingleColumn) -> SetColumn {
31633        SetColumn::SetSingleColumn(node)
31634    }
31635}
31636impl AstNode for Stmt {
31637    #[inline]
31638    fn can_cast(kind: SyntaxKind) -> bool {
31639        matches!(
31640            kind,
31641            SyntaxKind::ALTER_AGGREGATE
31642                | SyntaxKind::ALTER_COLLATION
31643                | SyntaxKind::ALTER_CONVERSION
31644                | SyntaxKind::ALTER_DATABASE
31645                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
31646                | SyntaxKind::ALTER_DOMAIN
31647                | SyntaxKind::ALTER_EVENT_TRIGGER
31648                | SyntaxKind::ALTER_EXTENSION
31649                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
31650                | SyntaxKind::ALTER_FOREIGN_TABLE
31651                | SyntaxKind::ALTER_FUNCTION
31652                | SyntaxKind::ALTER_GROUP
31653                | SyntaxKind::ALTER_INDEX
31654                | SyntaxKind::ALTER_LANGUAGE
31655                | SyntaxKind::ALTER_LARGE_OBJECT
31656                | SyntaxKind::ALTER_MATERIALIZED_VIEW
31657                | SyntaxKind::ALTER_OPERATOR
31658                | SyntaxKind::ALTER_OPERATOR_CLASS
31659                | SyntaxKind::ALTER_OPERATOR_FAMILY
31660                | SyntaxKind::ALTER_POLICY
31661                | SyntaxKind::ALTER_PROCEDURE
31662                | SyntaxKind::ALTER_PUBLICATION
31663                | SyntaxKind::ALTER_ROLE
31664                | SyntaxKind::ALTER_ROUTINE
31665                | SyntaxKind::ALTER_RULE
31666                | SyntaxKind::ALTER_SCHEMA
31667                | SyntaxKind::ALTER_SEQUENCE
31668                | SyntaxKind::ALTER_SERVER
31669                | SyntaxKind::ALTER_STATISTICS
31670                | SyntaxKind::ALTER_SUBSCRIPTION
31671                | SyntaxKind::ALTER_SYSTEM
31672                | SyntaxKind::ALTER_TABLE
31673                | SyntaxKind::ALTER_TABLESPACE
31674                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
31675                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
31676                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
31677                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
31678                | SyntaxKind::ALTER_TRIGGER
31679                | SyntaxKind::ALTER_TYPE
31680                | SyntaxKind::ALTER_USER
31681                | SyntaxKind::ALTER_USER_MAPPING
31682                | SyntaxKind::ALTER_VIEW
31683                | SyntaxKind::ANALYZE
31684                | SyntaxKind::BEGIN
31685                | SyntaxKind::CALL
31686                | SyntaxKind::CHECKPOINT
31687                | SyntaxKind::CLOSE
31688                | SyntaxKind::CLUSTER
31689                | SyntaxKind::COMMENT_ON
31690                | SyntaxKind::COMMIT
31691                | SyntaxKind::COPY
31692                | SyntaxKind::CREATE_ACCESS_METHOD
31693                | SyntaxKind::CREATE_AGGREGATE
31694                | SyntaxKind::CREATE_CAST
31695                | SyntaxKind::CREATE_COLLATION
31696                | SyntaxKind::CREATE_CONVERSION
31697                | SyntaxKind::CREATE_DATABASE
31698                | SyntaxKind::CREATE_DOMAIN
31699                | SyntaxKind::CREATE_EVENT_TRIGGER
31700                | SyntaxKind::CREATE_EXTENSION
31701                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
31702                | SyntaxKind::CREATE_FOREIGN_TABLE
31703                | SyntaxKind::CREATE_FUNCTION
31704                | SyntaxKind::CREATE_GROUP
31705                | SyntaxKind::CREATE_INDEX
31706                | SyntaxKind::CREATE_LANGUAGE
31707                | SyntaxKind::CREATE_MATERIALIZED_VIEW
31708                | SyntaxKind::CREATE_OPERATOR
31709                | SyntaxKind::CREATE_OPERATOR_CLASS
31710                | SyntaxKind::CREATE_OPERATOR_FAMILY
31711                | SyntaxKind::CREATE_POLICY
31712                | SyntaxKind::CREATE_PROCEDURE
31713                | SyntaxKind::CREATE_PUBLICATION
31714                | SyntaxKind::CREATE_ROLE
31715                | SyntaxKind::CREATE_RULE
31716                | SyntaxKind::CREATE_SCHEMA
31717                | SyntaxKind::CREATE_SEQUENCE
31718                | SyntaxKind::CREATE_SERVER
31719                | SyntaxKind::CREATE_STATISTICS
31720                | SyntaxKind::CREATE_SUBSCRIPTION
31721                | SyntaxKind::CREATE_TABLE
31722                | SyntaxKind::CREATE_TABLE_AS
31723                | SyntaxKind::CREATE_TABLESPACE
31724                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
31725                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
31726                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
31727                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
31728                | SyntaxKind::CREATE_TRANSFORM
31729                | SyntaxKind::CREATE_TRIGGER
31730                | SyntaxKind::CREATE_TYPE
31731                | SyntaxKind::CREATE_USER
31732                | SyntaxKind::CREATE_USER_MAPPING
31733                | SyntaxKind::CREATE_VIEW
31734                | SyntaxKind::DEALLOCATE
31735                | SyntaxKind::DECLARE
31736                | SyntaxKind::DELETE
31737                | SyntaxKind::DISCARD
31738                | SyntaxKind::DO
31739                | SyntaxKind::DROP_ACCESS_METHOD
31740                | SyntaxKind::DROP_AGGREGATE
31741                | SyntaxKind::DROP_CAST
31742                | SyntaxKind::DROP_COLLATION
31743                | SyntaxKind::DROP_CONVERSION
31744                | SyntaxKind::DROP_DATABASE
31745                | SyntaxKind::DROP_DOMAIN
31746                | SyntaxKind::DROP_EVENT_TRIGGER
31747                | SyntaxKind::DROP_EXTENSION
31748                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
31749                | SyntaxKind::DROP_FOREIGN_TABLE
31750                | SyntaxKind::DROP_FUNCTION
31751                | SyntaxKind::DROP_GROUP
31752                | SyntaxKind::DROP_INDEX
31753                | SyntaxKind::DROP_LANGUAGE
31754                | SyntaxKind::DROP_MATERIALIZED_VIEW
31755                | SyntaxKind::DROP_OPERATOR
31756                | SyntaxKind::DROP_OPERATOR_CLASS
31757                | SyntaxKind::DROP_OPERATOR_FAMILY
31758                | SyntaxKind::DROP_OWNED
31759                | SyntaxKind::DROP_POLICY
31760                | SyntaxKind::DROP_PROCEDURE
31761                | SyntaxKind::DROP_PUBLICATION
31762                | SyntaxKind::DROP_ROLE
31763                | SyntaxKind::DROP_ROUTINE
31764                | SyntaxKind::DROP_RULE
31765                | SyntaxKind::DROP_SCHEMA
31766                | SyntaxKind::DROP_SEQUENCE
31767                | SyntaxKind::DROP_SERVER
31768                | SyntaxKind::DROP_STATISTICS
31769                | SyntaxKind::DROP_SUBSCRIPTION
31770                | SyntaxKind::DROP_TABLE
31771                | SyntaxKind::DROP_TABLESPACE
31772                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
31773                | SyntaxKind::DROP_TEXT_SEARCH_DICT
31774                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
31775                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
31776                | SyntaxKind::DROP_TRANSFORM
31777                | SyntaxKind::DROP_TRIGGER
31778                | SyntaxKind::DROP_TYPE
31779                | SyntaxKind::DROP_USER
31780                | SyntaxKind::DROP_USER_MAPPING
31781                | SyntaxKind::DROP_VIEW
31782                | SyntaxKind::EXECUTE
31783                | SyntaxKind::EXPLAIN
31784                | SyntaxKind::FETCH
31785                | SyntaxKind::GRANT
31786                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
31787                | SyntaxKind::INSERT
31788                | SyntaxKind::LISTEN
31789                | SyntaxKind::LOAD
31790                | SyntaxKind::LOCK
31791                | SyntaxKind::MERGE
31792                | SyntaxKind::MOVE
31793                | SyntaxKind::NOTIFY
31794                | SyntaxKind::PAREN_SELECT
31795                | SyntaxKind::PREPARE
31796                | SyntaxKind::PREPARE_TRANSACTION
31797                | SyntaxKind::REASSIGN
31798                | SyntaxKind::REFRESH
31799                | SyntaxKind::REINDEX
31800                | SyntaxKind::RELEASE_SAVEPOINT
31801                | SyntaxKind::RESET
31802                | SyntaxKind::RESET_SESSION_AUTH
31803                | SyntaxKind::REVOKE
31804                | SyntaxKind::ROLLBACK
31805                | SyntaxKind::SAVEPOINT
31806                | SyntaxKind::SECURITY_LABEL
31807                | SyntaxKind::SELECT
31808                | SyntaxKind::SELECT_INTO
31809                | SyntaxKind::SET
31810                | SyntaxKind::SET_CONSTRAINTS
31811                | SyntaxKind::SET_ROLE
31812                | SyntaxKind::SET_SESSION_AUTH
31813                | SyntaxKind::SET_TRANSACTION
31814                | SyntaxKind::SHOW
31815                | SyntaxKind::TABLE
31816                | SyntaxKind::TRUNCATE
31817                | SyntaxKind::UNLISTEN
31818                | SyntaxKind::UPDATE
31819                | SyntaxKind::VACUUM
31820                | SyntaxKind::VALUES
31821        )
31822    }
31823    #[inline]
31824    fn cast(syntax: SyntaxNode) -> Option<Self> {
31825        let res = match syntax.kind() {
31826            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
31827            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
31828            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
31829            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
31830            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
31831                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
31832            }
31833            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
31834            SyntaxKind::ALTER_EVENT_TRIGGER => {
31835                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
31836            }
31837            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
31838            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
31839                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
31840            }
31841            SyntaxKind::ALTER_FOREIGN_TABLE => {
31842                Stmt::AlterForeignTable(AlterForeignTable { syntax })
31843            }
31844            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
31845            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
31846            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
31847            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
31848            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
31849            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
31850                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
31851            }
31852            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
31853            SyntaxKind::ALTER_OPERATOR_CLASS => {
31854                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
31855            }
31856            SyntaxKind::ALTER_OPERATOR_FAMILY => {
31857                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
31858            }
31859            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
31860            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
31861            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
31862            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
31863            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
31864            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
31865            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
31866            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
31867            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
31868            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
31869            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
31870            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
31871            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
31872            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
31873            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
31874                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
31875            }
31876            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
31877                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
31878            }
31879            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
31880                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
31881            }
31882            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
31883                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
31884            }
31885            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
31886            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
31887            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
31888            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
31889            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
31890            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
31891            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
31892            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
31893            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
31894            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
31895            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
31896            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
31897            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
31898            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
31899            SyntaxKind::CREATE_ACCESS_METHOD => {
31900                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
31901            }
31902            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
31903            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
31904            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
31905            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
31906            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
31907            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
31908            SyntaxKind::CREATE_EVENT_TRIGGER => {
31909                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
31910            }
31911            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
31912            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
31913                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
31914            }
31915            SyntaxKind::CREATE_FOREIGN_TABLE => {
31916                Stmt::CreateForeignTable(CreateForeignTable { syntax })
31917            }
31918            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
31919            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
31920            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
31921            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
31922            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
31923                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
31924            }
31925            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
31926            SyntaxKind::CREATE_OPERATOR_CLASS => {
31927                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
31928            }
31929            SyntaxKind::CREATE_OPERATOR_FAMILY => {
31930                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
31931            }
31932            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
31933            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
31934            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
31935            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
31936            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
31937            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
31938            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
31939            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
31940            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
31941            SyntaxKind::CREATE_SUBSCRIPTION => {
31942                Stmt::CreateSubscription(CreateSubscription { syntax })
31943            }
31944            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
31945            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
31946            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
31947            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
31948                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
31949            }
31950            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
31951                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
31952            }
31953            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
31954                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
31955            }
31956            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
31957                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
31958            }
31959            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
31960            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
31961            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
31962            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
31963            SyntaxKind::CREATE_USER_MAPPING => {
31964                Stmt::CreateUserMapping(CreateUserMapping { syntax })
31965            }
31966            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
31967            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
31968            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
31969            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
31970            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
31971            SyntaxKind::DO => Stmt::Do(Do { syntax }),
31972            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
31973            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
31974            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
31975            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
31976            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
31977            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
31978            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
31979            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
31980            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
31981            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
31982                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
31983            }
31984            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
31985            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
31986            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
31987            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
31988            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
31989            SyntaxKind::DROP_MATERIALIZED_VIEW => {
31990                Stmt::DropMaterializedView(DropMaterializedView { syntax })
31991            }
31992            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
31993            SyntaxKind::DROP_OPERATOR_CLASS => {
31994                Stmt::DropOperatorClass(DropOperatorClass { syntax })
31995            }
31996            SyntaxKind::DROP_OPERATOR_FAMILY => {
31997                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
31998            }
31999            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
32000            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
32001            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
32002            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
32003            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
32004            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
32005            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
32006            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
32007            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
32008            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
32009            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
32010            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
32011            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
32012            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
32013            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
32014                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
32015            }
32016            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
32017                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
32018            }
32019            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
32020                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
32021            }
32022            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
32023                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
32024            }
32025            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
32026            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
32027            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
32028            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
32029            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
32030            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
32031            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
32032            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
32033            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
32034            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
32035            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
32036                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
32037            }
32038            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
32039            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
32040            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
32041            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
32042            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
32043            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
32044            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
32045            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
32046            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
32047            SyntaxKind::PREPARE_TRANSACTION => {
32048                Stmt::PrepareTransaction(PrepareTransaction { syntax })
32049            }
32050            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
32051            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
32052            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
32053            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
32054            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
32055            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
32056            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
32057            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
32058            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
32059            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
32060            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
32061            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
32062            SyntaxKind::SET => Stmt::Set(Set { syntax }),
32063            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
32064            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
32065            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
32066            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
32067            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
32068            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
32069            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
32070            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
32071            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
32072            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
32073            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
32074            _ => {
32075                return None;
32076            }
32077        };
32078        Some(res)
32079    }
32080    #[inline]
32081    fn syntax(&self) -> &SyntaxNode {
32082        match self {
32083            Stmt::AlterAggregate(it) => &it.syntax,
32084            Stmt::AlterCollation(it) => &it.syntax,
32085            Stmt::AlterConversion(it) => &it.syntax,
32086            Stmt::AlterDatabase(it) => &it.syntax,
32087            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
32088            Stmt::AlterDomain(it) => &it.syntax,
32089            Stmt::AlterEventTrigger(it) => &it.syntax,
32090            Stmt::AlterExtension(it) => &it.syntax,
32091            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
32092            Stmt::AlterForeignTable(it) => &it.syntax,
32093            Stmt::AlterFunction(it) => &it.syntax,
32094            Stmt::AlterGroup(it) => &it.syntax,
32095            Stmt::AlterIndex(it) => &it.syntax,
32096            Stmt::AlterLanguage(it) => &it.syntax,
32097            Stmt::AlterLargeObject(it) => &it.syntax,
32098            Stmt::AlterMaterializedView(it) => &it.syntax,
32099            Stmt::AlterOperator(it) => &it.syntax,
32100            Stmt::AlterOperatorClass(it) => &it.syntax,
32101            Stmt::AlterOperatorFamily(it) => &it.syntax,
32102            Stmt::AlterPolicy(it) => &it.syntax,
32103            Stmt::AlterProcedure(it) => &it.syntax,
32104            Stmt::AlterPublication(it) => &it.syntax,
32105            Stmt::AlterRole(it) => &it.syntax,
32106            Stmt::AlterRoutine(it) => &it.syntax,
32107            Stmt::AlterRule(it) => &it.syntax,
32108            Stmt::AlterSchema(it) => &it.syntax,
32109            Stmt::AlterSequence(it) => &it.syntax,
32110            Stmt::AlterServer(it) => &it.syntax,
32111            Stmt::AlterStatistics(it) => &it.syntax,
32112            Stmt::AlterSubscription(it) => &it.syntax,
32113            Stmt::AlterSystem(it) => &it.syntax,
32114            Stmt::AlterTable(it) => &it.syntax,
32115            Stmt::AlterTablespace(it) => &it.syntax,
32116            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
32117            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
32118            Stmt::AlterTextSearchParser(it) => &it.syntax,
32119            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
32120            Stmt::AlterTrigger(it) => &it.syntax,
32121            Stmt::AlterType(it) => &it.syntax,
32122            Stmt::AlterUser(it) => &it.syntax,
32123            Stmt::AlterUserMapping(it) => &it.syntax,
32124            Stmt::AlterView(it) => &it.syntax,
32125            Stmt::Analyze(it) => &it.syntax,
32126            Stmt::Begin(it) => &it.syntax,
32127            Stmt::Call(it) => &it.syntax,
32128            Stmt::Checkpoint(it) => &it.syntax,
32129            Stmt::Close(it) => &it.syntax,
32130            Stmt::Cluster(it) => &it.syntax,
32131            Stmt::CommentOn(it) => &it.syntax,
32132            Stmt::Commit(it) => &it.syntax,
32133            Stmt::Copy(it) => &it.syntax,
32134            Stmt::CreateAccessMethod(it) => &it.syntax,
32135            Stmt::CreateAggregate(it) => &it.syntax,
32136            Stmt::CreateCast(it) => &it.syntax,
32137            Stmt::CreateCollation(it) => &it.syntax,
32138            Stmt::CreateConversion(it) => &it.syntax,
32139            Stmt::CreateDatabase(it) => &it.syntax,
32140            Stmt::CreateDomain(it) => &it.syntax,
32141            Stmt::CreateEventTrigger(it) => &it.syntax,
32142            Stmt::CreateExtension(it) => &it.syntax,
32143            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
32144            Stmt::CreateForeignTable(it) => &it.syntax,
32145            Stmt::CreateFunction(it) => &it.syntax,
32146            Stmt::CreateGroup(it) => &it.syntax,
32147            Stmt::CreateIndex(it) => &it.syntax,
32148            Stmt::CreateLanguage(it) => &it.syntax,
32149            Stmt::CreateMaterializedView(it) => &it.syntax,
32150            Stmt::CreateOperator(it) => &it.syntax,
32151            Stmt::CreateOperatorClass(it) => &it.syntax,
32152            Stmt::CreateOperatorFamily(it) => &it.syntax,
32153            Stmt::CreatePolicy(it) => &it.syntax,
32154            Stmt::CreateProcedure(it) => &it.syntax,
32155            Stmt::CreatePublication(it) => &it.syntax,
32156            Stmt::CreateRole(it) => &it.syntax,
32157            Stmt::CreateRule(it) => &it.syntax,
32158            Stmt::CreateSchema(it) => &it.syntax,
32159            Stmt::CreateSequence(it) => &it.syntax,
32160            Stmt::CreateServer(it) => &it.syntax,
32161            Stmt::CreateStatistics(it) => &it.syntax,
32162            Stmt::CreateSubscription(it) => &it.syntax,
32163            Stmt::CreateTable(it) => &it.syntax,
32164            Stmt::CreateTableAs(it) => &it.syntax,
32165            Stmt::CreateTablespace(it) => &it.syntax,
32166            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
32167            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
32168            Stmt::CreateTextSearchParser(it) => &it.syntax,
32169            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
32170            Stmt::CreateTransform(it) => &it.syntax,
32171            Stmt::CreateTrigger(it) => &it.syntax,
32172            Stmt::CreateType(it) => &it.syntax,
32173            Stmt::CreateUser(it) => &it.syntax,
32174            Stmt::CreateUserMapping(it) => &it.syntax,
32175            Stmt::CreateView(it) => &it.syntax,
32176            Stmt::Deallocate(it) => &it.syntax,
32177            Stmt::Declare(it) => &it.syntax,
32178            Stmt::Delete(it) => &it.syntax,
32179            Stmt::Discard(it) => &it.syntax,
32180            Stmt::Do(it) => &it.syntax,
32181            Stmt::DropAccessMethod(it) => &it.syntax,
32182            Stmt::DropAggregate(it) => &it.syntax,
32183            Stmt::DropCast(it) => &it.syntax,
32184            Stmt::DropCollation(it) => &it.syntax,
32185            Stmt::DropConversion(it) => &it.syntax,
32186            Stmt::DropDatabase(it) => &it.syntax,
32187            Stmt::DropDomain(it) => &it.syntax,
32188            Stmt::DropEventTrigger(it) => &it.syntax,
32189            Stmt::DropExtension(it) => &it.syntax,
32190            Stmt::DropForeignDataWrapper(it) => &it.syntax,
32191            Stmt::DropForeignTable(it) => &it.syntax,
32192            Stmt::DropFunction(it) => &it.syntax,
32193            Stmt::DropGroup(it) => &it.syntax,
32194            Stmt::DropIndex(it) => &it.syntax,
32195            Stmt::DropLanguage(it) => &it.syntax,
32196            Stmt::DropMaterializedView(it) => &it.syntax,
32197            Stmt::DropOperator(it) => &it.syntax,
32198            Stmt::DropOperatorClass(it) => &it.syntax,
32199            Stmt::DropOperatorFamily(it) => &it.syntax,
32200            Stmt::DropOwned(it) => &it.syntax,
32201            Stmt::DropPolicy(it) => &it.syntax,
32202            Stmt::DropProcedure(it) => &it.syntax,
32203            Stmt::DropPublication(it) => &it.syntax,
32204            Stmt::DropRole(it) => &it.syntax,
32205            Stmt::DropRoutine(it) => &it.syntax,
32206            Stmt::DropRule(it) => &it.syntax,
32207            Stmt::DropSchema(it) => &it.syntax,
32208            Stmt::DropSequence(it) => &it.syntax,
32209            Stmt::DropServer(it) => &it.syntax,
32210            Stmt::DropStatistics(it) => &it.syntax,
32211            Stmt::DropSubscription(it) => &it.syntax,
32212            Stmt::DropTable(it) => &it.syntax,
32213            Stmt::DropTablespace(it) => &it.syntax,
32214            Stmt::DropTextSearchConfig(it) => &it.syntax,
32215            Stmt::DropTextSearchDict(it) => &it.syntax,
32216            Stmt::DropTextSearchParser(it) => &it.syntax,
32217            Stmt::DropTextSearchTemplate(it) => &it.syntax,
32218            Stmt::DropTransform(it) => &it.syntax,
32219            Stmt::DropTrigger(it) => &it.syntax,
32220            Stmt::DropType(it) => &it.syntax,
32221            Stmt::DropUser(it) => &it.syntax,
32222            Stmt::DropUserMapping(it) => &it.syntax,
32223            Stmt::DropView(it) => &it.syntax,
32224            Stmt::Execute(it) => &it.syntax,
32225            Stmt::Explain(it) => &it.syntax,
32226            Stmt::Fetch(it) => &it.syntax,
32227            Stmt::Grant(it) => &it.syntax,
32228            Stmt::ImportForeignSchema(it) => &it.syntax,
32229            Stmt::Insert(it) => &it.syntax,
32230            Stmt::Listen(it) => &it.syntax,
32231            Stmt::Load(it) => &it.syntax,
32232            Stmt::Lock(it) => &it.syntax,
32233            Stmt::Merge(it) => &it.syntax,
32234            Stmt::Move(it) => &it.syntax,
32235            Stmt::Notify(it) => &it.syntax,
32236            Stmt::ParenSelect(it) => &it.syntax,
32237            Stmt::Prepare(it) => &it.syntax,
32238            Stmt::PrepareTransaction(it) => &it.syntax,
32239            Stmt::Reassign(it) => &it.syntax,
32240            Stmt::Refresh(it) => &it.syntax,
32241            Stmt::Reindex(it) => &it.syntax,
32242            Stmt::ReleaseSavepoint(it) => &it.syntax,
32243            Stmt::Reset(it) => &it.syntax,
32244            Stmt::ResetSessionAuth(it) => &it.syntax,
32245            Stmt::Revoke(it) => &it.syntax,
32246            Stmt::Rollback(it) => &it.syntax,
32247            Stmt::Savepoint(it) => &it.syntax,
32248            Stmt::SecurityLabel(it) => &it.syntax,
32249            Stmt::Select(it) => &it.syntax,
32250            Stmt::SelectInto(it) => &it.syntax,
32251            Stmt::Set(it) => &it.syntax,
32252            Stmt::SetConstraints(it) => &it.syntax,
32253            Stmt::SetRole(it) => &it.syntax,
32254            Stmt::SetSessionAuth(it) => &it.syntax,
32255            Stmt::SetTransaction(it) => &it.syntax,
32256            Stmt::Show(it) => &it.syntax,
32257            Stmt::Table(it) => &it.syntax,
32258            Stmt::Truncate(it) => &it.syntax,
32259            Stmt::Unlisten(it) => &it.syntax,
32260            Stmt::Update(it) => &it.syntax,
32261            Stmt::Vacuum(it) => &it.syntax,
32262            Stmt::Values(it) => &it.syntax,
32263        }
32264    }
32265}
32266impl From<AlterAggregate> for Stmt {
32267    #[inline]
32268    fn from(node: AlterAggregate) -> Stmt {
32269        Stmt::AlterAggregate(node)
32270    }
32271}
32272impl From<AlterCollation> for Stmt {
32273    #[inline]
32274    fn from(node: AlterCollation) -> Stmt {
32275        Stmt::AlterCollation(node)
32276    }
32277}
32278impl From<AlterConversion> for Stmt {
32279    #[inline]
32280    fn from(node: AlterConversion) -> Stmt {
32281        Stmt::AlterConversion(node)
32282    }
32283}
32284impl From<AlterDatabase> for Stmt {
32285    #[inline]
32286    fn from(node: AlterDatabase) -> Stmt {
32287        Stmt::AlterDatabase(node)
32288    }
32289}
32290impl From<AlterDefaultPrivileges> for Stmt {
32291    #[inline]
32292    fn from(node: AlterDefaultPrivileges) -> Stmt {
32293        Stmt::AlterDefaultPrivileges(node)
32294    }
32295}
32296impl From<AlterDomain> for Stmt {
32297    #[inline]
32298    fn from(node: AlterDomain) -> Stmt {
32299        Stmt::AlterDomain(node)
32300    }
32301}
32302impl From<AlterEventTrigger> for Stmt {
32303    #[inline]
32304    fn from(node: AlterEventTrigger) -> Stmt {
32305        Stmt::AlterEventTrigger(node)
32306    }
32307}
32308impl From<AlterExtension> for Stmt {
32309    #[inline]
32310    fn from(node: AlterExtension) -> Stmt {
32311        Stmt::AlterExtension(node)
32312    }
32313}
32314impl From<AlterForeignDataWrapper> for Stmt {
32315    #[inline]
32316    fn from(node: AlterForeignDataWrapper) -> Stmt {
32317        Stmt::AlterForeignDataWrapper(node)
32318    }
32319}
32320impl From<AlterForeignTable> for Stmt {
32321    #[inline]
32322    fn from(node: AlterForeignTable) -> Stmt {
32323        Stmt::AlterForeignTable(node)
32324    }
32325}
32326impl From<AlterFunction> for Stmt {
32327    #[inline]
32328    fn from(node: AlterFunction) -> Stmt {
32329        Stmt::AlterFunction(node)
32330    }
32331}
32332impl From<AlterGroup> for Stmt {
32333    #[inline]
32334    fn from(node: AlterGroup) -> Stmt {
32335        Stmt::AlterGroup(node)
32336    }
32337}
32338impl From<AlterIndex> for Stmt {
32339    #[inline]
32340    fn from(node: AlterIndex) -> Stmt {
32341        Stmt::AlterIndex(node)
32342    }
32343}
32344impl From<AlterLanguage> for Stmt {
32345    #[inline]
32346    fn from(node: AlterLanguage) -> Stmt {
32347        Stmt::AlterLanguage(node)
32348    }
32349}
32350impl From<AlterLargeObject> for Stmt {
32351    #[inline]
32352    fn from(node: AlterLargeObject) -> Stmt {
32353        Stmt::AlterLargeObject(node)
32354    }
32355}
32356impl From<AlterMaterializedView> for Stmt {
32357    #[inline]
32358    fn from(node: AlterMaterializedView) -> Stmt {
32359        Stmt::AlterMaterializedView(node)
32360    }
32361}
32362impl From<AlterOperator> for Stmt {
32363    #[inline]
32364    fn from(node: AlterOperator) -> Stmt {
32365        Stmt::AlterOperator(node)
32366    }
32367}
32368impl From<AlterOperatorClass> for Stmt {
32369    #[inline]
32370    fn from(node: AlterOperatorClass) -> Stmt {
32371        Stmt::AlterOperatorClass(node)
32372    }
32373}
32374impl From<AlterOperatorFamily> for Stmt {
32375    #[inline]
32376    fn from(node: AlterOperatorFamily) -> Stmt {
32377        Stmt::AlterOperatorFamily(node)
32378    }
32379}
32380impl From<AlterPolicy> for Stmt {
32381    #[inline]
32382    fn from(node: AlterPolicy) -> Stmt {
32383        Stmt::AlterPolicy(node)
32384    }
32385}
32386impl From<AlterProcedure> for Stmt {
32387    #[inline]
32388    fn from(node: AlterProcedure) -> Stmt {
32389        Stmt::AlterProcedure(node)
32390    }
32391}
32392impl From<AlterPublication> for Stmt {
32393    #[inline]
32394    fn from(node: AlterPublication) -> Stmt {
32395        Stmt::AlterPublication(node)
32396    }
32397}
32398impl From<AlterRole> for Stmt {
32399    #[inline]
32400    fn from(node: AlterRole) -> Stmt {
32401        Stmt::AlterRole(node)
32402    }
32403}
32404impl From<AlterRoutine> for Stmt {
32405    #[inline]
32406    fn from(node: AlterRoutine) -> Stmt {
32407        Stmt::AlterRoutine(node)
32408    }
32409}
32410impl From<AlterRule> for Stmt {
32411    #[inline]
32412    fn from(node: AlterRule) -> Stmt {
32413        Stmt::AlterRule(node)
32414    }
32415}
32416impl From<AlterSchema> for Stmt {
32417    #[inline]
32418    fn from(node: AlterSchema) -> Stmt {
32419        Stmt::AlterSchema(node)
32420    }
32421}
32422impl From<AlterSequence> for Stmt {
32423    #[inline]
32424    fn from(node: AlterSequence) -> Stmt {
32425        Stmt::AlterSequence(node)
32426    }
32427}
32428impl From<AlterServer> for Stmt {
32429    #[inline]
32430    fn from(node: AlterServer) -> Stmt {
32431        Stmt::AlterServer(node)
32432    }
32433}
32434impl From<AlterStatistics> for Stmt {
32435    #[inline]
32436    fn from(node: AlterStatistics) -> Stmt {
32437        Stmt::AlterStatistics(node)
32438    }
32439}
32440impl From<AlterSubscription> for Stmt {
32441    #[inline]
32442    fn from(node: AlterSubscription) -> Stmt {
32443        Stmt::AlterSubscription(node)
32444    }
32445}
32446impl From<AlterSystem> for Stmt {
32447    #[inline]
32448    fn from(node: AlterSystem) -> Stmt {
32449        Stmt::AlterSystem(node)
32450    }
32451}
32452impl From<AlterTable> for Stmt {
32453    #[inline]
32454    fn from(node: AlterTable) -> Stmt {
32455        Stmt::AlterTable(node)
32456    }
32457}
32458impl From<AlterTablespace> for Stmt {
32459    #[inline]
32460    fn from(node: AlterTablespace) -> Stmt {
32461        Stmt::AlterTablespace(node)
32462    }
32463}
32464impl From<AlterTextSearchConfiguration> for Stmt {
32465    #[inline]
32466    fn from(node: AlterTextSearchConfiguration) -> Stmt {
32467        Stmt::AlterTextSearchConfiguration(node)
32468    }
32469}
32470impl From<AlterTextSearchDictionary> for Stmt {
32471    #[inline]
32472    fn from(node: AlterTextSearchDictionary) -> Stmt {
32473        Stmt::AlterTextSearchDictionary(node)
32474    }
32475}
32476impl From<AlterTextSearchParser> for Stmt {
32477    #[inline]
32478    fn from(node: AlterTextSearchParser) -> Stmt {
32479        Stmt::AlterTextSearchParser(node)
32480    }
32481}
32482impl From<AlterTextSearchTemplate> for Stmt {
32483    #[inline]
32484    fn from(node: AlterTextSearchTemplate) -> Stmt {
32485        Stmt::AlterTextSearchTemplate(node)
32486    }
32487}
32488impl From<AlterTrigger> for Stmt {
32489    #[inline]
32490    fn from(node: AlterTrigger) -> Stmt {
32491        Stmt::AlterTrigger(node)
32492    }
32493}
32494impl From<AlterType> for Stmt {
32495    #[inline]
32496    fn from(node: AlterType) -> Stmt {
32497        Stmt::AlterType(node)
32498    }
32499}
32500impl From<AlterUser> for Stmt {
32501    #[inline]
32502    fn from(node: AlterUser) -> Stmt {
32503        Stmt::AlterUser(node)
32504    }
32505}
32506impl From<AlterUserMapping> for Stmt {
32507    #[inline]
32508    fn from(node: AlterUserMapping) -> Stmt {
32509        Stmt::AlterUserMapping(node)
32510    }
32511}
32512impl From<AlterView> for Stmt {
32513    #[inline]
32514    fn from(node: AlterView) -> Stmt {
32515        Stmt::AlterView(node)
32516    }
32517}
32518impl From<Analyze> for Stmt {
32519    #[inline]
32520    fn from(node: Analyze) -> Stmt {
32521        Stmt::Analyze(node)
32522    }
32523}
32524impl From<Begin> for Stmt {
32525    #[inline]
32526    fn from(node: Begin) -> Stmt {
32527        Stmt::Begin(node)
32528    }
32529}
32530impl From<Call> for Stmt {
32531    #[inline]
32532    fn from(node: Call) -> Stmt {
32533        Stmt::Call(node)
32534    }
32535}
32536impl From<Checkpoint> for Stmt {
32537    #[inline]
32538    fn from(node: Checkpoint) -> Stmt {
32539        Stmt::Checkpoint(node)
32540    }
32541}
32542impl From<Close> for Stmt {
32543    #[inline]
32544    fn from(node: Close) -> Stmt {
32545        Stmt::Close(node)
32546    }
32547}
32548impl From<Cluster> for Stmt {
32549    #[inline]
32550    fn from(node: Cluster) -> Stmt {
32551        Stmt::Cluster(node)
32552    }
32553}
32554impl From<CommentOn> for Stmt {
32555    #[inline]
32556    fn from(node: CommentOn) -> Stmt {
32557        Stmt::CommentOn(node)
32558    }
32559}
32560impl From<Commit> for Stmt {
32561    #[inline]
32562    fn from(node: Commit) -> Stmt {
32563        Stmt::Commit(node)
32564    }
32565}
32566impl From<Copy> for Stmt {
32567    #[inline]
32568    fn from(node: Copy) -> Stmt {
32569        Stmt::Copy(node)
32570    }
32571}
32572impl From<CreateAccessMethod> for Stmt {
32573    #[inline]
32574    fn from(node: CreateAccessMethod) -> Stmt {
32575        Stmt::CreateAccessMethod(node)
32576    }
32577}
32578impl From<CreateAggregate> for Stmt {
32579    #[inline]
32580    fn from(node: CreateAggregate) -> Stmt {
32581        Stmt::CreateAggregate(node)
32582    }
32583}
32584impl From<CreateCast> for Stmt {
32585    #[inline]
32586    fn from(node: CreateCast) -> Stmt {
32587        Stmt::CreateCast(node)
32588    }
32589}
32590impl From<CreateCollation> for Stmt {
32591    #[inline]
32592    fn from(node: CreateCollation) -> Stmt {
32593        Stmt::CreateCollation(node)
32594    }
32595}
32596impl From<CreateConversion> for Stmt {
32597    #[inline]
32598    fn from(node: CreateConversion) -> Stmt {
32599        Stmt::CreateConversion(node)
32600    }
32601}
32602impl From<CreateDatabase> for Stmt {
32603    #[inline]
32604    fn from(node: CreateDatabase) -> Stmt {
32605        Stmt::CreateDatabase(node)
32606    }
32607}
32608impl From<CreateDomain> for Stmt {
32609    #[inline]
32610    fn from(node: CreateDomain) -> Stmt {
32611        Stmt::CreateDomain(node)
32612    }
32613}
32614impl From<CreateEventTrigger> for Stmt {
32615    #[inline]
32616    fn from(node: CreateEventTrigger) -> Stmt {
32617        Stmt::CreateEventTrigger(node)
32618    }
32619}
32620impl From<CreateExtension> for Stmt {
32621    #[inline]
32622    fn from(node: CreateExtension) -> Stmt {
32623        Stmt::CreateExtension(node)
32624    }
32625}
32626impl From<CreateForeignDataWrapper> for Stmt {
32627    #[inline]
32628    fn from(node: CreateForeignDataWrapper) -> Stmt {
32629        Stmt::CreateForeignDataWrapper(node)
32630    }
32631}
32632impl From<CreateForeignTable> for Stmt {
32633    #[inline]
32634    fn from(node: CreateForeignTable) -> Stmt {
32635        Stmt::CreateForeignTable(node)
32636    }
32637}
32638impl From<CreateFunction> for Stmt {
32639    #[inline]
32640    fn from(node: CreateFunction) -> Stmt {
32641        Stmt::CreateFunction(node)
32642    }
32643}
32644impl From<CreateGroup> for Stmt {
32645    #[inline]
32646    fn from(node: CreateGroup) -> Stmt {
32647        Stmt::CreateGroup(node)
32648    }
32649}
32650impl From<CreateIndex> for Stmt {
32651    #[inline]
32652    fn from(node: CreateIndex) -> Stmt {
32653        Stmt::CreateIndex(node)
32654    }
32655}
32656impl From<CreateLanguage> for Stmt {
32657    #[inline]
32658    fn from(node: CreateLanguage) -> Stmt {
32659        Stmt::CreateLanguage(node)
32660    }
32661}
32662impl From<CreateMaterializedView> for Stmt {
32663    #[inline]
32664    fn from(node: CreateMaterializedView) -> Stmt {
32665        Stmt::CreateMaterializedView(node)
32666    }
32667}
32668impl From<CreateOperator> for Stmt {
32669    #[inline]
32670    fn from(node: CreateOperator) -> Stmt {
32671        Stmt::CreateOperator(node)
32672    }
32673}
32674impl From<CreateOperatorClass> for Stmt {
32675    #[inline]
32676    fn from(node: CreateOperatorClass) -> Stmt {
32677        Stmt::CreateOperatorClass(node)
32678    }
32679}
32680impl From<CreateOperatorFamily> for Stmt {
32681    #[inline]
32682    fn from(node: CreateOperatorFamily) -> Stmt {
32683        Stmt::CreateOperatorFamily(node)
32684    }
32685}
32686impl From<CreatePolicy> for Stmt {
32687    #[inline]
32688    fn from(node: CreatePolicy) -> Stmt {
32689        Stmt::CreatePolicy(node)
32690    }
32691}
32692impl From<CreateProcedure> for Stmt {
32693    #[inline]
32694    fn from(node: CreateProcedure) -> Stmt {
32695        Stmt::CreateProcedure(node)
32696    }
32697}
32698impl From<CreatePublication> for Stmt {
32699    #[inline]
32700    fn from(node: CreatePublication) -> Stmt {
32701        Stmt::CreatePublication(node)
32702    }
32703}
32704impl From<CreateRole> for Stmt {
32705    #[inline]
32706    fn from(node: CreateRole) -> Stmt {
32707        Stmt::CreateRole(node)
32708    }
32709}
32710impl From<CreateRule> for Stmt {
32711    #[inline]
32712    fn from(node: CreateRule) -> Stmt {
32713        Stmt::CreateRule(node)
32714    }
32715}
32716impl From<CreateSchema> for Stmt {
32717    #[inline]
32718    fn from(node: CreateSchema) -> Stmt {
32719        Stmt::CreateSchema(node)
32720    }
32721}
32722impl From<CreateSequence> for Stmt {
32723    #[inline]
32724    fn from(node: CreateSequence) -> Stmt {
32725        Stmt::CreateSequence(node)
32726    }
32727}
32728impl From<CreateServer> for Stmt {
32729    #[inline]
32730    fn from(node: CreateServer) -> Stmt {
32731        Stmt::CreateServer(node)
32732    }
32733}
32734impl From<CreateStatistics> for Stmt {
32735    #[inline]
32736    fn from(node: CreateStatistics) -> Stmt {
32737        Stmt::CreateStatistics(node)
32738    }
32739}
32740impl From<CreateSubscription> for Stmt {
32741    #[inline]
32742    fn from(node: CreateSubscription) -> Stmt {
32743        Stmt::CreateSubscription(node)
32744    }
32745}
32746impl From<CreateTable> for Stmt {
32747    #[inline]
32748    fn from(node: CreateTable) -> Stmt {
32749        Stmt::CreateTable(node)
32750    }
32751}
32752impl From<CreateTableAs> for Stmt {
32753    #[inline]
32754    fn from(node: CreateTableAs) -> Stmt {
32755        Stmt::CreateTableAs(node)
32756    }
32757}
32758impl From<CreateTablespace> for Stmt {
32759    #[inline]
32760    fn from(node: CreateTablespace) -> Stmt {
32761        Stmt::CreateTablespace(node)
32762    }
32763}
32764impl From<CreateTextSearchConfiguration> for Stmt {
32765    #[inline]
32766    fn from(node: CreateTextSearchConfiguration) -> Stmt {
32767        Stmt::CreateTextSearchConfiguration(node)
32768    }
32769}
32770impl From<CreateTextSearchDictionary> for Stmt {
32771    #[inline]
32772    fn from(node: CreateTextSearchDictionary) -> Stmt {
32773        Stmt::CreateTextSearchDictionary(node)
32774    }
32775}
32776impl From<CreateTextSearchParser> for Stmt {
32777    #[inline]
32778    fn from(node: CreateTextSearchParser) -> Stmt {
32779        Stmt::CreateTextSearchParser(node)
32780    }
32781}
32782impl From<CreateTextSearchTemplate> for Stmt {
32783    #[inline]
32784    fn from(node: CreateTextSearchTemplate) -> Stmt {
32785        Stmt::CreateTextSearchTemplate(node)
32786    }
32787}
32788impl From<CreateTransform> for Stmt {
32789    #[inline]
32790    fn from(node: CreateTransform) -> Stmt {
32791        Stmt::CreateTransform(node)
32792    }
32793}
32794impl From<CreateTrigger> for Stmt {
32795    #[inline]
32796    fn from(node: CreateTrigger) -> Stmt {
32797        Stmt::CreateTrigger(node)
32798    }
32799}
32800impl From<CreateType> for Stmt {
32801    #[inline]
32802    fn from(node: CreateType) -> Stmt {
32803        Stmt::CreateType(node)
32804    }
32805}
32806impl From<CreateUser> for Stmt {
32807    #[inline]
32808    fn from(node: CreateUser) -> Stmt {
32809        Stmt::CreateUser(node)
32810    }
32811}
32812impl From<CreateUserMapping> for Stmt {
32813    #[inline]
32814    fn from(node: CreateUserMapping) -> Stmt {
32815        Stmt::CreateUserMapping(node)
32816    }
32817}
32818impl From<CreateView> for Stmt {
32819    #[inline]
32820    fn from(node: CreateView) -> Stmt {
32821        Stmt::CreateView(node)
32822    }
32823}
32824impl From<Deallocate> for Stmt {
32825    #[inline]
32826    fn from(node: Deallocate) -> Stmt {
32827        Stmt::Deallocate(node)
32828    }
32829}
32830impl From<Declare> for Stmt {
32831    #[inline]
32832    fn from(node: Declare) -> Stmt {
32833        Stmt::Declare(node)
32834    }
32835}
32836impl From<Delete> for Stmt {
32837    #[inline]
32838    fn from(node: Delete) -> Stmt {
32839        Stmt::Delete(node)
32840    }
32841}
32842impl From<Discard> for Stmt {
32843    #[inline]
32844    fn from(node: Discard) -> Stmt {
32845        Stmt::Discard(node)
32846    }
32847}
32848impl From<Do> for Stmt {
32849    #[inline]
32850    fn from(node: Do) -> Stmt {
32851        Stmt::Do(node)
32852    }
32853}
32854impl From<DropAccessMethod> for Stmt {
32855    #[inline]
32856    fn from(node: DropAccessMethod) -> Stmt {
32857        Stmt::DropAccessMethod(node)
32858    }
32859}
32860impl From<DropAggregate> for Stmt {
32861    #[inline]
32862    fn from(node: DropAggregate) -> Stmt {
32863        Stmt::DropAggregate(node)
32864    }
32865}
32866impl From<DropCast> for Stmt {
32867    #[inline]
32868    fn from(node: DropCast) -> Stmt {
32869        Stmt::DropCast(node)
32870    }
32871}
32872impl From<DropCollation> for Stmt {
32873    #[inline]
32874    fn from(node: DropCollation) -> Stmt {
32875        Stmt::DropCollation(node)
32876    }
32877}
32878impl From<DropConversion> for Stmt {
32879    #[inline]
32880    fn from(node: DropConversion) -> Stmt {
32881        Stmt::DropConversion(node)
32882    }
32883}
32884impl From<DropDatabase> for Stmt {
32885    #[inline]
32886    fn from(node: DropDatabase) -> Stmt {
32887        Stmt::DropDatabase(node)
32888    }
32889}
32890impl From<DropDomain> for Stmt {
32891    #[inline]
32892    fn from(node: DropDomain) -> Stmt {
32893        Stmt::DropDomain(node)
32894    }
32895}
32896impl From<DropEventTrigger> for Stmt {
32897    #[inline]
32898    fn from(node: DropEventTrigger) -> Stmt {
32899        Stmt::DropEventTrigger(node)
32900    }
32901}
32902impl From<DropExtension> for Stmt {
32903    #[inline]
32904    fn from(node: DropExtension) -> Stmt {
32905        Stmt::DropExtension(node)
32906    }
32907}
32908impl From<DropForeignDataWrapper> for Stmt {
32909    #[inline]
32910    fn from(node: DropForeignDataWrapper) -> Stmt {
32911        Stmt::DropForeignDataWrapper(node)
32912    }
32913}
32914impl From<DropForeignTable> for Stmt {
32915    #[inline]
32916    fn from(node: DropForeignTable) -> Stmt {
32917        Stmt::DropForeignTable(node)
32918    }
32919}
32920impl From<DropFunction> for Stmt {
32921    #[inline]
32922    fn from(node: DropFunction) -> Stmt {
32923        Stmt::DropFunction(node)
32924    }
32925}
32926impl From<DropGroup> for Stmt {
32927    #[inline]
32928    fn from(node: DropGroup) -> Stmt {
32929        Stmt::DropGroup(node)
32930    }
32931}
32932impl From<DropIndex> for Stmt {
32933    #[inline]
32934    fn from(node: DropIndex) -> Stmt {
32935        Stmt::DropIndex(node)
32936    }
32937}
32938impl From<DropLanguage> for Stmt {
32939    #[inline]
32940    fn from(node: DropLanguage) -> Stmt {
32941        Stmt::DropLanguage(node)
32942    }
32943}
32944impl From<DropMaterializedView> for Stmt {
32945    #[inline]
32946    fn from(node: DropMaterializedView) -> Stmt {
32947        Stmt::DropMaterializedView(node)
32948    }
32949}
32950impl From<DropOperator> for Stmt {
32951    #[inline]
32952    fn from(node: DropOperator) -> Stmt {
32953        Stmt::DropOperator(node)
32954    }
32955}
32956impl From<DropOperatorClass> for Stmt {
32957    #[inline]
32958    fn from(node: DropOperatorClass) -> Stmt {
32959        Stmt::DropOperatorClass(node)
32960    }
32961}
32962impl From<DropOperatorFamily> for Stmt {
32963    #[inline]
32964    fn from(node: DropOperatorFamily) -> Stmt {
32965        Stmt::DropOperatorFamily(node)
32966    }
32967}
32968impl From<DropOwned> for Stmt {
32969    #[inline]
32970    fn from(node: DropOwned) -> Stmt {
32971        Stmt::DropOwned(node)
32972    }
32973}
32974impl From<DropPolicy> for Stmt {
32975    #[inline]
32976    fn from(node: DropPolicy) -> Stmt {
32977        Stmt::DropPolicy(node)
32978    }
32979}
32980impl From<DropProcedure> for Stmt {
32981    #[inline]
32982    fn from(node: DropProcedure) -> Stmt {
32983        Stmt::DropProcedure(node)
32984    }
32985}
32986impl From<DropPublication> for Stmt {
32987    #[inline]
32988    fn from(node: DropPublication) -> Stmt {
32989        Stmt::DropPublication(node)
32990    }
32991}
32992impl From<DropRole> for Stmt {
32993    #[inline]
32994    fn from(node: DropRole) -> Stmt {
32995        Stmt::DropRole(node)
32996    }
32997}
32998impl From<DropRoutine> for Stmt {
32999    #[inline]
33000    fn from(node: DropRoutine) -> Stmt {
33001        Stmt::DropRoutine(node)
33002    }
33003}
33004impl From<DropRule> for Stmt {
33005    #[inline]
33006    fn from(node: DropRule) -> Stmt {
33007        Stmt::DropRule(node)
33008    }
33009}
33010impl From<DropSchema> for Stmt {
33011    #[inline]
33012    fn from(node: DropSchema) -> Stmt {
33013        Stmt::DropSchema(node)
33014    }
33015}
33016impl From<DropSequence> for Stmt {
33017    #[inline]
33018    fn from(node: DropSequence) -> Stmt {
33019        Stmt::DropSequence(node)
33020    }
33021}
33022impl From<DropServer> for Stmt {
33023    #[inline]
33024    fn from(node: DropServer) -> Stmt {
33025        Stmt::DropServer(node)
33026    }
33027}
33028impl From<DropStatistics> for Stmt {
33029    #[inline]
33030    fn from(node: DropStatistics) -> Stmt {
33031        Stmt::DropStatistics(node)
33032    }
33033}
33034impl From<DropSubscription> for Stmt {
33035    #[inline]
33036    fn from(node: DropSubscription) -> Stmt {
33037        Stmt::DropSubscription(node)
33038    }
33039}
33040impl From<DropTable> for Stmt {
33041    #[inline]
33042    fn from(node: DropTable) -> Stmt {
33043        Stmt::DropTable(node)
33044    }
33045}
33046impl From<DropTablespace> for Stmt {
33047    #[inline]
33048    fn from(node: DropTablespace) -> Stmt {
33049        Stmt::DropTablespace(node)
33050    }
33051}
33052impl From<DropTextSearchConfig> for Stmt {
33053    #[inline]
33054    fn from(node: DropTextSearchConfig) -> Stmt {
33055        Stmt::DropTextSearchConfig(node)
33056    }
33057}
33058impl From<DropTextSearchDict> for Stmt {
33059    #[inline]
33060    fn from(node: DropTextSearchDict) -> Stmt {
33061        Stmt::DropTextSearchDict(node)
33062    }
33063}
33064impl From<DropTextSearchParser> for Stmt {
33065    #[inline]
33066    fn from(node: DropTextSearchParser) -> Stmt {
33067        Stmt::DropTextSearchParser(node)
33068    }
33069}
33070impl From<DropTextSearchTemplate> for Stmt {
33071    #[inline]
33072    fn from(node: DropTextSearchTemplate) -> Stmt {
33073        Stmt::DropTextSearchTemplate(node)
33074    }
33075}
33076impl From<DropTransform> for Stmt {
33077    #[inline]
33078    fn from(node: DropTransform) -> Stmt {
33079        Stmt::DropTransform(node)
33080    }
33081}
33082impl From<DropTrigger> for Stmt {
33083    #[inline]
33084    fn from(node: DropTrigger) -> Stmt {
33085        Stmt::DropTrigger(node)
33086    }
33087}
33088impl From<DropType> for Stmt {
33089    #[inline]
33090    fn from(node: DropType) -> Stmt {
33091        Stmt::DropType(node)
33092    }
33093}
33094impl From<DropUser> for Stmt {
33095    #[inline]
33096    fn from(node: DropUser) -> Stmt {
33097        Stmt::DropUser(node)
33098    }
33099}
33100impl From<DropUserMapping> for Stmt {
33101    #[inline]
33102    fn from(node: DropUserMapping) -> Stmt {
33103        Stmt::DropUserMapping(node)
33104    }
33105}
33106impl From<DropView> for Stmt {
33107    #[inline]
33108    fn from(node: DropView) -> Stmt {
33109        Stmt::DropView(node)
33110    }
33111}
33112impl From<Execute> for Stmt {
33113    #[inline]
33114    fn from(node: Execute) -> Stmt {
33115        Stmt::Execute(node)
33116    }
33117}
33118impl From<Explain> for Stmt {
33119    #[inline]
33120    fn from(node: Explain) -> Stmt {
33121        Stmt::Explain(node)
33122    }
33123}
33124impl From<Fetch> for Stmt {
33125    #[inline]
33126    fn from(node: Fetch) -> Stmt {
33127        Stmt::Fetch(node)
33128    }
33129}
33130impl From<Grant> for Stmt {
33131    #[inline]
33132    fn from(node: Grant) -> Stmt {
33133        Stmt::Grant(node)
33134    }
33135}
33136impl From<ImportForeignSchema> for Stmt {
33137    #[inline]
33138    fn from(node: ImportForeignSchema) -> Stmt {
33139        Stmt::ImportForeignSchema(node)
33140    }
33141}
33142impl From<Insert> for Stmt {
33143    #[inline]
33144    fn from(node: Insert) -> Stmt {
33145        Stmt::Insert(node)
33146    }
33147}
33148impl From<Listen> for Stmt {
33149    #[inline]
33150    fn from(node: Listen) -> Stmt {
33151        Stmt::Listen(node)
33152    }
33153}
33154impl From<Load> for Stmt {
33155    #[inline]
33156    fn from(node: Load) -> Stmt {
33157        Stmt::Load(node)
33158    }
33159}
33160impl From<Lock> for Stmt {
33161    #[inline]
33162    fn from(node: Lock) -> Stmt {
33163        Stmt::Lock(node)
33164    }
33165}
33166impl From<Merge> for Stmt {
33167    #[inline]
33168    fn from(node: Merge) -> Stmt {
33169        Stmt::Merge(node)
33170    }
33171}
33172impl From<Move> for Stmt {
33173    #[inline]
33174    fn from(node: Move) -> Stmt {
33175        Stmt::Move(node)
33176    }
33177}
33178impl From<Notify> for Stmt {
33179    #[inline]
33180    fn from(node: Notify) -> Stmt {
33181        Stmt::Notify(node)
33182    }
33183}
33184impl From<ParenSelect> for Stmt {
33185    #[inline]
33186    fn from(node: ParenSelect) -> Stmt {
33187        Stmt::ParenSelect(node)
33188    }
33189}
33190impl From<Prepare> for Stmt {
33191    #[inline]
33192    fn from(node: Prepare) -> Stmt {
33193        Stmt::Prepare(node)
33194    }
33195}
33196impl From<PrepareTransaction> for Stmt {
33197    #[inline]
33198    fn from(node: PrepareTransaction) -> Stmt {
33199        Stmt::PrepareTransaction(node)
33200    }
33201}
33202impl From<Reassign> for Stmt {
33203    #[inline]
33204    fn from(node: Reassign) -> Stmt {
33205        Stmt::Reassign(node)
33206    }
33207}
33208impl From<Refresh> for Stmt {
33209    #[inline]
33210    fn from(node: Refresh) -> Stmt {
33211        Stmt::Refresh(node)
33212    }
33213}
33214impl From<Reindex> for Stmt {
33215    #[inline]
33216    fn from(node: Reindex) -> Stmt {
33217        Stmt::Reindex(node)
33218    }
33219}
33220impl From<ReleaseSavepoint> for Stmt {
33221    #[inline]
33222    fn from(node: ReleaseSavepoint) -> Stmt {
33223        Stmt::ReleaseSavepoint(node)
33224    }
33225}
33226impl From<Reset> for Stmt {
33227    #[inline]
33228    fn from(node: Reset) -> Stmt {
33229        Stmt::Reset(node)
33230    }
33231}
33232impl From<ResetSessionAuth> for Stmt {
33233    #[inline]
33234    fn from(node: ResetSessionAuth) -> Stmt {
33235        Stmt::ResetSessionAuth(node)
33236    }
33237}
33238impl From<Revoke> for Stmt {
33239    #[inline]
33240    fn from(node: Revoke) -> Stmt {
33241        Stmt::Revoke(node)
33242    }
33243}
33244impl From<Rollback> for Stmt {
33245    #[inline]
33246    fn from(node: Rollback) -> Stmt {
33247        Stmt::Rollback(node)
33248    }
33249}
33250impl From<Savepoint> for Stmt {
33251    #[inline]
33252    fn from(node: Savepoint) -> Stmt {
33253        Stmt::Savepoint(node)
33254    }
33255}
33256impl From<SecurityLabel> for Stmt {
33257    #[inline]
33258    fn from(node: SecurityLabel) -> Stmt {
33259        Stmt::SecurityLabel(node)
33260    }
33261}
33262impl From<Select> for Stmt {
33263    #[inline]
33264    fn from(node: Select) -> Stmt {
33265        Stmt::Select(node)
33266    }
33267}
33268impl From<SelectInto> for Stmt {
33269    #[inline]
33270    fn from(node: SelectInto) -> Stmt {
33271        Stmt::SelectInto(node)
33272    }
33273}
33274impl From<Set> for Stmt {
33275    #[inline]
33276    fn from(node: Set) -> Stmt {
33277        Stmt::Set(node)
33278    }
33279}
33280impl From<SetConstraints> for Stmt {
33281    #[inline]
33282    fn from(node: SetConstraints) -> Stmt {
33283        Stmt::SetConstraints(node)
33284    }
33285}
33286impl From<SetRole> for Stmt {
33287    #[inline]
33288    fn from(node: SetRole) -> Stmt {
33289        Stmt::SetRole(node)
33290    }
33291}
33292impl From<SetSessionAuth> for Stmt {
33293    #[inline]
33294    fn from(node: SetSessionAuth) -> Stmt {
33295        Stmt::SetSessionAuth(node)
33296    }
33297}
33298impl From<SetTransaction> for Stmt {
33299    #[inline]
33300    fn from(node: SetTransaction) -> Stmt {
33301        Stmt::SetTransaction(node)
33302    }
33303}
33304impl From<Show> for Stmt {
33305    #[inline]
33306    fn from(node: Show) -> Stmt {
33307        Stmt::Show(node)
33308    }
33309}
33310impl From<Table> for Stmt {
33311    #[inline]
33312    fn from(node: Table) -> Stmt {
33313        Stmt::Table(node)
33314    }
33315}
33316impl From<Truncate> for Stmt {
33317    #[inline]
33318    fn from(node: Truncate) -> Stmt {
33319        Stmt::Truncate(node)
33320    }
33321}
33322impl From<Unlisten> for Stmt {
33323    #[inline]
33324    fn from(node: Unlisten) -> Stmt {
33325        Stmt::Unlisten(node)
33326    }
33327}
33328impl From<Update> for Stmt {
33329    #[inline]
33330    fn from(node: Update) -> Stmt {
33331        Stmt::Update(node)
33332    }
33333}
33334impl From<Vacuum> for Stmt {
33335    #[inline]
33336    fn from(node: Vacuum) -> Stmt {
33337        Stmt::Vacuum(node)
33338    }
33339}
33340impl From<Values> for Stmt {
33341    #[inline]
33342    fn from(node: Values) -> Stmt {
33343        Stmt::Values(node)
33344    }
33345}
33346impl AstNode for TableArg {
33347    #[inline]
33348    fn can_cast(kind: SyntaxKind) -> bool {
33349        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
33350    }
33351    #[inline]
33352    fn cast(syntax: SyntaxNode) -> Option<Self> {
33353        let res = match syntax.kind() {
33354            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
33355            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
33356            _ => {
33357                if let Some(result) = TableConstraint::cast(syntax) {
33358                    return Some(TableArg::TableConstraint(result));
33359                }
33360                return None;
33361            }
33362        };
33363        Some(res)
33364    }
33365    #[inline]
33366    fn syntax(&self) -> &SyntaxNode {
33367        match self {
33368            TableArg::Column(it) => &it.syntax,
33369            TableArg::LikeClause(it) => &it.syntax,
33370            TableArg::TableConstraint(it) => it.syntax(),
33371        }
33372    }
33373}
33374impl From<Column> for TableArg {
33375    #[inline]
33376    fn from(node: Column) -> TableArg {
33377        TableArg::Column(node)
33378    }
33379}
33380impl From<LikeClause> for TableArg {
33381    #[inline]
33382    fn from(node: LikeClause) -> TableArg {
33383        TableArg::LikeClause(node)
33384    }
33385}
33386impl AstNode for TableConstraint {
33387    #[inline]
33388    fn can_cast(kind: SyntaxKind) -> bool {
33389        matches!(
33390            kind,
33391            SyntaxKind::CHECK_CONSTRAINT
33392                | SyntaxKind::EXCLUDE_CONSTRAINT
33393                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
33394                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
33395                | SyntaxKind::UNIQUE_CONSTRAINT
33396        )
33397    }
33398    #[inline]
33399    fn cast(syntax: SyntaxNode) -> Option<Self> {
33400        let res = match syntax.kind() {
33401            SyntaxKind::CHECK_CONSTRAINT => {
33402                TableConstraint::CheckConstraint(CheckConstraint { syntax })
33403            }
33404            SyntaxKind::EXCLUDE_CONSTRAINT => {
33405                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
33406            }
33407            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
33408                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
33409            }
33410            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
33411                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
33412            }
33413            SyntaxKind::UNIQUE_CONSTRAINT => {
33414                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
33415            }
33416            _ => {
33417                return None;
33418            }
33419        };
33420        Some(res)
33421    }
33422    #[inline]
33423    fn syntax(&self) -> &SyntaxNode {
33424        match self {
33425            TableConstraint::CheckConstraint(it) => &it.syntax,
33426            TableConstraint::ExcludeConstraint(it) => &it.syntax,
33427            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
33428            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
33429            TableConstraint::UniqueConstraint(it) => &it.syntax,
33430        }
33431    }
33432}
33433impl From<CheckConstraint> for TableConstraint {
33434    #[inline]
33435    fn from(node: CheckConstraint) -> TableConstraint {
33436        TableConstraint::CheckConstraint(node)
33437    }
33438}
33439impl From<ExcludeConstraint> for TableConstraint {
33440    #[inline]
33441    fn from(node: ExcludeConstraint) -> TableConstraint {
33442        TableConstraint::ExcludeConstraint(node)
33443    }
33444}
33445impl From<ForeignKeyConstraint> for TableConstraint {
33446    #[inline]
33447    fn from(node: ForeignKeyConstraint) -> TableConstraint {
33448        TableConstraint::ForeignKeyConstraint(node)
33449    }
33450}
33451impl From<PrimaryKeyConstraint> for TableConstraint {
33452    #[inline]
33453    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
33454        TableConstraint::PrimaryKeyConstraint(node)
33455    }
33456}
33457impl From<UniqueConstraint> for TableConstraint {
33458    #[inline]
33459    fn from(node: UniqueConstraint) -> TableConstraint {
33460        TableConstraint::UniqueConstraint(node)
33461    }
33462}
33463impl AstNode for Timezone {
33464    #[inline]
33465    fn can_cast(kind: SyntaxKind) -> bool {
33466        matches!(
33467            kind,
33468            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
33469        )
33470    }
33471    #[inline]
33472    fn cast(syntax: SyntaxNode) -> Option<Self> {
33473        let res = match syntax.kind() {
33474            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
33475            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
33476            _ => {
33477                return None;
33478            }
33479        };
33480        Some(res)
33481    }
33482    #[inline]
33483    fn syntax(&self) -> &SyntaxNode {
33484        match self {
33485            Timezone::WithTimezone(it) => &it.syntax,
33486            Timezone::WithoutTimezone(it) => &it.syntax,
33487        }
33488    }
33489}
33490impl From<WithTimezone> for Timezone {
33491    #[inline]
33492    fn from(node: WithTimezone) -> Timezone {
33493        Timezone::WithTimezone(node)
33494    }
33495}
33496impl From<WithoutTimezone> for Timezone {
33497    #[inline]
33498    fn from(node: WithoutTimezone) -> Timezone {
33499        Timezone::WithoutTimezone(node)
33500    }
33501}
33502impl AstNode for TransactionMode {
33503    #[inline]
33504    fn can_cast(kind: SyntaxKind) -> bool {
33505        matches!(
33506            kind,
33507            SyntaxKind::DEFERRABLE
33508                | SyntaxKind::NOT_DEFERRABLE
33509                | SyntaxKind::READ_COMMITTED
33510                | SyntaxKind::READ_ONLY
33511                | SyntaxKind::READ_UNCOMMITTED
33512                | SyntaxKind::READ_WRITE
33513                | SyntaxKind::REPEATABLE_READ
33514                | SyntaxKind::SERIALIZABLE
33515        )
33516    }
33517    #[inline]
33518    fn cast(syntax: SyntaxNode) -> Option<Self> {
33519        let res = match syntax.kind() {
33520            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
33521            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
33522            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
33523            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
33524            SyntaxKind::READ_UNCOMMITTED => {
33525                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
33526            }
33527            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
33528            SyntaxKind::REPEATABLE_READ => {
33529                TransactionMode::RepeatableRead(RepeatableRead { syntax })
33530            }
33531            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
33532            _ => {
33533                return None;
33534            }
33535        };
33536        Some(res)
33537    }
33538    #[inline]
33539    fn syntax(&self) -> &SyntaxNode {
33540        match self {
33541            TransactionMode::Deferrable(it) => &it.syntax,
33542            TransactionMode::NotDeferrable(it) => &it.syntax,
33543            TransactionMode::ReadCommitted(it) => &it.syntax,
33544            TransactionMode::ReadOnly(it) => &it.syntax,
33545            TransactionMode::ReadUncommitted(it) => &it.syntax,
33546            TransactionMode::ReadWrite(it) => &it.syntax,
33547            TransactionMode::RepeatableRead(it) => &it.syntax,
33548            TransactionMode::Serializable(it) => &it.syntax,
33549        }
33550    }
33551}
33552impl From<Deferrable> for TransactionMode {
33553    #[inline]
33554    fn from(node: Deferrable) -> TransactionMode {
33555        TransactionMode::Deferrable(node)
33556    }
33557}
33558impl From<NotDeferrable> for TransactionMode {
33559    #[inline]
33560    fn from(node: NotDeferrable) -> TransactionMode {
33561        TransactionMode::NotDeferrable(node)
33562    }
33563}
33564impl From<ReadCommitted> for TransactionMode {
33565    #[inline]
33566    fn from(node: ReadCommitted) -> TransactionMode {
33567        TransactionMode::ReadCommitted(node)
33568    }
33569}
33570impl From<ReadOnly> for TransactionMode {
33571    #[inline]
33572    fn from(node: ReadOnly) -> TransactionMode {
33573        TransactionMode::ReadOnly(node)
33574    }
33575}
33576impl From<ReadUncommitted> for TransactionMode {
33577    #[inline]
33578    fn from(node: ReadUncommitted) -> TransactionMode {
33579        TransactionMode::ReadUncommitted(node)
33580    }
33581}
33582impl From<ReadWrite> for TransactionMode {
33583    #[inline]
33584    fn from(node: ReadWrite) -> TransactionMode {
33585        TransactionMode::ReadWrite(node)
33586    }
33587}
33588impl From<RepeatableRead> for TransactionMode {
33589    #[inline]
33590    fn from(node: RepeatableRead) -> TransactionMode {
33591        TransactionMode::RepeatableRead(node)
33592    }
33593}
33594impl From<Serializable> for TransactionMode {
33595    #[inline]
33596    fn from(node: Serializable) -> TransactionMode {
33597        TransactionMode::Serializable(node)
33598    }
33599}
33600impl AstNode for Type {
33601    #[inline]
33602    fn can_cast(kind: SyntaxKind) -> bool {
33603        matches!(
33604            kind,
33605            SyntaxKind::ARRAY_TYPE
33606                | SyntaxKind::BIT_TYPE
33607                | SyntaxKind::CHAR_TYPE
33608                | SyntaxKind::DOUBLE_TYPE
33609                | SyntaxKind::EXPR_TYPE
33610                | SyntaxKind::INTERVAL_TYPE
33611                | SyntaxKind::PATH_TYPE
33612                | SyntaxKind::PERCENT_TYPE
33613                | SyntaxKind::TIME_TYPE
33614        )
33615    }
33616    #[inline]
33617    fn cast(syntax: SyntaxNode) -> Option<Self> {
33618        let res = match syntax.kind() {
33619            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
33620            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
33621            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
33622            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
33623            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
33624            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
33625            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
33626            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
33627            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
33628            _ => {
33629                return None;
33630            }
33631        };
33632        Some(res)
33633    }
33634    #[inline]
33635    fn syntax(&self) -> &SyntaxNode {
33636        match self {
33637            Type::ArrayType(it) => &it.syntax,
33638            Type::BitType(it) => &it.syntax,
33639            Type::CharType(it) => &it.syntax,
33640            Type::DoubleType(it) => &it.syntax,
33641            Type::ExprType(it) => &it.syntax,
33642            Type::IntervalType(it) => &it.syntax,
33643            Type::PathType(it) => &it.syntax,
33644            Type::PercentType(it) => &it.syntax,
33645            Type::TimeType(it) => &it.syntax,
33646        }
33647    }
33648}
33649impl From<ArrayType> for Type {
33650    #[inline]
33651    fn from(node: ArrayType) -> Type {
33652        Type::ArrayType(node)
33653    }
33654}
33655impl From<BitType> for Type {
33656    #[inline]
33657    fn from(node: BitType) -> Type {
33658        Type::BitType(node)
33659    }
33660}
33661impl From<CharType> for Type {
33662    #[inline]
33663    fn from(node: CharType) -> Type {
33664        Type::CharType(node)
33665    }
33666}
33667impl From<DoubleType> for Type {
33668    #[inline]
33669    fn from(node: DoubleType) -> Type {
33670        Type::DoubleType(node)
33671    }
33672}
33673impl From<ExprType> for Type {
33674    #[inline]
33675    fn from(node: ExprType) -> Type {
33676        Type::ExprType(node)
33677    }
33678}
33679impl From<IntervalType> for Type {
33680    #[inline]
33681    fn from(node: IntervalType) -> Type {
33682        Type::IntervalType(node)
33683    }
33684}
33685impl From<PathType> for Type {
33686    #[inline]
33687    fn from(node: PathType) -> Type {
33688        Type::PathType(node)
33689    }
33690}
33691impl From<PercentType> for Type {
33692    #[inline]
33693    fn from(node: PercentType) -> Type {
33694        Type::PercentType(node)
33695    }
33696}
33697impl From<TimeType> for Type {
33698    #[inline]
33699    fn from(node: TimeType) -> Type {
33700        Type::TimeType(node)
33701    }
33702}
33703impl AstNode for WithQuery {
33704    #[inline]
33705    fn can_cast(kind: SyntaxKind) -> bool {
33706        matches!(
33707            kind,
33708            SyntaxKind::COMPOUND_SELECT
33709                | SyntaxKind::DELETE
33710                | SyntaxKind::INSERT
33711                | SyntaxKind::MERGE
33712                | SyntaxKind::PAREN_SELECT
33713                | SyntaxKind::SELECT
33714                | SyntaxKind::TABLE
33715                | SyntaxKind::UPDATE
33716                | SyntaxKind::VALUES
33717        )
33718    }
33719    #[inline]
33720    fn cast(syntax: SyntaxNode) -> Option<Self> {
33721        let res = match syntax.kind() {
33722            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
33723            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
33724            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
33725            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
33726            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
33727            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
33728            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
33729            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
33730            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
33731            _ => {
33732                return None;
33733            }
33734        };
33735        Some(res)
33736    }
33737    #[inline]
33738    fn syntax(&self) -> &SyntaxNode {
33739        match self {
33740            WithQuery::CompoundSelect(it) => &it.syntax,
33741            WithQuery::Delete(it) => &it.syntax,
33742            WithQuery::Insert(it) => &it.syntax,
33743            WithQuery::Merge(it) => &it.syntax,
33744            WithQuery::ParenSelect(it) => &it.syntax,
33745            WithQuery::Select(it) => &it.syntax,
33746            WithQuery::Table(it) => &it.syntax,
33747            WithQuery::Update(it) => &it.syntax,
33748            WithQuery::Values(it) => &it.syntax,
33749        }
33750    }
33751}
33752impl From<CompoundSelect> for WithQuery {
33753    #[inline]
33754    fn from(node: CompoundSelect) -> WithQuery {
33755        WithQuery::CompoundSelect(node)
33756    }
33757}
33758impl From<Delete> for WithQuery {
33759    #[inline]
33760    fn from(node: Delete) -> WithQuery {
33761        WithQuery::Delete(node)
33762    }
33763}
33764impl From<Insert> for WithQuery {
33765    #[inline]
33766    fn from(node: Insert) -> WithQuery {
33767        WithQuery::Insert(node)
33768    }
33769}
33770impl From<Merge> for WithQuery {
33771    #[inline]
33772    fn from(node: Merge) -> WithQuery {
33773        WithQuery::Merge(node)
33774    }
33775}
33776impl From<ParenSelect> for WithQuery {
33777    #[inline]
33778    fn from(node: ParenSelect) -> WithQuery {
33779        WithQuery::ParenSelect(node)
33780    }
33781}
33782impl From<Select> for WithQuery {
33783    #[inline]
33784    fn from(node: Select) -> WithQuery {
33785        WithQuery::Select(node)
33786    }
33787}
33788impl From<Table> for WithQuery {
33789    #[inline]
33790    fn from(node: Table) -> WithQuery {
33791        WithQuery::Table(node)
33792    }
33793}
33794impl From<Update> for WithQuery {
33795    #[inline]
33796    fn from(node: Update) -> WithQuery {
33797        WithQuery::Update(node)
33798    }
33799}
33800impl From<Values> for WithQuery {
33801    #[inline]
33802    fn from(node: Values) -> WithQuery {
33803        WithQuery::Values(node)
33804    }
33805}