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
2132#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2133pub struct BitType {
2134    pub(crate) syntax: SyntaxNode,
2135}
2136impl BitType {
2137    #[inline]
2138    pub fn arg_list(&self) -> Option<ArgList> {
2139        support::child(&self.syntax)
2140    }
2141    #[inline]
2142    pub fn bit_token(&self) -> Option<SyntaxToken> {
2143        support::token(&self.syntax, SyntaxKind::BIT_KW)
2144    }
2145    #[inline]
2146    pub fn varying_token(&self) -> Option<SyntaxToken> {
2147        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2148    }
2149}
2150
2151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2152pub struct Call {
2153    pub(crate) syntax: SyntaxNode,
2154}
2155impl Call {
2156    #[inline]
2157    pub fn arg_list(&self) -> Option<ArgList> {
2158        support::child(&self.syntax)
2159    }
2160    #[inline]
2161    pub fn path(&self) -> Option<Path> {
2162        support::child(&self.syntax)
2163    }
2164    #[inline]
2165    pub fn call_token(&self) -> Option<SyntaxToken> {
2166        support::token(&self.syntax, SyntaxKind::CALL_KW)
2167    }
2168}
2169
2170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2171pub struct CallExpr {
2172    pub(crate) syntax: SyntaxNode,
2173}
2174impl CallExpr {
2175    #[inline]
2176    pub fn all_fn(&self) -> Option<AllFn> {
2177        support::child(&self.syntax)
2178    }
2179    #[inline]
2180    pub fn any_fn(&self) -> Option<AnyFn> {
2181        support::child(&self.syntax)
2182    }
2183    #[inline]
2184    pub fn arg_list(&self) -> Option<ArgList> {
2185        support::child(&self.syntax)
2186    }
2187    #[inline]
2188    pub fn exists_fn(&self) -> Option<ExistsFn> {
2189        support::child(&self.syntax)
2190    }
2191    #[inline]
2192    pub fn expr(&self) -> Option<Expr> {
2193        support::child(&self.syntax)
2194    }
2195    #[inline]
2196    pub fn extract_fn(&self) -> Option<ExtractFn> {
2197        support::child(&self.syntax)
2198    }
2199    #[inline]
2200    pub fn filter_clause(&self) -> Option<FilterClause> {
2201        support::child(&self.syntax)
2202    }
2203    #[inline]
2204    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
2205        support::child(&self.syntax)
2206    }
2207    #[inline]
2208    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
2209        support::child(&self.syntax)
2210    }
2211    #[inline]
2212    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
2213        support::child(&self.syntax)
2214    }
2215    #[inline]
2216    pub fn json_fn(&self) -> Option<JsonFn> {
2217        support::child(&self.syntax)
2218    }
2219    #[inline]
2220    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
2221        support::child(&self.syntax)
2222    }
2223    #[inline]
2224    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
2225        support::child(&self.syntax)
2226    }
2227    #[inline]
2228    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
2229        support::child(&self.syntax)
2230    }
2231    #[inline]
2232    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
2233        support::child(&self.syntax)
2234    }
2235    #[inline]
2236    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
2237        support::child(&self.syntax)
2238    }
2239    #[inline]
2240    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
2241        support::child(&self.syntax)
2242    }
2243    #[inline]
2244    pub fn over_clause(&self) -> Option<OverClause> {
2245        support::child(&self.syntax)
2246    }
2247    #[inline]
2248    pub fn overlay_fn(&self) -> Option<OverlayFn> {
2249        support::child(&self.syntax)
2250    }
2251    #[inline]
2252    pub fn position_fn(&self) -> Option<PositionFn> {
2253        support::child(&self.syntax)
2254    }
2255    #[inline]
2256    pub fn some_fn(&self) -> Option<SomeFn> {
2257        support::child(&self.syntax)
2258    }
2259    #[inline]
2260    pub fn substring_fn(&self) -> Option<SubstringFn> {
2261        support::child(&self.syntax)
2262    }
2263    #[inline]
2264    pub fn trim_fn(&self) -> Option<TrimFn> {
2265        support::child(&self.syntax)
2266    }
2267    #[inline]
2268    pub fn within_clause(&self) -> Option<WithinClause> {
2269        support::child(&self.syntax)
2270    }
2271    #[inline]
2272    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
2273        support::child(&self.syntax)
2274    }
2275    #[inline]
2276    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
2277        support::child(&self.syntax)
2278    }
2279    #[inline]
2280    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
2281        support::child(&self.syntax)
2282    }
2283    #[inline]
2284    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
2285        support::child(&self.syntax)
2286    }
2287    #[inline]
2288    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
2289        support::child(&self.syntax)
2290    }
2291    #[inline]
2292    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
2293        support::child(&self.syntax)
2294    }
2295    #[inline]
2296    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
2297        support::child(&self.syntax)
2298    }
2299}
2300
2301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2302pub struct Cascade {
2303    pub(crate) syntax: SyntaxNode,
2304}
2305impl Cascade {
2306    #[inline]
2307    pub fn cascade_token(&self) -> Option<SyntaxToken> {
2308        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
2309    }
2310}
2311
2312#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2313pub struct CaseExpr {
2314    pub(crate) syntax: SyntaxNode,
2315}
2316impl CaseExpr {
2317    #[inline]
2318    pub fn else_clause(&self) -> Option<ElseClause> {
2319        support::child(&self.syntax)
2320    }
2321    #[inline]
2322    pub fn expr(&self) -> Option<Expr> {
2323        support::child(&self.syntax)
2324    }
2325    #[inline]
2326    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
2327        support::child(&self.syntax)
2328    }
2329    #[inline]
2330    pub fn case_token(&self) -> Option<SyntaxToken> {
2331        support::token(&self.syntax, SyntaxKind::CASE_KW)
2332    }
2333}
2334
2335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2336pub struct CastExpr {
2337    pub(crate) syntax: SyntaxNode,
2338}
2339impl CastExpr {
2340    #[inline]
2341    pub fn colon_colon(&self) -> Option<ColonColon> {
2342        support::child(&self.syntax)
2343    }
2344    #[inline]
2345    pub fn expr(&self) -> Option<Expr> {
2346        support::child(&self.syntax)
2347    }
2348    #[inline]
2349    pub fn literal(&self) -> Option<Literal> {
2350        support::child(&self.syntax)
2351    }
2352    #[inline]
2353    pub fn ty(&self) -> Option<Type> {
2354        support::child(&self.syntax)
2355    }
2356    #[inline]
2357    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2358        support::token(&self.syntax, SyntaxKind::L_PAREN)
2359    }
2360    #[inline]
2361    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2362        support::token(&self.syntax, SyntaxKind::R_PAREN)
2363    }
2364    #[inline]
2365    pub fn as_token(&self) -> Option<SyntaxToken> {
2366        support::token(&self.syntax, SyntaxKind::AS_KW)
2367    }
2368    #[inline]
2369    pub fn cast_token(&self) -> Option<SyntaxToken> {
2370        support::token(&self.syntax, SyntaxKind::CAST_KW)
2371    }
2372    #[inline]
2373    pub fn treat_token(&self) -> Option<SyntaxToken> {
2374        support::token(&self.syntax, SyntaxKind::TREAT_KW)
2375    }
2376}
2377
2378#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2379pub struct CastSig {
2380    pub(crate) syntax: SyntaxNode,
2381}
2382impl CastSig {
2383    #[inline]
2384    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2385        support::token(&self.syntax, SyntaxKind::L_PAREN)
2386    }
2387    #[inline]
2388    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2389        support::token(&self.syntax, SyntaxKind::R_PAREN)
2390    }
2391    #[inline]
2392    pub fn as_token(&self) -> Option<SyntaxToken> {
2393        support::token(&self.syntax, SyntaxKind::AS_KW)
2394    }
2395}
2396
2397#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2398pub struct CharType {
2399    pub(crate) syntax: SyntaxNode,
2400}
2401impl CharType {
2402    #[inline]
2403    pub fn arg_list(&self) -> Option<ArgList> {
2404        support::child(&self.syntax)
2405    }
2406    #[inline]
2407    pub fn char_token(&self) -> Option<SyntaxToken> {
2408        support::token(&self.syntax, SyntaxKind::CHAR_KW)
2409    }
2410    #[inline]
2411    pub fn character_token(&self) -> Option<SyntaxToken> {
2412        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
2413    }
2414    #[inline]
2415    pub fn nchar_token(&self) -> Option<SyntaxToken> {
2416        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2417    }
2418    #[inline]
2419    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2420        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2421    }
2422    #[inline]
2423    pub fn varying_token(&self) -> Option<SyntaxToken> {
2424        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2425    }
2426}
2427
2428#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2429pub struct CheckConstraint {
2430    pub(crate) syntax: SyntaxNode,
2431}
2432impl CheckConstraint {
2433    #[inline]
2434    pub fn constraint_name(&self) -> Option<ConstraintName> {
2435        support::child(&self.syntax)
2436    }
2437    #[inline]
2438    pub fn expr(&self) -> Option<Expr> {
2439        support::child(&self.syntax)
2440    }
2441    #[inline]
2442    pub fn no_inherit(&self) -> Option<NoInherit> {
2443        support::child(&self.syntax)
2444    }
2445    #[inline]
2446    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2447        support::token(&self.syntax, SyntaxKind::L_PAREN)
2448    }
2449    #[inline]
2450    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2451        support::token(&self.syntax, SyntaxKind::R_PAREN)
2452    }
2453    #[inline]
2454    pub fn check_token(&self) -> Option<SyntaxToken> {
2455        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2456    }
2457}
2458
2459#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2460pub struct Checkpoint {
2461    pub(crate) syntax: SyntaxNode,
2462}
2463impl Checkpoint {
2464    #[inline]
2465    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
2466        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
2467    }
2468}
2469
2470#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2471pub struct Close {
2472    pub(crate) syntax: SyntaxNode,
2473}
2474impl Close {
2475    #[inline]
2476    pub fn name_ref(&self) -> Option<NameRef> {
2477        support::child(&self.syntax)
2478    }
2479    #[inline]
2480    pub fn close_token(&self) -> Option<SyntaxToken> {
2481        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
2482    }
2483}
2484
2485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2486pub struct Cluster {
2487    pub(crate) syntax: SyntaxNode,
2488}
2489impl Cluster {
2490    #[inline]
2491    pub fn option_item_list(&self) -> Option<OptionItemList> {
2492        support::child(&self.syntax)
2493    }
2494    #[inline]
2495    pub fn path(&self) -> Option<Path> {
2496        support::child(&self.syntax)
2497    }
2498    #[inline]
2499    pub fn using_method(&self) -> Option<UsingMethod> {
2500        support::child(&self.syntax)
2501    }
2502    #[inline]
2503    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2504        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2505    }
2506    #[inline]
2507    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2508        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2509    }
2510}
2511
2512#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2513pub struct ClusterOn {
2514    pub(crate) syntax: SyntaxNode,
2515}
2516impl ClusterOn {
2517    #[inline]
2518    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2519        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2520    }
2521    #[inline]
2522    pub fn on_token(&self) -> Option<SyntaxToken> {
2523        support::token(&self.syntax, SyntaxKind::ON_KW)
2524    }
2525}
2526
2527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2528pub struct Collate {
2529    pub(crate) syntax: SyntaxNode,
2530}
2531impl Collate {
2532    #[inline]
2533    pub fn path(&self) -> Option<Path> {
2534        support::child(&self.syntax)
2535    }
2536    #[inline]
2537    pub fn collate_token(&self) -> Option<SyntaxToken> {
2538        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
2539    }
2540}
2541
2542#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2543pub struct ColonColon {
2544    pub(crate) syntax: SyntaxNode,
2545}
2546impl ColonColon {
2547    #[inline]
2548    pub fn colon_token(&self) -> Option<SyntaxToken> {
2549        support::token(&self.syntax, SyntaxKind::COLON)
2550    }
2551}
2552
2553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2554pub struct ColonEq {
2555    pub(crate) syntax: SyntaxNode,
2556}
2557impl ColonEq {
2558    #[inline]
2559    pub fn colon_token(&self) -> Option<SyntaxToken> {
2560        support::token(&self.syntax, SyntaxKind::COLON)
2561    }
2562    #[inline]
2563    pub fn eq_token(&self) -> Option<SyntaxToken> {
2564        support::token(&self.syntax, SyntaxKind::EQ)
2565    }
2566}
2567
2568#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2569pub struct Column {
2570    pub(crate) syntax: SyntaxNode,
2571}
2572impl Column {
2573    #[inline]
2574    pub fn collate(&self) -> Option<Collate> {
2575        support::child(&self.syntax)
2576    }
2577    #[inline]
2578    pub fn compression_method(&self) -> Option<CompressionMethod> {
2579        support::child(&self.syntax)
2580    }
2581    #[inline]
2582    pub fn constraints(&self) -> AstChildren<ColumnConstraint> {
2583        support::children(&self.syntax)
2584    }
2585    #[inline]
2586    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
2587        support::child(&self.syntax)
2588    }
2589    #[inline]
2590    pub fn enforced(&self) -> Option<Enforced> {
2591        support::child(&self.syntax)
2592    }
2593    #[inline]
2594    pub fn index_expr(&self) -> Option<IndexExpr> {
2595        support::child(&self.syntax)
2596    }
2597    #[inline]
2598    pub fn initially_deferred_constraint_option(
2599        &self,
2600    ) -> Option<InitiallyDeferredConstraintOption> {
2601        support::child(&self.syntax)
2602    }
2603    #[inline]
2604    pub fn initially_immediate_constraint_option(
2605        &self,
2606    ) -> Option<InitiallyImmediateConstraintOption> {
2607        support::child(&self.syntax)
2608    }
2609    #[inline]
2610    pub fn name(&self) -> Option<Name> {
2611        support::child(&self.syntax)
2612    }
2613    #[inline]
2614    pub fn name_ref(&self) -> Option<NameRef> {
2615        support::child(&self.syntax)
2616    }
2617    #[inline]
2618    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
2619        support::child(&self.syntax)
2620    }
2621    #[inline]
2622    pub fn not_enforced(&self) -> Option<NotEnforced> {
2623        support::child(&self.syntax)
2624    }
2625    #[inline]
2626    pub fn storage(&self) -> Option<Storage> {
2627        support::child(&self.syntax)
2628    }
2629    #[inline]
2630    pub fn ty(&self) -> Option<Type> {
2631        support::child(&self.syntax)
2632    }
2633    #[inline]
2634    pub fn with_options(&self) -> Option<WithOptions> {
2635        support::child(&self.syntax)
2636    }
2637    #[inline]
2638    pub fn period_token(&self) -> Option<SyntaxToken> {
2639        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
2640    }
2641}
2642
2643#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2644pub struct ColumnList {
2645    pub(crate) syntax: SyntaxNode,
2646}
2647impl ColumnList {
2648    #[inline]
2649    pub fn columns(&self) -> AstChildren<Column> {
2650        support::children(&self.syntax)
2651    }
2652    #[inline]
2653    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2654        support::token(&self.syntax, SyntaxKind::L_PAREN)
2655    }
2656    #[inline]
2657    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2658        support::token(&self.syntax, SyntaxKind::R_PAREN)
2659    }
2660}
2661
2662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2663pub struct CommentOn {
2664    pub(crate) syntax: SyntaxNode,
2665}
2666impl CommentOn {
2667    #[inline]
2668    pub fn aggregate(&self) -> Option<Aggregate> {
2669        support::child(&self.syntax)
2670    }
2671    #[inline]
2672    pub fn cast_sig(&self) -> Option<CastSig> {
2673        support::child(&self.syntax)
2674    }
2675    #[inline]
2676    pub fn function_sig(&self) -> Option<FunctionSig> {
2677        support::child(&self.syntax)
2678    }
2679    #[inline]
2680    pub fn literal(&self) -> Option<Literal> {
2681        support::child(&self.syntax)
2682    }
2683    #[inline]
2684    pub fn name_ref(&self) -> Option<NameRef> {
2685        support::child(&self.syntax)
2686    }
2687    #[inline]
2688    pub fn op(&self) -> Option<Op> {
2689        support::child(&self.syntax)
2690    }
2691    #[inline]
2692    pub fn path(&self) -> Option<Path> {
2693        support::child(&self.syntax)
2694    }
2695    #[inline]
2696    pub fn ty(&self) -> Option<Type> {
2697        support::child(&self.syntax)
2698    }
2699    #[inline]
2700    pub fn using_method(&self) -> Option<UsingMethod> {
2701        support::child(&self.syntax)
2702    }
2703    #[inline]
2704    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2705        support::token(&self.syntax, SyntaxKind::L_PAREN)
2706    }
2707    #[inline]
2708    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2709        support::token(&self.syntax, SyntaxKind::R_PAREN)
2710    }
2711    #[inline]
2712    pub fn comma_token(&self) -> Option<SyntaxToken> {
2713        support::token(&self.syntax, SyntaxKind::COMMA)
2714    }
2715    #[inline]
2716    pub fn access_token(&self) -> Option<SyntaxToken> {
2717        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
2718    }
2719    #[inline]
2720    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
2721        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
2722    }
2723    #[inline]
2724    pub fn cast_token(&self) -> Option<SyntaxToken> {
2725        support::token(&self.syntax, SyntaxKind::CAST_KW)
2726    }
2727    #[inline]
2728    pub fn class_token(&self) -> Option<SyntaxToken> {
2729        support::token(&self.syntax, SyntaxKind::CLASS_KW)
2730    }
2731    #[inline]
2732    pub fn collation_token(&self) -> Option<SyntaxToken> {
2733        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
2734    }
2735    #[inline]
2736    pub fn column_token(&self) -> Option<SyntaxToken> {
2737        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
2738    }
2739    #[inline]
2740    pub fn comment_token(&self) -> Option<SyntaxToken> {
2741        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
2742    }
2743    #[inline]
2744    pub fn configuration_token(&self) -> Option<SyntaxToken> {
2745        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
2746    }
2747    #[inline]
2748    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2749        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2750    }
2751    #[inline]
2752    pub fn conversion_token(&self) -> Option<SyntaxToken> {
2753        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
2754    }
2755    #[inline]
2756    pub fn data_token(&self) -> Option<SyntaxToken> {
2757        support::token(&self.syntax, SyntaxKind::DATA_KW)
2758    }
2759    #[inline]
2760    pub fn database_token(&self) -> Option<SyntaxToken> {
2761        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
2762    }
2763    #[inline]
2764    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
2765        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
2766    }
2767    #[inline]
2768    pub fn domain_token(&self) -> Option<SyntaxToken> {
2769        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
2770    }
2771    #[inline]
2772    pub fn event_token(&self) -> Option<SyntaxToken> {
2773        support::token(&self.syntax, SyntaxKind::EVENT_KW)
2774    }
2775    #[inline]
2776    pub fn extension_token(&self) -> Option<SyntaxToken> {
2777        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
2778    }
2779    #[inline]
2780    pub fn family_token(&self) -> Option<SyntaxToken> {
2781        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
2782    }
2783    #[inline]
2784    pub fn for_token(&self) -> Option<SyntaxToken> {
2785        support::token(&self.syntax, SyntaxKind::FOR_KW)
2786    }
2787    #[inline]
2788    pub fn foreign_token(&self) -> Option<SyntaxToken> {
2789        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
2790    }
2791    #[inline]
2792    pub fn function_token(&self) -> Option<SyntaxToken> {
2793        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
2794    }
2795    #[inline]
2796    pub fn index_token(&self) -> Option<SyntaxToken> {
2797        support::token(&self.syntax, SyntaxKind::INDEX_KW)
2798    }
2799    #[inline]
2800    pub fn is_token(&self) -> Option<SyntaxToken> {
2801        support::token(&self.syntax, SyntaxKind::IS_KW)
2802    }
2803    #[inline]
2804    pub fn language_token(&self) -> Option<SyntaxToken> {
2805        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
2806    }
2807    #[inline]
2808    pub fn large_token(&self) -> Option<SyntaxToken> {
2809        support::token(&self.syntax, SyntaxKind::LARGE_KW)
2810    }
2811    #[inline]
2812    pub fn materialized_token(&self) -> Option<SyntaxToken> {
2813        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
2814    }
2815    #[inline]
2816    pub fn method_token(&self) -> Option<SyntaxToken> {
2817        support::token(&self.syntax, SyntaxKind::METHOD_KW)
2818    }
2819    #[inline]
2820    pub fn null_token(&self) -> Option<SyntaxToken> {
2821        support::token(&self.syntax, SyntaxKind::NULL_KW)
2822    }
2823    #[inline]
2824    pub fn object_token(&self) -> Option<SyntaxToken> {
2825        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
2826    }
2827    #[inline]
2828    pub fn on_token(&self) -> Option<SyntaxToken> {
2829        support::token(&self.syntax, SyntaxKind::ON_KW)
2830    }
2831    #[inline]
2832    pub fn operator_token(&self) -> Option<SyntaxToken> {
2833        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2834    }
2835    #[inline]
2836    pub fn parser_token(&self) -> Option<SyntaxToken> {
2837        support::token(&self.syntax, SyntaxKind::PARSER_KW)
2838    }
2839    #[inline]
2840    pub fn policy_token(&self) -> Option<SyntaxToken> {
2841        support::token(&self.syntax, SyntaxKind::POLICY_KW)
2842    }
2843    #[inline]
2844    pub fn procedural_token(&self) -> Option<SyntaxToken> {
2845        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
2846    }
2847    #[inline]
2848    pub fn procedure_token(&self) -> Option<SyntaxToken> {
2849        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
2850    }
2851    #[inline]
2852    pub fn publication_token(&self) -> Option<SyntaxToken> {
2853        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
2854    }
2855    #[inline]
2856    pub fn role_token(&self) -> Option<SyntaxToken> {
2857        support::token(&self.syntax, SyntaxKind::ROLE_KW)
2858    }
2859    #[inline]
2860    pub fn routine_token(&self) -> Option<SyntaxToken> {
2861        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
2862    }
2863    #[inline]
2864    pub fn rule_token(&self) -> Option<SyntaxToken> {
2865        support::token(&self.syntax, SyntaxKind::RULE_KW)
2866    }
2867    #[inline]
2868    pub fn schema_token(&self) -> Option<SyntaxToken> {
2869        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
2870    }
2871    #[inline]
2872    pub fn search_token(&self) -> Option<SyntaxToken> {
2873        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2874    }
2875    #[inline]
2876    pub fn sequence_token(&self) -> Option<SyntaxToken> {
2877        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
2878    }
2879    #[inline]
2880    pub fn server_token(&self) -> Option<SyntaxToken> {
2881        support::token(&self.syntax, SyntaxKind::SERVER_KW)
2882    }
2883    #[inline]
2884    pub fn statistics_token(&self) -> Option<SyntaxToken> {
2885        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
2886    }
2887    #[inline]
2888    pub fn subscription_token(&self) -> Option<SyntaxToken> {
2889        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
2890    }
2891    #[inline]
2892    pub fn table_token(&self) -> Option<SyntaxToken> {
2893        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2894    }
2895    #[inline]
2896    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
2897        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
2898    }
2899    #[inline]
2900    pub fn template_token(&self) -> Option<SyntaxToken> {
2901        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
2902    }
2903    #[inline]
2904    pub fn text_token(&self) -> Option<SyntaxToken> {
2905        support::token(&self.syntax, SyntaxKind::TEXT_KW)
2906    }
2907    #[inline]
2908    pub fn transform_token(&self) -> Option<SyntaxToken> {
2909        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
2910    }
2911    #[inline]
2912    pub fn trigger_token(&self) -> Option<SyntaxToken> {
2913        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
2914    }
2915    #[inline]
2916    pub fn type_token(&self) -> Option<SyntaxToken> {
2917        support::token(&self.syntax, SyntaxKind::TYPE_KW)
2918    }
2919    #[inline]
2920    pub fn view_token(&self) -> Option<SyntaxToken> {
2921        support::token(&self.syntax, SyntaxKind::VIEW_KW)
2922    }
2923    #[inline]
2924    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
2925        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
2926    }
2927}
2928
2929#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2930pub struct Commit {
2931    pub(crate) syntax: SyntaxNode,
2932}
2933impl Commit {
2934    #[inline]
2935    pub fn literal(&self) -> Option<Literal> {
2936        support::child(&self.syntax)
2937    }
2938    #[inline]
2939    pub fn and_token(&self) -> Option<SyntaxToken> {
2940        support::token(&self.syntax, SyntaxKind::AND_KW)
2941    }
2942    #[inline]
2943    pub fn chain_token(&self) -> Option<SyntaxToken> {
2944        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
2945    }
2946    #[inline]
2947    pub fn commit_token(&self) -> Option<SyntaxToken> {
2948        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
2949    }
2950    #[inline]
2951    pub fn no_token(&self) -> Option<SyntaxToken> {
2952        support::token(&self.syntax, SyntaxKind::NO_KW)
2953    }
2954    #[inline]
2955    pub fn prepared_token(&self) -> Option<SyntaxToken> {
2956        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
2957    }
2958    #[inline]
2959    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2960        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2961    }
2962    #[inline]
2963    pub fn work_token(&self) -> Option<SyntaxToken> {
2964        support::token(&self.syntax, SyntaxKind::WORK_KW)
2965    }
2966}
2967
2968#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2969pub struct CompoundSelect {
2970    pub(crate) syntax: SyntaxNode,
2971}
2972impl CompoundSelect {
2973    #[inline]
2974    pub fn all_token(&self) -> Option<SyntaxToken> {
2975        support::token(&self.syntax, SyntaxKind::ALL_KW)
2976    }
2977    #[inline]
2978    pub fn except_token(&self) -> Option<SyntaxToken> {
2979        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
2980    }
2981    #[inline]
2982    pub fn intersect_token(&self) -> Option<SyntaxToken> {
2983        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
2984    }
2985    #[inline]
2986    pub fn union_token(&self) -> Option<SyntaxToken> {
2987        support::token(&self.syntax, SyntaxKind::UNION_KW)
2988    }
2989}
2990
2991#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2992pub struct CompressionMethod {
2993    pub(crate) syntax: SyntaxNode,
2994}
2995impl CompressionMethod {
2996    #[inline]
2997    pub fn compression_token(&self) -> Option<SyntaxToken> {
2998        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
2999    }
3000    #[inline]
3001    pub fn default_token(&self) -> Option<SyntaxToken> {
3002        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3003    }
3004    #[inline]
3005    pub fn ident_token(&self) -> Option<SyntaxToken> {
3006        support::token(&self.syntax, SyntaxKind::IDENT)
3007    }
3008}
3009
3010#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3011pub struct ConflictDoNothing {
3012    pub(crate) syntax: SyntaxNode,
3013}
3014impl ConflictDoNothing {
3015    #[inline]
3016    pub fn do_token(&self) -> Option<SyntaxToken> {
3017        support::token(&self.syntax, SyntaxKind::DO_KW)
3018    }
3019    #[inline]
3020    pub fn nothing_token(&self) -> Option<SyntaxToken> {
3021        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
3022    }
3023}
3024
3025#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3026pub struct ConflictDoSelect {
3027    pub(crate) syntax: SyntaxNode,
3028}
3029impl ConflictDoSelect {
3030    #[inline]
3031    pub fn locking_clause(&self) -> Option<LockingClause> {
3032        support::child(&self.syntax)
3033    }
3034    #[inline]
3035    pub fn where_clause(&self) -> Option<WhereClause> {
3036        support::child(&self.syntax)
3037    }
3038    #[inline]
3039    pub fn do_token(&self) -> Option<SyntaxToken> {
3040        support::token(&self.syntax, SyntaxKind::DO_KW)
3041    }
3042    #[inline]
3043    pub fn select_token(&self) -> Option<SyntaxToken> {
3044        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3045    }
3046}
3047
3048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3049pub struct ConflictDoUpdateSet {
3050    pub(crate) syntax: SyntaxNode,
3051}
3052impl ConflictDoUpdateSet {
3053    #[inline]
3054    pub fn set_clause(&self) -> Option<SetClause> {
3055        support::child(&self.syntax)
3056    }
3057    #[inline]
3058    pub fn where_clause(&self) -> Option<WhereClause> {
3059        support::child(&self.syntax)
3060    }
3061    #[inline]
3062    pub fn do_token(&self) -> Option<SyntaxToken> {
3063        support::token(&self.syntax, SyntaxKind::DO_KW)
3064    }
3065    #[inline]
3066    pub fn update_token(&self) -> Option<SyntaxToken> {
3067        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3068    }
3069}
3070
3071#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3072pub struct ConflictIndexItem {
3073    pub(crate) syntax: SyntaxNode,
3074}
3075impl ConflictIndexItem {
3076    #[inline]
3077    pub fn collate(&self) -> Option<Collate> {
3078        support::child(&self.syntax)
3079    }
3080    #[inline]
3081    pub fn expr(&self) -> Option<Expr> {
3082        support::child(&self.syntax)
3083    }
3084    #[inline]
3085    pub fn ident_token(&self) -> Option<SyntaxToken> {
3086        support::token(&self.syntax, SyntaxKind::IDENT)
3087    }
3088}
3089
3090#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3091pub struct ConflictIndexItemList {
3092    pub(crate) syntax: SyntaxNode,
3093}
3094impl ConflictIndexItemList {
3095    #[inline]
3096    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
3097        support::children(&self.syntax)
3098    }
3099    #[inline]
3100    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3101        support::token(&self.syntax, SyntaxKind::L_PAREN)
3102    }
3103    #[inline]
3104    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3105        support::token(&self.syntax, SyntaxKind::R_PAREN)
3106    }
3107}
3108
3109#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3110pub struct ConflictOnConstraint {
3111    pub(crate) syntax: SyntaxNode,
3112}
3113impl ConflictOnConstraint {
3114    #[inline]
3115    pub fn name_ref(&self) -> Option<NameRef> {
3116        support::child(&self.syntax)
3117    }
3118    #[inline]
3119    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3120        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3121    }
3122    #[inline]
3123    pub fn on_token(&self) -> Option<SyntaxToken> {
3124        support::token(&self.syntax, SyntaxKind::ON_KW)
3125    }
3126}
3127
3128#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3129pub struct ConflictOnIndex {
3130    pub(crate) syntax: SyntaxNode,
3131}
3132impl ConflictOnIndex {
3133    #[inline]
3134    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
3135        support::child(&self.syntax)
3136    }
3137    #[inline]
3138    pub fn where_clause(&self) -> Option<WhereClause> {
3139        support::child(&self.syntax)
3140    }
3141}
3142
3143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3144pub struct ConstraintExclusion {
3145    pub(crate) syntax: SyntaxNode,
3146}
3147impl ConstraintExclusion {
3148    #[inline]
3149    pub fn expr(&self) -> Option<Expr> {
3150        support::child(&self.syntax)
3151    }
3152    #[inline]
3153    pub fn op(&self) -> Option<Op> {
3154        support::child(&self.syntax)
3155    }
3156    #[inline]
3157    pub fn with_token(&self) -> Option<SyntaxToken> {
3158        support::token(&self.syntax, SyntaxKind::WITH_KW)
3159    }
3160}
3161
3162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3163pub struct ConstraintExclusionList {
3164    pub(crate) syntax: SyntaxNode,
3165}
3166impl ConstraintExclusionList {
3167    #[inline]
3168    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
3169        support::children(&self.syntax)
3170    }
3171    #[inline]
3172    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3173        support::token(&self.syntax, SyntaxKind::L_PAREN)
3174    }
3175    #[inline]
3176    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3177        support::token(&self.syntax, SyntaxKind::R_PAREN)
3178    }
3179}
3180
3181#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3182pub struct ConstraintIncludeClause {
3183    pub(crate) syntax: SyntaxNode,
3184}
3185impl ConstraintIncludeClause {
3186    #[inline]
3187    pub fn include_token(&self) -> Option<SyntaxToken> {
3188        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
3189    }
3190}
3191
3192#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3193pub struct ConstraintIndexMethod {
3194    pub(crate) syntax: SyntaxNode,
3195}
3196impl ConstraintIndexMethod {
3197    #[inline]
3198    pub fn using_token(&self) -> Option<SyntaxToken> {
3199        support::token(&self.syntax, SyntaxKind::USING_KW)
3200    }
3201}
3202
3203#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3204pub struct ConstraintIndexTablespace {
3205    pub(crate) syntax: SyntaxNode,
3206}
3207impl ConstraintIndexTablespace {
3208    #[inline]
3209    pub fn name_ref(&self) -> Option<NameRef> {
3210        support::child(&self.syntax)
3211    }
3212    #[inline]
3213    pub fn index_token(&self) -> Option<SyntaxToken> {
3214        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3215    }
3216    #[inline]
3217    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3218        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3219    }
3220    #[inline]
3221    pub fn using_token(&self) -> Option<SyntaxToken> {
3222        support::token(&self.syntax, SyntaxKind::USING_KW)
3223    }
3224}
3225
3226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3227pub struct ConstraintName {
3228    pub(crate) syntax: SyntaxNode,
3229}
3230impl ConstraintName {
3231    #[inline]
3232    pub fn name(&self) -> Option<Name> {
3233        support::child(&self.syntax)
3234    }
3235    #[inline]
3236    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3237        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3238    }
3239}
3240
3241#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3242pub struct Copy {
3243    pub(crate) syntax: SyntaxNode,
3244}
3245impl Copy {
3246    #[inline]
3247    pub fn column_list(&self) -> Option<ColumnList> {
3248        support::child(&self.syntax)
3249    }
3250    #[inline]
3251    pub fn literal(&self) -> Option<Literal> {
3252        support::child(&self.syntax)
3253    }
3254    #[inline]
3255    pub fn path(&self) -> Option<Path> {
3256        support::child(&self.syntax)
3257    }
3258    #[inline]
3259    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
3260        support::child(&self.syntax)
3261    }
3262    #[inline]
3263    pub fn where_clause(&self) -> Option<WhereClause> {
3264        support::child(&self.syntax)
3265    }
3266    #[inline]
3267    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3268        support::token(&self.syntax, SyntaxKind::L_PAREN)
3269    }
3270    #[inline]
3271    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3272        support::token(&self.syntax, SyntaxKind::R_PAREN)
3273    }
3274    #[inline]
3275    pub fn binary_token(&self) -> Option<SyntaxToken> {
3276        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3277    }
3278    #[inline]
3279    pub fn copy_token(&self) -> Option<SyntaxToken> {
3280        support::token(&self.syntax, SyntaxKind::COPY_KW)
3281    }
3282    #[inline]
3283    pub fn from_token(&self) -> Option<SyntaxToken> {
3284        support::token(&self.syntax, SyntaxKind::FROM_KW)
3285    }
3286    #[inline]
3287    pub fn program_token(&self) -> Option<SyntaxToken> {
3288        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3289    }
3290    #[inline]
3291    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3292        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3293    }
3294    #[inline]
3295    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3296        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3297    }
3298    #[inline]
3299    pub fn to_token(&self) -> Option<SyntaxToken> {
3300        support::token(&self.syntax, SyntaxKind::TO_KW)
3301    }
3302    #[inline]
3303    pub fn with_token(&self) -> Option<SyntaxToken> {
3304        support::token(&self.syntax, SyntaxKind::WITH_KW)
3305    }
3306}
3307
3308#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3309pub struct CopyOption {
3310    pub(crate) syntax: SyntaxNode,
3311}
3312impl CopyOption {
3313    #[inline]
3314    pub fn name(&self) -> Option<Name> {
3315        support::child(&self.syntax)
3316    }
3317}
3318
3319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3320pub struct CopyOptionList {
3321    pub(crate) syntax: SyntaxNode,
3322}
3323impl CopyOptionList {
3324    #[inline]
3325    pub fn copy_options(&self) -> AstChildren<CopyOption> {
3326        support::children(&self.syntax)
3327    }
3328    #[inline]
3329    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3330        support::token(&self.syntax, SyntaxKind::L_PAREN)
3331    }
3332    #[inline]
3333    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3334        support::token(&self.syntax, SyntaxKind::R_PAREN)
3335    }
3336}
3337
3338#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3339pub struct CostFuncOption {
3340    pub(crate) syntax: SyntaxNode,
3341}
3342impl CostFuncOption {
3343    #[inline]
3344    pub fn cost_token(&self) -> Option<SyntaxToken> {
3345        support::token(&self.syntax, SyntaxKind::COST_KW)
3346    }
3347}
3348
3349#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3350pub struct CreateAccessMethod {
3351    pub(crate) syntax: SyntaxNode,
3352}
3353impl CreateAccessMethod {
3354    #[inline]
3355    pub fn handler_clause(&self) -> Option<HandlerClause> {
3356        support::child(&self.syntax)
3357    }
3358    #[inline]
3359    pub fn name(&self) -> Option<Path> {
3360        support::child(&self.syntax)
3361    }
3362    #[inline]
3363    pub fn access_token(&self) -> Option<SyntaxToken> {
3364        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3365    }
3366    #[inline]
3367    pub fn create_token(&self) -> Option<SyntaxToken> {
3368        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3369    }
3370    #[inline]
3371    pub fn index_token(&self) -> Option<SyntaxToken> {
3372        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3373    }
3374    #[inline]
3375    pub fn method_token(&self) -> Option<SyntaxToken> {
3376        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3377    }
3378    #[inline]
3379    pub fn table_token(&self) -> Option<SyntaxToken> {
3380        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3381    }
3382    #[inline]
3383    pub fn type_token(&self) -> Option<SyntaxToken> {
3384        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3385    }
3386}
3387
3388#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3389pub struct CreateAggregate {
3390    pub(crate) syntax: SyntaxNode,
3391}
3392impl CreateAggregate {
3393    #[inline]
3394    pub fn or_replace(&self) -> Option<OrReplace> {
3395        support::child(&self.syntax)
3396    }
3397    #[inline]
3398    pub fn param_list(&self) -> Option<ParamList> {
3399        support::child(&self.syntax)
3400    }
3401    #[inline]
3402    pub fn path(&self) -> Option<Path> {
3403        support::child(&self.syntax)
3404    }
3405    #[inline]
3406    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3407        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3408    }
3409    #[inline]
3410    pub fn create_token(&self) -> Option<SyntaxToken> {
3411        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3412    }
3413}
3414
3415#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3416pub struct CreateCast {
3417    pub(crate) syntax: SyntaxNode,
3418}
3419impl CreateCast {
3420    #[inline]
3421    pub fn cast_sig(&self) -> Option<CastSig> {
3422        support::child(&self.syntax)
3423    }
3424    #[inline]
3425    pub fn function_sig(&self) -> Option<FunctionSig> {
3426        support::child(&self.syntax)
3427    }
3428    #[inline]
3429    pub fn as_token(&self) -> Option<SyntaxToken> {
3430        support::token(&self.syntax, SyntaxKind::AS_KW)
3431    }
3432    #[inline]
3433    pub fn assignment_token(&self) -> Option<SyntaxToken> {
3434        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
3435    }
3436    #[inline]
3437    pub fn cast_token(&self) -> Option<SyntaxToken> {
3438        support::token(&self.syntax, SyntaxKind::CAST_KW)
3439    }
3440    #[inline]
3441    pub fn create_token(&self) -> Option<SyntaxToken> {
3442        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3443    }
3444    #[inline]
3445    pub fn function_token(&self) -> Option<SyntaxToken> {
3446        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3447    }
3448    #[inline]
3449    pub fn implicit_token(&self) -> Option<SyntaxToken> {
3450        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
3451    }
3452    #[inline]
3453    pub fn inout_token(&self) -> Option<SyntaxToken> {
3454        support::token(&self.syntax, SyntaxKind::INOUT_KW)
3455    }
3456    #[inline]
3457    pub fn with_token(&self) -> Option<SyntaxToken> {
3458        support::token(&self.syntax, SyntaxKind::WITH_KW)
3459    }
3460    #[inline]
3461    pub fn without_token(&self) -> Option<SyntaxToken> {
3462        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
3463    }
3464}
3465
3466#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3467pub struct CreateCollation {
3468    pub(crate) syntax: SyntaxNode,
3469}
3470impl CreateCollation {
3471    #[inline]
3472    pub fn path(&self) -> Option<Path> {
3473        support::child(&self.syntax)
3474    }
3475    #[inline]
3476    pub fn collation_token(&self) -> Option<SyntaxToken> {
3477        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3478    }
3479    #[inline]
3480    pub fn create_token(&self) -> Option<SyntaxToken> {
3481        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3482    }
3483}
3484
3485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3486pub struct CreateConversion {
3487    pub(crate) syntax: SyntaxNode,
3488}
3489impl CreateConversion {
3490    #[inline]
3491    pub fn literal(&self) -> Option<Literal> {
3492        support::child(&self.syntax)
3493    }
3494    #[inline]
3495    pub fn path(&self) -> Option<Path> {
3496        support::child(&self.syntax)
3497    }
3498    #[inline]
3499    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3500        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3501    }
3502    #[inline]
3503    pub fn create_token(&self) -> Option<SyntaxToken> {
3504        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3505    }
3506    #[inline]
3507    pub fn default_token(&self) -> Option<SyntaxToken> {
3508        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3509    }
3510    #[inline]
3511    pub fn for_token(&self) -> Option<SyntaxToken> {
3512        support::token(&self.syntax, SyntaxKind::FOR_KW)
3513    }
3514    #[inline]
3515    pub fn from_token(&self) -> Option<SyntaxToken> {
3516        support::token(&self.syntax, SyntaxKind::FROM_KW)
3517    }
3518    #[inline]
3519    pub fn to_token(&self) -> Option<SyntaxToken> {
3520        support::token(&self.syntax, SyntaxKind::TO_KW)
3521    }
3522}
3523
3524#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3525pub struct CreateDatabase {
3526    pub(crate) syntax: SyntaxNode,
3527}
3528impl CreateDatabase {
3529    #[inline]
3530    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
3531        support::child(&self.syntax)
3532    }
3533    #[inline]
3534    pub fn name(&self) -> Option<Name> {
3535        support::child(&self.syntax)
3536    }
3537    #[inline]
3538    pub fn create_token(&self) -> Option<SyntaxToken> {
3539        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3540    }
3541    #[inline]
3542    pub fn database_token(&self) -> Option<SyntaxToken> {
3543        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3544    }
3545}
3546
3547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3548pub struct CreateDatabaseOption {
3549    pub(crate) syntax: SyntaxNode,
3550}
3551impl CreateDatabaseOption {
3552    #[inline]
3553    pub fn literal(&self) -> Option<Literal> {
3554        support::child(&self.syntax)
3555    }
3556    #[inline]
3557    pub fn eq_token(&self) -> Option<SyntaxToken> {
3558        support::token(&self.syntax, SyntaxKind::EQ)
3559    }
3560    #[inline]
3561    pub fn connection_token(&self) -> Option<SyntaxToken> {
3562        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
3563    }
3564    #[inline]
3565    pub fn default_token(&self) -> Option<SyntaxToken> {
3566        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3567    }
3568    #[inline]
3569    pub fn encoding_token(&self) -> Option<SyntaxToken> {
3570        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
3571    }
3572    #[inline]
3573    pub fn ident_token(&self) -> Option<SyntaxToken> {
3574        support::token(&self.syntax, SyntaxKind::IDENT)
3575    }
3576    #[inline]
3577    pub fn limit_token(&self) -> Option<SyntaxToken> {
3578        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
3579    }
3580    #[inline]
3581    pub fn owner_token(&self) -> Option<SyntaxToken> {
3582        support::token(&self.syntax, SyntaxKind::OWNER_KW)
3583    }
3584    #[inline]
3585    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3586        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3587    }
3588    #[inline]
3589    pub fn template_token(&self) -> Option<SyntaxToken> {
3590        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3591    }
3592}
3593
3594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3595pub struct CreateDatabaseOptionList {
3596    pub(crate) syntax: SyntaxNode,
3597}
3598impl CreateDatabaseOptionList {
3599    #[inline]
3600    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
3601        support::children(&self.syntax)
3602    }
3603    #[inline]
3604    pub fn with_token(&self) -> Option<SyntaxToken> {
3605        support::token(&self.syntax, SyntaxKind::WITH_KW)
3606    }
3607}
3608
3609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3610pub struct CreateDomain {
3611    pub(crate) syntax: SyntaxNode,
3612}
3613impl CreateDomain {
3614    #[inline]
3615    pub fn collate(&self) -> Option<Collate> {
3616        support::child(&self.syntax)
3617    }
3618    #[inline]
3619    pub fn constraints(&self) -> AstChildren<Constraint> {
3620        support::children(&self.syntax)
3621    }
3622    #[inline]
3623    pub fn path(&self) -> Option<Path> {
3624        support::child(&self.syntax)
3625    }
3626    #[inline]
3627    pub fn ty(&self) -> Option<Type> {
3628        support::child(&self.syntax)
3629    }
3630    #[inline]
3631    pub fn as_token(&self) -> Option<SyntaxToken> {
3632        support::token(&self.syntax, SyntaxKind::AS_KW)
3633    }
3634    #[inline]
3635    pub fn create_token(&self) -> Option<SyntaxToken> {
3636        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3637    }
3638    #[inline]
3639    pub fn domain_token(&self) -> Option<SyntaxToken> {
3640        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3641    }
3642}
3643
3644#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3645pub struct CreateEventTrigger {
3646    pub(crate) syntax: SyntaxNode,
3647}
3648impl CreateEventTrigger {
3649    #[inline]
3650    pub fn call_expr(&self) -> Option<CallExpr> {
3651        support::child(&self.syntax)
3652    }
3653    #[inline]
3654    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
3655        support::child(&self.syntax)
3656    }
3657    #[inline]
3658    pub fn name(&self) -> Option<Name> {
3659        support::child(&self.syntax)
3660    }
3661    #[inline]
3662    pub fn name_ref(&self) -> Option<NameRef> {
3663        support::child(&self.syntax)
3664    }
3665    #[inline]
3666    pub fn create_token(&self) -> Option<SyntaxToken> {
3667        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3668    }
3669    #[inline]
3670    pub fn event_token(&self) -> Option<SyntaxToken> {
3671        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3672    }
3673    #[inline]
3674    pub fn execute_token(&self) -> Option<SyntaxToken> {
3675        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
3676    }
3677    #[inline]
3678    pub fn function_token(&self) -> Option<SyntaxToken> {
3679        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3680    }
3681    #[inline]
3682    pub fn on_token(&self) -> Option<SyntaxToken> {
3683        support::token(&self.syntax, SyntaxKind::ON_KW)
3684    }
3685    #[inline]
3686    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3687        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3688    }
3689    #[inline]
3690    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3691        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3692    }
3693}
3694
3695#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3696pub struct CreateExtension {
3697    pub(crate) syntax: SyntaxNode,
3698}
3699impl CreateExtension {
3700    #[inline]
3701    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3702        support::child(&self.syntax)
3703    }
3704    #[inline]
3705    pub fn name(&self) -> Option<Name> {
3706        support::child(&self.syntax)
3707    }
3708    #[inline]
3709    pub fn create_token(&self) -> Option<SyntaxToken> {
3710        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3711    }
3712    #[inline]
3713    pub fn extension_token(&self) -> Option<SyntaxToken> {
3714        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3715    }
3716}
3717
3718#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3719pub struct CreateForeignDataWrapper {
3720    pub(crate) syntax: SyntaxNode,
3721}
3722impl CreateForeignDataWrapper {
3723    #[inline]
3724    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3725        support::child(&self.syntax)
3726    }
3727    #[inline]
3728    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
3729        support::child(&self.syntax)
3730    }
3731    #[inline]
3732    pub fn name(&self) -> Option<Name> {
3733        support::child(&self.syntax)
3734    }
3735    #[inline]
3736    pub fn create_token(&self) -> Option<SyntaxToken> {
3737        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3738    }
3739    #[inline]
3740    pub fn data_token(&self) -> Option<SyntaxToken> {
3741        support::token(&self.syntax, SyntaxKind::DATA_KW)
3742    }
3743    #[inline]
3744    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3745        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3746    }
3747    #[inline]
3748    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3749        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3750    }
3751}
3752
3753#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3754pub struct CreateForeignTable {
3755    pub(crate) syntax: SyntaxNode,
3756}
3757impl CreateForeignTable {
3758    #[inline]
3759    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3760        support::child(&self.syntax)
3761    }
3762    #[inline]
3763    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3764        support::child(&self.syntax)
3765    }
3766    #[inline]
3767    pub fn inherits(&self) -> Option<Inherits> {
3768        support::child(&self.syntax)
3769    }
3770    #[inline]
3771    pub fn partition_of(&self) -> Option<PartitionOf> {
3772        support::child(&self.syntax)
3773    }
3774    #[inline]
3775    pub fn partition_type(&self) -> Option<PartitionType> {
3776        support::child(&self.syntax)
3777    }
3778    #[inline]
3779    pub fn path(&self) -> Option<Path> {
3780        support::child(&self.syntax)
3781    }
3782    #[inline]
3783    pub fn server_name(&self) -> Option<ServerName> {
3784        support::child(&self.syntax)
3785    }
3786    #[inline]
3787    pub fn table_arg_list(&self) -> Option<TableArgList> {
3788        support::child(&self.syntax)
3789    }
3790    #[inline]
3791    pub fn create_token(&self) -> Option<SyntaxToken> {
3792        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3793    }
3794    #[inline]
3795    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3796        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3797    }
3798    #[inline]
3799    pub fn table_token(&self) -> Option<SyntaxToken> {
3800        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3801    }
3802}
3803
3804#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3805pub struct CreateFunction {
3806    pub(crate) syntax: SyntaxNode,
3807}
3808impl CreateFunction {
3809    #[inline]
3810    pub fn option_list(&self) -> Option<FuncOptionList> {
3811        support::child(&self.syntax)
3812    }
3813    #[inline]
3814    pub fn or_replace(&self) -> Option<OrReplace> {
3815        support::child(&self.syntax)
3816    }
3817    #[inline]
3818    pub fn param_list(&self) -> Option<ParamList> {
3819        support::child(&self.syntax)
3820    }
3821    #[inline]
3822    pub fn path(&self) -> Option<Path> {
3823        support::child(&self.syntax)
3824    }
3825    #[inline]
3826    pub fn ret_type(&self) -> Option<RetType> {
3827        support::child(&self.syntax)
3828    }
3829    #[inline]
3830    pub fn create_token(&self) -> Option<SyntaxToken> {
3831        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3832    }
3833    #[inline]
3834    pub fn function_token(&self) -> Option<SyntaxToken> {
3835        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3836    }
3837}
3838
3839#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3840pub struct CreateGroup {
3841    pub(crate) syntax: SyntaxNode,
3842}
3843impl CreateGroup {
3844    #[inline]
3845    pub fn name(&self) -> Option<Name> {
3846        support::child(&self.syntax)
3847    }
3848    #[inline]
3849    pub fn role_option_list(&self) -> Option<RoleOptionList> {
3850        support::child(&self.syntax)
3851    }
3852    #[inline]
3853    pub fn create_token(&self) -> Option<SyntaxToken> {
3854        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3855    }
3856    #[inline]
3857    pub fn group_token(&self) -> Option<SyntaxToken> {
3858        support::token(&self.syntax, SyntaxKind::GROUP_KW)
3859    }
3860}
3861
3862#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3863pub struct CreateIndex {
3864    pub(crate) syntax: SyntaxNode,
3865}
3866impl CreateIndex {
3867    #[inline]
3868    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
3869        support::child(&self.syntax)
3870    }
3871    #[inline]
3872    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3873        support::child(&self.syntax)
3874    }
3875    #[inline]
3876    pub fn name(&self) -> Option<Name> {
3877        support::child(&self.syntax)
3878    }
3879    #[inline]
3880    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
3881        support::child(&self.syntax)
3882    }
3883    #[inline]
3884    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
3885        support::child(&self.syntax)
3886    }
3887    #[inline]
3888    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
3889        support::child(&self.syntax)
3890    }
3891    #[inline]
3892    pub fn relation_name(&self) -> Option<RelationName> {
3893        support::child(&self.syntax)
3894    }
3895    #[inline]
3896    pub fn tablespace(&self) -> Option<Tablespace> {
3897        support::child(&self.syntax)
3898    }
3899    #[inline]
3900    pub fn using_method(&self) -> Option<UsingMethod> {
3901        support::child(&self.syntax)
3902    }
3903    #[inline]
3904    pub fn where_clause(&self) -> Option<WhereClause> {
3905        support::child(&self.syntax)
3906    }
3907    #[inline]
3908    pub fn with_params(&self) -> Option<WithParams> {
3909        support::child(&self.syntax)
3910    }
3911    #[inline]
3912    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
3913        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
3914    }
3915    #[inline]
3916    pub fn create_token(&self) -> Option<SyntaxToken> {
3917        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3918    }
3919    #[inline]
3920    pub fn index_token(&self) -> Option<SyntaxToken> {
3921        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3922    }
3923    #[inline]
3924    pub fn on_token(&self) -> Option<SyntaxToken> {
3925        support::token(&self.syntax, SyntaxKind::ON_KW)
3926    }
3927    #[inline]
3928    pub fn unique_token(&self) -> Option<SyntaxToken> {
3929        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
3930    }
3931}
3932
3933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3934pub struct CreateLanguage {
3935    pub(crate) syntax: SyntaxNode,
3936}
3937impl CreateLanguage {
3938    #[inline]
3939    pub fn name(&self) -> Option<Name> {
3940        support::child(&self.syntax)
3941    }
3942    #[inline]
3943    pub fn or_replace(&self) -> Option<OrReplace> {
3944        support::child(&self.syntax)
3945    }
3946    #[inline]
3947    pub fn path(&self) -> Option<Path> {
3948        support::child(&self.syntax)
3949    }
3950    #[inline]
3951    pub fn create_token(&self) -> Option<SyntaxToken> {
3952        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3953    }
3954    #[inline]
3955    pub fn handler_token(&self) -> Option<SyntaxToken> {
3956        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
3957    }
3958    #[inline]
3959    pub fn inline_token(&self) -> Option<SyntaxToken> {
3960        support::token(&self.syntax, SyntaxKind::INLINE_KW)
3961    }
3962    #[inline]
3963    pub fn language_token(&self) -> Option<SyntaxToken> {
3964        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3965    }
3966    #[inline]
3967    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3968        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3969    }
3970    #[inline]
3971    pub fn trusted_token(&self) -> Option<SyntaxToken> {
3972        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
3973    }
3974    #[inline]
3975    pub fn validator_token(&self) -> Option<SyntaxToken> {
3976        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
3977    }
3978}
3979
3980#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3981pub struct CreateMaterializedView {
3982    pub(crate) syntax: SyntaxNode,
3983}
3984impl CreateMaterializedView {
3985    #[inline]
3986    pub fn column_list(&self) -> Option<ColumnList> {
3987        support::child(&self.syntax)
3988    }
3989    #[inline]
3990    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3991        support::child(&self.syntax)
3992    }
3993    #[inline]
3994    pub fn path(&self) -> Option<Path> {
3995        support::child(&self.syntax)
3996    }
3997    #[inline]
3998    pub fn query(&self) -> Option<SelectVariant> {
3999        support::child(&self.syntax)
4000    }
4001    #[inline]
4002    pub fn tablespace(&self) -> Option<Tablespace> {
4003        support::child(&self.syntax)
4004    }
4005    #[inline]
4006    pub fn using_method(&self) -> Option<UsingMethod> {
4007        support::child(&self.syntax)
4008    }
4009    #[inline]
4010    pub fn with_data(&self) -> Option<WithData> {
4011        support::child(&self.syntax)
4012    }
4013    #[inline]
4014    pub fn with_no_data(&self) -> Option<WithNoData> {
4015        support::child(&self.syntax)
4016    }
4017    #[inline]
4018    pub fn with_params(&self) -> Option<WithParams> {
4019        support::child(&self.syntax)
4020    }
4021    #[inline]
4022    pub fn as_token(&self) -> Option<SyntaxToken> {
4023        support::token(&self.syntax, SyntaxKind::AS_KW)
4024    }
4025    #[inline]
4026    pub fn create_token(&self) -> Option<SyntaxToken> {
4027        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4028    }
4029    #[inline]
4030    pub fn materialized_token(&self) -> Option<SyntaxToken> {
4031        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
4032    }
4033    #[inline]
4034    pub fn view_token(&self) -> Option<SyntaxToken> {
4035        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4036    }
4037}
4038
4039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4040pub struct CreateOperator {
4041    pub(crate) syntax: SyntaxNode,
4042}
4043impl CreateOperator {
4044    #[inline]
4045    pub fn attribute_list(&self) -> Option<AttributeList> {
4046        support::child(&self.syntax)
4047    }
4048    #[inline]
4049    pub fn op(&self) -> Option<Op> {
4050        support::child(&self.syntax)
4051    }
4052    #[inline]
4053    pub fn path(&self) -> Option<Path> {
4054        support::child(&self.syntax)
4055    }
4056    #[inline]
4057    pub fn create_token(&self) -> Option<SyntaxToken> {
4058        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4059    }
4060    #[inline]
4061    pub fn operator_token(&self) -> Option<SyntaxToken> {
4062        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4063    }
4064}
4065
4066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4067pub struct CreateOperatorClass {
4068    pub(crate) syntax: SyntaxNode,
4069}
4070impl CreateOperatorClass {
4071    #[inline]
4072    pub fn name_ref(&self) -> Option<NameRef> {
4073        support::child(&self.syntax)
4074    }
4075    #[inline]
4076    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
4077        support::child(&self.syntax)
4078    }
4079    #[inline]
4080    pub fn path(&self) -> Option<Path> {
4081        support::child(&self.syntax)
4082    }
4083    #[inline]
4084    pub fn ty(&self) -> Option<Type> {
4085        support::child(&self.syntax)
4086    }
4087    #[inline]
4088    pub fn as_token(&self) -> Option<SyntaxToken> {
4089        support::token(&self.syntax, SyntaxKind::AS_KW)
4090    }
4091    #[inline]
4092    pub fn class_token(&self) -> Option<SyntaxToken> {
4093        support::token(&self.syntax, SyntaxKind::CLASS_KW)
4094    }
4095    #[inline]
4096    pub fn create_token(&self) -> Option<SyntaxToken> {
4097        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4098    }
4099    #[inline]
4100    pub fn default_token(&self) -> Option<SyntaxToken> {
4101        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4102    }
4103    #[inline]
4104    pub fn family_token(&self) -> Option<SyntaxToken> {
4105        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4106    }
4107    #[inline]
4108    pub fn for_token(&self) -> Option<SyntaxToken> {
4109        support::token(&self.syntax, SyntaxKind::FOR_KW)
4110    }
4111    #[inline]
4112    pub fn operator_token(&self) -> Option<SyntaxToken> {
4113        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4114    }
4115    #[inline]
4116    pub fn type_token(&self) -> Option<SyntaxToken> {
4117        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4118    }
4119    #[inline]
4120    pub fn using_token(&self) -> Option<SyntaxToken> {
4121        support::token(&self.syntax, SyntaxKind::USING_KW)
4122    }
4123}
4124
4125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4126pub struct CreateOperatorFamily {
4127    pub(crate) syntax: SyntaxNode,
4128}
4129impl CreateOperatorFamily {
4130    #[inline]
4131    pub fn name_ref(&self) -> Option<NameRef> {
4132        support::child(&self.syntax)
4133    }
4134    #[inline]
4135    pub fn path(&self) -> Option<Path> {
4136        support::child(&self.syntax)
4137    }
4138    #[inline]
4139    pub fn create_token(&self) -> Option<SyntaxToken> {
4140        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4141    }
4142    #[inline]
4143    pub fn family_token(&self) -> Option<SyntaxToken> {
4144        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4145    }
4146    #[inline]
4147    pub fn operator_token(&self) -> Option<SyntaxToken> {
4148        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4149    }
4150    #[inline]
4151    pub fn using_token(&self) -> Option<SyntaxToken> {
4152        support::token(&self.syntax, SyntaxKind::USING_KW)
4153    }
4154}
4155
4156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4157pub struct CreatePolicy {
4158    pub(crate) syntax: SyntaxNode,
4159}
4160impl CreatePolicy {
4161    #[inline]
4162    pub fn as_policy_type(&self) -> Option<AsPolicyType> {
4163        support::child(&self.syntax)
4164    }
4165    #[inline]
4166    pub fn name(&self) -> Option<Name> {
4167        support::child(&self.syntax)
4168    }
4169    #[inline]
4170    pub fn on_table(&self) -> Option<OnTable> {
4171        support::child(&self.syntax)
4172    }
4173    #[inline]
4174    pub fn role_ref_list(&self) -> Option<RoleRefList> {
4175        support::child(&self.syntax)
4176    }
4177    #[inline]
4178    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
4179        support::child(&self.syntax)
4180    }
4181    #[inline]
4182    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
4183        support::child(&self.syntax)
4184    }
4185    #[inline]
4186    pub fn all_token(&self) -> Option<SyntaxToken> {
4187        support::token(&self.syntax, SyntaxKind::ALL_KW)
4188    }
4189    #[inline]
4190    pub fn create_token(&self) -> Option<SyntaxToken> {
4191        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4192    }
4193    #[inline]
4194    pub fn delete_token(&self) -> Option<SyntaxToken> {
4195        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4196    }
4197    #[inline]
4198    pub fn for_token(&self) -> Option<SyntaxToken> {
4199        support::token(&self.syntax, SyntaxKind::FOR_KW)
4200    }
4201    #[inline]
4202    pub fn insert_token(&self) -> Option<SyntaxToken> {
4203        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4204    }
4205    #[inline]
4206    pub fn policy_token(&self) -> Option<SyntaxToken> {
4207        support::token(&self.syntax, SyntaxKind::POLICY_KW)
4208    }
4209    #[inline]
4210    pub fn select_token(&self) -> Option<SyntaxToken> {
4211        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4212    }
4213    #[inline]
4214    pub fn to_token(&self) -> Option<SyntaxToken> {
4215        support::token(&self.syntax, SyntaxKind::TO_KW)
4216    }
4217    #[inline]
4218    pub fn update_token(&self) -> Option<SyntaxToken> {
4219        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4220    }
4221}
4222
4223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4224pub struct CreateProcedure {
4225    pub(crate) syntax: SyntaxNode,
4226}
4227impl CreateProcedure {
4228    #[inline]
4229    pub fn option_list(&self) -> Option<FuncOptionList> {
4230        support::child(&self.syntax)
4231    }
4232    #[inline]
4233    pub fn or_replace(&self) -> Option<OrReplace> {
4234        support::child(&self.syntax)
4235    }
4236    #[inline]
4237    pub fn param_list(&self) -> Option<ParamList> {
4238        support::child(&self.syntax)
4239    }
4240    #[inline]
4241    pub fn path(&self) -> Option<Path> {
4242        support::child(&self.syntax)
4243    }
4244    #[inline]
4245    pub fn create_token(&self) -> Option<SyntaxToken> {
4246        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4247    }
4248    #[inline]
4249    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4250        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4251    }
4252}
4253
4254#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4255pub struct CreatePublication {
4256    pub(crate) syntax: SyntaxNode,
4257}
4258impl CreatePublication {
4259    #[inline]
4260    pub fn name(&self) -> Option<Name> {
4261        support::child(&self.syntax)
4262    }
4263    #[inline]
4264    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
4265        support::children(&self.syntax)
4266    }
4267    #[inline]
4268    pub fn with_params(&self) -> Option<WithParams> {
4269        support::child(&self.syntax)
4270    }
4271    #[inline]
4272    pub fn all_token(&self) -> Option<SyntaxToken> {
4273        support::token(&self.syntax, SyntaxKind::ALL_KW)
4274    }
4275    #[inline]
4276    pub fn create_token(&self) -> Option<SyntaxToken> {
4277        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4278    }
4279    #[inline]
4280    pub fn for_token(&self) -> Option<SyntaxToken> {
4281        support::token(&self.syntax, SyntaxKind::FOR_KW)
4282    }
4283    #[inline]
4284    pub fn publication_token(&self) -> Option<SyntaxToken> {
4285        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4286    }
4287    #[inline]
4288    pub fn tables_token(&self) -> Option<SyntaxToken> {
4289        support::token(&self.syntax, SyntaxKind::TABLES_KW)
4290    }
4291}
4292
4293#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4294pub struct CreateRole {
4295    pub(crate) syntax: SyntaxNode,
4296}
4297impl CreateRole {
4298    #[inline]
4299    pub fn name(&self) -> Option<Name> {
4300        support::child(&self.syntax)
4301    }
4302    #[inline]
4303    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4304        support::child(&self.syntax)
4305    }
4306    #[inline]
4307    pub fn create_token(&self) -> Option<SyntaxToken> {
4308        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4309    }
4310    #[inline]
4311    pub fn role_token(&self) -> Option<SyntaxToken> {
4312        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4313    }
4314}
4315
4316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4317pub struct CreateRule {
4318    pub(crate) syntax: SyntaxNode,
4319}
4320impl CreateRule {
4321    #[inline]
4322    pub fn name(&self) -> Option<Name> {
4323        support::child(&self.syntax)
4324    }
4325    #[inline]
4326    pub fn or_replace(&self) -> Option<OrReplace> {
4327        support::child(&self.syntax)
4328    }
4329    #[inline]
4330    pub fn path(&self) -> Option<Path> {
4331        support::child(&self.syntax)
4332    }
4333    #[inline]
4334    pub fn stmt(&self) -> Option<Stmt> {
4335        support::child(&self.syntax)
4336    }
4337    #[inline]
4338    pub fn stmts(&self) -> AstChildren<Stmt> {
4339        support::children(&self.syntax)
4340    }
4341    #[inline]
4342    pub fn where_clause(&self) -> Option<WhereClause> {
4343        support::child(&self.syntax)
4344    }
4345    #[inline]
4346    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4347        support::token(&self.syntax, SyntaxKind::L_PAREN)
4348    }
4349    #[inline]
4350    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4351        support::token(&self.syntax, SyntaxKind::R_PAREN)
4352    }
4353    #[inline]
4354    pub fn also_token(&self) -> Option<SyntaxToken> {
4355        support::token(&self.syntax, SyntaxKind::ALSO_KW)
4356    }
4357    #[inline]
4358    pub fn as_token(&self) -> Option<SyntaxToken> {
4359        support::token(&self.syntax, SyntaxKind::AS_KW)
4360    }
4361    #[inline]
4362    pub fn create_token(&self) -> Option<SyntaxToken> {
4363        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4364    }
4365    #[inline]
4366    pub fn delete_token(&self) -> Option<SyntaxToken> {
4367        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4368    }
4369    #[inline]
4370    pub fn do_token(&self) -> Option<SyntaxToken> {
4371        support::token(&self.syntax, SyntaxKind::DO_KW)
4372    }
4373    #[inline]
4374    pub fn ident_token(&self) -> Option<SyntaxToken> {
4375        support::token(&self.syntax, SyntaxKind::IDENT)
4376    }
4377    #[inline]
4378    pub fn insert_token(&self) -> Option<SyntaxToken> {
4379        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4380    }
4381    #[inline]
4382    pub fn instead_token(&self) -> Option<SyntaxToken> {
4383        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
4384    }
4385    #[inline]
4386    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4387        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4388    }
4389    #[inline]
4390    pub fn on_token(&self) -> Option<SyntaxToken> {
4391        support::token(&self.syntax, SyntaxKind::ON_KW)
4392    }
4393    #[inline]
4394    pub fn rule_token(&self) -> Option<SyntaxToken> {
4395        support::token(&self.syntax, SyntaxKind::RULE_KW)
4396    }
4397    #[inline]
4398    pub fn select_token(&self) -> Option<SyntaxToken> {
4399        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4400    }
4401    #[inline]
4402    pub fn to_token(&self) -> Option<SyntaxToken> {
4403        support::token(&self.syntax, SyntaxKind::TO_KW)
4404    }
4405    #[inline]
4406    pub fn update_token(&self) -> Option<SyntaxToken> {
4407        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4408    }
4409}
4410
4411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4412pub struct CreateSchema {
4413    pub(crate) syntax: SyntaxNode,
4414}
4415impl CreateSchema {
4416    #[inline]
4417    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4418        support::child(&self.syntax)
4419    }
4420    #[inline]
4421    pub fn name(&self) -> Option<Name> {
4422        support::child(&self.syntax)
4423    }
4424    #[inline]
4425    pub fn role(&self) -> Option<Role> {
4426        support::child(&self.syntax)
4427    }
4428    #[inline]
4429    pub fn role_ref(&self) -> Option<RoleRef> {
4430        support::child(&self.syntax)
4431    }
4432    #[inline]
4433    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
4434        support::children(&self.syntax)
4435    }
4436    #[inline]
4437    pub fn authorization_token(&self) -> Option<SyntaxToken> {
4438        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
4439    }
4440    #[inline]
4441    pub fn create_token(&self) -> Option<SyntaxToken> {
4442        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4443    }
4444    #[inline]
4445    pub fn schema_token(&self) -> Option<SyntaxToken> {
4446        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4447    }
4448}
4449
4450#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4451pub struct CreateSequence {
4452    pub(crate) syntax: SyntaxNode,
4453}
4454impl CreateSequence {
4455    #[inline]
4456    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4457        support::child(&self.syntax)
4458    }
4459    #[inline]
4460    pub fn path(&self) -> Option<Path> {
4461        support::child(&self.syntax)
4462    }
4463    #[inline]
4464    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
4465        support::children(&self.syntax)
4466    }
4467    #[inline]
4468    pub fn create_token(&self) -> Option<SyntaxToken> {
4469        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4470    }
4471    #[inline]
4472    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4473        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4474    }
4475    #[inline]
4476    pub fn temp_token(&self) -> Option<SyntaxToken> {
4477        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4478    }
4479    #[inline]
4480    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4481        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4482    }
4483    #[inline]
4484    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4485        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4486    }
4487}
4488
4489#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4490pub struct CreateServer {
4491    pub(crate) syntax: SyntaxNode,
4492}
4493impl CreateServer {
4494    #[inline]
4495    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4496        support::child(&self.syntax)
4497    }
4498    #[inline]
4499    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4500        support::child(&self.syntax)
4501    }
4502    #[inline]
4503    pub fn literal(&self) -> Option<Literal> {
4504        support::child(&self.syntax)
4505    }
4506    #[inline]
4507    pub fn name(&self) -> Option<Name> {
4508        support::child(&self.syntax)
4509    }
4510    #[inline]
4511    pub fn name_ref(&self) -> Option<NameRef> {
4512        support::child(&self.syntax)
4513    }
4514    #[inline]
4515    pub fn create_token(&self) -> Option<SyntaxToken> {
4516        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4517    }
4518    #[inline]
4519    pub fn data_token(&self) -> Option<SyntaxToken> {
4520        support::token(&self.syntax, SyntaxKind::DATA_KW)
4521    }
4522    #[inline]
4523    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4524        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4525    }
4526    #[inline]
4527    pub fn server_token(&self) -> Option<SyntaxToken> {
4528        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4529    }
4530    #[inline]
4531    pub fn type_token(&self) -> Option<SyntaxToken> {
4532        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4533    }
4534    #[inline]
4535    pub fn version_token(&self) -> Option<SyntaxToken> {
4536        support::token(&self.syntax, SyntaxKind::VERSION_KW)
4537    }
4538    #[inline]
4539    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4540        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4541    }
4542}
4543
4544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4545pub struct CreateStatistics {
4546    pub(crate) syntax: SyntaxNode,
4547}
4548impl CreateStatistics {
4549    #[inline]
4550    pub fn from_table(&self) -> Option<FromTable> {
4551        support::child(&self.syntax)
4552    }
4553    #[inline]
4554    pub fn name_refs(&self) -> AstChildren<NameRef> {
4555        support::children(&self.syntax)
4556    }
4557    #[inline]
4558    pub fn path(&self) -> Option<Path> {
4559        support::child(&self.syntax)
4560    }
4561    #[inline]
4562    pub fn create_token(&self) -> Option<SyntaxToken> {
4563        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4564    }
4565    #[inline]
4566    pub fn on_token(&self) -> Option<SyntaxToken> {
4567        support::token(&self.syntax, SyntaxKind::ON_KW)
4568    }
4569    #[inline]
4570    pub fn statistics_token(&self) -> Option<SyntaxToken> {
4571        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
4572    }
4573}
4574
4575#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4576pub struct CreateSubscription {
4577    pub(crate) syntax: SyntaxNode,
4578}
4579impl CreateSubscription {
4580    #[inline]
4581    pub fn literal(&self) -> Option<Literal> {
4582        support::child(&self.syntax)
4583    }
4584    #[inline]
4585    pub fn name(&self) -> Option<Name> {
4586        support::child(&self.syntax)
4587    }
4588    #[inline]
4589    pub fn name_refs(&self) -> AstChildren<NameRef> {
4590        support::children(&self.syntax)
4591    }
4592    #[inline]
4593    pub fn with_params(&self) -> Option<WithParams> {
4594        support::child(&self.syntax)
4595    }
4596    #[inline]
4597    pub fn connection_token(&self) -> Option<SyntaxToken> {
4598        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
4599    }
4600    #[inline]
4601    pub fn create_token(&self) -> Option<SyntaxToken> {
4602        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4603    }
4604    #[inline]
4605    pub fn publication_token(&self) -> Option<SyntaxToken> {
4606        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4607    }
4608    #[inline]
4609    pub fn subscription_token(&self) -> Option<SyntaxToken> {
4610        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
4611    }
4612}
4613
4614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4615pub struct CreateTable {
4616    pub(crate) syntax: SyntaxNode,
4617}
4618impl CreateTable {
4619    #[inline]
4620    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4621        support::child(&self.syntax)
4622    }
4623    #[inline]
4624    pub fn inherits(&self) -> Option<Inherits> {
4625        support::child(&self.syntax)
4626    }
4627    #[inline]
4628    pub fn of_type(&self) -> Option<OfType> {
4629        support::child(&self.syntax)
4630    }
4631    #[inline]
4632    pub fn on_commit(&self) -> Option<OnCommit> {
4633        support::child(&self.syntax)
4634    }
4635    #[inline]
4636    pub fn partition_by(&self) -> Option<PartitionBy> {
4637        support::child(&self.syntax)
4638    }
4639    #[inline]
4640    pub fn partition_of(&self) -> Option<PartitionOf> {
4641        support::child(&self.syntax)
4642    }
4643    #[inline]
4644    pub fn path(&self) -> Option<Path> {
4645        support::child(&self.syntax)
4646    }
4647    #[inline]
4648    pub fn table_arg_list(&self) -> Option<TableArgList> {
4649        support::child(&self.syntax)
4650    }
4651    #[inline]
4652    pub fn tablespace(&self) -> Option<Tablespace> {
4653        support::child(&self.syntax)
4654    }
4655    #[inline]
4656    pub fn using_method(&self) -> Option<UsingMethod> {
4657        support::child(&self.syntax)
4658    }
4659    #[inline]
4660    pub fn with_params(&self) -> Option<WithParams> {
4661        support::child(&self.syntax)
4662    }
4663    #[inline]
4664    pub fn without_oids(&self) -> Option<WithoutOids> {
4665        support::child(&self.syntax)
4666    }
4667    #[inline]
4668    pub fn create_token(&self) -> Option<SyntaxToken> {
4669        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4670    }
4671    #[inline]
4672    pub fn global_token(&self) -> Option<SyntaxToken> {
4673        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4674    }
4675    #[inline]
4676    pub fn local_token(&self) -> Option<SyntaxToken> {
4677        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4678    }
4679    #[inline]
4680    pub fn table_token(&self) -> Option<SyntaxToken> {
4681        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4682    }
4683    #[inline]
4684    pub fn temp_token(&self) -> Option<SyntaxToken> {
4685        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4686    }
4687    #[inline]
4688    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4689        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4690    }
4691    #[inline]
4692    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4693        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4694    }
4695}
4696
4697#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4698pub struct CreateTableAs {
4699    pub(crate) syntax: SyntaxNode,
4700}
4701impl CreateTableAs {
4702    #[inline]
4703    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4704        support::child(&self.syntax)
4705    }
4706    #[inline]
4707    pub fn on_commit(&self) -> Option<OnCommit> {
4708        support::child(&self.syntax)
4709    }
4710    #[inline]
4711    pub fn path(&self) -> Option<Path> {
4712        support::child(&self.syntax)
4713    }
4714    #[inline]
4715    pub fn query(&self) -> Option<SelectVariant> {
4716        support::child(&self.syntax)
4717    }
4718    #[inline]
4719    pub fn tablespace(&self) -> Option<Tablespace> {
4720        support::child(&self.syntax)
4721    }
4722    #[inline]
4723    pub fn using_method(&self) -> Option<UsingMethod> {
4724        support::child(&self.syntax)
4725    }
4726    #[inline]
4727    pub fn with_data(&self) -> Option<WithData> {
4728        support::child(&self.syntax)
4729    }
4730    #[inline]
4731    pub fn with_no_data(&self) -> Option<WithNoData> {
4732        support::child(&self.syntax)
4733    }
4734    #[inline]
4735    pub fn with_params(&self) -> Option<WithParams> {
4736        support::child(&self.syntax)
4737    }
4738    #[inline]
4739    pub fn without_oids(&self) -> Option<WithoutOids> {
4740        support::child(&self.syntax)
4741    }
4742    #[inline]
4743    pub fn as_token(&self) -> Option<SyntaxToken> {
4744        support::token(&self.syntax, SyntaxKind::AS_KW)
4745    }
4746    #[inline]
4747    pub fn create_token(&self) -> Option<SyntaxToken> {
4748        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4749    }
4750    #[inline]
4751    pub fn global_token(&self) -> Option<SyntaxToken> {
4752        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4753    }
4754    #[inline]
4755    pub fn local_token(&self) -> Option<SyntaxToken> {
4756        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4757    }
4758    #[inline]
4759    pub fn table_token(&self) -> Option<SyntaxToken> {
4760        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4761    }
4762    #[inline]
4763    pub fn temp_token(&self) -> Option<SyntaxToken> {
4764        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4765    }
4766    #[inline]
4767    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4768        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4769    }
4770    #[inline]
4771    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4772        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4773    }
4774}
4775
4776#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4777pub struct CreateTablespace {
4778    pub(crate) syntax: SyntaxNode,
4779}
4780impl CreateTablespace {
4781    #[inline]
4782    pub fn literal(&self) -> Option<Literal> {
4783        support::child(&self.syntax)
4784    }
4785    #[inline]
4786    pub fn name(&self) -> Option<Name> {
4787        support::child(&self.syntax)
4788    }
4789    #[inline]
4790    pub fn role_ref(&self) -> Option<RoleRef> {
4791        support::child(&self.syntax)
4792    }
4793    #[inline]
4794    pub fn with_params(&self) -> Option<WithParams> {
4795        support::child(&self.syntax)
4796    }
4797    #[inline]
4798    pub fn create_token(&self) -> Option<SyntaxToken> {
4799        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4800    }
4801    #[inline]
4802    pub fn location_token(&self) -> Option<SyntaxToken> {
4803        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
4804    }
4805    #[inline]
4806    pub fn owner_token(&self) -> Option<SyntaxToken> {
4807        support::token(&self.syntax, SyntaxKind::OWNER_KW)
4808    }
4809    #[inline]
4810    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4811        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4812    }
4813}
4814
4815#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4816pub struct CreateTextSearchConfiguration {
4817    pub(crate) syntax: SyntaxNode,
4818}
4819impl CreateTextSearchConfiguration {
4820    #[inline]
4821    pub fn attribute_list(&self) -> Option<AttributeList> {
4822        support::child(&self.syntax)
4823    }
4824    #[inline]
4825    pub fn path(&self) -> Option<Path> {
4826        support::child(&self.syntax)
4827    }
4828    #[inline]
4829    pub fn configuration_token(&self) -> Option<SyntaxToken> {
4830        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
4831    }
4832    #[inline]
4833    pub fn create_token(&self) -> Option<SyntaxToken> {
4834        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4835    }
4836    #[inline]
4837    pub fn search_token(&self) -> Option<SyntaxToken> {
4838        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4839    }
4840    #[inline]
4841    pub fn text_token(&self) -> Option<SyntaxToken> {
4842        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4843    }
4844}
4845
4846#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4847pub struct CreateTextSearchDictionary {
4848    pub(crate) syntax: SyntaxNode,
4849}
4850impl CreateTextSearchDictionary {
4851    #[inline]
4852    pub fn attribute_list(&self) -> Option<AttributeList> {
4853        support::child(&self.syntax)
4854    }
4855    #[inline]
4856    pub fn path(&self) -> Option<Path> {
4857        support::child(&self.syntax)
4858    }
4859    #[inline]
4860    pub fn create_token(&self) -> Option<SyntaxToken> {
4861        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4862    }
4863    #[inline]
4864    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
4865        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
4866    }
4867    #[inline]
4868    pub fn search_token(&self) -> Option<SyntaxToken> {
4869        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4870    }
4871    #[inline]
4872    pub fn text_token(&self) -> Option<SyntaxToken> {
4873        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4874    }
4875}
4876
4877#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4878pub struct CreateTextSearchParser {
4879    pub(crate) syntax: SyntaxNode,
4880}
4881impl CreateTextSearchParser {
4882    #[inline]
4883    pub fn attribute_list(&self) -> Option<AttributeList> {
4884        support::child(&self.syntax)
4885    }
4886    #[inline]
4887    pub fn path(&self) -> Option<Path> {
4888        support::child(&self.syntax)
4889    }
4890    #[inline]
4891    pub fn create_token(&self) -> Option<SyntaxToken> {
4892        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4893    }
4894    #[inline]
4895    pub fn parser_token(&self) -> Option<SyntaxToken> {
4896        support::token(&self.syntax, SyntaxKind::PARSER_KW)
4897    }
4898    #[inline]
4899    pub fn search_token(&self) -> Option<SyntaxToken> {
4900        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4901    }
4902    #[inline]
4903    pub fn text_token(&self) -> Option<SyntaxToken> {
4904        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4905    }
4906}
4907
4908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4909pub struct CreateTextSearchTemplate {
4910    pub(crate) syntax: SyntaxNode,
4911}
4912impl CreateTextSearchTemplate {
4913    #[inline]
4914    pub fn attribute_list(&self) -> Option<AttributeList> {
4915        support::child(&self.syntax)
4916    }
4917    #[inline]
4918    pub fn path(&self) -> Option<Path> {
4919        support::child(&self.syntax)
4920    }
4921    #[inline]
4922    pub fn create_token(&self) -> Option<SyntaxToken> {
4923        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4924    }
4925    #[inline]
4926    pub fn search_token(&self) -> Option<SyntaxToken> {
4927        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4928    }
4929    #[inline]
4930    pub fn template_token(&self) -> Option<SyntaxToken> {
4931        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4932    }
4933    #[inline]
4934    pub fn text_token(&self) -> Option<SyntaxToken> {
4935        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4936    }
4937}
4938
4939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4940pub struct CreateTransform {
4941    pub(crate) syntax: SyntaxNode,
4942}
4943impl CreateTransform {
4944    #[inline]
4945    pub fn from_func(&self) -> Option<TransformFromFunc> {
4946        support::child(&self.syntax)
4947    }
4948    #[inline]
4949    pub fn language(&self) -> Option<NameRef> {
4950        support::child(&self.syntax)
4951    }
4952    #[inline]
4953    pub fn or_replace(&self) -> Option<OrReplace> {
4954        support::child(&self.syntax)
4955    }
4956    #[inline]
4957    pub fn to_func(&self) -> Option<TransformToFunc> {
4958        support::child(&self.syntax)
4959    }
4960    #[inline]
4961    pub fn ty(&self) -> Option<Type> {
4962        support::child(&self.syntax)
4963    }
4964    #[inline]
4965    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4966        support::token(&self.syntax, SyntaxKind::L_PAREN)
4967    }
4968    #[inline]
4969    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4970        support::token(&self.syntax, SyntaxKind::R_PAREN)
4971    }
4972    #[inline]
4973    pub fn comma_token(&self) -> Option<SyntaxToken> {
4974        support::token(&self.syntax, SyntaxKind::COMMA)
4975    }
4976    #[inline]
4977    pub fn create_token(&self) -> Option<SyntaxToken> {
4978        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4979    }
4980    #[inline]
4981    pub fn for_token(&self) -> Option<SyntaxToken> {
4982        support::token(&self.syntax, SyntaxKind::FOR_KW)
4983    }
4984    #[inline]
4985    pub fn language_token(&self) -> Option<SyntaxToken> {
4986        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4987    }
4988    #[inline]
4989    pub fn transform_token(&self) -> Option<SyntaxToken> {
4990        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
4991    }
4992}
4993
4994#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4995pub struct CreateTrigger {
4996    pub(crate) syntax: SyntaxNode,
4997}
4998impl CreateTrigger {
4999    #[inline]
5000    pub fn call_expr(&self) -> Option<CallExpr> {
5001        support::child(&self.syntax)
5002    }
5003    #[inline]
5004    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
5005        support::child(&self.syntax)
5006    }
5007    #[inline]
5008    pub fn from_table(&self) -> Option<FromTable> {
5009        support::child(&self.syntax)
5010    }
5011    #[inline]
5012    pub fn initially_deferred_constraint_option(
5013        &self,
5014    ) -> Option<InitiallyDeferredConstraintOption> {
5015        support::child(&self.syntax)
5016    }
5017    #[inline]
5018    pub fn initially_immediate_constraint_option(
5019        &self,
5020    ) -> Option<InitiallyImmediateConstraintOption> {
5021        support::child(&self.syntax)
5022    }
5023    #[inline]
5024    pub fn name(&self) -> Option<Name> {
5025        support::child(&self.syntax)
5026    }
5027    #[inline]
5028    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
5029        support::child(&self.syntax)
5030    }
5031    #[inline]
5032    pub fn on_table(&self) -> Option<OnTable> {
5033        support::child(&self.syntax)
5034    }
5035    #[inline]
5036    pub fn or_replace(&self) -> Option<OrReplace> {
5037        support::child(&self.syntax)
5038    }
5039    #[inline]
5040    pub fn referencing(&self) -> Option<Referencing> {
5041        support::child(&self.syntax)
5042    }
5043    #[inline]
5044    pub fn timing(&self) -> Option<Timing> {
5045        support::child(&self.syntax)
5046    }
5047    #[inline]
5048    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
5049        support::child(&self.syntax)
5050    }
5051    #[inline]
5052    pub fn when_condition(&self) -> Option<WhenCondition> {
5053        support::child(&self.syntax)
5054    }
5055    #[inline]
5056    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5057        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5058    }
5059    #[inline]
5060    pub fn create_token(&self) -> Option<SyntaxToken> {
5061        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5062    }
5063    #[inline]
5064    pub fn each_token(&self) -> Option<SyntaxToken> {
5065        support::token(&self.syntax, SyntaxKind::EACH_KW)
5066    }
5067    #[inline]
5068    pub fn execute_token(&self) -> Option<SyntaxToken> {
5069        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
5070    }
5071    #[inline]
5072    pub fn for_token(&self) -> Option<SyntaxToken> {
5073        support::token(&self.syntax, SyntaxKind::FOR_KW)
5074    }
5075    #[inline]
5076    pub fn function_token(&self) -> Option<SyntaxToken> {
5077        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5078    }
5079    #[inline]
5080    pub fn procedure_token(&self) -> Option<SyntaxToken> {
5081        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
5082    }
5083    #[inline]
5084    pub fn row_token(&self) -> Option<SyntaxToken> {
5085        support::token(&self.syntax, SyntaxKind::ROW_KW)
5086    }
5087    #[inline]
5088    pub fn statement_token(&self) -> Option<SyntaxToken> {
5089        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
5090    }
5091    #[inline]
5092    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5093        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5094    }
5095}
5096
5097#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5098pub struct CreateType {
5099    pub(crate) syntax: SyntaxNode,
5100}
5101impl CreateType {
5102    #[inline]
5103    pub fn attribute_list(&self) -> Option<AttributeList> {
5104        support::child(&self.syntax)
5105    }
5106    #[inline]
5107    pub fn column_list(&self) -> Option<ColumnList> {
5108        support::child(&self.syntax)
5109    }
5110    #[inline]
5111    pub fn path(&self) -> Option<Path> {
5112        support::child(&self.syntax)
5113    }
5114    #[inline]
5115    pub fn variant_list(&self) -> Option<VariantList> {
5116        support::child(&self.syntax)
5117    }
5118    #[inline]
5119    pub fn as_token(&self) -> Option<SyntaxToken> {
5120        support::token(&self.syntax, SyntaxKind::AS_KW)
5121    }
5122    #[inline]
5123    pub fn create_token(&self) -> Option<SyntaxToken> {
5124        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5125    }
5126    #[inline]
5127    pub fn enum_token(&self) -> Option<SyntaxToken> {
5128        support::token(&self.syntax, SyntaxKind::ENUM_KW)
5129    }
5130    #[inline]
5131    pub fn range_token(&self) -> Option<SyntaxToken> {
5132        support::token(&self.syntax, SyntaxKind::RANGE_KW)
5133    }
5134    #[inline]
5135    pub fn type_token(&self) -> Option<SyntaxToken> {
5136        support::token(&self.syntax, SyntaxKind::TYPE_KW)
5137    }
5138}
5139
5140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5141pub struct CreateUser {
5142    pub(crate) syntax: SyntaxNode,
5143}
5144impl CreateUser {
5145    #[inline]
5146    pub fn name(&self) -> Option<Name> {
5147        support::child(&self.syntax)
5148    }
5149    #[inline]
5150    pub fn role_option_list(&self) -> Option<RoleOptionList> {
5151        support::child(&self.syntax)
5152    }
5153    #[inline]
5154    pub fn create_token(&self) -> Option<SyntaxToken> {
5155        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5156    }
5157    #[inline]
5158    pub fn user_token(&self) -> Option<SyntaxToken> {
5159        support::token(&self.syntax, SyntaxKind::USER_KW)
5160    }
5161}
5162
5163#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5164pub struct CreateUserMapping {
5165    pub(crate) syntax: SyntaxNode,
5166}
5167impl CreateUserMapping {
5168    #[inline]
5169    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
5170        support::child(&self.syntax)
5171    }
5172    #[inline]
5173    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5174        support::child(&self.syntax)
5175    }
5176    #[inline]
5177    pub fn role_ref(&self) -> Option<RoleRef> {
5178        support::child(&self.syntax)
5179    }
5180    #[inline]
5181    pub fn server_name(&self) -> Option<ServerName> {
5182        support::child(&self.syntax)
5183    }
5184    #[inline]
5185    pub fn create_token(&self) -> Option<SyntaxToken> {
5186        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5187    }
5188    #[inline]
5189    pub fn for_token(&self) -> Option<SyntaxToken> {
5190        support::token(&self.syntax, SyntaxKind::FOR_KW)
5191    }
5192    #[inline]
5193    pub fn mapping_token(&self) -> Option<SyntaxToken> {
5194        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
5195    }
5196    #[inline]
5197    pub fn user_token(&self) -> Option<SyntaxToken> {
5198        support::token(&self.syntax, SyntaxKind::USER_KW)
5199    }
5200}
5201
5202#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5203pub struct CreateView {
5204    pub(crate) syntax: SyntaxNode,
5205}
5206impl CreateView {
5207    #[inline]
5208    pub fn column_list(&self) -> Option<ColumnList> {
5209        support::child(&self.syntax)
5210    }
5211    #[inline]
5212    pub fn or_replace(&self) -> Option<OrReplace> {
5213        support::child(&self.syntax)
5214    }
5215    #[inline]
5216    pub fn path(&self) -> Option<Path> {
5217        support::child(&self.syntax)
5218    }
5219    #[inline]
5220    pub fn query(&self) -> Option<SelectVariant> {
5221        support::child(&self.syntax)
5222    }
5223    #[inline]
5224    pub fn with_params(&self) -> Option<WithParams> {
5225        support::child(&self.syntax)
5226    }
5227    #[inline]
5228    pub fn as_token(&self) -> Option<SyntaxToken> {
5229        support::token(&self.syntax, SyntaxKind::AS_KW)
5230    }
5231    #[inline]
5232    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
5233        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
5234    }
5235    #[inline]
5236    pub fn check_token(&self) -> Option<SyntaxToken> {
5237        support::token(&self.syntax, SyntaxKind::CHECK_KW)
5238    }
5239    #[inline]
5240    pub fn create_token(&self) -> Option<SyntaxToken> {
5241        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5242    }
5243    #[inline]
5244    pub fn local_token(&self) -> Option<SyntaxToken> {
5245        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
5246    }
5247    #[inline]
5248    pub fn option_token(&self) -> Option<SyntaxToken> {
5249        support::token(&self.syntax, SyntaxKind::OPTION_KW)
5250    }
5251    #[inline]
5252    pub fn recursive_token(&self) -> Option<SyntaxToken> {
5253        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
5254    }
5255    #[inline]
5256    pub fn temp_token(&self) -> Option<SyntaxToken> {
5257        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5258    }
5259    #[inline]
5260    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5261        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5262    }
5263    #[inline]
5264    pub fn view_token(&self) -> Option<SyntaxToken> {
5265        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5266    }
5267    #[inline]
5268    pub fn with_token(&self) -> Option<SyntaxToken> {
5269        support::token(&self.syntax, SyntaxKind::WITH_KW)
5270    }
5271}
5272
5273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5274pub struct CustomOp {
5275    pub(crate) syntax: SyntaxNode,
5276}
5277impl CustomOp {
5278    #[inline]
5279    pub fn bang_token(&self) -> Option<SyntaxToken> {
5280        support::token(&self.syntax, SyntaxKind::BANG)
5281    }
5282    #[inline]
5283    pub fn pound_token(&self) -> Option<SyntaxToken> {
5284        support::token(&self.syntax, SyntaxKind::POUND)
5285    }
5286    #[inline]
5287    pub fn percent_token(&self) -> Option<SyntaxToken> {
5288        support::token(&self.syntax, SyntaxKind::PERCENT)
5289    }
5290    #[inline]
5291    pub fn amp_token(&self) -> Option<SyntaxToken> {
5292        support::token(&self.syntax, SyntaxKind::AMP)
5293    }
5294    #[inline]
5295    pub fn star_token(&self) -> Option<SyntaxToken> {
5296        support::token(&self.syntax, SyntaxKind::STAR)
5297    }
5298    #[inline]
5299    pub fn plus_token(&self) -> Option<SyntaxToken> {
5300        support::token(&self.syntax, SyntaxKind::PLUS)
5301    }
5302    #[inline]
5303    pub fn minus_token(&self) -> Option<SyntaxToken> {
5304        support::token(&self.syntax, SyntaxKind::MINUS)
5305    }
5306    #[inline]
5307    pub fn slash_token(&self) -> Option<SyntaxToken> {
5308        support::token(&self.syntax, SyntaxKind::SLASH)
5309    }
5310    #[inline]
5311    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
5312        support::token(&self.syntax, SyntaxKind::L_ANGLE)
5313    }
5314    #[inline]
5315    pub fn eq_token(&self) -> Option<SyntaxToken> {
5316        support::token(&self.syntax, SyntaxKind::EQ)
5317    }
5318    #[inline]
5319    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5320        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5321    }
5322    #[inline]
5323    pub fn question_token(&self) -> Option<SyntaxToken> {
5324        support::token(&self.syntax, SyntaxKind::QUESTION)
5325    }
5326    #[inline]
5327    pub fn at_token(&self) -> Option<SyntaxToken> {
5328        support::token(&self.syntax, SyntaxKind::AT)
5329    }
5330    #[inline]
5331    pub fn caret_token(&self) -> Option<SyntaxToken> {
5332        support::token(&self.syntax, SyntaxKind::CARET)
5333    }
5334    #[inline]
5335    pub fn backtick_token(&self) -> Option<SyntaxToken> {
5336        support::token(&self.syntax, SyntaxKind::BACKTICK)
5337    }
5338    #[inline]
5339    pub fn pipe_token(&self) -> Option<SyntaxToken> {
5340        support::token(&self.syntax, SyntaxKind::PIPE)
5341    }
5342    #[inline]
5343    pub fn tilde_token(&self) -> Option<SyntaxToken> {
5344        support::token(&self.syntax, SyntaxKind::TILDE)
5345    }
5346}
5347
5348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5349pub struct Deallocate {
5350    pub(crate) syntax: SyntaxNode,
5351}
5352impl Deallocate {
5353    #[inline]
5354    pub fn name_ref(&self) -> Option<NameRef> {
5355        support::child(&self.syntax)
5356    }
5357    #[inline]
5358    pub fn all_token(&self) -> Option<SyntaxToken> {
5359        support::token(&self.syntax, SyntaxKind::ALL_KW)
5360    }
5361    #[inline]
5362    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
5363        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
5364    }
5365    #[inline]
5366    pub fn prepare_token(&self) -> Option<SyntaxToken> {
5367        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
5368    }
5369}
5370
5371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5372pub struct Declare {
5373    pub(crate) syntax: SyntaxNode,
5374}
5375impl Declare {
5376    #[inline]
5377    pub fn name(&self) -> Option<Name> {
5378        support::child(&self.syntax)
5379    }
5380    #[inline]
5381    pub fn query(&self) -> Option<SelectVariant> {
5382        support::child(&self.syntax)
5383    }
5384    #[inline]
5385    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
5386        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
5387    }
5388    #[inline]
5389    pub fn binary_token(&self) -> Option<SyntaxToken> {
5390        support::token(&self.syntax, SyntaxKind::BINARY_KW)
5391    }
5392    #[inline]
5393    pub fn cursor_token(&self) -> Option<SyntaxToken> {
5394        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
5395    }
5396    #[inline]
5397    pub fn declare_token(&self) -> Option<SyntaxToken> {
5398        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
5399    }
5400    #[inline]
5401    pub fn for_token(&self) -> Option<SyntaxToken> {
5402        support::token(&self.syntax, SyntaxKind::FOR_KW)
5403    }
5404    #[inline]
5405    pub fn hold_token(&self) -> Option<SyntaxToken> {
5406        support::token(&self.syntax, SyntaxKind::HOLD_KW)
5407    }
5408    #[inline]
5409    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
5410        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
5411    }
5412    #[inline]
5413    pub fn no_token(&self) -> Option<SyntaxToken> {
5414        support::token(&self.syntax, SyntaxKind::NO_KW)
5415    }
5416    #[inline]
5417    pub fn scroll_token(&self) -> Option<SyntaxToken> {
5418        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
5419    }
5420    #[inline]
5421    pub fn with_token(&self) -> Option<SyntaxToken> {
5422        support::token(&self.syntax, SyntaxKind::WITH_KW)
5423    }
5424    #[inline]
5425    pub fn without_token(&self) -> Option<SyntaxToken> {
5426        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5427    }
5428}
5429
5430#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5431pub struct DefaultConstraint {
5432    pub(crate) syntax: SyntaxNode,
5433}
5434impl DefaultConstraint {
5435    #[inline]
5436    pub fn expr(&self) -> Option<Expr> {
5437        support::child(&self.syntax)
5438    }
5439    #[inline]
5440    pub fn name_ref(&self) -> Option<NameRef> {
5441        support::child(&self.syntax)
5442    }
5443    #[inline]
5444    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5445        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5446    }
5447    #[inline]
5448    pub fn default_token(&self) -> Option<SyntaxToken> {
5449        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5450    }
5451}
5452
5453#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5454pub struct Deferrable {
5455    pub(crate) syntax: SyntaxNode,
5456}
5457impl Deferrable {
5458    #[inline]
5459    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5460        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5461    }
5462}
5463
5464#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5465pub struct DeferrableConstraintOption {
5466    pub(crate) syntax: SyntaxNode,
5467}
5468impl DeferrableConstraintOption {
5469    #[inline]
5470    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5471        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5472    }
5473}
5474
5475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5476pub struct Delete {
5477    pub(crate) syntax: SyntaxNode,
5478}
5479impl Delete {
5480    #[inline]
5481    pub fn alias(&self) -> Option<Alias> {
5482        support::child(&self.syntax)
5483    }
5484    #[inline]
5485    pub fn relation_name(&self) -> Option<RelationName> {
5486        support::child(&self.syntax)
5487    }
5488    #[inline]
5489    pub fn returning_clause(&self) -> Option<ReturningClause> {
5490        support::child(&self.syntax)
5491    }
5492    #[inline]
5493    pub fn using_clause(&self) -> Option<UsingClause> {
5494        support::child(&self.syntax)
5495    }
5496    #[inline]
5497    pub fn where_clause(&self) -> Option<WhereClause> {
5498        support::child(&self.syntax)
5499    }
5500    #[inline]
5501    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
5502        support::child(&self.syntax)
5503    }
5504    #[inline]
5505    pub fn with_clause(&self) -> Option<WithClause> {
5506        support::child(&self.syntax)
5507    }
5508    #[inline]
5509    pub fn delete_token(&self) -> Option<SyntaxToken> {
5510        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5511    }
5512    #[inline]
5513    pub fn from_token(&self) -> Option<SyntaxToken> {
5514        support::token(&self.syntax, SyntaxKind::FROM_KW)
5515    }
5516}
5517
5518#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5519pub struct DeleteRows {
5520    pub(crate) syntax: SyntaxNode,
5521}
5522impl DeleteRows {
5523    #[inline]
5524    pub fn delete_token(&self) -> Option<SyntaxToken> {
5525        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5526    }
5527    #[inline]
5528    pub fn rows_token(&self) -> Option<SyntaxToken> {
5529        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5530    }
5531}
5532
5533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5534pub struct DependsOnExtension {
5535    pub(crate) syntax: SyntaxNode,
5536}
5537impl DependsOnExtension {
5538    #[inline]
5539    pub fn name_ref(&self) -> Option<NameRef> {
5540        support::child(&self.syntax)
5541    }
5542    #[inline]
5543    pub fn depends_token(&self) -> Option<SyntaxToken> {
5544        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
5545    }
5546    #[inline]
5547    pub fn extension_token(&self) -> Option<SyntaxToken> {
5548        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5549    }
5550    #[inline]
5551    pub fn on_token(&self) -> Option<SyntaxToken> {
5552        support::token(&self.syntax, SyntaxKind::ON_KW)
5553    }
5554}
5555
5556#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5557pub struct DetachPartition {
5558    pub(crate) syntax: SyntaxNode,
5559}
5560impl DetachPartition {
5561    #[inline]
5562    pub fn detach_token(&self) -> Option<SyntaxToken> {
5563        support::token(&self.syntax, SyntaxKind::DETACH_KW)
5564    }
5565    #[inline]
5566    pub fn partition_token(&self) -> Option<SyntaxToken> {
5567        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
5568    }
5569}
5570
5571#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5572pub struct DisableRls {
5573    pub(crate) syntax: SyntaxNode,
5574}
5575impl DisableRls {
5576    #[inline]
5577    pub fn disable_token(&self) -> Option<SyntaxToken> {
5578        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5579    }
5580    #[inline]
5581    pub fn level_token(&self) -> Option<SyntaxToken> {
5582        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
5583    }
5584    #[inline]
5585    pub fn row_token(&self) -> Option<SyntaxToken> {
5586        support::token(&self.syntax, SyntaxKind::ROW_KW)
5587    }
5588    #[inline]
5589    pub fn security_token(&self) -> Option<SyntaxToken> {
5590        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
5591    }
5592}
5593
5594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5595pub struct DisableRule {
5596    pub(crate) syntax: SyntaxNode,
5597}
5598impl DisableRule {
5599    #[inline]
5600    pub fn disable_token(&self) -> Option<SyntaxToken> {
5601        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5602    }
5603    #[inline]
5604    pub fn rule_token(&self) -> Option<SyntaxToken> {
5605        support::token(&self.syntax, SyntaxKind::RULE_KW)
5606    }
5607}
5608
5609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5610pub struct DisableTrigger {
5611    pub(crate) syntax: SyntaxNode,
5612}
5613impl DisableTrigger {
5614    #[inline]
5615    pub fn disable_token(&self) -> Option<SyntaxToken> {
5616        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5617    }
5618    #[inline]
5619    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5620        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5621    }
5622}
5623
5624#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5625pub struct Discard {
5626    pub(crate) syntax: SyntaxNode,
5627}
5628impl Discard {
5629    #[inline]
5630    pub fn all_token(&self) -> Option<SyntaxToken> {
5631        support::token(&self.syntax, SyntaxKind::ALL_KW)
5632    }
5633    #[inline]
5634    pub fn discard_token(&self) -> Option<SyntaxToken> {
5635        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
5636    }
5637    #[inline]
5638    pub fn plans_token(&self) -> Option<SyntaxToken> {
5639        support::token(&self.syntax, SyntaxKind::PLANS_KW)
5640    }
5641    #[inline]
5642    pub fn sequences_token(&self) -> Option<SyntaxToken> {
5643        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
5644    }
5645    #[inline]
5646    pub fn temp_token(&self) -> Option<SyntaxToken> {
5647        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5648    }
5649    #[inline]
5650    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5651        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5652    }
5653}
5654
5655#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5656pub struct DistinctClause {
5657    pub(crate) syntax: SyntaxNode,
5658}
5659impl DistinctClause {
5660    #[inline]
5661    pub fn exprs(&self) -> AstChildren<Expr> {
5662        support::children(&self.syntax)
5663    }
5664    #[inline]
5665    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5666        support::token(&self.syntax, SyntaxKind::L_PAREN)
5667    }
5668    #[inline]
5669    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5670        support::token(&self.syntax, SyntaxKind::R_PAREN)
5671    }
5672    #[inline]
5673    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5674        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5675    }
5676    #[inline]
5677    pub fn on_token(&self) -> Option<SyntaxToken> {
5678        support::token(&self.syntax, SyntaxKind::ON_KW)
5679    }
5680}
5681
5682#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5683pub struct Do {
5684    pub(crate) syntax: SyntaxNode,
5685}
5686impl Do {
5687    #[inline]
5688    pub fn do_token(&self) -> Option<SyntaxToken> {
5689        support::token(&self.syntax, SyntaxKind::DO_KW)
5690    }
5691}
5692
5693#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5694pub struct DoubleType {
5695    pub(crate) syntax: SyntaxNode,
5696}
5697impl DoubleType {
5698    #[inline]
5699    pub fn double_token(&self) -> Option<SyntaxToken> {
5700        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
5701    }
5702    #[inline]
5703    pub fn precision_token(&self) -> Option<SyntaxToken> {
5704        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
5705    }
5706}
5707
5708#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5709pub struct Drop {
5710    pub(crate) syntax: SyntaxNode,
5711}
5712impl Drop {
5713    #[inline]
5714    pub fn drop_token(&self) -> Option<SyntaxToken> {
5715        support::token(&self.syntax, SyntaxKind::DROP_KW)
5716    }
5717}
5718
5719#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5720pub struct DropAccessMethod {
5721    pub(crate) syntax: SyntaxNode,
5722}
5723impl DropAccessMethod {
5724    #[inline]
5725    pub fn if_exists(&self) -> Option<IfExists> {
5726        support::child(&self.syntax)
5727    }
5728    #[inline]
5729    pub fn name_ref(&self) -> Option<NameRef> {
5730        support::child(&self.syntax)
5731    }
5732    #[inline]
5733    pub fn access_token(&self) -> Option<SyntaxToken> {
5734        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
5735    }
5736    #[inline]
5737    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5738        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5739    }
5740    #[inline]
5741    pub fn drop_token(&self) -> Option<SyntaxToken> {
5742        support::token(&self.syntax, SyntaxKind::DROP_KW)
5743    }
5744    #[inline]
5745    pub fn method_token(&self) -> Option<SyntaxToken> {
5746        support::token(&self.syntax, SyntaxKind::METHOD_KW)
5747    }
5748    #[inline]
5749    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5750        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5751    }
5752}
5753
5754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5755pub struct DropAggregate {
5756    pub(crate) syntax: SyntaxNode,
5757}
5758impl DropAggregate {
5759    #[inline]
5760    pub fn aggregates(&self) -> AstChildren<Aggregate> {
5761        support::children(&self.syntax)
5762    }
5763    #[inline]
5764    pub fn if_exists(&self) -> Option<IfExists> {
5765        support::child(&self.syntax)
5766    }
5767    #[inline]
5768    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
5769        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
5770    }
5771    #[inline]
5772    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5773        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5774    }
5775    #[inline]
5776    pub fn drop_token(&self) -> Option<SyntaxToken> {
5777        support::token(&self.syntax, SyntaxKind::DROP_KW)
5778    }
5779    #[inline]
5780    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5781        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5782    }
5783}
5784
5785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5786pub struct DropCast {
5787    pub(crate) syntax: SyntaxNode,
5788}
5789impl DropCast {
5790    #[inline]
5791    pub fn cast_sig(&self) -> Option<CastSig> {
5792        support::child(&self.syntax)
5793    }
5794    #[inline]
5795    pub fn if_exists(&self) -> Option<IfExists> {
5796        support::child(&self.syntax)
5797    }
5798    #[inline]
5799    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5800        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5801    }
5802    #[inline]
5803    pub fn cast_token(&self) -> Option<SyntaxToken> {
5804        support::token(&self.syntax, SyntaxKind::CAST_KW)
5805    }
5806    #[inline]
5807    pub fn drop_token(&self) -> Option<SyntaxToken> {
5808        support::token(&self.syntax, SyntaxKind::DROP_KW)
5809    }
5810    #[inline]
5811    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5812        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5813    }
5814}
5815
5816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5817pub struct DropCollation {
5818    pub(crate) syntax: SyntaxNode,
5819}
5820impl DropCollation {
5821    #[inline]
5822    pub fn if_exists(&self) -> Option<IfExists> {
5823        support::child(&self.syntax)
5824    }
5825    #[inline]
5826    pub fn paths(&self) -> AstChildren<Path> {
5827        support::children(&self.syntax)
5828    }
5829    #[inline]
5830    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5831        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5832    }
5833    #[inline]
5834    pub fn collation_token(&self) -> Option<SyntaxToken> {
5835        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
5836    }
5837    #[inline]
5838    pub fn drop_token(&self) -> Option<SyntaxToken> {
5839        support::token(&self.syntax, SyntaxKind::DROP_KW)
5840    }
5841    #[inline]
5842    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5843        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5844    }
5845}
5846
5847#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5848pub struct DropColumn {
5849    pub(crate) syntax: SyntaxNode,
5850}
5851impl DropColumn {
5852    #[inline]
5853    pub fn if_exists(&self) -> Option<IfExists> {
5854        support::child(&self.syntax)
5855    }
5856    #[inline]
5857    pub fn name_ref(&self) -> Option<NameRef> {
5858        support::child(&self.syntax)
5859    }
5860    #[inline]
5861    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5862        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5863    }
5864    #[inline]
5865    pub fn column_token(&self) -> Option<SyntaxToken> {
5866        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
5867    }
5868    #[inline]
5869    pub fn drop_token(&self) -> Option<SyntaxToken> {
5870        support::token(&self.syntax, SyntaxKind::DROP_KW)
5871    }
5872    #[inline]
5873    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5874        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5875    }
5876}
5877
5878#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5879pub struct DropConstraint {
5880    pub(crate) syntax: SyntaxNode,
5881}
5882impl DropConstraint {
5883    #[inline]
5884    pub fn if_exists(&self) -> Option<IfExists> {
5885        support::child(&self.syntax)
5886    }
5887    #[inline]
5888    pub fn name_ref(&self) -> Option<NameRef> {
5889        support::child(&self.syntax)
5890    }
5891    #[inline]
5892    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5893        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5894    }
5895    #[inline]
5896    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5897        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5898    }
5899    #[inline]
5900    pub fn drop_token(&self) -> Option<SyntaxToken> {
5901        support::token(&self.syntax, SyntaxKind::DROP_KW)
5902    }
5903    #[inline]
5904    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5905        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5906    }
5907}
5908
5909#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5910pub struct DropConversion {
5911    pub(crate) syntax: SyntaxNode,
5912}
5913impl DropConversion {
5914    #[inline]
5915    pub fn if_exists(&self) -> Option<IfExists> {
5916        support::child(&self.syntax)
5917    }
5918    #[inline]
5919    pub fn path(&self) -> Option<Path> {
5920        support::child(&self.syntax)
5921    }
5922    #[inline]
5923    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5924        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5925    }
5926    #[inline]
5927    pub fn conversion_token(&self) -> Option<SyntaxToken> {
5928        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
5929    }
5930    #[inline]
5931    pub fn drop_token(&self) -> Option<SyntaxToken> {
5932        support::token(&self.syntax, SyntaxKind::DROP_KW)
5933    }
5934    #[inline]
5935    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5936        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5937    }
5938}
5939
5940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5941pub struct DropDatabase {
5942    pub(crate) syntax: SyntaxNode,
5943}
5944impl DropDatabase {
5945    #[inline]
5946    pub fn if_exists(&self) -> Option<IfExists> {
5947        support::child(&self.syntax)
5948    }
5949    #[inline]
5950    pub fn name_ref(&self) -> Option<NameRef> {
5951        support::child(&self.syntax)
5952    }
5953    #[inline]
5954    pub fn database_token(&self) -> Option<SyntaxToken> {
5955        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
5956    }
5957    #[inline]
5958    pub fn drop_token(&self) -> Option<SyntaxToken> {
5959        support::token(&self.syntax, SyntaxKind::DROP_KW)
5960    }
5961}
5962
5963#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5964pub struct DropDefault {
5965    pub(crate) syntax: SyntaxNode,
5966}
5967impl DropDefault {
5968    #[inline]
5969    pub fn default_token(&self) -> Option<SyntaxToken> {
5970        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5971    }
5972    #[inline]
5973    pub fn drop_token(&self) -> Option<SyntaxToken> {
5974        support::token(&self.syntax, SyntaxKind::DROP_KW)
5975    }
5976}
5977
5978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5979pub struct DropDomain {
5980    pub(crate) syntax: SyntaxNode,
5981}
5982impl DropDomain {
5983    #[inline]
5984    pub fn if_exists(&self) -> Option<IfExists> {
5985        support::child(&self.syntax)
5986    }
5987    #[inline]
5988    pub fn paths(&self) -> AstChildren<Path> {
5989        support::children(&self.syntax)
5990    }
5991    #[inline]
5992    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5993        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5994    }
5995    #[inline]
5996    pub fn domain_token(&self) -> Option<SyntaxToken> {
5997        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
5998    }
5999    #[inline]
6000    pub fn drop_token(&self) -> Option<SyntaxToken> {
6001        support::token(&self.syntax, SyntaxKind::DROP_KW)
6002    }
6003    #[inline]
6004    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6005        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6006    }
6007}
6008
6009#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6010pub struct DropEventTrigger {
6011    pub(crate) syntax: SyntaxNode,
6012}
6013impl DropEventTrigger {
6014    #[inline]
6015    pub fn if_exists(&self) -> Option<IfExists> {
6016        support::child(&self.syntax)
6017    }
6018    #[inline]
6019    pub fn name_ref(&self) -> Option<NameRef> {
6020        support::child(&self.syntax)
6021    }
6022    #[inline]
6023    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6024        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6025    }
6026    #[inline]
6027    pub fn drop_token(&self) -> Option<SyntaxToken> {
6028        support::token(&self.syntax, SyntaxKind::DROP_KW)
6029    }
6030    #[inline]
6031    pub fn event_token(&self) -> Option<SyntaxToken> {
6032        support::token(&self.syntax, SyntaxKind::EVENT_KW)
6033    }
6034    #[inline]
6035    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6036        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6037    }
6038    #[inline]
6039    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6040        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6041    }
6042}
6043
6044#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6045pub struct DropExpression {
6046    pub(crate) syntax: SyntaxNode,
6047}
6048impl DropExpression {
6049    #[inline]
6050    pub fn if_exists(&self) -> Option<IfExists> {
6051        support::child(&self.syntax)
6052    }
6053    #[inline]
6054    pub fn drop_token(&self) -> Option<SyntaxToken> {
6055        support::token(&self.syntax, SyntaxKind::DROP_KW)
6056    }
6057    #[inline]
6058    pub fn expression_token(&self) -> Option<SyntaxToken> {
6059        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
6060    }
6061}
6062
6063#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6064pub struct DropExtension {
6065    pub(crate) syntax: SyntaxNode,
6066}
6067impl DropExtension {
6068    #[inline]
6069    pub fn if_exists(&self) -> Option<IfExists> {
6070        support::child(&self.syntax)
6071    }
6072    #[inline]
6073    pub fn name_refs(&self) -> AstChildren<NameRef> {
6074        support::children(&self.syntax)
6075    }
6076    #[inline]
6077    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6078        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6079    }
6080    #[inline]
6081    pub fn drop_token(&self) -> Option<SyntaxToken> {
6082        support::token(&self.syntax, SyntaxKind::DROP_KW)
6083    }
6084    #[inline]
6085    pub fn extension_token(&self) -> Option<SyntaxToken> {
6086        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
6087    }
6088    #[inline]
6089    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6090        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6091    }
6092}
6093
6094#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6095pub struct DropForeignDataWrapper {
6096    pub(crate) syntax: SyntaxNode,
6097}
6098impl DropForeignDataWrapper {
6099    #[inline]
6100    pub fn if_exists(&self) -> Option<IfExists> {
6101        support::child(&self.syntax)
6102    }
6103    #[inline]
6104    pub fn name_refs(&self) -> AstChildren<NameRef> {
6105        support::children(&self.syntax)
6106    }
6107    #[inline]
6108    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6109        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6110    }
6111    #[inline]
6112    pub fn data_token(&self) -> Option<SyntaxToken> {
6113        support::token(&self.syntax, SyntaxKind::DATA_KW)
6114    }
6115    #[inline]
6116    pub fn drop_token(&self) -> Option<SyntaxToken> {
6117        support::token(&self.syntax, SyntaxKind::DROP_KW)
6118    }
6119    #[inline]
6120    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6121        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6122    }
6123    #[inline]
6124    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6125        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6126    }
6127    #[inline]
6128    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
6129        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
6130    }
6131}
6132
6133#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6134pub struct DropForeignTable {
6135    pub(crate) syntax: SyntaxNode,
6136}
6137impl DropForeignTable {
6138    #[inline]
6139    pub fn if_exists(&self) -> Option<IfExists> {
6140        support::child(&self.syntax)
6141    }
6142    #[inline]
6143    pub fn path(&self) -> Option<Path> {
6144        support::child(&self.syntax)
6145    }
6146    #[inline]
6147    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6148        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6149    }
6150    #[inline]
6151    pub fn drop_token(&self) -> Option<SyntaxToken> {
6152        support::token(&self.syntax, SyntaxKind::DROP_KW)
6153    }
6154    #[inline]
6155    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6156        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6157    }
6158    #[inline]
6159    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6160        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6161    }
6162    #[inline]
6163    pub fn table_token(&self) -> Option<SyntaxToken> {
6164        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6165    }
6166}
6167
6168#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6169pub struct DropFunction {
6170    pub(crate) syntax: SyntaxNode,
6171}
6172impl DropFunction {
6173    #[inline]
6174    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6175        support::child(&self.syntax)
6176    }
6177    #[inline]
6178    pub fn if_exists(&self) -> Option<IfExists> {
6179        support::child(&self.syntax)
6180    }
6181    #[inline]
6182    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6183        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6184    }
6185    #[inline]
6186    pub fn drop_token(&self) -> Option<SyntaxToken> {
6187        support::token(&self.syntax, SyntaxKind::DROP_KW)
6188    }
6189    #[inline]
6190    pub fn function_token(&self) -> Option<SyntaxToken> {
6191        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6192    }
6193    #[inline]
6194    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6195        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6196    }
6197}
6198
6199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6200pub struct DropGroup {
6201    pub(crate) syntax: SyntaxNode,
6202}
6203impl DropGroup {
6204    #[inline]
6205    pub fn if_exists(&self) -> Option<IfExists> {
6206        support::child(&self.syntax)
6207    }
6208    #[inline]
6209    pub fn name_refs(&self) -> AstChildren<NameRef> {
6210        support::children(&self.syntax)
6211    }
6212    #[inline]
6213    pub fn drop_token(&self) -> Option<SyntaxToken> {
6214        support::token(&self.syntax, SyntaxKind::DROP_KW)
6215    }
6216    #[inline]
6217    pub fn group_token(&self) -> Option<SyntaxToken> {
6218        support::token(&self.syntax, SyntaxKind::GROUP_KW)
6219    }
6220}
6221
6222#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6223pub struct DropIdentity {
6224    pub(crate) syntax: SyntaxNode,
6225}
6226impl DropIdentity {
6227    #[inline]
6228    pub fn if_exists(&self) -> Option<IfExists> {
6229        support::child(&self.syntax)
6230    }
6231    #[inline]
6232    pub fn drop_token(&self) -> Option<SyntaxToken> {
6233        support::token(&self.syntax, SyntaxKind::DROP_KW)
6234    }
6235    #[inline]
6236    pub fn identity_token(&self) -> Option<SyntaxToken> {
6237        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
6238    }
6239}
6240
6241#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6242pub struct DropIndex {
6243    pub(crate) syntax: SyntaxNode,
6244}
6245impl DropIndex {
6246    #[inline]
6247    pub fn if_exists(&self) -> Option<IfExists> {
6248        support::child(&self.syntax)
6249    }
6250    #[inline]
6251    pub fn paths(&self) -> AstChildren<Path> {
6252        support::children(&self.syntax)
6253    }
6254    #[inline]
6255    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6256        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6257    }
6258    #[inline]
6259    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6260        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6261    }
6262    #[inline]
6263    pub fn drop_token(&self) -> Option<SyntaxToken> {
6264        support::token(&self.syntax, SyntaxKind::DROP_KW)
6265    }
6266    #[inline]
6267    pub fn index_token(&self) -> Option<SyntaxToken> {
6268        support::token(&self.syntax, SyntaxKind::INDEX_KW)
6269    }
6270    #[inline]
6271    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6272        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6273    }
6274}
6275
6276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6277pub struct DropLanguage {
6278    pub(crate) syntax: SyntaxNode,
6279}
6280impl DropLanguage {
6281    #[inline]
6282    pub fn if_exists(&self) -> Option<IfExists> {
6283        support::child(&self.syntax)
6284    }
6285    #[inline]
6286    pub fn name_ref(&self) -> Option<NameRef> {
6287        support::child(&self.syntax)
6288    }
6289    #[inline]
6290    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6291        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6292    }
6293    #[inline]
6294    pub fn drop_token(&self) -> Option<SyntaxToken> {
6295        support::token(&self.syntax, SyntaxKind::DROP_KW)
6296    }
6297    #[inline]
6298    pub fn language_token(&self) -> Option<SyntaxToken> {
6299        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6300    }
6301    #[inline]
6302    pub fn procedural_token(&self) -> Option<SyntaxToken> {
6303        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
6304    }
6305    #[inline]
6306    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6307        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6308    }
6309}
6310
6311#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6312pub struct DropMaterializedView {
6313    pub(crate) syntax: SyntaxNode,
6314}
6315impl DropMaterializedView {
6316    #[inline]
6317    pub fn if_exists(&self) -> Option<IfExists> {
6318        support::child(&self.syntax)
6319    }
6320    #[inline]
6321    pub fn paths(&self) -> AstChildren<Path> {
6322        support::children(&self.syntax)
6323    }
6324    #[inline]
6325    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6326        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6327    }
6328    #[inline]
6329    pub fn drop_token(&self) -> Option<SyntaxToken> {
6330        support::token(&self.syntax, SyntaxKind::DROP_KW)
6331    }
6332    #[inline]
6333    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6334        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6335    }
6336    #[inline]
6337    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6338        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6339    }
6340    #[inline]
6341    pub fn view_token(&self) -> Option<SyntaxToken> {
6342        support::token(&self.syntax, SyntaxKind::VIEW_KW)
6343    }
6344}
6345
6346#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6347pub struct DropNotNull {
6348    pub(crate) syntax: SyntaxNode,
6349}
6350impl DropNotNull {
6351    #[inline]
6352    pub fn drop_token(&self) -> Option<SyntaxToken> {
6353        support::token(&self.syntax, SyntaxKind::DROP_KW)
6354    }
6355    #[inline]
6356    pub fn not_token(&self) -> Option<SyntaxToken> {
6357        support::token(&self.syntax, SyntaxKind::NOT_KW)
6358    }
6359    #[inline]
6360    pub fn null_token(&self) -> Option<SyntaxToken> {
6361        support::token(&self.syntax, SyntaxKind::NULL_KW)
6362    }
6363}
6364
6365#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6366pub struct DropOpClassOption {
6367    pub(crate) syntax: SyntaxNode,
6368}
6369impl DropOpClassOption {
6370    #[inline]
6371    pub fn literal(&self) -> Option<Literal> {
6372        support::child(&self.syntax)
6373    }
6374    #[inline]
6375    pub fn param_list(&self) -> Option<ParamList> {
6376        support::child(&self.syntax)
6377    }
6378    #[inline]
6379    pub fn function_token(&self) -> Option<SyntaxToken> {
6380        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6381    }
6382    #[inline]
6383    pub fn operator_token(&self) -> Option<SyntaxToken> {
6384        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6385    }
6386}
6387
6388#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6389pub struct DropOpClassOptionList {
6390    pub(crate) syntax: SyntaxNode,
6391}
6392impl DropOpClassOptionList {
6393    #[inline]
6394    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
6395        support::children(&self.syntax)
6396    }
6397}
6398
6399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6400pub struct DropOpClassOptions {
6401    pub(crate) syntax: SyntaxNode,
6402}
6403impl DropOpClassOptions {
6404    #[inline]
6405    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
6406        support::child(&self.syntax)
6407    }
6408    #[inline]
6409    pub fn drop_token(&self) -> Option<SyntaxToken> {
6410        support::token(&self.syntax, SyntaxKind::DROP_KW)
6411    }
6412}
6413
6414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6415pub struct DropOperator {
6416    pub(crate) syntax: SyntaxNode,
6417}
6418impl DropOperator {
6419    #[inline]
6420    pub fn if_exists(&self) -> Option<IfExists> {
6421        support::child(&self.syntax)
6422    }
6423    #[inline]
6424    pub fn op_sig_list(&self) -> Option<OpSigList> {
6425        support::child(&self.syntax)
6426    }
6427    #[inline]
6428    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6429        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6430    }
6431    #[inline]
6432    pub fn drop_token(&self) -> Option<SyntaxToken> {
6433        support::token(&self.syntax, SyntaxKind::DROP_KW)
6434    }
6435    #[inline]
6436    pub fn operator_token(&self) -> Option<SyntaxToken> {
6437        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6438    }
6439    #[inline]
6440    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6441        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6442    }
6443}
6444
6445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6446pub struct DropOperatorClass {
6447    pub(crate) syntax: SyntaxNode,
6448}
6449impl DropOperatorClass {
6450    #[inline]
6451    pub fn if_exists(&self) -> Option<IfExists> {
6452        support::child(&self.syntax)
6453    }
6454    #[inline]
6455    pub fn name_ref(&self) -> Option<NameRef> {
6456        support::child(&self.syntax)
6457    }
6458    #[inline]
6459    pub fn path(&self) -> Option<Path> {
6460        support::child(&self.syntax)
6461    }
6462    #[inline]
6463    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6464        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6465    }
6466    #[inline]
6467    pub fn class_token(&self) -> Option<SyntaxToken> {
6468        support::token(&self.syntax, SyntaxKind::CLASS_KW)
6469    }
6470    #[inline]
6471    pub fn drop_token(&self) -> Option<SyntaxToken> {
6472        support::token(&self.syntax, SyntaxKind::DROP_KW)
6473    }
6474    #[inline]
6475    pub fn operator_token(&self) -> Option<SyntaxToken> {
6476        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6477    }
6478    #[inline]
6479    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6480        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6481    }
6482    #[inline]
6483    pub fn using_token(&self) -> Option<SyntaxToken> {
6484        support::token(&self.syntax, SyntaxKind::USING_KW)
6485    }
6486}
6487
6488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6489pub struct DropOperatorFamily {
6490    pub(crate) syntax: SyntaxNode,
6491}
6492impl DropOperatorFamily {
6493    #[inline]
6494    pub fn if_exists(&self) -> Option<IfExists> {
6495        support::child(&self.syntax)
6496    }
6497    #[inline]
6498    pub fn name_ref(&self) -> Option<NameRef> {
6499        support::child(&self.syntax)
6500    }
6501    #[inline]
6502    pub fn path(&self) -> Option<Path> {
6503        support::child(&self.syntax)
6504    }
6505    #[inline]
6506    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6507        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6508    }
6509    #[inline]
6510    pub fn drop_token(&self) -> Option<SyntaxToken> {
6511        support::token(&self.syntax, SyntaxKind::DROP_KW)
6512    }
6513    #[inline]
6514    pub fn family_token(&self) -> Option<SyntaxToken> {
6515        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
6516    }
6517    #[inline]
6518    pub fn operator_token(&self) -> Option<SyntaxToken> {
6519        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6520    }
6521    #[inline]
6522    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6523        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6524    }
6525    #[inline]
6526    pub fn using_token(&self) -> Option<SyntaxToken> {
6527        support::token(&self.syntax, SyntaxKind::USING_KW)
6528    }
6529}
6530
6531#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6532pub struct DropOwned {
6533    pub(crate) syntax: SyntaxNode,
6534}
6535impl DropOwned {
6536    #[inline]
6537    pub fn role_ref_list(&self) -> Option<RoleRefList> {
6538        support::child(&self.syntax)
6539    }
6540    #[inline]
6541    pub fn by_token(&self) -> Option<SyntaxToken> {
6542        support::token(&self.syntax, SyntaxKind::BY_KW)
6543    }
6544    #[inline]
6545    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6546        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6547    }
6548    #[inline]
6549    pub fn drop_token(&self) -> Option<SyntaxToken> {
6550        support::token(&self.syntax, SyntaxKind::DROP_KW)
6551    }
6552    #[inline]
6553    pub fn owned_token(&self) -> Option<SyntaxToken> {
6554        support::token(&self.syntax, SyntaxKind::OWNED_KW)
6555    }
6556    #[inline]
6557    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6558        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6559    }
6560}
6561
6562#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6563pub struct DropPolicy {
6564    pub(crate) syntax: SyntaxNode,
6565}
6566impl DropPolicy {
6567    #[inline]
6568    pub fn if_exists(&self) -> Option<IfExists> {
6569        support::child(&self.syntax)
6570    }
6571    #[inline]
6572    pub fn name_ref(&self) -> Option<NameRef> {
6573        support::child(&self.syntax)
6574    }
6575    #[inline]
6576    pub fn on_table(&self) -> Option<OnTable> {
6577        support::child(&self.syntax)
6578    }
6579    #[inline]
6580    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6581        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6582    }
6583    #[inline]
6584    pub fn drop_token(&self) -> Option<SyntaxToken> {
6585        support::token(&self.syntax, SyntaxKind::DROP_KW)
6586    }
6587    #[inline]
6588    pub fn policy_token(&self) -> Option<SyntaxToken> {
6589        support::token(&self.syntax, SyntaxKind::POLICY_KW)
6590    }
6591    #[inline]
6592    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6593        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6594    }
6595}
6596
6597#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6598pub struct DropProcedure {
6599    pub(crate) syntax: SyntaxNode,
6600}
6601impl DropProcedure {
6602    #[inline]
6603    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6604        support::child(&self.syntax)
6605    }
6606    #[inline]
6607    pub fn if_exists(&self) -> Option<IfExists> {
6608        support::child(&self.syntax)
6609    }
6610    #[inline]
6611    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6612        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6613    }
6614    #[inline]
6615    pub fn drop_token(&self) -> Option<SyntaxToken> {
6616        support::token(&self.syntax, SyntaxKind::DROP_KW)
6617    }
6618    #[inline]
6619    pub fn procedure_token(&self) -> Option<SyntaxToken> {
6620        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
6621    }
6622    #[inline]
6623    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6624        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6625    }
6626}
6627
6628#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6629pub struct DropPublication {
6630    pub(crate) syntax: SyntaxNode,
6631}
6632impl DropPublication {
6633    #[inline]
6634    pub fn if_exists(&self) -> Option<IfExists> {
6635        support::child(&self.syntax)
6636    }
6637    #[inline]
6638    pub fn name_refs(&self) -> AstChildren<NameRef> {
6639        support::children(&self.syntax)
6640    }
6641    #[inline]
6642    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6643        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6644    }
6645    #[inline]
6646    pub fn drop_token(&self) -> Option<SyntaxToken> {
6647        support::token(&self.syntax, SyntaxKind::DROP_KW)
6648    }
6649    #[inline]
6650    pub fn publication_token(&self) -> Option<SyntaxToken> {
6651        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
6652    }
6653    #[inline]
6654    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6655        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6656    }
6657}
6658
6659#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6660pub struct DropRole {
6661    pub(crate) syntax: SyntaxNode,
6662}
6663impl DropRole {
6664    #[inline]
6665    pub fn if_exists(&self) -> Option<IfExists> {
6666        support::child(&self.syntax)
6667    }
6668    #[inline]
6669    pub fn name_refs(&self) -> AstChildren<NameRef> {
6670        support::children(&self.syntax)
6671    }
6672    #[inline]
6673    pub fn drop_token(&self) -> Option<SyntaxToken> {
6674        support::token(&self.syntax, SyntaxKind::DROP_KW)
6675    }
6676    #[inline]
6677    pub fn role_token(&self) -> Option<SyntaxToken> {
6678        support::token(&self.syntax, SyntaxKind::ROLE_KW)
6679    }
6680}
6681
6682#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6683pub struct DropRoutine {
6684    pub(crate) syntax: SyntaxNode,
6685}
6686impl DropRoutine {
6687    #[inline]
6688    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6689        support::child(&self.syntax)
6690    }
6691    #[inline]
6692    pub fn if_exists(&self) -> Option<IfExists> {
6693        support::child(&self.syntax)
6694    }
6695    #[inline]
6696    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6697        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6698    }
6699    #[inline]
6700    pub fn drop_token(&self) -> Option<SyntaxToken> {
6701        support::token(&self.syntax, SyntaxKind::DROP_KW)
6702    }
6703    #[inline]
6704    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6705        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6706    }
6707    #[inline]
6708    pub fn routine_token(&self) -> Option<SyntaxToken> {
6709        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
6710    }
6711}
6712
6713#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6714pub struct DropRule {
6715    pub(crate) syntax: SyntaxNode,
6716}
6717impl DropRule {
6718    #[inline]
6719    pub fn if_exists(&self) -> Option<IfExists> {
6720        support::child(&self.syntax)
6721    }
6722    #[inline]
6723    pub fn name_ref(&self) -> Option<NameRef> {
6724        support::child(&self.syntax)
6725    }
6726    #[inline]
6727    pub fn on_table(&self) -> Option<OnTable> {
6728        support::child(&self.syntax)
6729    }
6730    #[inline]
6731    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6732        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6733    }
6734    #[inline]
6735    pub fn drop_token(&self) -> Option<SyntaxToken> {
6736        support::token(&self.syntax, SyntaxKind::DROP_KW)
6737    }
6738    #[inline]
6739    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6740        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6741    }
6742    #[inline]
6743    pub fn rule_token(&self) -> Option<SyntaxToken> {
6744        support::token(&self.syntax, SyntaxKind::RULE_KW)
6745    }
6746}
6747
6748#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6749pub struct DropSchema {
6750    pub(crate) syntax: SyntaxNode,
6751}
6752impl DropSchema {
6753    #[inline]
6754    pub fn if_exists(&self) -> Option<IfExists> {
6755        support::child(&self.syntax)
6756    }
6757    #[inline]
6758    pub fn name_refs(&self) -> AstChildren<NameRef> {
6759        support::children(&self.syntax)
6760    }
6761    #[inline]
6762    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6763        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6764    }
6765    #[inline]
6766    pub fn drop_token(&self) -> Option<SyntaxToken> {
6767        support::token(&self.syntax, SyntaxKind::DROP_KW)
6768    }
6769    #[inline]
6770    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6771        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6772    }
6773    #[inline]
6774    pub fn schema_token(&self) -> Option<SyntaxToken> {
6775        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
6776    }
6777}
6778
6779#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6780pub struct DropSequence {
6781    pub(crate) syntax: SyntaxNode,
6782}
6783impl DropSequence {
6784    #[inline]
6785    pub fn if_exists(&self) -> Option<IfExists> {
6786        support::child(&self.syntax)
6787    }
6788    #[inline]
6789    pub fn paths(&self) -> AstChildren<Path> {
6790        support::children(&self.syntax)
6791    }
6792    #[inline]
6793    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6794        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6795    }
6796    #[inline]
6797    pub fn drop_token(&self) -> Option<SyntaxToken> {
6798        support::token(&self.syntax, SyntaxKind::DROP_KW)
6799    }
6800    #[inline]
6801    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6802        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6803    }
6804    #[inline]
6805    pub fn sequence_token(&self) -> Option<SyntaxToken> {
6806        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
6807    }
6808}
6809
6810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6811pub struct DropServer {
6812    pub(crate) syntax: SyntaxNode,
6813}
6814impl DropServer {
6815    #[inline]
6816    pub fn if_exists(&self) -> Option<IfExists> {
6817        support::child(&self.syntax)
6818    }
6819    #[inline]
6820    pub fn name_ref(&self) -> Option<NameRef> {
6821        support::child(&self.syntax)
6822    }
6823    #[inline]
6824    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6825        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6826    }
6827    #[inline]
6828    pub fn drop_token(&self) -> Option<SyntaxToken> {
6829        support::token(&self.syntax, SyntaxKind::DROP_KW)
6830    }
6831    #[inline]
6832    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6833        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6834    }
6835    #[inline]
6836    pub fn server_token(&self) -> Option<SyntaxToken> {
6837        support::token(&self.syntax, SyntaxKind::SERVER_KW)
6838    }
6839}
6840
6841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6842pub struct DropStatistics {
6843    pub(crate) syntax: SyntaxNode,
6844}
6845impl DropStatistics {
6846    #[inline]
6847    pub fn if_exists(&self) -> Option<IfExists> {
6848        support::child(&self.syntax)
6849    }
6850    #[inline]
6851    pub fn paths(&self) -> AstChildren<Path> {
6852        support::children(&self.syntax)
6853    }
6854    #[inline]
6855    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6856        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6857    }
6858    #[inline]
6859    pub fn drop_token(&self) -> Option<SyntaxToken> {
6860        support::token(&self.syntax, SyntaxKind::DROP_KW)
6861    }
6862    #[inline]
6863    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6864        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6865    }
6866    #[inline]
6867    pub fn statistics_token(&self) -> Option<SyntaxToken> {
6868        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
6869    }
6870}
6871
6872#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6873pub struct DropSubscription {
6874    pub(crate) syntax: SyntaxNode,
6875}
6876impl DropSubscription {
6877    #[inline]
6878    pub fn if_exists(&self) -> Option<IfExists> {
6879        support::child(&self.syntax)
6880    }
6881    #[inline]
6882    pub fn name_ref(&self) -> Option<NameRef> {
6883        support::child(&self.syntax)
6884    }
6885    #[inline]
6886    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6887        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6888    }
6889    #[inline]
6890    pub fn drop_token(&self) -> Option<SyntaxToken> {
6891        support::token(&self.syntax, SyntaxKind::DROP_KW)
6892    }
6893    #[inline]
6894    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6895        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6896    }
6897    #[inline]
6898    pub fn subscription_token(&self) -> Option<SyntaxToken> {
6899        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
6900    }
6901}
6902
6903#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6904pub struct DropTable {
6905    pub(crate) syntax: SyntaxNode,
6906}
6907impl DropTable {
6908    #[inline]
6909    pub fn if_exists(&self) -> Option<IfExists> {
6910        support::child(&self.syntax)
6911    }
6912    #[inline]
6913    pub fn path(&self) -> Option<Path> {
6914        support::child(&self.syntax)
6915    }
6916    #[inline]
6917    pub fn comma_token(&self) -> Option<SyntaxToken> {
6918        support::token(&self.syntax, SyntaxKind::COMMA)
6919    }
6920    #[inline]
6921    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6922        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6923    }
6924    #[inline]
6925    pub fn drop_token(&self) -> Option<SyntaxToken> {
6926        support::token(&self.syntax, SyntaxKind::DROP_KW)
6927    }
6928    #[inline]
6929    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6930        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6931    }
6932    #[inline]
6933    pub fn table_token(&self) -> Option<SyntaxToken> {
6934        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6935    }
6936}
6937
6938#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6939pub struct DropTablespace {
6940    pub(crate) syntax: SyntaxNode,
6941}
6942impl DropTablespace {
6943    #[inline]
6944    pub fn if_exists(&self) -> Option<IfExists> {
6945        support::child(&self.syntax)
6946    }
6947    #[inline]
6948    pub fn name_ref(&self) -> Option<NameRef> {
6949        support::child(&self.syntax)
6950    }
6951    #[inline]
6952    pub fn drop_token(&self) -> Option<SyntaxToken> {
6953        support::token(&self.syntax, SyntaxKind::DROP_KW)
6954    }
6955    #[inline]
6956    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
6957        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
6958    }
6959}
6960
6961#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6962pub struct DropTextSearchConfig {
6963    pub(crate) syntax: SyntaxNode,
6964}
6965impl DropTextSearchConfig {
6966    #[inline]
6967    pub fn if_exists(&self) -> Option<IfExists> {
6968        support::child(&self.syntax)
6969    }
6970    #[inline]
6971    pub fn path(&self) -> Option<Path> {
6972        support::child(&self.syntax)
6973    }
6974    #[inline]
6975    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6976        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6977    }
6978    #[inline]
6979    pub fn configuration_token(&self) -> Option<SyntaxToken> {
6980        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
6981    }
6982    #[inline]
6983    pub fn drop_token(&self) -> Option<SyntaxToken> {
6984        support::token(&self.syntax, SyntaxKind::DROP_KW)
6985    }
6986    #[inline]
6987    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6988        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6989    }
6990    #[inline]
6991    pub fn search_token(&self) -> Option<SyntaxToken> {
6992        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6993    }
6994    #[inline]
6995    pub fn text_token(&self) -> Option<SyntaxToken> {
6996        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6997    }
6998}
6999
7000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7001pub struct DropTextSearchDict {
7002    pub(crate) syntax: SyntaxNode,
7003}
7004impl DropTextSearchDict {
7005    #[inline]
7006    pub fn if_exists(&self) -> Option<IfExists> {
7007        support::child(&self.syntax)
7008    }
7009    #[inline]
7010    pub fn path(&self) -> Option<Path> {
7011        support::child(&self.syntax)
7012    }
7013    #[inline]
7014    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7015        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7016    }
7017    #[inline]
7018    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
7019        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
7020    }
7021    #[inline]
7022    pub fn drop_token(&self) -> Option<SyntaxToken> {
7023        support::token(&self.syntax, SyntaxKind::DROP_KW)
7024    }
7025    #[inline]
7026    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7027        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7028    }
7029    #[inline]
7030    pub fn search_token(&self) -> Option<SyntaxToken> {
7031        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7032    }
7033    #[inline]
7034    pub fn text_token(&self) -> Option<SyntaxToken> {
7035        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7036    }
7037}
7038
7039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7040pub struct DropTextSearchParser {
7041    pub(crate) syntax: SyntaxNode,
7042}
7043impl DropTextSearchParser {
7044    #[inline]
7045    pub fn if_exists(&self) -> Option<IfExists> {
7046        support::child(&self.syntax)
7047    }
7048    #[inline]
7049    pub fn path(&self) -> Option<Path> {
7050        support::child(&self.syntax)
7051    }
7052    #[inline]
7053    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7054        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7055    }
7056    #[inline]
7057    pub fn drop_token(&self) -> Option<SyntaxToken> {
7058        support::token(&self.syntax, SyntaxKind::DROP_KW)
7059    }
7060    #[inline]
7061    pub fn parser_token(&self) -> Option<SyntaxToken> {
7062        support::token(&self.syntax, SyntaxKind::PARSER_KW)
7063    }
7064    #[inline]
7065    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7066        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7067    }
7068    #[inline]
7069    pub fn search_token(&self) -> Option<SyntaxToken> {
7070        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7071    }
7072    #[inline]
7073    pub fn text_token(&self) -> Option<SyntaxToken> {
7074        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7075    }
7076}
7077
7078#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7079pub struct DropTextSearchTemplate {
7080    pub(crate) syntax: SyntaxNode,
7081}
7082impl DropTextSearchTemplate {
7083    #[inline]
7084    pub fn if_exists(&self) -> Option<IfExists> {
7085        support::child(&self.syntax)
7086    }
7087    #[inline]
7088    pub fn path(&self) -> Option<Path> {
7089        support::child(&self.syntax)
7090    }
7091    #[inline]
7092    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7093        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7094    }
7095    #[inline]
7096    pub fn drop_token(&self) -> Option<SyntaxToken> {
7097        support::token(&self.syntax, SyntaxKind::DROP_KW)
7098    }
7099    #[inline]
7100    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7101        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7102    }
7103    #[inline]
7104    pub fn search_token(&self) -> Option<SyntaxToken> {
7105        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7106    }
7107    #[inline]
7108    pub fn template_token(&self) -> Option<SyntaxToken> {
7109        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
7110    }
7111    #[inline]
7112    pub fn text_token(&self) -> Option<SyntaxToken> {
7113        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7114    }
7115}
7116
7117#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7118pub struct DropTransform {
7119    pub(crate) syntax: SyntaxNode,
7120}
7121impl DropTransform {
7122    #[inline]
7123    pub fn if_exists(&self) -> Option<IfExists> {
7124        support::child(&self.syntax)
7125    }
7126    #[inline]
7127    pub fn language(&self) -> Option<NameRef> {
7128        support::child(&self.syntax)
7129    }
7130    #[inline]
7131    pub fn ty(&self) -> Option<Type> {
7132        support::child(&self.syntax)
7133    }
7134    #[inline]
7135    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7136        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7137    }
7138    #[inline]
7139    pub fn drop_token(&self) -> Option<SyntaxToken> {
7140        support::token(&self.syntax, SyntaxKind::DROP_KW)
7141    }
7142    #[inline]
7143    pub fn for_token(&self) -> Option<SyntaxToken> {
7144        support::token(&self.syntax, SyntaxKind::FOR_KW)
7145    }
7146    #[inline]
7147    pub fn language_token(&self) -> Option<SyntaxToken> {
7148        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
7149    }
7150    #[inline]
7151    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7152        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7153    }
7154    #[inline]
7155    pub fn transform_token(&self) -> Option<SyntaxToken> {
7156        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
7157    }
7158}
7159
7160#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7161pub struct DropTrigger {
7162    pub(crate) syntax: SyntaxNode,
7163}
7164impl DropTrigger {
7165    #[inline]
7166    pub fn if_exists(&self) -> Option<IfExists> {
7167        support::child(&self.syntax)
7168    }
7169    #[inline]
7170    pub fn on_table(&self) -> Option<OnTable> {
7171        support::child(&self.syntax)
7172    }
7173    #[inline]
7174    pub fn path(&self) -> Option<Path> {
7175        support::child(&self.syntax)
7176    }
7177    #[inline]
7178    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7179        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7180    }
7181    #[inline]
7182    pub fn drop_token(&self) -> Option<SyntaxToken> {
7183        support::token(&self.syntax, SyntaxKind::DROP_KW)
7184    }
7185    #[inline]
7186    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7187        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7188    }
7189    #[inline]
7190    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7191        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7192    }
7193}
7194
7195#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7196pub struct DropType {
7197    pub(crate) syntax: SyntaxNode,
7198}
7199impl DropType {
7200    #[inline]
7201    pub fn if_exists(&self) -> Option<IfExists> {
7202        support::child(&self.syntax)
7203    }
7204    #[inline]
7205    pub fn paths(&self) -> AstChildren<Path> {
7206        support::children(&self.syntax)
7207    }
7208    #[inline]
7209    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7210        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7211    }
7212    #[inline]
7213    pub fn drop_token(&self) -> Option<SyntaxToken> {
7214        support::token(&self.syntax, SyntaxKind::DROP_KW)
7215    }
7216    #[inline]
7217    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7218        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7219    }
7220    #[inline]
7221    pub fn type_token(&self) -> Option<SyntaxToken> {
7222        support::token(&self.syntax, SyntaxKind::TYPE_KW)
7223    }
7224}
7225
7226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7227pub struct DropUser {
7228    pub(crate) syntax: SyntaxNode,
7229}
7230impl DropUser {
7231    #[inline]
7232    pub fn if_exists(&self) -> Option<IfExists> {
7233        support::child(&self.syntax)
7234    }
7235    #[inline]
7236    pub fn name_refs(&self) -> AstChildren<NameRef> {
7237        support::children(&self.syntax)
7238    }
7239    #[inline]
7240    pub fn drop_token(&self) -> Option<SyntaxToken> {
7241        support::token(&self.syntax, SyntaxKind::DROP_KW)
7242    }
7243    #[inline]
7244    pub fn user_token(&self) -> Option<SyntaxToken> {
7245        support::token(&self.syntax, SyntaxKind::USER_KW)
7246    }
7247}
7248
7249#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7250pub struct DropUserMapping {
7251    pub(crate) syntax: SyntaxNode,
7252}
7253impl DropUserMapping {
7254    #[inline]
7255    pub fn if_exists(&self) -> Option<IfExists> {
7256        support::child(&self.syntax)
7257    }
7258    #[inline]
7259    pub fn role_ref(&self) -> Option<RoleRef> {
7260        support::child(&self.syntax)
7261    }
7262    #[inline]
7263    pub fn server_name(&self) -> Option<ServerName> {
7264        support::child(&self.syntax)
7265    }
7266    #[inline]
7267    pub fn drop_token(&self) -> Option<SyntaxToken> {
7268        support::token(&self.syntax, SyntaxKind::DROP_KW)
7269    }
7270    #[inline]
7271    pub fn for_token(&self) -> Option<SyntaxToken> {
7272        support::token(&self.syntax, SyntaxKind::FOR_KW)
7273    }
7274    #[inline]
7275    pub fn mapping_token(&self) -> Option<SyntaxToken> {
7276        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
7277    }
7278    #[inline]
7279    pub fn user_token(&self) -> Option<SyntaxToken> {
7280        support::token(&self.syntax, SyntaxKind::USER_KW)
7281    }
7282}
7283
7284#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7285pub struct DropView {
7286    pub(crate) syntax: SyntaxNode,
7287}
7288impl DropView {
7289    #[inline]
7290    pub fn if_exists(&self) -> Option<IfExists> {
7291        support::child(&self.syntax)
7292    }
7293    #[inline]
7294    pub fn path(&self) -> Option<Path> {
7295        support::child(&self.syntax)
7296    }
7297    #[inline]
7298    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7299        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7300    }
7301    #[inline]
7302    pub fn drop_token(&self) -> Option<SyntaxToken> {
7303        support::token(&self.syntax, SyntaxKind::DROP_KW)
7304    }
7305    #[inline]
7306    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7307        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7308    }
7309    #[inline]
7310    pub fn view_token(&self) -> Option<SyntaxToken> {
7311        support::token(&self.syntax, SyntaxKind::VIEW_KW)
7312    }
7313}
7314
7315#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7316pub struct ElseClause {
7317    pub(crate) syntax: SyntaxNode,
7318}
7319impl ElseClause {
7320    #[inline]
7321    pub fn expr(&self) -> Option<Expr> {
7322        support::child(&self.syntax)
7323    }
7324    #[inline]
7325    pub fn else_token(&self) -> Option<SyntaxToken> {
7326        support::token(&self.syntax, SyntaxKind::ELSE_KW)
7327    }
7328}
7329
7330#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7331pub struct EnableAlwaysRule {
7332    pub(crate) syntax: SyntaxNode,
7333}
7334impl EnableAlwaysRule {
7335    #[inline]
7336    pub fn always_token(&self) -> Option<SyntaxToken> {
7337        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7338    }
7339    #[inline]
7340    pub fn enable_token(&self) -> Option<SyntaxToken> {
7341        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7342    }
7343    #[inline]
7344    pub fn rule_token(&self) -> Option<SyntaxToken> {
7345        support::token(&self.syntax, SyntaxKind::RULE_KW)
7346    }
7347}
7348
7349#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7350pub struct EnableAlwaysTrigger {
7351    pub(crate) syntax: SyntaxNode,
7352}
7353impl EnableAlwaysTrigger {
7354    #[inline]
7355    pub fn always_token(&self) -> Option<SyntaxToken> {
7356        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7357    }
7358    #[inline]
7359    pub fn enable_token(&self) -> Option<SyntaxToken> {
7360        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7361    }
7362    #[inline]
7363    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7364        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7365    }
7366}
7367
7368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7369pub struct EnableReplicaRule {
7370    pub(crate) syntax: SyntaxNode,
7371}
7372impl EnableReplicaRule {
7373    #[inline]
7374    pub fn enable_token(&self) -> Option<SyntaxToken> {
7375        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7376    }
7377    #[inline]
7378    pub fn replica_token(&self) -> Option<SyntaxToken> {
7379        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7380    }
7381    #[inline]
7382    pub fn rule_token(&self) -> Option<SyntaxToken> {
7383        support::token(&self.syntax, SyntaxKind::RULE_KW)
7384    }
7385}
7386
7387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7388pub struct EnableReplicaTrigger {
7389    pub(crate) syntax: SyntaxNode,
7390}
7391impl EnableReplicaTrigger {
7392    #[inline]
7393    pub fn enable_token(&self) -> Option<SyntaxToken> {
7394        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7395    }
7396    #[inline]
7397    pub fn replica_token(&self) -> Option<SyntaxToken> {
7398        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7399    }
7400    #[inline]
7401    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7402        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7403    }
7404}
7405
7406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7407pub struct EnableRls {
7408    pub(crate) syntax: SyntaxNode,
7409}
7410impl EnableRls {
7411    #[inline]
7412    pub fn enable_token(&self) -> Option<SyntaxToken> {
7413        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7414    }
7415    #[inline]
7416    pub fn level_token(&self) -> Option<SyntaxToken> {
7417        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7418    }
7419    #[inline]
7420    pub fn row_token(&self) -> Option<SyntaxToken> {
7421        support::token(&self.syntax, SyntaxKind::ROW_KW)
7422    }
7423    #[inline]
7424    pub fn security_token(&self) -> Option<SyntaxToken> {
7425        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7426    }
7427}
7428
7429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7430pub struct EnableRule {
7431    pub(crate) syntax: SyntaxNode,
7432}
7433impl EnableRule {
7434    #[inline]
7435    pub fn enable_token(&self) -> Option<SyntaxToken> {
7436        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7437    }
7438    #[inline]
7439    pub fn rule_token(&self) -> Option<SyntaxToken> {
7440        support::token(&self.syntax, SyntaxKind::RULE_KW)
7441    }
7442}
7443
7444#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7445pub struct EnableTrigger {
7446    pub(crate) syntax: SyntaxNode,
7447}
7448impl EnableTrigger {
7449    #[inline]
7450    pub fn enable_token(&self) -> Option<SyntaxToken> {
7451        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7452    }
7453    #[inline]
7454    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7455        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7456    }
7457}
7458
7459#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7460pub struct Enforced {
7461    pub(crate) syntax: SyntaxNode,
7462}
7463impl Enforced {
7464    #[inline]
7465    pub fn enforced_token(&self) -> Option<SyntaxToken> {
7466        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
7467    }
7468}
7469
7470#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7471pub struct EventTriggerWhen {
7472    pub(crate) syntax: SyntaxNode,
7473}
7474impl EventTriggerWhen {
7475    #[inline]
7476    pub fn literals(&self) -> AstChildren<Literal> {
7477        support::children(&self.syntax)
7478    }
7479    #[inline]
7480    pub fn name_ref(&self) -> Option<NameRef> {
7481        support::child(&self.syntax)
7482    }
7483    #[inline]
7484    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7485        support::token(&self.syntax, SyntaxKind::L_PAREN)
7486    }
7487    #[inline]
7488    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7489        support::token(&self.syntax, SyntaxKind::R_PAREN)
7490    }
7491    #[inline]
7492    pub fn in_token(&self) -> Option<SyntaxToken> {
7493        support::token(&self.syntax, SyntaxKind::IN_KW)
7494    }
7495}
7496
7497#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7498pub struct EventTriggerWhenClause {
7499    pub(crate) syntax: SyntaxNode,
7500}
7501impl EventTriggerWhenClause {
7502    #[inline]
7503    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
7504        support::children(&self.syntax)
7505    }
7506    #[inline]
7507    pub fn when_token(&self) -> Option<SyntaxToken> {
7508        support::token(&self.syntax, SyntaxKind::WHEN_KW)
7509    }
7510}
7511
7512#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7513pub struct ExceptTables {
7514    pub(crate) syntax: SyntaxNode,
7515}
7516impl ExceptTables {
7517    #[inline]
7518    pub fn name_refs(&self) -> AstChildren<NameRef> {
7519        support::children(&self.syntax)
7520    }
7521    #[inline]
7522    pub fn except_token(&self) -> Option<SyntaxToken> {
7523        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
7524    }
7525}
7526
7527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7528pub struct ExcludeConstraint {
7529    pub(crate) syntax: SyntaxNode,
7530}
7531impl ExcludeConstraint {
7532    #[inline]
7533    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
7534        support::child(&self.syntax)
7535    }
7536    #[inline]
7537    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
7538        support::child(&self.syntax)
7539    }
7540    #[inline]
7541    pub fn constraint_name(&self) -> Option<ConstraintName> {
7542        support::child(&self.syntax)
7543    }
7544    #[inline]
7545    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
7546        support::child(&self.syntax)
7547    }
7548    #[inline]
7549    pub fn exclude_token(&self) -> Option<SyntaxToken> {
7550        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
7551    }
7552}
7553
7554#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7555pub struct Execute {
7556    pub(crate) syntax: SyntaxNode,
7557}
7558impl Execute {
7559    #[inline]
7560    pub fn arg_list(&self) -> Option<ArgList> {
7561        support::child(&self.syntax)
7562    }
7563    #[inline]
7564    pub fn name_ref(&self) -> Option<NameRef> {
7565        support::child(&self.syntax)
7566    }
7567    #[inline]
7568    pub fn execute_token(&self) -> Option<SyntaxToken> {
7569        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
7570    }
7571}
7572
7573#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7574pub struct ExistsFn {
7575    pub(crate) syntax: SyntaxNode,
7576}
7577impl ExistsFn {
7578    #[inline]
7579    pub fn select_variant(&self) -> Option<SelectVariant> {
7580        support::child(&self.syntax)
7581    }
7582    #[inline]
7583    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7584        support::token(&self.syntax, SyntaxKind::L_PAREN)
7585    }
7586    #[inline]
7587    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7588        support::token(&self.syntax, SyntaxKind::R_PAREN)
7589    }
7590    #[inline]
7591    pub fn exists_token(&self) -> Option<SyntaxToken> {
7592        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
7593    }
7594}
7595
7596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7597pub struct Explain {
7598    pub(crate) syntax: SyntaxNode,
7599}
7600impl Explain {
7601    #[inline]
7602    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
7603        support::child(&self.syntax)
7604    }
7605    #[inline]
7606    pub fn analyse_token(&self) -> Option<SyntaxToken> {
7607        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
7608    }
7609    #[inline]
7610    pub fn analyze_token(&self) -> Option<SyntaxToken> {
7611        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
7612    }
7613    #[inline]
7614    pub fn explain_token(&self) -> Option<SyntaxToken> {
7615        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
7616    }
7617    #[inline]
7618    pub fn verbose_token(&self) -> Option<SyntaxToken> {
7619        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
7620    }
7621}
7622
7623#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7624pub struct ExprAsName {
7625    pub(crate) syntax: SyntaxNode,
7626}
7627impl ExprAsName {
7628    #[inline]
7629    pub fn as_name(&self) -> Option<AsName> {
7630        support::child(&self.syntax)
7631    }
7632    #[inline]
7633    pub fn expr(&self) -> Option<Expr> {
7634        support::child(&self.syntax)
7635    }
7636}
7637
7638#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7639pub struct ExprType {
7640    pub(crate) syntax: SyntaxNode,
7641}
7642impl ExprType {
7643    #[inline]
7644    pub fn expr(&self) -> Option<Expr> {
7645        support::child(&self.syntax)
7646    }
7647}
7648
7649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7650pub struct ExtractFn {
7651    pub(crate) syntax: SyntaxNode,
7652}
7653impl ExtractFn {
7654    #[inline]
7655    pub fn expr(&self) -> Option<Expr> {
7656        support::child(&self.syntax)
7657    }
7658    #[inline]
7659    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7660        support::token(&self.syntax, SyntaxKind::L_PAREN)
7661    }
7662    #[inline]
7663    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7664        support::token(&self.syntax, SyntaxKind::R_PAREN)
7665    }
7666    #[inline]
7667    pub fn day_token(&self) -> Option<SyntaxToken> {
7668        support::token(&self.syntax, SyntaxKind::DAY_KW)
7669    }
7670    #[inline]
7671    pub fn extract_token(&self) -> Option<SyntaxToken> {
7672        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
7673    }
7674    #[inline]
7675    pub fn from_token(&self) -> Option<SyntaxToken> {
7676        support::token(&self.syntax, SyntaxKind::FROM_KW)
7677    }
7678    #[inline]
7679    pub fn hour_token(&self) -> Option<SyntaxToken> {
7680        support::token(&self.syntax, SyntaxKind::HOUR_KW)
7681    }
7682    #[inline]
7683    pub fn ident_token(&self) -> Option<SyntaxToken> {
7684        support::token(&self.syntax, SyntaxKind::IDENT)
7685    }
7686    #[inline]
7687    pub fn minute_token(&self) -> Option<SyntaxToken> {
7688        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
7689    }
7690    #[inline]
7691    pub fn month_token(&self) -> Option<SyntaxToken> {
7692        support::token(&self.syntax, SyntaxKind::MONTH_KW)
7693    }
7694    #[inline]
7695    pub fn second_token(&self) -> Option<SyntaxToken> {
7696        support::token(&self.syntax, SyntaxKind::SECOND_KW)
7697    }
7698    #[inline]
7699    pub fn string_token(&self) -> Option<SyntaxToken> {
7700        support::token(&self.syntax, SyntaxKind::STRING_KW)
7701    }
7702    #[inline]
7703    pub fn year_token(&self) -> Option<SyntaxToken> {
7704        support::token(&self.syntax, SyntaxKind::YEAR_KW)
7705    }
7706}
7707
7708#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7709pub struct FatArrow {
7710    pub(crate) syntax: SyntaxNode,
7711}
7712impl FatArrow {
7713    #[inline]
7714    pub fn eq_token(&self) -> Option<SyntaxToken> {
7715        support::token(&self.syntax, SyntaxKind::EQ)
7716    }
7717    #[inline]
7718    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7719        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7720    }
7721}
7722
7723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7724pub struct FdwOption {
7725    pub(crate) syntax: SyntaxNode,
7726}
7727impl FdwOption {
7728    #[inline]
7729    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
7730        support::child(&self.syntax)
7731    }
7732    #[inline]
7733    pub fn path(&self) -> Option<Path> {
7734        support::child(&self.syntax)
7735    }
7736    #[inline]
7737    pub fn handler_token(&self) -> Option<SyntaxToken> {
7738        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
7739    }
7740    #[inline]
7741    pub fn no_token(&self) -> Option<SyntaxToken> {
7742        support::token(&self.syntax, SyntaxKind::NO_KW)
7743    }
7744    #[inline]
7745    pub fn options_token(&self) -> Option<SyntaxToken> {
7746        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
7747    }
7748    #[inline]
7749    pub fn validator_token(&self) -> Option<SyntaxToken> {
7750        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
7751    }
7752}
7753
7754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7755pub struct FdwOptionList {
7756    pub(crate) syntax: SyntaxNode,
7757}
7758impl FdwOptionList {
7759    #[inline]
7760    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
7761        support::children(&self.syntax)
7762    }
7763}
7764
7765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7766pub struct Fetch {
7767    pub(crate) syntax: SyntaxNode,
7768}
7769impl Fetch {
7770    #[inline]
7771    pub fn name_ref(&self) -> Option<NameRef> {
7772        support::child(&self.syntax)
7773    }
7774    #[inline]
7775    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7776        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7777    }
7778    #[inline]
7779    pub fn from_token(&self) -> Option<SyntaxToken> {
7780        support::token(&self.syntax, SyntaxKind::FROM_KW)
7781    }
7782    #[inline]
7783    pub fn in_token(&self) -> Option<SyntaxToken> {
7784        support::token(&self.syntax, SyntaxKind::IN_KW)
7785    }
7786}
7787
7788#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7789pub struct FetchClause {
7790    pub(crate) syntax: SyntaxNode,
7791}
7792impl FetchClause {
7793    #[inline]
7794    pub fn expr(&self) -> Option<Expr> {
7795        support::child(&self.syntax)
7796    }
7797    #[inline]
7798    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7799        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7800    }
7801    #[inline]
7802    pub fn first_token(&self) -> Option<SyntaxToken> {
7803        support::token(&self.syntax, SyntaxKind::FIRST_KW)
7804    }
7805    #[inline]
7806    pub fn next_token(&self) -> Option<SyntaxToken> {
7807        support::token(&self.syntax, SyntaxKind::NEXT_KW)
7808    }
7809    #[inline]
7810    pub fn only_token(&self) -> Option<SyntaxToken> {
7811        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7812    }
7813    #[inline]
7814    pub fn row_token(&self) -> Option<SyntaxToken> {
7815        support::token(&self.syntax, SyntaxKind::ROW_KW)
7816    }
7817    #[inline]
7818    pub fn rows_token(&self) -> Option<SyntaxToken> {
7819        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7820    }
7821    #[inline]
7822    pub fn ties_token(&self) -> Option<SyntaxToken> {
7823        support::token(&self.syntax, SyntaxKind::TIES_KW)
7824    }
7825    #[inline]
7826    pub fn with_token(&self) -> Option<SyntaxToken> {
7827        support::token(&self.syntax, SyntaxKind::WITH_KW)
7828    }
7829}
7830
7831#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7832pub struct FieldExpr {
7833    pub(crate) syntax: SyntaxNode,
7834}
7835impl FieldExpr {
7836    #[inline]
7837    pub fn star_token(&self) -> Option<SyntaxToken> {
7838        support::token(&self.syntax, SyntaxKind::STAR)
7839    }
7840    #[inline]
7841    pub fn dot_token(&self) -> Option<SyntaxToken> {
7842        support::token(&self.syntax, SyntaxKind::DOT)
7843    }
7844}
7845
7846#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7847pub struct FilterClause {
7848    pub(crate) syntax: SyntaxNode,
7849}
7850impl FilterClause {
7851    #[inline]
7852    pub fn expr(&self) -> Option<Expr> {
7853        support::child(&self.syntax)
7854    }
7855    #[inline]
7856    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7857        support::token(&self.syntax, SyntaxKind::L_PAREN)
7858    }
7859    #[inline]
7860    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7861        support::token(&self.syntax, SyntaxKind::R_PAREN)
7862    }
7863    #[inline]
7864    pub fn filter_token(&self) -> Option<SyntaxToken> {
7865        support::token(&self.syntax, SyntaxKind::FILTER_KW)
7866    }
7867    #[inline]
7868    pub fn where_token(&self) -> Option<SyntaxToken> {
7869        support::token(&self.syntax, SyntaxKind::WHERE_KW)
7870    }
7871}
7872
7873#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7874pub struct ForProvider {
7875    pub(crate) syntax: SyntaxNode,
7876}
7877impl ForProvider {
7878    #[inline]
7879    pub fn literal(&self) -> Option<Literal> {
7880        support::child(&self.syntax)
7881    }
7882    #[inline]
7883    pub fn name_ref(&self) -> Option<NameRef> {
7884        support::child(&self.syntax)
7885    }
7886    #[inline]
7887    pub fn for_token(&self) -> Option<SyntaxToken> {
7888        support::token(&self.syntax, SyntaxKind::FOR_KW)
7889    }
7890}
7891
7892#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7893pub struct ForceRls {
7894    pub(crate) syntax: SyntaxNode,
7895}
7896impl ForceRls {
7897    #[inline]
7898    pub fn force_token(&self) -> Option<SyntaxToken> {
7899        support::token(&self.syntax, SyntaxKind::FORCE_KW)
7900    }
7901    #[inline]
7902    pub fn level_token(&self) -> Option<SyntaxToken> {
7903        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7904    }
7905    #[inline]
7906    pub fn row_token(&self) -> Option<SyntaxToken> {
7907        support::token(&self.syntax, SyntaxKind::ROW_KW)
7908    }
7909    #[inline]
7910    pub fn security_token(&self) -> Option<SyntaxToken> {
7911        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7912    }
7913}
7914
7915#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7916pub struct ForeignKeyConstraint {
7917    pub(crate) syntax: SyntaxNode,
7918}
7919impl ForeignKeyConstraint {
7920    #[inline]
7921    pub fn constraint_name(&self) -> Option<ConstraintName> {
7922        support::child(&self.syntax)
7923    }
7924    #[inline]
7925    pub fn match_type(&self) -> Option<MatchType> {
7926        support::child(&self.syntax)
7927    }
7928    #[inline]
7929    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
7930        support::child(&self.syntax)
7931    }
7932    #[inline]
7933    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
7934        support::child(&self.syntax)
7935    }
7936    #[inline]
7937    pub fn path(&self) -> Option<Path> {
7938        support::child(&self.syntax)
7939    }
7940    #[inline]
7941    pub fn foreign_token(&self) -> Option<SyntaxToken> {
7942        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
7943    }
7944    #[inline]
7945    pub fn key_token(&self) -> Option<SyntaxToken> {
7946        support::token(&self.syntax, SyntaxKind::KEY_KW)
7947    }
7948    #[inline]
7949    pub fn references_token(&self) -> Option<SyntaxToken> {
7950        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
7951    }
7952}
7953
7954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7955pub struct FrameClause {
7956    pub(crate) syntax: SyntaxNode,
7957}
7958impl FrameClause {
7959    #[inline]
7960    pub fn groups_token(&self) -> Option<SyntaxToken> {
7961        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
7962    }
7963    #[inline]
7964    pub fn range_token(&self) -> Option<SyntaxToken> {
7965        support::token(&self.syntax, SyntaxKind::RANGE_KW)
7966    }
7967    #[inline]
7968    pub fn rows_token(&self) -> Option<SyntaxToken> {
7969        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7970    }
7971}
7972
7973#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7974pub struct FromClause {
7975    pub(crate) syntax: SyntaxNode,
7976}
7977impl FromClause {
7978    #[inline]
7979    pub fn from_items(&self) -> AstChildren<FromItem> {
7980        support::children(&self.syntax)
7981    }
7982    #[inline]
7983    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
7984        support::children(&self.syntax)
7985    }
7986    #[inline]
7987    pub fn from_token(&self) -> Option<SyntaxToken> {
7988        support::token(&self.syntax, SyntaxKind::FROM_KW)
7989    }
7990}
7991
7992#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7993pub struct FromItem {
7994    pub(crate) syntax: SyntaxNode,
7995}
7996impl FromItem {
7997    #[inline]
7998    pub fn alias(&self) -> Option<Alias> {
7999        support::child(&self.syntax)
8000    }
8001    #[inline]
8002    pub fn call_expr(&self) -> Option<CallExpr> {
8003        support::child(&self.syntax)
8004    }
8005    #[inline]
8006    pub fn cast_expr(&self) -> Option<CastExpr> {
8007        support::child(&self.syntax)
8008    }
8009    #[inline]
8010    pub fn field_expr(&self) -> Option<FieldExpr> {
8011        support::child(&self.syntax)
8012    }
8013    #[inline]
8014    pub fn json_table(&self) -> Option<JsonTable> {
8015        support::child(&self.syntax)
8016    }
8017    #[inline]
8018    pub fn name_ref(&self) -> Option<NameRef> {
8019        support::child(&self.syntax)
8020    }
8021    #[inline]
8022    pub fn paren_expr(&self) -> Option<ParenExpr> {
8023        support::child(&self.syntax)
8024    }
8025    #[inline]
8026    pub fn paren_select(&self) -> Option<ParenSelect> {
8027        support::child(&self.syntax)
8028    }
8029    #[inline]
8030    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
8031        support::child(&self.syntax)
8032    }
8033    #[inline]
8034    pub fn xml_table(&self) -> Option<XmlTable> {
8035        support::child(&self.syntax)
8036    }
8037    #[inline]
8038    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8039        support::token(&self.syntax, SyntaxKind::L_PAREN)
8040    }
8041    #[inline]
8042    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8043        support::token(&self.syntax, SyntaxKind::R_PAREN)
8044    }
8045    #[inline]
8046    pub fn star_token(&self) -> Option<SyntaxToken> {
8047        support::token(&self.syntax, SyntaxKind::STAR)
8048    }
8049    #[inline]
8050    pub fn from_token(&self) -> Option<SyntaxToken> {
8051        support::token(&self.syntax, SyntaxKind::FROM_KW)
8052    }
8053    #[inline]
8054    pub fn lateral_token(&self) -> Option<SyntaxToken> {
8055        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
8056    }
8057    #[inline]
8058    pub fn only_token(&self) -> Option<SyntaxToken> {
8059        support::token(&self.syntax, SyntaxKind::ONLY_KW)
8060    }
8061    #[inline]
8062    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
8063        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
8064    }
8065    #[inline]
8066    pub fn rows_token(&self) -> Option<SyntaxToken> {
8067        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8068    }
8069    #[inline]
8070    pub fn with_token(&self) -> Option<SyntaxToken> {
8071        support::token(&self.syntax, SyntaxKind::WITH_KW)
8072    }
8073}
8074
8075#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8076pub struct FromTable {
8077    pub(crate) syntax: SyntaxNode,
8078}
8079impl FromTable {
8080    #[inline]
8081    pub fn path(&self) -> Option<Path> {
8082        support::child(&self.syntax)
8083    }
8084    #[inline]
8085    pub fn from_token(&self) -> Option<SyntaxToken> {
8086        support::token(&self.syntax, SyntaxKind::FROM_KW)
8087    }
8088}
8089
8090#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8091pub struct FuncOptionList {
8092    pub(crate) syntax: SyntaxNode,
8093}
8094impl FuncOptionList {
8095    #[inline]
8096    pub fn options(&self) -> AstChildren<FuncOption> {
8097        support::children(&self.syntax)
8098    }
8099}
8100
8101#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8102pub struct FunctionSig {
8103    pub(crate) syntax: SyntaxNode,
8104}
8105impl FunctionSig {
8106    #[inline]
8107    pub fn param_list(&self) -> Option<ParamList> {
8108        support::child(&self.syntax)
8109    }
8110    #[inline]
8111    pub fn path(&self) -> Option<Path> {
8112        support::child(&self.syntax)
8113    }
8114}
8115
8116#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8117pub struct FunctionSigList {
8118    pub(crate) syntax: SyntaxNode,
8119}
8120impl FunctionSigList {
8121    #[inline]
8122    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
8123        support::children(&self.syntax)
8124    }
8125}
8126
8127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8128pub struct GeneratedConstraint {
8129    pub(crate) syntax: SyntaxNode,
8130}
8131impl GeneratedConstraint {
8132    #[inline]
8133    pub fn expr(&self) -> Option<Expr> {
8134        support::child(&self.syntax)
8135    }
8136    #[inline]
8137    pub fn name_ref(&self) -> Option<NameRef> {
8138        support::child(&self.syntax)
8139    }
8140    #[inline]
8141    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
8142        support::child(&self.syntax)
8143    }
8144    #[inline]
8145    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8146        support::token(&self.syntax, SyntaxKind::L_PAREN)
8147    }
8148    #[inline]
8149    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8150        support::token(&self.syntax, SyntaxKind::R_PAREN)
8151    }
8152    #[inline]
8153    pub fn always_token(&self) -> Option<SyntaxToken> {
8154        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8155    }
8156    #[inline]
8157    pub fn as_token(&self) -> Option<SyntaxToken> {
8158        support::token(&self.syntax, SyntaxKind::AS_KW)
8159    }
8160    #[inline]
8161    pub fn by_token(&self) -> Option<SyntaxToken> {
8162        support::token(&self.syntax, SyntaxKind::BY_KW)
8163    }
8164    #[inline]
8165    pub fn constraint_token(&self) -> Option<SyntaxToken> {
8166        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
8167    }
8168    #[inline]
8169    pub fn default_token(&self) -> Option<SyntaxToken> {
8170        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8171    }
8172    #[inline]
8173    pub fn generated_token(&self) -> Option<SyntaxToken> {
8174        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
8175    }
8176    #[inline]
8177    pub fn identity_token(&self) -> Option<SyntaxToken> {
8178        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
8179    }
8180    #[inline]
8181    pub fn stored_token(&self) -> Option<SyntaxToken> {
8182        support::token(&self.syntax, SyntaxKind::STORED_KW)
8183    }
8184}
8185
8186#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8187pub struct Grant {
8188    pub(crate) syntax: SyntaxNode,
8189}
8190impl Grant {
8191    #[inline]
8192    pub fn name_refs(&self) -> AstChildren<NameRef> {
8193        support::children(&self.syntax)
8194    }
8195    #[inline]
8196    pub fn paths(&self) -> AstChildren<Path> {
8197        support::children(&self.syntax)
8198    }
8199    #[inline]
8200    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
8201        support::child(&self.syntax)
8202    }
8203    #[inline]
8204    pub fn role_ref(&self) -> Option<RoleRef> {
8205        support::child(&self.syntax)
8206    }
8207    #[inline]
8208    pub fn role_ref_list(&self) -> Option<RoleRefList> {
8209        support::child(&self.syntax)
8210    }
8211    #[inline]
8212    pub fn all_token(&self) -> Option<SyntaxToken> {
8213        support::token(&self.syntax, SyntaxKind::ALL_KW)
8214    }
8215    #[inline]
8216    pub fn by_token(&self) -> Option<SyntaxToken> {
8217        support::token(&self.syntax, SyntaxKind::BY_KW)
8218    }
8219    #[inline]
8220    pub fn grant_token(&self) -> Option<SyntaxToken> {
8221        support::token(&self.syntax, SyntaxKind::GRANT_KW)
8222    }
8223    #[inline]
8224    pub fn granted_token(&self) -> Option<SyntaxToken> {
8225        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
8226    }
8227    #[inline]
8228    pub fn in_token(&self) -> Option<SyntaxToken> {
8229        support::token(&self.syntax, SyntaxKind::IN_KW)
8230    }
8231    #[inline]
8232    pub fn on_token(&self) -> Option<SyntaxToken> {
8233        support::token(&self.syntax, SyntaxKind::ON_KW)
8234    }
8235    #[inline]
8236    pub fn option_token(&self) -> Option<SyntaxToken> {
8237        support::token(&self.syntax, SyntaxKind::OPTION_KW)
8238    }
8239    #[inline]
8240    pub fn privileges_token(&self) -> Option<SyntaxToken> {
8241        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
8242    }
8243    #[inline]
8244    pub fn schema_token(&self) -> Option<SyntaxToken> {
8245        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8246    }
8247    #[inline]
8248    pub fn table_token(&self) -> Option<SyntaxToken> {
8249        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8250    }
8251    #[inline]
8252    pub fn tables_token(&self) -> Option<SyntaxToken> {
8253        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8254    }
8255    #[inline]
8256    pub fn to_token(&self) -> Option<SyntaxToken> {
8257        support::token(&self.syntax, SyntaxKind::TO_KW)
8258    }
8259    #[inline]
8260    pub fn with_token(&self) -> Option<SyntaxToken> {
8261        support::token(&self.syntax, SyntaxKind::WITH_KW)
8262    }
8263}
8264
8265#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8266pub struct GrantDefaultPrivileges {
8267    pub(crate) syntax: SyntaxNode,
8268}
8269impl GrantDefaultPrivileges {
8270    #[inline]
8271    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
8272        support::child(&self.syntax)
8273    }
8274    #[inline]
8275    pub fn privileges(&self) -> Option<Privileges> {
8276        support::child(&self.syntax)
8277    }
8278    #[inline]
8279    pub fn role_ref_list(&self) -> Option<RoleRefList> {
8280        support::child(&self.syntax)
8281    }
8282    #[inline]
8283    pub fn grant_token(&self) -> Option<SyntaxToken> {
8284        support::token(&self.syntax, SyntaxKind::GRANT_KW)
8285    }
8286    #[inline]
8287    pub fn on_token(&self) -> Option<SyntaxToken> {
8288        support::token(&self.syntax, SyntaxKind::ON_KW)
8289    }
8290    #[inline]
8291    pub fn option_token(&self) -> Option<SyntaxToken> {
8292        support::token(&self.syntax, SyntaxKind::OPTION_KW)
8293    }
8294    #[inline]
8295    pub fn to_token(&self) -> Option<SyntaxToken> {
8296        support::token(&self.syntax, SyntaxKind::TO_KW)
8297    }
8298    #[inline]
8299    pub fn with_token(&self) -> Option<SyntaxToken> {
8300        support::token(&self.syntax, SyntaxKind::WITH_KW)
8301    }
8302}
8303
8304#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8305pub struct GroupByClause {
8306    pub(crate) syntax: SyntaxNode,
8307}
8308impl GroupByClause {
8309    #[inline]
8310    pub fn group_by_list(&self) -> Option<GroupByList> {
8311        support::child(&self.syntax)
8312    }
8313    #[inline]
8314    pub fn all_token(&self) -> Option<SyntaxToken> {
8315        support::token(&self.syntax, SyntaxKind::ALL_KW)
8316    }
8317    #[inline]
8318    pub fn by_token(&self) -> Option<SyntaxToken> {
8319        support::token(&self.syntax, SyntaxKind::BY_KW)
8320    }
8321    #[inline]
8322    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8323        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8324    }
8325    #[inline]
8326    pub fn group_token(&self) -> Option<SyntaxToken> {
8327        support::token(&self.syntax, SyntaxKind::GROUP_KW)
8328    }
8329}
8330
8331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8332pub struct GroupByList {
8333    pub(crate) syntax: SyntaxNode,
8334}
8335impl GroupByList {
8336    #[inline]
8337    pub fn group_bys(&self) -> AstChildren<GroupBy> {
8338        support::children(&self.syntax)
8339    }
8340}
8341
8342#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8343pub struct GroupingCube {
8344    pub(crate) syntax: SyntaxNode,
8345}
8346impl GroupingCube {
8347    #[inline]
8348    pub fn expr(&self) -> Option<Expr> {
8349        support::child(&self.syntax)
8350    }
8351    #[inline]
8352    pub fn cube_token(&self) -> Option<SyntaxToken> {
8353        support::token(&self.syntax, SyntaxKind::CUBE_KW)
8354    }
8355}
8356
8357#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8358pub struct GroupingExpr {
8359    pub(crate) syntax: SyntaxNode,
8360}
8361impl GroupingExpr {
8362    #[inline]
8363    pub fn expr(&self) -> Option<Expr> {
8364        support::child(&self.syntax)
8365    }
8366}
8367
8368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8369pub struct GroupingRollup {
8370    pub(crate) syntax: SyntaxNode,
8371}
8372impl GroupingRollup {
8373    #[inline]
8374    pub fn expr(&self) -> Option<Expr> {
8375        support::child(&self.syntax)
8376    }
8377    #[inline]
8378    pub fn rollup_token(&self) -> Option<SyntaxToken> {
8379        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
8380    }
8381}
8382
8383#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8384pub struct GroupingSets {
8385    pub(crate) syntax: SyntaxNode,
8386}
8387impl GroupingSets {
8388    #[inline]
8389    pub fn expr(&self) -> Option<Expr> {
8390        support::child(&self.syntax)
8391    }
8392    #[inline]
8393    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8394        support::token(&self.syntax, SyntaxKind::L_PAREN)
8395    }
8396    #[inline]
8397    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8398        support::token(&self.syntax, SyntaxKind::R_PAREN)
8399    }
8400    #[inline]
8401    pub fn grouping_token(&self) -> Option<SyntaxToken> {
8402        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
8403    }
8404    #[inline]
8405    pub fn sets_token(&self) -> Option<SyntaxToken> {
8406        support::token(&self.syntax, SyntaxKind::SETS_KW)
8407    }
8408}
8409
8410#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8411pub struct Gteq {
8412    pub(crate) syntax: SyntaxNode,
8413}
8414impl Gteq {
8415    #[inline]
8416    pub fn eq_token(&self) -> Option<SyntaxToken> {
8417        support::token(&self.syntax, SyntaxKind::EQ)
8418    }
8419    #[inline]
8420    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8421        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8422    }
8423}
8424
8425#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8426pub struct HandlerClause {
8427    pub(crate) syntax: SyntaxNode,
8428}
8429impl HandlerClause {
8430    #[inline]
8431    pub fn path(&self) -> Option<Path> {
8432        support::child(&self.syntax)
8433    }
8434    #[inline]
8435    pub fn handler_token(&self) -> Option<SyntaxToken> {
8436        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
8437    }
8438}
8439
8440#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8441pub struct HavingClause {
8442    pub(crate) syntax: SyntaxNode,
8443}
8444impl HavingClause {
8445    #[inline]
8446    pub fn expr(&self) -> Option<Expr> {
8447        support::child(&self.syntax)
8448    }
8449    #[inline]
8450    pub fn having_token(&self) -> Option<SyntaxToken> {
8451        support::token(&self.syntax, SyntaxKind::HAVING_KW)
8452    }
8453}
8454
8455#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8456pub struct IfExists {
8457    pub(crate) syntax: SyntaxNode,
8458}
8459impl IfExists {
8460    #[inline]
8461    pub fn exists_token(&self) -> Option<SyntaxToken> {
8462        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8463    }
8464    #[inline]
8465    pub fn if_token(&self) -> Option<SyntaxToken> {
8466        support::token(&self.syntax, SyntaxKind::IF_KW)
8467    }
8468}
8469
8470#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8471pub struct IfNotExists {
8472    pub(crate) syntax: SyntaxNode,
8473}
8474impl IfNotExists {
8475    #[inline]
8476    pub fn exists_token(&self) -> Option<SyntaxToken> {
8477        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8478    }
8479    #[inline]
8480    pub fn if_token(&self) -> Option<SyntaxToken> {
8481        support::token(&self.syntax, SyntaxKind::IF_KW)
8482    }
8483    #[inline]
8484    pub fn not_token(&self) -> Option<SyntaxToken> {
8485        support::token(&self.syntax, SyntaxKind::NOT_KW)
8486    }
8487}
8488
8489#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8490pub struct ImportForeignSchema {
8491    pub(crate) syntax: SyntaxNode,
8492}
8493impl ImportForeignSchema {
8494    #[inline]
8495    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
8496        support::child(&self.syntax)
8497    }
8498    #[inline]
8499    pub fn except_tables(&self) -> Option<ExceptTables> {
8500        support::child(&self.syntax)
8501    }
8502    #[inline]
8503    pub fn into_schema(&self) -> Option<IntoSchema> {
8504        support::child(&self.syntax)
8505    }
8506    #[inline]
8507    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
8508        support::child(&self.syntax)
8509    }
8510    #[inline]
8511    pub fn name_ref(&self) -> Option<NameRef> {
8512        support::child(&self.syntax)
8513    }
8514    #[inline]
8515    pub fn server_name(&self) -> Option<ServerName> {
8516        support::child(&self.syntax)
8517    }
8518    #[inline]
8519    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8520        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8521    }
8522    #[inline]
8523    pub fn from_token(&self) -> Option<SyntaxToken> {
8524        support::token(&self.syntax, SyntaxKind::FROM_KW)
8525    }
8526    #[inline]
8527    pub fn import_token(&self) -> Option<SyntaxToken> {
8528        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
8529    }
8530    #[inline]
8531    pub fn schema_token(&self) -> Option<SyntaxToken> {
8532        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8533    }
8534}
8535
8536#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8537pub struct IndexExpr {
8538    pub(crate) syntax: SyntaxNode,
8539}
8540impl IndexExpr {
8541    #[inline]
8542    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8543        support::token(&self.syntax, SyntaxKind::L_BRACK)
8544    }
8545    #[inline]
8546    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8547        support::token(&self.syntax, SyntaxKind::R_BRACK)
8548    }
8549}
8550
8551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8552pub struct Inherit {
8553    pub(crate) syntax: SyntaxNode,
8554}
8555impl Inherit {
8556    #[inline]
8557    pub fn path(&self) -> Option<Path> {
8558        support::child(&self.syntax)
8559    }
8560    #[inline]
8561    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8562        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8563    }
8564}
8565
8566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8567pub struct InheritTable {
8568    pub(crate) syntax: SyntaxNode,
8569}
8570impl InheritTable {
8571    #[inline]
8572    pub fn path(&self) -> Option<Path> {
8573        support::child(&self.syntax)
8574    }
8575    #[inline]
8576    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8577        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8578    }
8579}
8580
8581#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8582pub struct Inherits {
8583    pub(crate) syntax: SyntaxNode,
8584}
8585impl Inherits {
8586    #[inline]
8587    pub fn paths(&self) -> AstChildren<Path> {
8588        support::children(&self.syntax)
8589    }
8590    #[inline]
8591    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8592        support::token(&self.syntax, SyntaxKind::L_PAREN)
8593    }
8594    #[inline]
8595    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8596        support::token(&self.syntax, SyntaxKind::R_PAREN)
8597    }
8598    #[inline]
8599    pub fn inherits_token(&self) -> Option<SyntaxToken> {
8600        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
8601    }
8602}
8603
8604#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8605pub struct InitiallyDeferredConstraintOption {
8606    pub(crate) syntax: SyntaxNode,
8607}
8608impl InitiallyDeferredConstraintOption {
8609    #[inline]
8610    pub fn deferred_token(&self) -> Option<SyntaxToken> {
8611        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
8612    }
8613    #[inline]
8614    pub fn initially_token(&self) -> Option<SyntaxToken> {
8615        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8616    }
8617}
8618
8619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8620pub struct InitiallyImmediateConstraintOption {
8621    pub(crate) syntax: SyntaxNode,
8622}
8623impl InitiallyImmediateConstraintOption {
8624    #[inline]
8625    pub fn immediate_token(&self) -> Option<SyntaxToken> {
8626        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
8627    }
8628    #[inline]
8629    pub fn initially_token(&self) -> Option<SyntaxToken> {
8630        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8631    }
8632}
8633
8634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8635pub struct Insert {
8636    pub(crate) syntax: SyntaxNode,
8637}
8638impl Insert {
8639    #[inline]
8640    pub fn alias(&self) -> Option<Alias> {
8641        support::child(&self.syntax)
8642    }
8643    #[inline]
8644    pub fn column_list(&self) -> Option<ColumnList> {
8645        support::child(&self.syntax)
8646    }
8647    #[inline]
8648    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
8649        support::child(&self.syntax)
8650    }
8651    #[inline]
8652    pub fn path(&self) -> Option<Path> {
8653        support::child(&self.syntax)
8654    }
8655    #[inline]
8656    pub fn returning_clause(&self) -> Option<ReturningClause> {
8657        support::child(&self.syntax)
8658    }
8659    #[inline]
8660    pub fn stmt(&self) -> Option<Stmt> {
8661        support::child(&self.syntax)
8662    }
8663    #[inline]
8664    pub fn values(&self) -> Option<Values> {
8665        support::child(&self.syntax)
8666    }
8667    #[inline]
8668    pub fn with_clause(&self) -> Option<WithClause> {
8669        support::child(&self.syntax)
8670    }
8671    #[inline]
8672    pub fn default_token(&self) -> Option<SyntaxToken> {
8673        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8674    }
8675    #[inline]
8676    pub fn insert_token(&self) -> Option<SyntaxToken> {
8677        support::token(&self.syntax, SyntaxKind::INSERT_KW)
8678    }
8679    #[inline]
8680    pub fn into_token(&self) -> Option<SyntaxToken> {
8681        support::token(&self.syntax, SyntaxKind::INTO_KW)
8682    }
8683    #[inline]
8684    pub fn overriding_token(&self) -> Option<SyntaxToken> {
8685        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
8686    }
8687    #[inline]
8688    pub fn system_token(&self) -> Option<SyntaxToken> {
8689        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
8690    }
8691    #[inline]
8692    pub fn user_token(&self) -> Option<SyntaxToken> {
8693        support::token(&self.syntax, SyntaxKind::USER_KW)
8694    }
8695    #[inline]
8696    pub fn value_token(&self) -> Option<SyntaxToken> {
8697        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8698    }
8699    #[inline]
8700    pub fn values_token(&self) -> Option<SyntaxToken> {
8701        support::token(&self.syntax, SyntaxKind::VALUES_KW)
8702    }
8703}
8704
8705#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8706pub struct IntervalType {
8707    pub(crate) syntax: SyntaxNode,
8708}
8709impl IntervalType {
8710    #[inline]
8711    pub fn literal(&self) -> Option<Literal> {
8712        support::child(&self.syntax)
8713    }
8714    #[inline]
8715    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8716        support::token(&self.syntax, SyntaxKind::L_PAREN)
8717    }
8718    #[inline]
8719    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8720        support::token(&self.syntax, SyntaxKind::R_PAREN)
8721    }
8722    #[inline]
8723    pub fn day_token(&self) -> Option<SyntaxToken> {
8724        support::token(&self.syntax, SyntaxKind::DAY_KW)
8725    }
8726    #[inline]
8727    pub fn hour_token(&self) -> Option<SyntaxToken> {
8728        support::token(&self.syntax, SyntaxKind::HOUR_KW)
8729    }
8730    #[inline]
8731    pub fn interval_token(&self) -> Option<SyntaxToken> {
8732        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
8733    }
8734    #[inline]
8735    pub fn minute_token(&self) -> Option<SyntaxToken> {
8736        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
8737    }
8738    #[inline]
8739    pub fn month_token(&self) -> Option<SyntaxToken> {
8740        support::token(&self.syntax, SyntaxKind::MONTH_KW)
8741    }
8742    #[inline]
8743    pub fn second_token(&self) -> Option<SyntaxToken> {
8744        support::token(&self.syntax, SyntaxKind::SECOND_KW)
8745    }
8746    #[inline]
8747    pub fn to_token(&self) -> Option<SyntaxToken> {
8748        support::token(&self.syntax, SyntaxKind::TO_KW)
8749    }
8750    #[inline]
8751    pub fn year_token(&self) -> Option<SyntaxToken> {
8752        support::token(&self.syntax, SyntaxKind::YEAR_KW)
8753    }
8754}
8755
8756#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8757pub struct IntoClause {
8758    pub(crate) syntax: SyntaxNode,
8759}
8760impl IntoClause {
8761    #[inline]
8762    pub fn path(&self) -> Option<Path> {
8763        support::child(&self.syntax)
8764    }
8765    #[inline]
8766    pub fn into_token(&self) -> Option<SyntaxToken> {
8767        support::token(&self.syntax, SyntaxKind::INTO_KW)
8768    }
8769}
8770
8771#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8772pub struct IntoSchema {
8773    pub(crate) syntax: SyntaxNode,
8774}
8775impl IntoSchema {
8776    #[inline]
8777    pub fn name_ref(&self) -> Option<NameRef> {
8778        support::child(&self.syntax)
8779    }
8780    #[inline]
8781    pub fn into_token(&self) -> Option<SyntaxToken> {
8782        support::token(&self.syntax, SyntaxKind::INTO_KW)
8783    }
8784}
8785
8786#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8787pub struct IsDistinctFrom {
8788    pub(crate) syntax: SyntaxNode,
8789}
8790impl IsDistinctFrom {
8791    #[inline]
8792    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8793        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8794    }
8795    #[inline]
8796    pub fn from_token(&self) -> Option<SyntaxToken> {
8797        support::token(&self.syntax, SyntaxKind::FROM_KW)
8798    }
8799    #[inline]
8800    pub fn is_token(&self) -> Option<SyntaxToken> {
8801        support::token(&self.syntax, SyntaxKind::IS_KW)
8802    }
8803}
8804
8805#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8806pub struct IsJson {
8807    pub(crate) syntax: SyntaxNode,
8808}
8809impl IsJson {
8810    #[inline]
8811    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8812        support::child(&self.syntax)
8813    }
8814    #[inline]
8815    pub fn is_token(&self) -> Option<SyntaxToken> {
8816        support::token(&self.syntax, SyntaxKind::IS_KW)
8817    }
8818    #[inline]
8819    pub fn json_token(&self) -> Option<SyntaxToken> {
8820        support::token(&self.syntax, SyntaxKind::JSON_KW)
8821    }
8822}
8823
8824#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8825pub struct IsJsonArray {
8826    pub(crate) syntax: SyntaxNode,
8827}
8828impl IsJsonArray {
8829    #[inline]
8830    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8831        support::child(&self.syntax)
8832    }
8833    #[inline]
8834    pub fn array_token(&self) -> Option<SyntaxToken> {
8835        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8836    }
8837    #[inline]
8838    pub fn is_token(&self) -> Option<SyntaxToken> {
8839        support::token(&self.syntax, SyntaxKind::IS_KW)
8840    }
8841    #[inline]
8842    pub fn json_token(&self) -> Option<SyntaxToken> {
8843        support::token(&self.syntax, SyntaxKind::JSON_KW)
8844    }
8845}
8846
8847#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8848pub struct IsJsonObject {
8849    pub(crate) syntax: SyntaxNode,
8850}
8851impl IsJsonObject {
8852    #[inline]
8853    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8854        support::child(&self.syntax)
8855    }
8856    #[inline]
8857    pub fn is_token(&self) -> Option<SyntaxToken> {
8858        support::token(&self.syntax, SyntaxKind::IS_KW)
8859    }
8860    #[inline]
8861    pub fn json_token(&self) -> Option<SyntaxToken> {
8862        support::token(&self.syntax, SyntaxKind::JSON_KW)
8863    }
8864    #[inline]
8865    pub fn object_token(&self) -> Option<SyntaxToken> {
8866        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8867    }
8868}
8869
8870#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8871pub struct IsJsonScalar {
8872    pub(crate) syntax: SyntaxNode,
8873}
8874impl IsJsonScalar {
8875    #[inline]
8876    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8877        support::child(&self.syntax)
8878    }
8879    #[inline]
8880    pub fn is_token(&self) -> Option<SyntaxToken> {
8881        support::token(&self.syntax, SyntaxKind::IS_KW)
8882    }
8883    #[inline]
8884    pub fn json_token(&self) -> Option<SyntaxToken> {
8885        support::token(&self.syntax, SyntaxKind::JSON_KW)
8886    }
8887    #[inline]
8888    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8889        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8890    }
8891}
8892
8893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8894pub struct IsJsonValue {
8895    pub(crate) syntax: SyntaxNode,
8896}
8897impl IsJsonValue {
8898    #[inline]
8899    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8900        support::child(&self.syntax)
8901    }
8902    #[inline]
8903    pub fn is_token(&self) -> Option<SyntaxToken> {
8904        support::token(&self.syntax, SyntaxKind::IS_KW)
8905    }
8906    #[inline]
8907    pub fn json_token(&self) -> Option<SyntaxToken> {
8908        support::token(&self.syntax, SyntaxKind::JSON_KW)
8909    }
8910    #[inline]
8911    pub fn value_token(&self) -> Option<SyntaxToken> {
8912        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8913    }
8914}
8915
8916#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8917pub struct IsNormalized {
8918    pub(crate) syntax: SyntaxNode,
8919}
8920impl IsNormalized {
8921    #[inline]
8922    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8923        support::child(&self.syntax)
8924    }
8925    #[inline]
8926    pub fn is_token(&self) -> Option<SyntaxToken> {
8927        support::token(&self.syntax, SyntaxKind::IS_KW)
8928    }
8929    #[inline]
8930    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8931        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8932    }
8933}
8934
8935#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8936pub struct IsNot {
8937    pub(crate) syntax: SyntaxNode,
8938}
8939impl IsNot {
8940    #[inline]
8941    pub fn is_token(&self) -> Option<SyntaxToken> {
8942        support::token(&self.syntax, SyntaxKind::IS_KW)
8943    }
8944    #[inline]
8945    pub fn not_token(&self) -> Option<SyntaxToken> {
8946        support::token(&self.syntax, SyntaxKind::NOT_KW)
8947    }
8948}
8949
8950#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8951pub struct IsNotDistinctFrom {
8952    pub(crate) syntax: SyntaxNode,
8953}
8954impl IsNotDistinctFrom {
8955    #[inline]
8956    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8957        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8958    }
8959    #[inline]
8960    pub fn from_token(&self) -> Option<SyntaxToken> {
8961        support::token(&self.syntax, SyntaxKind::FROM_KW)
8962    }
8963    #[inline]
8964    pub fn is_token(&self) -> Option<SyntaxToken> {
8965        support::token(&self.syntax, SyntaxKind::IS_KW)
8966    }
8967    #[inline]
8968    pub fn not_token(&self) -> Option<SyntaxToken> {
8969        support::token(&self.syntax, SyntaxKind::NOT_KW)
8970    }
8971}
8972
8973#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8974pub struct IsNotJson {
8975    pub(crate) syntax: SyntaxNode,
8976}
8977impl IsNotJson {
8978    #[inline]
8979    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8980        support::child(&self.syntax)
8981    }
8982    #[inline]
8983    pub fn is_token(&self) -> Option<SyntaxToken> {
8984        support::token(&self.syntax, SyntaxKind::IS_KW)
8985    }
8986    #[inline]
8987    pub fn json_token(&self) -> Option<SyntaxToken> {
8988        support::token(&self.syntax, SyntaxKind::JSON_KW)
8989    }
8990    #[inline]
8991    pub fn not_token(&self) -> Option<SyntaxToken> {
8992        support::token(&self.syntax, SyntaxKind::NOT_KW)
8993    }
8994}
8995
8996#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8997pub struct IsNotJsonArray {
8998    pub(crate) syntax: SyntaxNode,
8999}
9000impl IsNotJsonArray {
9001    #[inline]
9002    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9003        support::child(&self.syntax)
9004    }
9005    #[inline]
9006    pub fn array_token(&self) -> Option<SyntaxToken> {
9007        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9008    }
9009    #[inline]
9010    pub fn is_token(&self) -> Option<SyntaxToken> {
9011        support::token(&self.syntax, SyntaxKind::IS_KW)
9012    }
9013    #[inline]
9014    pub fn json_token(&self) -> Option<SyntaxToken> {
9015        support::token(&self.syntax, SyntaxKind::JSON_KW)
9016    }
9017    #[inline]
9018    pub fn not_token(&self) -> Option<SyntaxToken> {
9019        support::token(&self.syntax, SyntaxKind::NOT_KW)
9020    }
9021}
9022
9023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9024pub struct IsNotJsonObject {
9025    pub(crate) syntax: SyntaxNode,
9026}
9027impl IsNotJsonObject {
9028    #[inline]
9029    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9030        support::child(&self.syntax)
9031    }
9032    #[inline]
9033    pub fn is_token(&self) -> Option<SyntaxToken> {
9034        support::token(&self.syntax, SyntaxKind::IS_KW)
9035    }
9036    #[inline]
9037    pub fn json_token(&self) -> Option<SyntaxToken> {
9038        support::token(&self.syntax, SyntaxKind::JSON_KW)
9039    }
9040    #[inline]
9041    pub fn not_token(&self) -> Option<SyntaxToken> {
9042        support::token(&self.syntax, SyntaxKind::NOT_KW)
9043    }
9044    #[inline]
9045    pub fn object_token(&self) -> Option<SyntaxToken> {
9046        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9047    }
9048}
9049
9050#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9051pub struct IsNotJsonScalar {
9052    pub(crate) syntax: SyntaxNode,
9053}
9054impl IsNotJsonScalar {
9055    #[inline]
9056    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9057        support::child(&self.syntax)
9058    }
9059    #[inline]
9060    pub fn is_token(&self) -> Option<SyntaxToken> {
9061        support::token(&self.syntax, SyntaxKind::IS_KW)
9062    }
9063    #[inline]
9064    pub fn json_token(&self) -> Option<SyntaxToken> {
9065        support::token(&self.syntax, SyntaxKind::JSON_KW)
9066    }
9067    #[inline]
9068    pub fn not_token(&self) -> Option<SyntaxToken> {
9069        support::token(&self.syntax, SyntaxKind::NOT_KW)
9070    }
9071    #[inline]
9072    pub fn scalar_token(&self) -> Option<SyntaxToken> {
9073        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
9074    }
9075}
9076
9077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9078pub struct IsNotJsonValue {
9079    pub(crate) syntax: SyntaxNode,
9080}
9081impl IsNotJsonValue {
9082    #[inline]
9083    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9084        support::child(&self.syntax)
9085    }
9086    #[inline]
9087    pub fn is_token(&self) -> Option<SyntaxToken> {
9088        support::token(&self.syntax, SyntaxKind::IS_KW)
9089    }
9090    #[inline]
9091    pub fn json_token(&self) -> Option<SyntaxToken> {
9092        support::token(&self.syntax, SyntaxKind::JSON_KW)
9093    }
9094    #[inline]
9095    pub fn not_token(&self) -> Option<SyntaxToken> {
9096        support::token(&self.syntax, SyntaxKind::NOT_KW)
9097    }
9098    #[inline]
9099    pub fn value_token(&self) -> Option<SyntaxToken> {
9100        support::token(&self.syntax, SyntaxKind::VALUE_KW)
9101    }
9102}
9103
9104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9105pub struct IsNotNormalized {
9106    pub(crate) syntax: SyntaxNode,
9107}
9108impl IsNotNormalized {
9109    #[inline]
9110    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
9111        support::child(&self.syntax)
9112    }
9113    #[inline]
9114    pub fn is_token(&self) -> Option<SyntaxToken> {
9115        support::token(&self.syntax, SyntaxKind::IS_KW)
9116    }
9117    #[inline]
9118    pub fn normalized_token(&self) -> Option<SyntaxToken> {
9119        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
9120    }
9121    #[inline]
9122    pub fn not_token(&self) -> Option<SyntaxToken> {
9123        support::token(&self.syntax, SyntaxKind::NOT_KW)
9124    }
9125}
9126
9127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9128pub struct Join {
9129    pub(crate) syntax: SyntaxNode,
9130}
9131impl Join {
9132    #[inline]
9133    pub fn from_item(&self) -> Option<FromItem> {
9134        support::child(&self.syntax)
9135    }
9136    #[inline]
9137    pub fn join_type(&self) -> Option<JoinType> {
9138        support::child(&self.syntax)
9139    }
9140    #[inline]
9141    pub fn on_clause(&self) -> Option<OnClause> {
9142        support::child(&self.syntax)
9143    }
9144    #[inline]
9145    pub fn using_clause(&self) -> Option<JoinUsingClause> {
9146        support::child(&self.syntax)
9147    }
9148    #[inline]
9149    pub fn natural_token(&self) -> Option<SyntaxToken> {
9150        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
9151    }
9152}
9153
9154#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9155pub struct JoinCross {
9156    pub(crate) syntax: SyntaxNode,
9157}
9158impl JoinCross {
9159    #[inline]
9160    pub fn cross_token(&self) -> Option<SyntaxToken> {
9161        support::token(&self.syntax, SyntaxKind::CROSS_KW)
9162    }
9163    #[inline]
9164    pub fn join_token(&self) -> Option<SyntaxToken> {
9165        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9166    }
9167}
9168
9169#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9170pub struct JoinExpr {
9171    pub(crate) syntax: SyntaxNode,
9172}
9173impl JoinExpr {
9174    #[inline]
9175    pub fn from_item(&self) -> Option<FromItem> {
9176        support::child(&self.syntax)
9177    }
9178    #[inline]
9179    pub fn join(&self) -> Option<Join> {
9180        support::child(&self.syntax)
9181    }
9182    #[inline]
9183    pub fn join_expr(&self) -> Option<JoinExpr> {
9184        support::child(&self.syntax)
9185    }
9186}
9187
9188#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9189pub struct JoinFull {
9190    pub(crate) syntax: SyntaxNode,
9191}
9192impl JoinFull {
9193    #[inline]
9194    pub fn full_token(&self) -> Option<SyntaxToken> {
9195        support::token(&self.syntax, SyntaxKind::FULL_KW)
9196    }
9197    #[inline]
9198    pub fn join_token(&self) -> Option<SyntaxToken> {
9199        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9200    }
9201    #[inline]
9202    pub fn outer_token(&self) -> Option<SyntaxToken> {
9203        support::token(&self.syntax, SyntaxKind::OUTER_KW)
9204    }
9205}
9206
9207#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9208pub struct JoinInner {
9209    pub(crate) syntax: SyntaxNode,
9210}
9211impl JoinInner {
9212    #[inline]
9213    pub fn inner_token(&self) -> Option<SyntaxToken> {
9214        support::token(&self.syntax, SyntaxKind::INNER_KW)
9215    }
9216    #[inline]
9217    pub fn join_token(&self) -> Option<SyntaxToken> {
9218        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9219    }
9220}
9221
9222#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9223pub struct JoinLeft {
9224    pub(crate) syntax: SyntaxNode,
9225}
9226impl JoinLeft {
9227    #[inline]
9228    pub fn join_token(&self) -> Option<SyntaxToken> {
9229        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9230    }
9231    #[inline]
9232    pub fn left_token(&self) -> Option<SyntaxToken> {
9233        support::token(&self.syntax, SyntaxKind::LEFT_KW)
9234    }
9235    #[inline]
9236    pub fn outer_token(&self) -> Option<SyntaxToken> {
9237        support::token(&self.syntax, SyntaxKind::OUTER_KW)
9238    }
9239}
9240
9241#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9242pub struct JoinRight {
9243    pub(crate) syntax: SyntaxNode,
9244}
9245impl JoinRight {
9246    #[inline]
9247    pub fn join_token(&self) -> Option<SyntaxToken> {
9248        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9249    }
9250    #[inline]
9251    pub fn outer_token(&self) -> Option<SyntaxToken> {
9252        support::token(&self.syntax, SyntaxKind::OUTER_KW)
9253    }
9254    #[inline]
9255    pub fn right_token(&self) -> Option<SyntaxToken> {
9256        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
9257    }
9258}
9259
9260#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9261pub struct JoinUsingClause {
9262    pub(crate) syntax: SyntaxNode,
9263}
9264impl JoinUsingClause {
9265    #[inline]
9266    pub fn alias(&self) -> Option<Alias> {
9267        support::child(&self.syntax)
9268    }
9269    #[inline]
9270    pub fn column_list(&self) -> Option<ColumnList> {
9271        support::child(&self.syntax)
9272    }
9273    #[inline]
9274    pub fn using_token(&self) -> Option<SyntaxToken> {
9275        support::token(&self.syntax, SyntaxKind::USING_KW)
9276    }
9277}
9278
9279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9280pub struct JsonArrayAggFn {
9281    pub(crate) syntax: SyntaxNode,
9282}
9283impl JsonArrayAggFn {
9284    #[inline]
9285    pub fn expr(&self) -> Option<Expr> {
9286        support::child(&self.syntax)
9287    }
9288    #[inline]
9289    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9290        support::child(&self.syntax)
9291    }
9292    #[inline]
9293    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9294        support::child(&self.syntax)
9295    }
9296    #[inline]
9297    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9298        support::children(&self.syntax)
9299    }
9300    #[inline]
9301    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9302        support::token(&self.syntax, SyntaxKind::L_PAREN)
9303    }
9304    #[inline]
9305    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9306        support::token(&self.syntax, SyntaxKind::R_PAREN)
9307    }
9308    #[inline]
9309    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
9310        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
9311    }
9312}
9313
9314#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9315pub struct JsonArrayFn {
9316    pub(crate) syntax: SyntaxNode,
9317}
9318impl JsonArrayFn {
9319    #[inline]
9320    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
9321        support::children(&self.syntax)
9322    }
9323    #[inline]
9324    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9325        support::child(&self.syntax)
9326    }
9327    #[inline]
9328    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9329        support::child(&self.syntax)
9330    }
9331    #[inline]
9332    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9333        support::children(&self.syntax)
9334    }
9335    #[inline]
9336    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9337        support::token(&self.syntax, SyntaxKind::L_PAREN)
9338    }
9339    #[inline]
9340    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9341        support::token(&self.syntax, SyntaxKind::R_PAREN)
9342    }
9343    #[inline]
9344    pub fn json_array_token(&self) -> Option<SyntaxToken> {
9345        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
9346    }
9347}
9348
9349#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9350pub struct JsonBehaviorClause {
9351    pub(crate) syntax: SyntaxNode,
9352}
9353impl JsonBehaviorClause {
9354    #[inline]
9355    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9356        support::child(&self.syntax)
9357    }
9358}
9359
9360#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9361pub struct JsonBehaviorDefault {
9362    pub(crate) syntax: SyntaxNode,
9363}
9364impl JsonBehaviorDefault {
9365    #[inline]
9366    pub fn expr(&self) -> Option<Expr> {
9367        support::child(&self.syntax)
9368    }
9369    #[inline]
9370    pub fn default_token(&self) -> Option<SyntaxToken> {
9371        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9372    }
9373}
9374
9375#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9376pub struct JsonBehaviorEmptyArray {
9377    pub(crate) syntax: SyntaxNode,
9378}
9379impl JsonBehaviorEmptyArray {
9380    #[inline]
9381    pub fn array_token(&self) -> Option<SyntaxToken> {
9382        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9383    }
9384    #[inline]
9385    pub fn empty_token(&self) -> Option<SyntaxToken> {
9386        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9387    }
9388}
9389
9390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9391pub struct JsonBehaviorEmptyObject {
9392    pub(crate) syntax: SyntaxNode,
9393}
9394impl JsonBehaviorEmptyObject {
9395    #[inline]
9396    pub fn empty_token(&self) -> Option<SyntaxToken> {
9397        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9398    }
9399    #[inline]
9400    pub fn object_token(&self) -> Option<SyntaxToken> {
9401        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9402    }
9403}
9404
9405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9406pub struct JsonBehaviorError {
9407    pub(crate) syntax: SyntaxNode,
9408}
9409impl JsonBehaviorError {
9410    #[inline]
9411    pub fn error_token(&self) -> Option<SyntaxToken> {
9412        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9413    }
9414}
9415
9416#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9417pub struct JsonBehaviorFalse {
9418    pub(crate) syntax: SyntaxNode,
9419}
9420impl JsonBehaviorFalse {
9421    #[inline]
9422    pub fn false_token(&self) -> Option<SyntaxToken> {
9423        support::token(&self.syntax, SyntaxKind::FALSE_KW)
9424    }
9425}
9426
9427#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9428pub struct JsonBehaviorNull {
9429    pub(crate) syntax: SyntaxNode,
9430}
9431impl JsonBehaviorNull {
9432    #[inline]
9433    pub fn null_token(&self) -> Option<SyntaxToken> {
9434        support::token(&self.syntax, SyntaxKind::NULL_KW)
9435    }
9436}
9437
9438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9439pub struct JsonBehaviorTrue {
9440    pub(crate) syntax: SyntaxNode,
9441}
9442impl JsonBehaviorTrue {
9443    #[inline]
9444    pub fn true_token(&self) -> Option<SyntaxToken> {
9445        support::token(&self.syntax, SyntaxKind::TRUE_KW)
9446    }
9447}
9448
9449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9450pub struct JsonBehaviorUnknown {
9451    pub(crate) syntax: SyntaxNode,
9452}
9453impl JsonBehaviorUnknown {
9454    #[inline]
9455    pub fn unknown_token(&self) -> Option<SyntaxToken> {
9456        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
9457    }
9458}
9459
9460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9461pub struct JsonEncodingClause {
9462    pub(crate) syntax: SyntaxNode,
9463}
9464impl JsonEncodingClause {
9465    #[inline]
9466    pub fn name_ref(&self) -> Option<NameRef> {
9467        support::child(&self.syntax)
9468    }
9469    #[inline]
9470    pub fn encoding_token(&self) -> Option<SyntaxToken> {
9471        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
9472    }
9473}
9474
9475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9476pub struct JsonExistsFn {
9477    pub(crate) syntax: SyntaxNode,
9478}
9479impl JsonExistsFn {
9480    #[inline]
9481    pub fn expr(&self) -> Option<Expr> {
9482        support::child(&self.syntax)
9483    }
9484    #[inline]
9485    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9486        support::child(&self.syntax)
9487    }
9488    #[inline]
9489    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9490        support::child(&self.syntax)
9491    }
9492    #[inline]
9493    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9494        support::child(&self.syntax)
9495    }
9496    #[inline]
9497    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9498        support::token(&self.syntax, SyntaxKind::L_PAREN)
9499    }
9500    #[inline]
9501    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9502        support::token(&self.syntax, SyntaxKind::R_PAREN)
9503    }
9504    #[inline]
9505    pub fn comma_token(&self) -> Option<SyntaxToken> {
9506        support::token(&self.syntax, SyntaxKind::COMMA)
9507    }
9508    #[inline]
9509    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
9510        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
9511    }
9512}
9513
9514#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9515pub struct JsonExprFormat {
9516    pub(crate) syntax: SyntaxNode,
9517}
9518impl JsonExprFormat {
9519    #[inline]
9520    pub fn expr(&self) -> Option<Expr> {
9521        support::child(&self.syntax)
9522    }
9523    #[inline]
9524    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9525        support::child(&self.syntax)
9526    }
9527}
9528
9529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9530pub struct JsonFn {
9531    pub(crate) syntax: SyntaxNode,
9532}
9533impl JsonFn {
9534    #[inline]
9535    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
9536        support::child(&self.syntax)
9537    }
9538    #[inline]
9539    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9540        support::child(&self.syntax)
9541    }
9542    #[inline]
9543    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9544        support::token(&self.syntax, SyntaxKind::L_PAREN)
9545    }
9546    #[inline]
9547    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9548        support::token(&self.syntax, SyntaxKind::R_PAREN)
9549    }
9550    #[inline]
9551    pub fn json_token(&self) -> Option<SyntaxToken> {
9552        support::token(&self.syntax, SyntaxKind::JSON_KW)
9553    }
9554}
9555
9556#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9557pub struct JsonFormatClause {
9558    pub(crate) syntax: SyntaxNode,
9559}
9560impl JsonFormatClause {
9561    #[inline]
9562    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
9563        support::child(&self.syntax)
9564    }
9565    #[inline]
9566    pub fn format_token(&self) -> Option<SyntaxToken> {
9567        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
9568    }
9569    #[inline]
9570    pub fn json_token(&self) -> Option<SyntaxToken> {
9571        support::token(&self.syntax, SyntaxKind::JSON_KW)
9572    }
9573}
9574
9575#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9576pub struct JsonKeyValue {
9577    pub(crate) syntax: SyntaxNode,
9578}
9579impl JsonKeyValue {
9580    #[inline]
9581    pub fn expr(&self) -> Option<Expr> {
9582        support::child(&self.syntax)
9583    }
9584    #[inline]
9585    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
9586        support::child(&self.syntax)
9587    }
9588    #[inline]
9589    pub fn colon_token(&self) -> Option<SyntaxToken> {
9590        support::token(&self.syntax, SyntaxKind::COLON)
9591    }
9592}
9593
9594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9595pub struct JsonKeysUniqueClause {
9596    pub(crate) syntax: SyntaxNode,
9597}
9598impl JsonKeysUniqueClause {
9599    #[inline]
9600    pub fn keys_token(&self) -> Option<SyntaxToken> {
9601        support::token(&self.syntax, SyntaxKind::KEYS_KW)
9602    }
9603    #[inline]
9604    pub fn unique_token(&self) -> Option<SyntaxToken> {
9605        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
9606    }
9607    #[inline]
9608    pub fn with_token(&self) -> Option<SyntaxToken> {
9609        support::token(&self.syntax, SyntaxKind::WITH_KW)
9610    }
9611    #[inline]
9612    pub fn without_token(&self) -> Option<SyntaxToken> {
9613        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9614    }
9615}
9616
9617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9618pub struct JsonNullClause {
9619    pub(crate) syntax: SyntaxNode,
9620}
9621impl JsonNullClause {
9622    #[inline]
9623    pub fn absent_token(&self) -> Option<SyntaxToken> {
9624        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
9625    }
9626    #[inline]
9627    pub fn null_token(&self) -> Option<SyntaxToken> {
9628        support::token(&self.syntax, SyntaxKind::NULL_KW)
9629    }
9630    #[inline]
9631    pub fn on_token(&self) -> Option<SyntaxToken> {
9632        support::token(&self.syntax, SyntaxKind::ON_KW)
9633    }
9634}
9635
9636#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9637pub struct JsonObjectAggFn {
9638    pub(crate) syntax: SyntaxNode,
9639}
9640impl JsonObjectAggFn {
9641    #[inline]
9642    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
9643        support::child(&self.syntax)
9644    }
9645    #[inline]
9646    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9647        support::child(&self.syntax)
9648    }
9649    #[inline]
9650    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9651        support::child(&self.syntax)
9652    }
9653    #[inline]
9654    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9655        support::child(&self.syntax)
9656    }
9657    #[inline]
9658    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9659        support::token(&self.syntax, SyntaxKind::L_PAREN)
9660    }
9661    #[inline]
9662    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9663        support::token(&self.syntax, SyntaxKind::R_PAREN)
9664    }
9665    #[inline]
9666    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
9667        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
9668    }
9669}
9670
9671#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9672pub struct JsonObjectFn {
9673    pub(crate) syntax: SyntaxNode,
9674}
9675impl JsonObjectFn {
9676    #[inline]
9677    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
9678        support::children(&self.syntax)
9679    }
9680    #[inline]
9681    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9682        support::child(&self.syntax)
9683    }
9684    #[inline]
9685    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9686        support::child(&self.syntax)
9687    }
9688    #[inline]
9689    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9690        support::child(&self.syntax)
9691    }
9692    #[inline]
9693    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9694        support::token(&self.syntax, SyntaxKind::L_PAREN)
9695    }
9696    #[inline]
9697    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9698        support::token(&self.syntax, SyntaxKind::R_PAREN)
9699    }
9700    #[inline]
9701    pub fn json_object_token(&self) -> Option<SyntaxToken> {
9702        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
9703    }
9704}
9705
9706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9707pub struct JsonOnEmptyClause {
9708    pub(crate) syntax: SyntaxNode,
9709}
9710impl JsonOnEmptyClause {
9711    #[inline]
9712    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9713        support::child(&self.syntax)
9714    }
9715    #[inline]
9716    pub fn empty_token(&self) -> Option<SyntaxToken> {
9717        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9718    }
9719    #[inline]
9720    pub fn on_token(&self) -> Option<SyntaxToken> {
9721        support::token(&self.syntax, SyntaxKind::ON_KW)
9722    }
9723}
9724
9725#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9726pub struct JsonOnErrorClause {
9727    pub(crate) syntax: SyntaxNode,
9728}
9729impl JsonOnErrorClause {
9730    #[inline]
9731    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9732        support::child(&self.syntax)
9733    }
9734    #[inline]
9735    pub fn error_token(&self) -> Option<SyntaxToken> {
9736        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9737    }
9738    #[inline]
9739    pub fn on_token(&self) -> Option<SyntaxToken> {
9740        support::token(&self.syntax, SyntaxKind::ON_KW)
9741    }
9742}
9743
9744#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9745pub struct JsonPassingArg {
9746    pub(crate) syntax: SyntaxNode,
9747}
9748impl JsonPassingArg {
9749    #[inline]
9750    pub fn expr(&self) -> Option<Expr> {
9751        support::child(&self.syntax)
9752    }
9753}
9754
9755#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9756pub struct JsonPassingClause {
9757    pub(crate) syntax: SyntaxNode,
9758}
9759impl JsonPassingClause {
9760    #[inline]
9761    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
9762        support::children(&self.syntax)
9763    }
9764    #[inline]
9765    pub fn passing_token(&self) -> Option<SyntaxToken> {
9766        support::token(&self.syntax, SyntaxKind::PASSING_KW)
9767    }
9768}
9769
9770#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9771pub struct JsonPathClause {
9772    pub(crate) syntax: SyntaxNode,
9773}
9774impl JsonPathClause {
9775    #[inline]
9776    pub fn expr(&self) -> Option<Expr> {
9777        support::child(&self.syntax)
9778    }
9779    #[inline]
9780    pub fn path_token(&self) -> Option<SyntaxToken> {
9781        support::token(&self.syntax, SyntaxKind::PATH_KW)
9782    }
9783}
9784
9785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9786pub struct JsonQueryFn {
9787    pub(crate) syntax: SyntaxNode,
9788}
9789impl JsonQueryFn {
9790    #[inline]
9791    pub fn expr(&self) -> Option<Expr> {
9792        support::child(&self.syntax)
9793    }
9794    #[inline]
9795    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9796        support::child(&self.syntax)
9797    }
9798    #[inline]
9799    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9800        support::child(&self.syntax)
9801    }
9802    #[inline]
9803    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9804        support::child(&self.syntax)
9805    }
9806    #[inline]
9807    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9808        support::child(&self.syntax)
9809    }
9810    #[inline]
9811    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9812        support::child(&self.syntax)
9813    }
9814    #[inline]
9815    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
9816        support::child(&self.syntax)
9817    }
9818    #[inline]
9819    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9820        support::token(&self.syntax, SyntaxKind::L_PAREN)
9821    }
9822    #[inline]
9823    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9824        support::token(&self.syntax, SyntaxKind::R_PAREN)
9825    }
9826    #[inline]
9827    pub fn comma_token(&self) -> Option<SyntaxToken> {
9828        support::token(&self.syntax, SyntaxKind::COMMA)
9829    }
9830    #[inline]
9831    pub fn json_query_token(&self) -> Option<SyntaxToken> {
9832        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
9833    }
9834}
9835
9836#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9837pub struct JsonQuotesClause {
9838    pub(crate) syntax: SyntaxNode,
9839}
9840impl JsonQuotesClause {
9841    #[inline]
9842    pub fn keep_token(&self) -> Option<SyntaxToken> {
9843        support::token(&self.syntax, SyntaxKind::KEEP_KW)
9844    }
9845    #[inline]
9846    pub fn omit_token(&self) -> Option<SyntaxToken> {
9847        support::token(&self.syntax, SyntaxKind::OMIT_KW)
9848    }
9849    #[inline]
9850    pub fn quotes_token(&self) -> Option<SyntaxToken> {
9851        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
9852    }
9853}
9854
9855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9856pub struct JsonReturningClause {
9857    pub(crate) syntax: SyntaxNode,
9858}
9859impl JsonReturningClause {
9860    #[inline]
9861    pub fn ty(&self) -> Option<Type> {
9862        support::child(&self.syntax)
9863    }
9864    #[inline]
9865    pub fn returning_token(&self) -> Option<SyntaxToken> {
9866        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
9867    }
9868}
9869
9870#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9871pub struct JsonScalarFn {
9872    pub(crate) syntax: SyntaxNode,
9873}
9874impl JsonScalarFn {
9875    #[inline]
9876    pub fn expr(&self) -> Option<Expr> {
9877        support::child(&self.syntax)
9878    }
9879    #[inline]
9880    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9881        support::token(&self.syntax, SyntaxKind::L_PAREN)
9882    }
9883    #[inline]
9884    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9885        support::token(&self.syntax, SyntaxKind::R_PAREN)
9886    }
9887    #[inline]
9888    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
9889        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
9890    }
9891}
9892
9893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9894pub struct JsonSelectFormat {
9895    pub(crate) syntax: SyntaxNode,
9896}
9897impl JsonSelectFormat {
9898    #[inline]
9899    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9900        support::child(&self.syntax)
9901    }
9902    #[inline]
9903    pub fn select_variant(&self) -> Option<SelectVariant> {
9904        support::child(&self.syntax)
9905    }
9906}
9907
9908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9909pub struct JsonSerializeFn {
9910    pub(crate) syntax: SyntaxNode,
9911}
9912impl JsonSerializeFn {
9913    #[inline]
9914    pub fn expr(&self) -> Option<Expr> {
9915        support::child(&self.syntax)
9916    }
9917    #[inline]
9918    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9919        support::child(&self.syntax)
9920    }
9921    #[inline]
9922    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9923        support::child(&self.syntax)
9924    }
9925    #[inline]
9926    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9927        support::token(&self.syntax, SyntaxKind::L_PAREN)
9928    }
9929    #[inline]
9930    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9931        support::token(&self.syntax, SyntaxKind::R_PAREN)
9932    }
9933    #[inline]
9934    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
9935        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
9936    }
9937}
9938
9939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9940pub struct JsonTable {
9941    pub(crate) syntax: SyntaxNode,
9942}
9943impl JsonTable {
9944    #[inline]
9945    pub fn expr(&self) -> Option<Expr> {
9946        support::child(&self.syntax)
9947    }
9948    #[inline]
9949    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9950        support::child(&self.syntax)
9951    }
9952    #[inline]
9953    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9954        support::child(&self.syntax)
9955    }
9956    #[inline]
9957    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9958        support::child(&self.syntax)
9959    }
9960    #[inline]
9961    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
9962        support::child(&self.syntax)
9963    }
9964    #[inline]
9965    pub fn name(&self) -> Option<Name> {
9966        support::child(&self.syntax)
9967    }
9968    #[inline]
9969    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9970        support::token(&self.syntax, SyntaxKind::L_PAREN)
9971    }
9972    #[inline]
9973    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9974        support::token(&self.syntax, SyntaxKind::R_PAREN)
9975    }
9976    #[inline]
9977    pub fn comma_token(&self) -> Option<SyntaxToken> {
9978        support::token(&self.syntax, SyntaxKind::COMMA)
9979    }
9980    #[inline]
9981    pub fn as_token(&self) -> Option<SyntaxToken> {
9982        support::token(&self.syntax, SyntaxKind::AS_KW)
9983    }
9984    #[inline]
9985    pub fn json_table_token(&self) -> Option<SyntaxToken> {
9986        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
9987    }
9988}
9989
9990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9991pub struct JsonTableColumn {
9992    pub(crate) syntax: SyntaxNode,
9993}
9994impl JsonTableColumn {
9995    #[inline]
9996    pub fn expr(&self) -> Option<Expr> {
9997        support::child(&self.syntax)
9998    }
9999    #[inline]
10000    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10001        support::child(&self.syntax)
10002    }
10003    #[inline]
10004    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
10005        support::child(&self.syntax)
10006    }
10007    #[inline]
10008    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
10009        support::child(&self.syntax)
10010    }
10011    #[inline]
10012    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
10013        support::child(&self.syntax)
10014    }
10015    #[inline]
10016    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
10017        support::child(&self.syntax)
10018    }
10019    #[inline]
10020    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
10021        support::child(&self.syntax)
10022    }
10023    #[inline]
10024    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
10025        support::child(&self.syntax)
10026    }
10027    #[inline]
10028    pub fn name(&self) -> Option<Name> {
10029        support::child(&self.syntax)
10030    }
10031    #[inline]
10032    pub fn ty(&self) -> Option<Type> {
10033        support::child(&self.syntax)
10034    }
10035    #[inline]
10036    pub fn as_token(&self) -> Option<SyntaxToken> {
10037        support::token(&self.syntax, SyntaxKind::AS_KW)
10038    }
10039    #[inline]
10040    pub fn exists_token(&self) -> Option<SyntaxToken> {
10041        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
10042    }
10043    #[inline]
10044    pub fn for_token(&self) -> Option<SyntaxToken> {
10045        support::token(&self.syntax, SyntaxKind::FOR_KW)
10046    }
10047    #[inline]
10048    pub fn nested_token(&self) -> Option<SyntaxToken> {
10049        support::token(&self.syntax, SyntaxKind::NESTED_KW)
10050    }
10051    #[inline]
10052    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
10053        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
10054    }
10055    #[inline]
10056    pub fn path_token(&self) -> Option<SyntaxToken> {
10057        support::token(&self.syntax, SyntaxKind::PATH_KW)
10058    }
10059}
10060
10061#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10062pub struct JsonTableColumnList {
10063    pub(crate) syntax: SyntaxNode,
10064}
10065impl JsonTableColumnList {
10066    #[inline]
10067    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
10068        support::children(&self.syntax)
10069    }
10070    #[inline]
10071    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10072        support::token(&self.syntax, SyntaxKind::L_PAREN)
10073    }
10074    #[inline]
10075    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10076        support::token(&self.syntax, SyntaxKind::R_PAREN)
10077    }
10078    #[inline]
10079    pub fn columns_token(&self) -> Option<SyntaxToken> {
10080        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
10081    }
10082}
10083
10084#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10085pub struct JsonValueExpr {
10086    pub(crate) syntax: SyntaxNode,
10087}
10088impl JsonValueExpr {
10089    #[inline]
10090    pub fn expr(&self) -> Option<Expr> {
10091        support::child(&self.syntax)
10092    }
10093    #[inline]
10094    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10095        support::child(&self.syntax)
10096    }
10097}
10098
10099#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10100pub struct JsonValueFn {
10101    pub(crate) syntax: SyntaxNode,
10102}
10103impl JsonValueFn {
10104    #[inline]
10105    pub fn expr(&self) -> Option<Expr> {
10106        support::child(&self.syntax)
10107    }
10108    #[inline]
10109    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
10110        support::child(&self.syntax)
10111    }
10112    #[inline]
10113    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10114        support::child(&self.syntax)
10115    }
10116    #[inline]
10117    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
10118        support::child(&self.syntax)
10119    }
10120    #[inline]
10121    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10122        support::child(&self.syntax)
10123    }
10124    #[inline]
10125    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10126        support::token(&self.syntax, SyntaxKind::L_PAREN)
10127    }
10128    #[inline]
10129    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10130        support::token(&self.syntax, SyntaxKind::R_PAREN)
10131    }
10132    #[inline]
10133    pub fn comma_token(&self) -> Option<SyntaxToken> {
10134        support::token(&self.syntax, SyntaxKind::COMMA)
10135    }
10136    #[inline]
10137    pub fn json_value_token(&self) -> Option<SyntaxToken> {
10138        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
10139    }
10140}
10141
10142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10143pub struct JsonWrapperBehaviorClause {
10144    pub(crate) syntax: SyntaxNode,
10145}
10146impl JsonWrapperBehaviorClause {
10147    #[inline]
10148    pub fn array_token(&self) -> Option<SyntaxToken> {
10149        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10150    }
10151    #[inline]
10152    pub fn conditional_token(&self) -> Option<SyntaxToken> {
10153        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
10154    }
10155    #[inline]
10156    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
10157        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
10158    }
10159    #[inline]
10160    pub fn with_token(&self) -> Option<SyntaxToken> {
10161        support::token(&self.syntax, SyntaxKind::WITH_KW)
10162    }
10163    #[inline]
10164    pub fn without_token(&self) -> Option<SyntaxToken> {
10165        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
10166    }
10167    #[inline]
10168    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
10169        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
10170    }
10171}
10172
10173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10174pub struct LanguageFuncOption {
10175    pub(crate) syntax: SyntaxNode,
10176}
10177impl LanguageFuncOption {
10178    #[inline]
10179    pub fn name_ref(&self) -> Option<NameRef> {
10180        support::child(&self.syntax)
10181    }
10182    #[inline]
10183    pub fn language_token(&self) -> Option<SyntaxToken> {
10184        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
10185    }
10186}
10187
10188#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10189pub struct LeakproofFuncOption {
10190    pub(crate) syntax: SyntaxNode,
10191}
10192impl LeakproofFuncOption {
10193    #[inline]
10194    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
10195        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
10196    }
10197    #[inline]
10198    pub fn not_token(&self) -> Option<SyntaxToken> {
10199        support::token(&self.syntax, SyntaxKind::NOT_KW)
10200    }
10201}
10202
10203#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10204pub struct LikeClause {
10205    pub(crate) syntax: SyntaxNode,
10206}
10207impl LikeClause {
10208    #[inline]
10209    pub fn like_options(&self) -> AstChildren<LikeOption> {
10210        support::children(&self.syntax)
10211    }
10212    #[inline]
10213    pub fn path(&self) -> Option<Path> {
10214        support::child(&self.syntax)
10215    }
10216    #[inline]
10217    pub fn like_token(&self) -> Option<SyntaxToken> {
10218        support::token(&self.syntax, SyntaxKind::LIKE_KW)
10219    }
10220}
10221
10222#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10223pub struct LikeOption {
10224    pub(crate) syntax: SyntaxNode,
10225}
10226impl LikeOption {
10227    #[inline]
10228    pub fn all_token(&self) -> Option<SyntaxToken> {
10229        support::token(&self.syntax, SyntaxKind::ALL_KW)
10230    }
10231    #[inline]
10232    pub fn comments_token(&self) -> Option<SyntaxToken> {
10233        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
10234    }
10235    #[inline]
10236    pub fn compression_token(&self) -> Option<SyntaxToken> {
10237        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
10238    }
10239    #[inline]
10240    pub fn constraints_token(&self) -> Option<SyntaxToken> {
10241        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
10242    }
10243    #[inline]
10244    pub fn defaults_token(&self) -> Option<SyntaxToken> {
10245        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
10246    }
10247    #[inline]
10248    pub fn excluding_token(&self) -> Option<SyntaxToken> {
10249        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
10250    }
10251    #[inline]
10252    pub fn generated_token(&self) -> Option<SyntaxToken> {
10253        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
10254    }
10255    #[inline]
10256    pub fn identity_token(&self) -> Option<SyntaxToken> {
10257        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
10258    }
10259    #[inline]
10260    pub fn including_token(&self) -> Option<SyntaxToken> {
10261        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
10262    }
10263    #[inline]
10264    pub fn indexes_token(&self) -> Option<SyntaxToken> {
10265        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
10266    }
10267    #[inline]
10268    pub fn statistics_token(&self) -> Option<SyntaxToken> {
10269        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
10270    }
10271    #[inline]
10272    pub fn storage_token(&self) -> Option<SyntaxToken> {
10273        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
10274    }
10275}
10276
10277#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10278pub struct LimitClause {
10279    pub(crate) syntax: SyntaxNode,
10280}
10281impl LimitClause {
10282    #[inline]
10283    pub fn expr(&self) -> Option<Expr> {
10284        support::child(&self.syntax)
10285    }
10286    #[inline]
10287    pub fn all_token(&self) -> Option<SyntaxToken> {
10288        support::token(&self.syntax, SyntaxKind::ALL_KW)
10289    }
10290    #[inline]
10291    pub fn limit_token(&self) -> Option<SyntaxToken> {
10292        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10293    }
10294}
10295
10296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10297pub struct LimitToTables {
10298    pub(crate) syntax: SyntaxNode,
10299}
10300impl LimitToTables {
10301    #[inline]
10302    pub fn name_refs(&self) -> AstChildren<NameRef> {
10303        support::children(&self.syntax)
10304    }
10305    #[inline]
10306    pub fn limit_token(&self) -> Option<SyntaxToken> {
10307        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10308    }
10309    #[inline]
10310    pub fn to_token(&self) -> Option<SyntaxToken> {
10311        support::token(&self.syntax, SyntaxKind::TO_KW)
10312    }
10313}
10314
10315#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10316pub struct Listen {
10317    pub(crate) syntax: SyntaxNode,
10318}
10319impl Listen {
10320    #[inline]
10321    pub fn name(&self) -> Option<Name> {
10322        support::child(&self.syntax)
10323    }
10324    #[inline]
10325    pub fn listen_token(&self) -> Option<SyntaxToken> {
10326        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
10327    }
10328}
10329
10330#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10331pub struct Literal {
10332    pub(crate) syntax: SyntaxNode,
10333}
10334impl Literal {}
10335
10336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10337pub struct Load {
10338    pub(crate) syntax: SyntaxNode,
10339}
10340impl Load {
10341    #[inline]
10342    pub fn literal(&self) -> Option<Literal> {
10343        support::child(&self.syntax)
10344    }
10345    #[inline]
10346    pub fn load_token(&self) -> Option<SyntaxToken> {
10347        support::token(&self.syntax, SyntaxKind::LOAD_KW)
10348    }
10349}
10350
10351#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10352pub struct Lock {
10353    pub(crate) syntax: SyntaxNode,
10354}
10355impl Lock {
10356    #[inline]
10357    pub fn table_list(&self) -> Option<TableList> {
10358        support::child(&self.syntax)
10359    }
10360    #[inline]
10361    pub fn lock_token(&self) -> Option<SyntaxToken> {
10362        support::token(&self.syntax, SyntaxKind::LOCK_KW)
10363    }
10364    #[inline]
10365    pub fn table_token(&self) -> Option<SyntaxToken> {
10366        support::token(&self.syntax, SyntaxKind::TABLE_KW)
10367    }
10368}
10369
10370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10371pub struct LockingClause {
10372    pub(crate) syntax: SyntaxNode,
10373}
10374impl LockingClause {
10375    #[inline]
10376    pub fn for_token(&self) -> Option<SyntaxToken> {
10377        support::token(&self.syntax, SyntaxKind::FOR_KW)
10378    }
10379}
10380
10381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10382pub struct Lteq {
10383    pub(crate) syntax: SyntaxNode,
10384}
10385impl Lteq {
10386    #[inline]
10387    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10388        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10389    }
10390    #[inline]
10391    pub fn eq_token(&self) -> Option<SyntaxToken> {
10392        support::token(&self.syntax, SyntaxKind::EQ)
10393    }
10394}
10395
10396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10397pub struct MatchFull {
10398    pub(crate) syntax: SyntaxNode,
10399}
10400impl MatchFull {
10401    #[inline]
10402    pub fn full_token(&self) -> Option<SyntaxToken> {
10403        support::token(&self.syntax, SyntaxKind::FULL_KW)
10404    }
10405    #[inline]
10406    pub fn match_token(&self) -> Option<SyntaxToken> {
10407        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10408    }
10409}
10410
10411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10412pub struct MatchPartial {
10413    pub(crate) syntax: SyntaxNode,
10414}
10415impl MatchPartial {
10416    #[inline]
10417    pub fn match_token(&self) -> Option<SyntaxToken> {
10418        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10419    }
10420    #[inline]
10421    pub fn partial_token(&self) -> Option<SyntaxToken> {
10422        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
10423    }
10424}
10425
10426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10427pub struct MatchSimple {
10428    pub(crate) syntax: SyntaxNode,
10429}
10430impl MatchSimple {
10431    #[inline]
10432    pub fn match_token(&self) -> Option<SyntaxToken> {
10433        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10434    }
10435    #[inline]
10436    pub fn simple_token(&self) -> Option<SyntaxToken> {
10437        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
10438    }
10439}
10440
10441#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10442pub struct Materialized {
10443    pub(crate) syntax: SyntaxNode,
10444}
10445impl Materialized {
10446    #[inline]
10447    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10448        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10449    }
10450}
10451
10452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10453pub struct Merge {
10454    pub(crate) syntax: SyntaxNode,
10455}
10456impl Merge {
10457    #[inline]
10458    pub fn alias(&self) -> Option<Alias> {
10459        support::child(&self.syntax)
10460    }
10461    #[inline]
10462    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
10463        support::children(&self.syntax)
10464    }
10465    #[inline]
10466    pub fn relation_name(&self) -> Option<RelationName> {
10467        support::child(&self.syntax)
10468    }
10469    #[inline]
10470    pub fn returning_clause(&self) -> Option<ReturningClause> {
10471        support::child(&self.syntax)
10472    }
10473    #[inline]
10474    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
10475        support::child(&self.syntax)
10476    }
10477    #[inline]
10478    pub fn with_clause(&self) -> Option<WithClause> {
10479        support::child(&self.syntax)
10480    }
10481    #[inline]
10482    pub fn into_token(&self) -> Option<SyntaxToken> {
10483        support::token(&self.syntax, SyntaxKind::INTO_KW)
10484    }
10485    #[inline]
10486    pub fn merge_token(&self) -> Option<SyntaxToken> {
10487        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10488    }
10489}
10490
10491#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10492pub struct MergeDelete {
10493    pub(crate) syntax: SyntaxNode,
10494}
10495impl MergeDelete {
10496    #[inline]
10497    pub fn delete_token(&self) -> Option<SyntaxToken> {
10498        support::token(&self.syntax, SyntaxKind::DELETE_KW)
10499    }
10500}
10501
10502#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10503pub struct MergeDoNothing {
10504    pub(crate) syntax: SyntaxNode,
10505}
10506impl MergeDoNothing {
10507    #[inline]
10508    pub fn do_token(&self) -> Option<SyntaxToken> {
10509        support::token(&self.syntax, SyntaxKind::DO_KW)
10510    }
10511    #[inline]
10512    pub fn nothing_token(&self) -> Option<SyntaxToken> {
10513        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
10514    }
10515}
10516
10517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10518pub struct MergeInsert {
10519    pub(crate) syntax: SyntaxNode,
10520}
10521impl MergeInsert {
10522    #[inline]
10523    pub fn column_list(&self) -> Option<ColumnList> {
10524        support::child(&self.syntax)
10525    }
10526    #[inline]
10527    pub fn values(&self) -> Option<Values> {
10528        support::child(&self.syntax)
10529    }
10530    #[inline]
10531    pub fn default_token(&self) -> Option<SyntaxToken> {
10532        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10533    }
10534    #[inline]
10535    pub fn insert_token(&self) -> Option<SyntaxToken> {
10536        support::token(&self.syntax, SyntaxKind::INSERT_KW)
10537    }
10538    #[inline]
10539    pub fn overriding_token(&self) -> Option<SyntaxToken> {
10540        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
10541    }
10542    #[inline]
10543    pub fn system_token(&self) -> Option<SyntaxToken> {
10544        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
10545    }
10546    #[inline]
10547    pub fn user_token(&self) -> Option<SyntaxToken> {
10548        support::token(&self.syntax, SyntaxKind::USER_KW)
10549    }
10550    #[inline]
10551    pub fn values_token(&self) -> Option<SyntaxToken> {
10552        support::token(&self.syntax, SyntaxKind::VALUES_KW)
10553    }
10554}
10555
10556#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10557pub struct MergePartitions {
10558    pub(crate) syntax: SyntaxNode,
10559}
10560impl MergePartitions {
10561    #[inline]
10562    pub fn path(&self) -> Option<Path> {
10563        support::child(&self.syntax)
10564    }
10565    #[inline]
10566    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10567        support::token(&self.syntax, SyntaxKind::L_PAREN)
10568    }
10569    #[inline]
10570    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10571        support::token(&self.syntax, SyntaxKind::R_PAREN)
10572    }
10573    #[inline]
10574    pub fn into_token(&self) -> Option<SyntaxToken> {
10575        support::token(&self.syntax, SyntaxKind::INTO_KW)
10576    }
10577    #[inline]
10578    pub fn merge_token(&self) -> Option<SyntaxToken> {
10579        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10580    }
10581    #[inline]
10582    pub fn partitions_token(&self) -> Option<SyntaxToken> {
10583        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
10584    }
10585}
10586
10587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10588pub struct MergeUpdate {
10589    pub(crate) syntax: SyntaxNode,
10590}
10591impl MergeUpdate {
10592    #[inline]
10593    pub fn set_clause(&self) -> Option<SetClause> {
10594        support::child(&self.syntax)
10595    }
10596    #[inline]
10597    pub fn set_token(&self) -> Option<SyntaxToken> {
10598        support::token(&self.syntax, SyntaxKind::SET_KW)
10599    }
10600    #[inline]
10601    pub fn update_token(&self) -> Option<SyntaxToken> {
10602        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
10603    }
10604}
10605
10606#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10607pub struct MergeWhenMatched {
10608    pub(crate) syntax: SyntaxNode,
10609}
10610impl MergeWhenMatched {
10611    #[inline]
10612    pub fn expr(&self) -> Option<Expr> {
10613        support::child(&self.syntax)
10614    }
10615    #[inline]
10616    pub fn merge_action(&self) -> Option<MergeAction> {
10617        support::child(&self.syntax)
10618    }
10619    #[inline]
10620    pub fn and_token(&self) -> Option<SyntaxToken> {
10621        support::token(&self.syntax, SyntaxKind::AND_KW)
10622    }
10623    #[inline]
10624    pub fn matched_token(&self) -> Option<SyntaxToken> {
10625        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10626    }
10627    #[inline]
10628    pub fn then_token(&self) -> Option<SyntaxToken> {
10629        support::token(&self.syntax, SyntaxKind::THEN_KW)
10630    }
10631    #[inline]
10632    pub fn when_token(&self) -> Option<SyntaxToken> {
10633        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10634    }
10635}
10636
10637#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10638pub struct MergeWhenNotMatchedSource {
10639    pub(crate) syntax: SyntaxNode,
10640}
10641impl MergeWhenNotMatchedSource {
10642    #[inline]
10643    pub fn expr(&self) -> Option<Expr> {
10644        support::child(&self.syntax)
10645    }
10646    #[inline]
10647    pub fn merge_action(&self) -> Option<MergeAction> {
10648        support::child(&self.syntax)
10649    }
10650    #[inline]
10651    pub fn and_token(&self) -> Option<SyntaxToken> {
10652        support::token(&self.syntax, SyntaxKind::AND_KW)
10653    }
10654    #[inline]
10655    pub fn by_token(&self) -> Option<SyntaxToken> {
10656        support::token(&self.syntax, SyntaxKind::BY_KW)
10657    }
10658    #[inline]
10659    pub fn matched_token(&self) -> Option<SyntaxToken> {
10660        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10661    }
10662    #[inline]
10663    pub fn not_token(&self) -> Option<SyntaxToken> {
10664        support::token(&self.syntax, SyntaxKind::NOT_KW)
10665    }
10666    #[inline]
10667    pub fn source_token(&self) -> Option<SyntaxToken> {
10668        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
10669    }
10670    #[inline]
10671    pub fn then_token(&self) -> Option<SyntaxToken> {
10672        support::token(&self.syntax, SyntaxKind::THEN_KW)
10673    }
10674    #[inline]
10675    pub fn when_token(&self) -> Option<SyntaxToken> {
10676        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10677    }
10678}
10679
10680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10681pub struct MergeWhenNotMatchedTarget {
10682    pub(crate) syntax: SyntaxNode,
10683}
10684impl MergeWhenNotMatchedTarget {
10685    #[inline]
10686    pub fn expr(&self) -> Option<Expr> {
10687        support::child(&self.syntax)
10688    }
10689    #[inline]
10690    pub fn merge_action(&self) -> Option<MergeAction> {
10691        support::child(&self.syntax)
10692    }
10693    #[inline]
10694    pub fn and_token(&self) -> Option<SyntaxToken> {
10695        support::token(&self.syntax, SyntaxKind::AND_KW)
10696    }
10697    #[inline]
10698    pub fn by_token(&self) -> Option<SyntaxToken> {
10699        support::token(&self.syntax, SyntaxKind::BY_KW)
10700    }
10701    #[inline]
10702    pub fn matched_token(&self) -> Option<SyntaxToken> {
10703        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10704    }
10705    #[inline]
10706    pub fn not_token(&self) -> Option<SyntaxToken> {
10707        support::token(&self.syntax, SyntaxKind::NOT_KW)
10708    }
10709    #[inline]
10710    pub fn target_token(&self) -> Option<SyntaxToken> {
10711        support::token(&self.syntax, SyntaxKind::TARGET_KW)
10712    }
10713    #[inline]
10714    pub fn then_token(&self) -> Option<SyntaxToken> {
10715        support::token(&self.syntax, SyntaxKind::THEN_KW)
10716    }
10717    #[inline]
10718    pub fn when_token(&self) -> Option<SyntaxToken> {
10719        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10720    }
10721}
10722
10723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10724pub struct Move {
10725    pub(crate) syntax: SyntaxNode,
10726}
10727impl Move {
10728    #[inline]
10729    pub fn name_ref(&self) -> Option<NameRef> {
10730        support::child(&self.syntax)
10731    }
10732    #[inline]
10733    pub fn from_token(&self) -> Option<SyntaxToken> {
10734        support::token(&self.syntax, SyntaxKind::FROM_KW)
10735    }
10736    #[inline]
10737    pub fn in_token(&self) -> Option<SyntaxToken> {
10738        support::token(&self.syntax, SyntaxKind::IN_KW)
10739    }
10740    #[inline]
10741    pub fn move_token(&self) -> Option<SyntaxToken> {
10742        support::token(&self.syntax, SyntaxKind::MOVE_KW)
10743    }
10744}
10745
10746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10747pub struct Name {
10748    pub(crate) syntax: SyntaxNode,
10749}
10750impl Name {
10751    #[inline]
10752    pub fn ident_token(&self) -> Option<SyntaxToken> {
10753        support::token(&self.syntax, SyntaxKind::IDENT)
10754    }
10755}
10756
10757#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10758pub struct NameRef {
10759    pub(crate) syntax: SyntaxNode,
10760}
10761impl NameRef {
10762    #[inline]
10763    pub fn ident_token(&self) -> Option<SyntaxToken> {
10764        support::token(&self.syntax, SyntaxKind::IDENT)
10765    }
10766}
10767
10768#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10769pub struct NamedArg {
10770    pub(crate) syntax: SyntaxNode,
10771}
10772impl NamedArg {
10773    #[inline]
10774    pub fn expr(&self) -> Option<Expr> {
10775        support::child(&self.syntax)
10776    }
10777    #[inline]
10778    pub fn fat_arrow(&self) -> Option<FatArrow> {
10779        support::child(&self.syntax)
10780    }
10781    #[inline]
10782    pub fn name_ref(&self) -> Option<NameRef> {
10783        support::child(&self.syntax)
10784    }
10785}
10786
10787#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10788pub struct Neq {
10789    pub(crate) syntax: SyntaxNode,
10790}
10791impl Neq {
10792    #[inline]
10793    pub fn bang_token(&self) -> Option<SyntaxToken> {
10794        support::token(&self.syntax, SyntaxKind::BANG)
10795    }
10796    #[inline]
10797    pub fn eq_token(&self) -> Option<SyntaxToken> {
10798        support::token(&self.syntax, SyntaxKind::EQ)
10799    }
10800}
10801
10802#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10803pub struct Neqb {
10804    pub(crate) syntax: SyntaxNode,
10805}
10806impl Neqb {
10807    #[inline]
10808    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10809        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10810    }
10811    #[inline]
10812    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
10813        support::token(&self.syntax, SyntaxKind::R_ANGLE)
10814    }
10815}
10816
10817#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10818pub struct NoAction {
10819    pub(crate) syntax: SyntaxNode,
10820}
10821impl NoAction {
10822    #[inline]
10823    pub fn action_token(&self) -> Option<SyntaxToken> {
10824        support::token(&self.syntax, SyntaxKind::ACTION_KW)
10825    }
10826    #[inline]
10827    pub fn no_token(&self) -> Option<SyntaxToken> {
10828        support::token(&self.syntax, SyntaxKind::NO_KW)
10829    }
10830}
10831
10832#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10833pub struct NoDependsOnExtension {
10834    pub(crate) syntax: SyntaxNode,
10835}
10836impl NoDependsOnExtension {
10837    #[inline]
10838    pub fn name_ref(&self) -> Option<NameRef> {
10839        support::child(&self.syntax)
10840    }
10841    #[inline]
10842    pub fn depends_token(&self) -> Option<SyntaxToken> {
10843        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
10844    }
10845    #[inline]
10846    pub fn extension_token(&self) -> Option<SyntaxToken> {
10847        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
10848    }
10849    #[inline]
10850    pub fn no_token(&self) -> Option<SyntaxToken> {
10851        support::token(&self.syntax, SyntaxKind::NO_KW)
10852    }
10853    #[inline]
10854    pub fn on_token(&self) -> Option<SyntaxToken> {
10855        support::token(&self.syntax, SyntaxKind::ON_KW)
10856    }
10857}
10858
10859#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10860pub struct NoForceRls {
10861    pub(crate) syntax: SyntaxNode,
10862}
10863impl NoForceRls {
10864    #[inline]
10865    pub fn force_token(&self) -> Option<SyntaxToken> {
10866        support::token(&self.syntax, SyntaxKind::FORCE_KW)
10867    }
10868    #[inline]
10869    pub fn level_token(&self) -> Option<SyntaxToken> {
10870        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
10871    }
10872    #[inline]
10873    pub fn no_token(&self) -> Option<SyntaxToken> {
10874        support::token(&self.syntax, SyntaxKind::NO_KW)
10875    }
10876    #[inline]
10877    pub fn row_token(&self) -> Option<SyntaxToken> {
10878        support::token(&self.syntax, SyntaxKind::ROW_KW)
10879    }
10880    #[inline]
10881    pub fn security_token(&self) -> Option<SyntaxToken> {
10882        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
10883    }
10884}
10885
10886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10887pub struct NoInherit {
10888    pub(crate) syntax: SyntaxNode,
10889}
10890impl NoInherit {
10891    #[inline]
10892    pub fn path(&self) -> Option<Path> {
10893        support::child(&self.syntax)
10894    }
10895    #[inline]
10896    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10897        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10898    }
10899    #[inline]
10900    pub fn no_token(&self) -> Option<SyntaxToken> {
10901        support::token(&self.syntax, SyntaxKind::NO_KW)
10902    }
10903}
10904
10905#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10906pub struct NoInheritTable {
10907    pub(crate) syntax: SyntaxNode,
10908}
10909impl NoInheritTable {
10910    #[inline]
10911    pub fn path(&self) -> Option<Path> {
10912        support::child(&self.syntax)
10913    }
10914    #[inline]
10915    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10916        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10917    }
10918    #[inline]
10919    pub fn no_token(&self) -> Option<SyntaxToken> {
10920        support::token(&self.syntax, SyntaxKind::NO_KW)
10921    }
10922}
10923
10924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10925pub struct NonStandardParam {
10926    pub(crate) syntax: SyntaxNode,
10927}
10928impl NonStandardParam {
10929    #[inline]
10930    pub fn name_ref(&self) -> Option<NameRef> {
10931        support::child(&self.syntax)
10932    }
10933    #[inline]
10934    pub fn colon_token(&self) -> Option<SyntaxToken> {
10935        support::token(&self.syntax, SyntaxKind::COLON)
10936    }
10937}
10938
10939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10940pub struct NotDeferrable {
10941    pub(crate) syntax: SyntaxNode,
10942}
10943impl NotDeferrable {
10944    #[inline]
10945    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10946        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10947    }
10948    #[inline]
10949    pub fn not_token(&self) -> Option<SyntaxToken> {
10950        support::token(&self.syntax, SyntaxKind::NOT_KW)
10951    }
10952}
10953
10954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10955pub struct NotDeferrableConstraintOption {
10956    pub(crate) syntax: SyntaxNode,
10957}
10958impl NotDeferrableConstraintOption {
10959    #[inline]
10960    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10961        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10962    }
10963    #[inline]
10964    pub fn not_token(&self) -> Option<SyntaxToken> {
10965        support::token(&self.syntax, SyntaxKind::NOT_KW)
10966    }
10967}
10968
10969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10970pub struct NotEnforced {
10971    pub(crate) syntax: SyntaxNode,
10972}
10973impl NotEnforced {
10974    #[inline]
10975    pub fn enforced_token(&self) -> Option<SyntaxToken> {
10976        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
10977    }
10978    #[inline]
10979    pub fn not_token(&self) -> Option<SyntaxToken> {
10980        support::token(&self.syntax, SyntaxKind::NOT_KW)
10981    }
10982}
10983
10984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10985pub struct NotIlike {
10986    pub(crate) syntax: SyntaxNode,
10987}
10988impl NotIlike {
10989    #[inline]
10990    pub fn ilike_token(&self) -> Option<SyntaxToken> {
10991        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
10992    }
10993    #[inline]
10994    pub fn not_token(&self) -> Option<SyntaxToken> {
10995        support::token(&self.syntax, SyntaxKind::NOT_KW)
10996    }
10997}
10998
10999#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11000pub struct NotIn {
11001    pub(crate) syntax: SyntaxNode,
11002}
11003impl NotIn {
11004    #[inline]
11005    pub fn in_token(&self) -> Option<SyntaxToken> {
11006        support::token(&self.syntax, SyntaxKind::IN_KW)
11007    }
11008    #[inline]
11009    pub fn not_token(&self) -> Option<SyntaxToken> {
11010        support::token(&self.syntax, SyntaxKind::NOT_KW)
11011    }
11012}
11013
11014#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11015pub struct NotLike {
11016    pub(crate) syntax: SyntaxNode,
11017}
11018impl NotLike {
11019    #[inline]
11020    pub fn like_token(&self) -> Option<SyntaxToken> {
11021        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11022    }
11023    #[inline]
11024    pub fn not_token(&self) -> Option<SyntaxToken> {
11025        support::token(&self.syntax, SyntaxKind::NOT_KW)
11026    }
11027}
11028
11029#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11030pub struct NotMaterialized {
11031    pub(crate) syntax: SyntaxNode,
11032}
11033impl NotMaterialized {
11034    #[inline]
11035    pub fn materialized_token(&self) -> Option<SyntaxToken> {
11036        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
11037    }
11038    #[inline]
11039    pub fn not_token(&self) -> Option<SyntaxToken> {
11040        support::token(&self.syntax, SyntaxKind::NOT_KW)
11041    }
11042}
11043
11044#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11045pub struct NotNullConstraint {
11046    pub(crate) syntax: SyntaxNode,
11047}
11048impl NotNullConstraint {
11049    #[inline]
11050    pub fn name_ref(&self) -> Option<NameRef> {
11051        support::child(&self.syntax)
11052    }
11053    #[inline]
11054    pub fn no_inherit(&self) -> Option<NoInherit> {
11055        support::child(&self.syntax)
11056    }
11057    #[inline]
11058    pub fn constraint_token(&self) -> Option<SyntaxToken> {
11059        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
11060    }
11061    #[inline]
11062    pub fn not_token(&self) -> Option<SyntaxToken> {
11063        support::token(&self.syntax, SyntaxKind::NOT_KW)
11064    }
11065    #[inline]
11066    pub fn null_token(&self) -> Option<SyntaxToken> {
11067        support::token(&self.syntax, SyntaxKind::NULL_KW)
11068    }
11069}
11070
11071#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11072pub struct NotOf {
11073    pub(crate) syntax: SyntaxNode,
11074}
11075impl NotOf {
11076    #[inline]
11077    pub fn not_token(&self) -> Option<SyntaxToken> {
11078        support::token(&self.syntax, SyntaxKind::NOT_KW)
11079    }
11080    #[inline]
11081    pub fn of_token(&self) -> Option<SyntaxToken> {
11082        support::token(&self.syntax, SyntaxKind::OF_KW)
11083    }
11084}
11085
11086#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11087pub struct NotSimilarTo {
11088    pub(crate) syntax: SyntaxNode,
11089}
11090impl NotSimilarTo {
11091    #[inline]
11092    pub fn not_token(&self) -> Option<SyntaxToken> {
11093        support::token(&self.syntax, SyntaxKind::NOT_KW)
11094    }
11095    #[inline]
11096    pub fn similar_token(&self) -> Option<SyntaxToken> {
11097        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
11098    }
11099    #[inline]
11100    pub fn to_token(&self) -> Option<SyntaxToken> {
11101        support::token(&self.syntax, SyntaxKind::TO_KW)
11102    }
11103}
11104
11105#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11106pub struct NotValid {
11107    pub(crate) syntax: SyntaxNode,
11108}
11109impl NotValid {
11110    #[inline]
11111    pub fn not_token(&self) -> Option<SyntaxToken> {
11112        support::token(&self.syntax, SyntaxKind::NOT_KW)
11113    }
11114    #[inline]
11115    pub fn valid_token(&self) -> Option<SyntaxToken> {
11116        support::token(&self.syntax, SyntaxKind::VALID_KW)
11117    }
11118}
11119
11120#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11121pub struct Notify {
11122    pub(crate) syntax: SyntaxNode,
11123}
11124impl Notify {
11125    #[inline]
11126    pub fn literal(&self) -> Option<Literal> {
11127        support::child(&self.syntax)
11128    }
11129    #[inline]
11130    pub fn name_ref(&self) -> Option<NameRef> {
11131        support::child(&self.syntax)
11132    }
11133    #[inline]
11134    pub fn comma_token(&self) -> Option<SyntaxToken> {
11135        support::token(&self.syntax, SyntaxKind::COMMA)
11136    }
11137    #[inline]
11138    pub fn notify_token(&self) -> Option<SyntaxToken> {
11139        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
11140    }
11141}
11142
11143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11144pub struct NullConstraint {
11145    pub(crate) syntax: SyntaxNode,
11146}
11147impl NullConstraint {
11148    #[inline]
11149    pub fn name_ref(&self) -> Option<NameRef> {
11150        support::child(&self.syntax)
11151    }
11152    #[inline]
11153    pub fn constraint_token(&self) -> Option<SyntaxToken> {
11154        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
11155    }
11156    #[inline]
11157    pub fn null_token(&self) -> Option<SyntaxToken> {
11158        support::token(&self.syntax, SyntaxKind::NULL_KW)
11159    }
11160}
11161
11162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11163pub struct NullsDistinct {
11164    pub(crate) syntax: SyntaxNode,
11165}
11166impl NullsDistinct {
11167    #[inline]
11168    pub fn distinct_token(&self) -> Option<SyntaxToken> {
11169        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
11170    }
11171    #[inline]
11172    pub fn nulls_token(&self) -> Option<SyntaxToken> {
11173        support::token(&self.syntax, SyntaxKind::NULLS_KW)
11174    }
11175}
11176
11177#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11178pub struct NullsFirst {
11179    pub(crate) syntax: SyntaxNode,
11180}
11181impl NullsFirst {
11182    #[inline]
11183    pub fn first_token(&self) -> Option<SyntaxToken> {
11184        support::token(&self.syntax, SyntaxKind::FIRST_KW)
11185    }
11186    #[inline]
11187    pub fn nulls_token(&self) -> Option<SyntaxToken> {
11188        support::token(&self.syntax, SyntaxKind::NULLS_KW)
11189    }
11190}
11191
11192#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11193pub struct NullsLast {
11194    pub(crate) syntax: SyntaxNode,
11195}
11196impl NullsLast {
11197    #[inline]
11198    pub fn last_token(&self) -> Option<SyntaxToken> {
11199        support::token(&self.syntax, SyntaxKind::LAST_KW)
11200    }
11201    #[inline]
11202    pub fn nulls_token(&self) -> Option<SyntaxToken> {
11203        support::token(&self.syntax, SyntaxKind::NULLS_KW)
11204    }
11205}
11206
11207#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11208pub struct NullsNotDistinct {
11209    pub(crate) syntax: SyntaxNode,
11210}
11211impl NullsNotDistinct {
11212    #[inline]
11213    pub fn distinct_token(&self) -> Option<SyntaxToken> {
11214        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
11215    }
11216    #[inline]
11217    pub fn not_token(&self) -> Option<SyntaxToken> {
11218        support::token(&self.syntax, SyntaxKind::NOT_KW)
11219    }
11220    #[inline]
11221    pub fn nulls_token(&self) -> Option<SyntaxToken> {
11222        support::token(&self.syntax, SyntaxKind::NULLS_KW)
11223    }
11224}
11225
11226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11227pub struct OfType {
11228    pub(crate) syntax: SyntaxNode,
11229}
11230impl OfType {
11231    #[inline]
11232    pub fn ty(&self) -> Option<Type> {
11233        support::child(&self.syntax)
11234    }
11235    #[inline]
11236    pub fn of_token(&self) -> Option<SyntaxToken> {
11237        support::token(&self.syntax, SyntaxKind::OF_KW)
11238    }
11239}
11240
11241#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11242pub struct OffsetClause {
11243    pub(crate) syntax: SyntaxNode,
11244}
11245impl OffsetClause {
11246    #[inline]
11247    pub fn expr(&self) -> Option<Expr> {
11248        support::child(&self.syntax)
11249    }
11250    #[inline]
11251    pub fn offset_token(&self) -> Option<SyntaxToken> {
11252        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
11253    }
11254    #[inline]
11255    pub fn row_token(&self) -> Option<SyntaxToken> {
11256        support::token(&self.syntax, SyntaxKind::ROW_KW)
11257    }
11258    #[inline]
11259    pub fn rows_token(&self) -> Option<SyntaxToken> {
11260        support::token(&self.syntax, SyntaxKind::ROWS_KW)
11261    }
11262}
11263
11264#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11265pub struct OnClause {
11266    pub(crate) syntax: SyntaxNode,
11267}
11268impl OnClause {
11269    #[inline]
11270    pub fn expr(&self) -> Option<Expr> {
11271        support::child(&self.syntax)
11272    }
11273    #[inline]
11274    pub fn on_token(&self) -> Option<SyntaxToken> {
11275        support::token(&self.syntax, SyntaxKind::ON_KW)
11276    }
11277}
11278
11279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11280pub struct OnCommit {
11281    pub(crate) syntax: SyntaxNode,
11282}
11283impl OnCommit {
11284    #[inline]
11285    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
11286        support::child(&self.syntax)
11287    }
11288    #[inline]
11289    pub fn commit_token(&self) -> Option<SyntaxToken> {
11290        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
11291    }
11292    #[inline]
11293    pub fn on_token(&self) -> Option<SyntaxToken> {
11294        support::token(&self.syntax, SyntaxKind::ON_KW)
11295    }
11296}
11297
11298#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11299pub struct OnConflictClause {
11300    pub(crate) syntax: SyntaxNode,
11301}
11302impl OnConflictClause {
11303    #[inline]
11304    pub fn conflict_action(&self) -> Option<ConflictAction> {
11305        support::child(&self.syntax)
11306    }
11307    #[inline]
11308    pub fn conflict_target(&self) -> Option<ConflictTarget> {
11309        support::child(&self.syntax)
11310    }
11311    #[inline]
11312    pub fn conflict_token(&self) -> Option<SyntaxToken> {
11313        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
11314    }
11315    #[inline]
11316    pub fn on_token(&self) -> Option<SyntaxToken> {
11317        support::token(&self.syntax, SyntaxKind::ON_KW)
11318    }
11319}
11320
11321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11322pub struct OnDeleteAction {
11323    pub(crate) syntax: SyntaxNode,
11324}
11325impl OnDeleteAction {
11326    #[inline]
11327    pub fn ref_action(&self) -> Option<RefAction> {
11328        support::child(&self.syntax)
11329    }
11330    #[inline]
11331    pub fn delete_token(&self) -> Option<SyntaxToken> {
11332        support::token(&self.syntax, SyntaxKind::DELETE_KW)
11333    }
11334    #[inline]
11335    pub fn on_token(&self) -> Option<SyntaxToken> {
11336        support::token(&self.syntax, SyntaxKind::ON_KW)
11337    }
11338}
11339
11340#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11341pub struct OnTable {
11342    pub(crate) syntax: SyntaxNode,
11343}
11344impl OnTable {
11345    #[inline]
11346    pub fn path(&self) -> Option<Path> {
11347        support::child(&self.syntax)
11348    }
11349    #[inline]
11350    pub fn on_token(&self) -> Option<SyntaxToken> {
11351        support::token(&self.syntax, SyntaxKind::ON_KW)
11352    }
11353}
11354
11355#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11356pub struct OnUpdateAction {
11357    pub(crate) syntax: SyntaxNode,
11358}
11359impl OnUpdateAction {
11360    #[inline]
11361    pub fn ref_action(&self) -> Option<RefAction> {
11362        support::child(&self.syntax)
11363    }
11364    #[inline]
11365    pub fn on_token(&self) -> Option<SyntaxToken> {
11366        support::token(&self.syntax, SyntaxKind::ON_KW)
11367    }
11368    #[inline]
11369    pub fn update_token(&self) -> Option<SyntaxToken> {
11370        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
11371    }
11372}
11373
11374#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11375pub struct Op {
11376    pub(crate) syntax: SyntaxNode,
11377}
11378impl Op {
11379    #[inline]
11380    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
11381        support::child(&self.syntax)
11382    }
11383    #[inline]
11384    pub fn colon_colon(&self) -> Option<ColonColon> {
11385        support::child(&self.syntax)
11386    }
11387    #[inline]
11388    pub fn colon_eq(&self) -> Option<ColonEq> {
11389        support::child(&self.syntax)
11390    }
11391    #[inline]
11392    pub fn custom_op(&self) -> Option<CustomOp> {
11393        support::child(&self.syntax)
11394    }
11395    #[inline]
11396    pub fn fat_arrow(&self) -> Option<FatArrow> {
11397        support::child(&self.syntax)
11398    }
11399    #[inline]
11400    pub fn gteq(&self) -> Option<Gteq> {
11401        support::child(&self.syntax)
11402    }
11403    #[inline]
11404    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
11405        support::child(&self.syntax)
11406    }
11407    #[inline]
11408    pub fn is_json(&self) -> Option<IsJson> {
11409        support::child(&self.syntax)
11410    }
11411    #[inline]
11412    pub fn is_json_array(&self) -> Option<IsJsonArray> {
11413        support::child(&self.syntax)
11414    }
11415    #[inline]
11416    pub fn is_json_object(&self) -> Option<IsJsonObject> {
11417        support::child(&self.syntax)
11418    }
11419    #[inline]
11420    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
11421        support::child(&self.syntax)
11422    }
11423    #[inline]
11424    pub fn is_json_value(&self) -> Option<IsJsonValue> {
11425        support::child(&self.syntax)
11426    }
11427    #[inline]
11428    pub fn is_not(&self) -> Option<IsNot> {
11429        support::child(&self.syntax)
11430    }
11431    #[inline]
11432    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
11433        support::child(&self.syntax)
11434    }
11435    #[inline]
11436    pub fn is_not_json(&self) -> Option<IsNotJson> {
11437        support::child(&self.syntax)
11438    }
11439    #[inline]
11440    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
11441        support::child(&self.syntax)
11442    }
11443    #[inline]
11444    pub fn is_not_json_object(&self) -> Option<IsNotJsonObject> {
11445        support::child(&self.syntax)
11446    }
11447    #[inline]
11448    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
11449        support::child(&self.syntax)
11450    }
11451    #[inline]
11452    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
11453        support::child(&self.syntax)
11454    }
11455    #[inline]
11456    pub fn lteq(&self) -> Option<Lteq> {
11457        support::child(&self.syntax)
11458    }
11459    #[inline]
11460    pub fn neq(&self) -> Option<Neq> {
11461        support::child(&self.syntax)
11462    }
11463    #[inline]
11464    pub fn neqb(&self) -> Option<Neqb> {
11465        support::child(&self.syntax)
11466    }
11467    #[inline]
11468    pub fn not_ilike(&self) -> Option<NotIlike> {
11469        support::child(&self.syntax)
11470    }
11471    #[inline]
11472    pub fn not_in(&self) -> Option<NotIn> {
11473        support::child(&self.syntax)
11474    }
11475    #[inline]
11476    pub fn not_like(&self) -> Option<NotLike> {
11477        support::child(&self.syntax)
11478    }
11479    #[inline]
11480    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
11481        support::child(&self.syntax)
11482    }
11483    #[inline]
11484    pub fn operator_call(&self) -> Option<OperatorCall> {
11485        support::child(&self.syntax)
11486    }
11487    #[inline]
11488    pub fn similar_to(&self) -> Option<SimilarTo> {
11489        support::child(&self.syntax)
11490    }
11491    #[inline]
11492    pub fn percent_token(&self) -> Option<SyntaxToken> {
11493        support::token(&self.syntax, SyntaxKind::PERCENT)
11494    }
11495    #[inline]
11496    pub fn plus_token(&self) -> Option<SyntaxToken> {
11497        support::token(&self.syntax, SyntaxKind::PLUS)
11498    }
11499    #[inline]
11500    pub fn minus_token(&self) -> Option<SyntaxToken> {
11501        support::token(&self.syntax, SyntaxKind::MINUS)
11502    }
11503    #[inline]
11504    pub fn slash_token(&self) -> Option<SyntaxToken> {
11505        support::token(&self.syntax, SyntaxKind::SLASH)
11506    }
11507    #[inline]
11508    pub fn colon_token(&self) -> Option<SyntaxToken> {
11509        support::token(&self.syntax, SyntaxKind::COLON)
11510    }
11511    #[inline]
11512    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11513        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11514    }
11515    #[inline]
11516    pub fn eq_token(&self) -> Option<SyntaxToken> {
11517        support::token(&self.syntax, SyntaxKind::EQ)
11518    }
11519    #[inline]
11520    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11521        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11522    }
11523    #[inline]
11524    pub fn caret_token(&self) -> Option<SyntaxToken> {
11525        support::token(&self.syntax, SyntaxKind::CARET)
11526    }
11527    #[inline]
11528    pub fn and_token(&self) -> Option<SyntaxToken> {
11529        support::token(&self.syntax, SyntaxKind::AND_KW)
11530    }
11531    #[inline]
11532    pub fn collate_token(&self) -> Option<SyntaxToken> {
11533        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
11534    }
11535    #[inline]
11536    pub fn ilike_token(&self) -> Option<SyntaxToken> {
11537        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
11538    }
11539    #[inline]
11540    pub fn in_token(&self) -> Option<SyntaxToken> {
11541        support::token(&self.syntax, SyntaxKind::IN_KW)
11542    }
11543    #[inline]
11544    pub fn is_token(&self) -> Option<SyntaxToken> {
11545        support::token(&self.syntax, SyntaxKind::IS_KW)
11546    }
11547    #[inline]
11548    pub fn like_token(&self) -> Option<SyntaxToken> {
11549        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11550    }
11551    #[inline]
11552    pub fn or_token(&self) -> Option<SyntaxToken> {
11553        support::token(&self.syntax, SyntaxKind::OR_KW)
11554    }
11555    #[inline]
11556    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
11557        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
11558    }
11559    #[inline]
11560    pub fn value_token(&self) -> Option<SyntaxToken> {
11561        support::token(&self.syntax, SyntaxKind::VALUE_KW)
11562    }
11563}
11564
11565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11566pub struct OpClassOption {
11567    pub(crate) syntax: SyntaxNode,
11568}
11569impl OpClassOption {
11570    #[inline]
11571    pub fn function_sig(&self) -> Option<FunctionSig> {
11572        support::child(&self.syntax)
11573    }
11574    #[inline]
11575    pub fn literal(&self) -> Option<Literal> {
11576        support::child(&self.syntax)
11577    }
11578    #[inline]
11579    pub fn op(&self) -> Option<Op> {
11580        support::child(&self.syntax)
11581    }
11582    #[inline]
11583    pub fn param_list(&self) -> Option<ParamList> {
11584        support::child(&self.syntax)
11585    }
11586    #[inline]
11587    pub fn path(&self) -> Option<Path> {
11588        support::child(&self.syntax)
11589    }
11590    #[inline]
11591    pub fn ty(&self) -> Option<Type> {
11592        support::child(&self.syntax)
11593    }
11594    #[inline]
11595    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11596        support::token(&self.syntax, SyntaxKind::L_PAREN)
11597    }
11598    #[inline]
11599    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11600        support::token(&self.syntax, SyntaxKind::R_PAREN)
11601    }
11602    #[inline]
11603    pub fn comma_token(&self) -> Option<SyntaxToken> {
11604        support::token(&self.syntax, SyntaxKind::COMMA)
11605    }
11606    #[inline]
11607    pub fn by_token(&self) -> Option<SyntaxToken> {
11608        support::token(&self.syntax, SyntaxKind::BY_KW)
11609    }
11610    #[inline]
11611    pub fn for_token(&self) -> Option<SyntaxToken> {
11612        support::token(&self.syntax, SyntaxKind::FOR_KW)
11613    }
11614    #[inline]
11615    pub fn function_token(&self) -> Option<SyntaxToken> {
11616        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
11617    }
11618    #[inline]
11619    pub fn operator_token(&self) -> Option<SyntaxToken> {
11620        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11621    }
11622    #[inline]
11623    pub fn order_token(&self) -> Option<SyntaxToken> {
11624        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11625    }
11626    #[inline]
11627    pub fn search_token(&self) -> Option<SyntaxToken> {
11628        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
11629    }
11630    #[inline]
11631    pub fn storage_token(&self) -> Option<SyntaxToken> {
11632        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11633    }
11634}
11635
11636#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11637pub struct OpSig {
11638    pub(crate) syntax: SyntaxNode,
11639}
11640impl OpSig {
11641    #[inline]
11642    pub fn op(&self) -> Option<Op> {
11643        support::child(&self.syntax)
11644    }
11645    #[inline]
11646    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11647        support::token(&self.syntax, SyntaxKind::L_PAREN)
11648    }
11649    #[inline]
11650    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11651        support::token(&self.syntax, SyntaxKind::R_PAREN)
11652    }
11653    #[inline]
11654    pub fn comma_token(&self) -> Option<SyntaxToken> {
11655        support::token(&self.syntax, SyntaxKind::COMMA)
11656    }
11657    #[inline]
11658    pub fn none_token(&self) -> Option<SyntaxToken> {
11659        support::token(&self.syntax, SyntaxKind::NONE_KW)
11660    }
11661}
11662
11663#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11664pub struct OpSigList {
11665    pub(crate) syntax: SyntaxNode,
11666}
11667impl OpSigList {
11668    #[inline]
11669    pub fn op_sigs(&self) -> AstChildren<OpSig> {
11670        support::children(&self.syntax)
11671    }
11672}
11673
11674#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11675pub struct OperatorCall {
11676    pub(crate) syntax: SyntaxNode,
11677}
11678impl OperatorCall {
11679    #[inline]
11680    pub fn op(&self) -> Option<Op> {
11681        support::child(&self.syntax)
11682    }
11683    #[inline]
11684    pub fn path(&self) -> Option<Path> {
11685        support::child(&self.syntax)
11686    }
11687    #[inline]
11688    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11689        support::token(&self.syntax, SyntaxKind::L_PAREN)
11690    }
11691    #[inline]
11692    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11693        support::token(&self.syntax, SyntaxKind::R_PAREN)
11694    }
11695    #[inline]
11696    pub fn dot_token(&self) -> Option<SyntaxToken> {
11697        support::token(&self.syntax, SyntaxKind::DOT)
11698    }
11699    #[inline]
11700    pub fn operator_token(&self) -> Option<SyntaxToken> {
11701        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11702    }
11703}
11704
11705#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11706pub struct OperatorClassOptionList {
11707    pub(crate) syntax: SyntaxNode,
11708}
11709impl OperatorClassOptionList {
11710    #[inline]
11711    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
11712        support::children(&self.syntax)
11713    }
11714}
11715
11716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11717pub struct OptionItem {
11718    pub(crate) syntax: SyntaxNode,
11719}
11720impl OptionItem {
11721    #[inline]
11722    pub fn expr(&self) -> Option<Expr> {
11723        support::child(&self.syntax)
11724    }
11725    #[inline]
11726    pub fn default_token(&self) -> Option<SyntaxToken> {
11727        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11728    }
11729}
11730
11731#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11732pub struct OptionItemList {
11733    pub(crate) syntax: SyntaxNode,
11734}
11735impl OptionItemList {
11736    #[inline]
11737    pub fn option_items(&self) -> AstChildren<OptionItem> {
11738        support::children(&self.syntax)
11739    }
11740    #[inline]
11741    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11742        support::token(&self.syntax, SyntaxKind::L_PAREN)
11743    }
11744    #[inline]
11745    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11746        support::token(&self.syntax, SyntaxKind::R_PAREN)
11747    }
11748}
11749
11750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11751pub struct OrReplace {
11752    pub(crate) syntax: SyntaxNode,
11753}
11754impl OrReplace {
11755    #[inline]
11756    pub fn or_token(&self) -> Option<SyntaxToken> {
11757        support::token(&self.syntax, SyntaxKind::OR_KW)
11758    }
11759    #[inline]
11760    pub fn replace_token(&self) -> Option<SyntaxToken> {
11761        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
11762    }
11763}
11764
11765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11766pub struct OrderByClause {
11767    pub(crate) syntax: SyntaxNode,
11768}
11769impl OrderByClause {
11770    #[inline]
11771    pub fn sort_by_list(&self) -> Option<SortByList> {
11772        support::child(&self.syntax)
11773    }
11774    #[inline]
11775    pub fn by_token(&self) -> Option<SyntaxToken> {
11776        support::token(&self.syntax, SyntaxKind::BY_KW)
11777    }
11778    #[inline]
11779    pub fn order_token(&self) -> Option<SyntaxToken> {
11780        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11781    }
11782}
11783
11784#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11785pub struct OverClause {
11786    pub(crate) syntax: SyntaxNode,
11787}
11788impl OverClause {
11789    #[inline]
11790    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11791        support::token(&self.syntax, SyntaxKind::L_PAREN)
11792    }
11793    #[inline]
11794    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11795        support::token(&self.syntax, SyntaxKind::R_PAREN)
11796    }
11797    #[inline]
11798    pub fn over_token(&self) -> Option<SyntaxToken> {
11799        support::token(&self.syntax, SyntaxKind::OVER_KW)
11800    }
11801}
11802
11803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11804pub struct OverlayFn {
11805    pub(crate) syntax: SyntaxNode,
11806}
11807impl OverlayFn {
11808    #[inline]
11809    pub fn expr(&self) -> Option<Expr> {
11810        support::child(&self.syntax)
11811    }
11812    #[inline]
11813    pub fn exprs(&self) -> AstChildren<Expr> {
11814        support::children(&self.syntax)
11815    }
11816    #[inline]
11817    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11818        support::token(&self.syntax, SyntaxKind::L_PAREN)
11819    }
11820    #[inline]
11821    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11822        support::token(&self.syntax, SyntaxKind::R_PAREN)
11823    }
11824    #[inline]
11825    pub fn for_token(&self) -> Option<SyntaxToken> {
11826        support::token(&self.syntax, SyntaxKind::FOR_KW)
11827    }
11828    #[inline]
11829    pub fn from_token(&self) -> Option<SyntaxToken> {
11830        support::token(&self.syntax, SyntaxKind::FROM_KW)
11831    }
11832    #[inline]
11833    pub fn overlay_token(&self) -> Option<SyntaxToken> {
11834        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
11835    }
11836    #[inline]
11837    pub fn placing_token(&self) -> Option<SyntaxToken> {
11838        support::token(&self.syntax, SyntaxKind::PLACING_KW)
11839    }
11840}
11841
11842#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11843pub struct OwnedByRoles {
11844    pub(crate) syntax: SyntaxNode,
11845}
11846impl OwnedByRoles {
11847    #[inline]
11848    pub fn role_ref_list(&self) -> Option<RoleRefList> {
11849        support::child(&self.syntax)
11850    }
11851    #[inline]
11852    pub fn by_token(&self) -> Option<SyntaxToken> {
11853        support::token(&self.syntax, SyntaxKind::BY_KW)
11854    }
11855    #[inline]
11856    pub fn owned_token(&self) -> Option<SyntaxToken> {
11857        support::token(&self.syntax, SyntaxKind::OWNED_KW)
11858    }
11859}
11860
11861#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11862pub struct OwnerTo {
11863    pub(crate) syntax: SyntaxNode,
11864}
11865impl OwnerTo {
11866    #[inline]
11867    pub fn role_ref(&self) -> Option<RoleRef> {
11868        support::child(&self.syntax)
11869    }
11870    #[inline]
11871    pub fn owner_token(&self) -> Option<SyntaxToken> {
11872        support::token(&self.syntax, SyntaxKind::OWNER_KW)
11873    }
11874    #[inline]
11875    pub fn to_token(&self) -> Option<SyntaxToken> {
11876        support::token(&self.syntax, SyntaxKind::TO_KW)
11877    }
11878}
11879
11880#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11881pub struct ParallelFuncOption {
11882    pub(crate) syntax: SyntaxNode,
11883}
11884impl ParallelFuncOption {
11885    #[inline]
11886    pub fn ident_token(&self) -> Option<SyntaxToken> {
11887        support::token(&self.syntax, SyntaxKind::IDENT)
11888    }
11889    #[inline]
11890    pub fn parallel_token(&self) -> Option<SyntaxToken> {
11891        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
11892    }
11893}
11894
11895#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11896pub struct Param {
11897    pub(crate) syntax: SyntaxNode,
11898}
11899impl Param {
11900    #[inline]
11901    pub fn mode(&self) -> Option<ParamMode> {
11902        support::child(&self.syntax)
11903    }
11904    #[inline]
11905    pub fn name(&self) -> Option<Name> {
11906        support::child(&self.syntax)
11907    }
11908    #[inline]
11909    pub fn param_default(&self) -> Option<ParamDefault> {
11910        support::child(&self.syntax)
11911    }
11912    #[inline]
11913    pub fn ty(&self) -> Option<Type> {
11914        support::child(&self.syntax)
11915    }
11916}
11917
11918#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11919pub struct ParamDefault {
11920    pub(crate) syntax: SyntaxNode,
11921}
11922impl ParamDefault {
11923    #[inline]
11924    pub fn expr(&self) -> Option<Expr> {
11925        support::child(&self.syntax)
11926    }
11927    #[inline]
11928    pub fn eq_token(&self) -> Option<SyntaxToken> {
11929        support::token(&self.syntax, SyntaxKind::EQ)
11930    }
11931    #[inline]
11932    pub fn default_token(&self) -> Option<SyntaxToken> {
11933        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11934    }
11935}
11936
11937#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11938pub struct ParamIn {
11939    pub(crate) syntax: SyntaxNode,
11940}
11941impl ParamIn {
11942    #[inline]
11943    pub fn in_token(&self) -> Option<SyntaxToken> {
11944        support::token(&self.syntax, SyntaxKind::IN_KW)
11945    }
11946}
11947
11948#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11949pub struct ParamInOut {
11950    pub(crate) syntax: SyntaxNode,
11951}
11952impl ParamInOut {
11953    #[inline]
11954    pub fn in_token(&self) -> Option<SyntaxToken> {
11955        support::token(&self.syntax, SyntaxKind::IN_KW)
11956    }
11957    #[inline]
11958    pub fn inout_token(&self) -> Option<SyntaxToken> {
11959        support::token(&self.syntax, SyntaxKind::INOUT_KW)
11960    }
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 ParamList {
11969    pub(crate) syntax: SyntaxNode,
11970}
11971impl ParamList {
11972    #[inline]
11973    pub fn params(&self) -> AstChildren<Param> {
11974        support::children(&self.syntax)
11975    }
11976}
11977
11978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11979pub struct ParamOut {
11980    pub(crate) syntax: SyntaxNode,
11981}
11982impl ParamOut {
11983    #[inline]
11984    pub fn out_token(&self) -> Option<SyntaxToken> {
11985        support::token(&self.syntax, SyntaxKind::OUT_KW)
11986    }
11987}
11988
11989#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11990pub struct ParamVariadic {
11991    pub(crate) syntax: SyntaxNode,
11992}
11993impl ParamVariadic {
11994    #[inline]
11995    pub fn variadic_token(&self) -> Option<SyntaxToken> {
11996        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
11997    }
11998}
11999
12000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12001pub struct ParenExpr {
12002    pub(crate) syntax: SyntaxNode,
12003}
12004impl ParenExpr {
12005    #[inline]
12006    pub fn expr(&self) -> Option<Expr> {
12007        support::child(&self.syntax)
12008    }
12009    #[inline]
12010    pub fn from_item(&self) -> Option<FromItem> {
12011        support::child(&self.syntax)
12012    }
12013    #[inline]
12014    pub fn select(&self) -> Option<Select> {
12015        support::child(&self.syntax)
12016    }
12017    #[inline]
12018    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12019        support::token(&self.syntax, SyntaxKind::L_PAREN)
12020    }
12021    #[inline]
12022    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12023        support::token(&self.syntax, SyntaxKind::R_PAREN)
12024    }
12025}
12026
12027#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12028pub struct ParenSelect {
12029    pub(crate) syntax: SyntaxNode,
12030}
12031impl ParenSelect {
12032    #[inline]
12033    pub fn select(&self) -> Option<SelectVariant> {
12034        support::child(&self.syntax)
12035    }
12036    #[inline]
12037    pub fn with_clause(&self) -> Option<WithClause> {
12038        support::child(&self.syntax)
12039    }
12040    #[inline]
12041    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12042        support::token(&self.syntax, SyntaxKind::L_PAREN)
12043    }
12044    #[inline]
12045    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12046        support::token(&self.syntax, SyntaxKind::R_PAREN)
12047    }
12048}
12049
12050#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12051pub struct Partition {
12052    pub(crate) syntax: SyntaxNode,
12053}
12054impl Partition {
12055    #[inline]
12056    pub fn partition_type(&self) -> Option<PartitionType> {
12057        support::child(&self.syntax)
12058    }
12059    #[inline]
12060    pub fn path(&self) -> Option<Path> {
12061        support::child(&self.syntax)
12062    }
12063    #[inline]
12064    pub fn partition_token(&self) -> Option<SyntaxToken> {
12065        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
12066    }
12067}
12068
12069#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12070pub struct PartitionBy {
12071    pub(crate) syntax: SyntaxNode,
12072}
12073impl PartitionBy {
12074    #[inline]
12075    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
12076        support::child(&self.syntax)
12077    }
12078    #[inline]
12079    pub fn by_token(&self) -> Option<SyntaxToken> {
12080        support::token(&self.syntax, SyntaxKind::BY_KW)
12081    }
12082    #[inline]
12083    pub fn ident_token(&self) -> Option<SyntaxToken> {
12084        support::token(&self.syntax, SyntaxKind::IDENT)
12085    }
12086    #[inline]
12087    pub fn partition_token(&self) -> Option<SyntaxToken> {
12088        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
12089    }
12090    #[inline]
12091    pub fn range_token(&self) -> Option<SyntaxToken> {
12092        support::token(&self.syntax, SyntaxKind::RANGE_KW)
12093    }
12094}
12095
12096#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12097pub struct PartitionDefault {
12098    pub(crate) syntax: SyntaxNode,
12099}
12100impl PartitionDefault {
12101    #[inline]
12102    pub fn default_token(&self) -> Option<SyntaxToken> {
12103        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
12104    }
12105}
12106
12107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12108pub struct PartitionForValuesFrom {
12109    pub(crate) syntax: SyntaxNode,
12110}
12111impl PartitionForValuesFrom {
12112    #[inline]
12113    pub fn exprs(&self) -> AstChildren<Expr> {
12114        support::children(&self.syntax)
12115    }
12116    #[inline]
12117    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12118        support::token(&self.syntax, SyntaxKind::L_PAREN)
12119    }
12120    #[inline]
12121    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12122        support::token(&self.syntax, SyntaxKind::R_PAREN)
12123    }
12124    #[inline]
12125    pub fn for_token(&self) -> Option<SyntaxToken> {
12126        support::token(&self.syntax, SyntaxKind::FOR_KW)
12127    }
12128    #[inline]
12129    pub fn from_token(&self) -> Option<SyntaxToken> {
12130        support::token(&self.syntax, SyntaxKind::FROM_KW)
12131    }
12132    #[inline]
12133    pub fn to_token(&self) -> Option<SyntaxToken> {
12134        support::token(&self.syntax, SyntaxKind::TO_KW)
12135    }
12136    #[inline]
12137    pub fn values_token(&self) -> Option<SyntaxToken> {
12138        support::token(&self.syntax, SyntaxKind::VALUES_KW)
12139    }
12140}
12141
12142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12143pub struct PartitionForValuesIn {
12144    pub(crate) syntax: SyntaxNode,
12145}
12146impl PartitionForValuesIn {
12147    #[inline]
12148    pub fn exprs(&self) -> AstChildren<Expr> {
12149        support::children(&self.syntax)
12150    }
12151    #[inline]
12152    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12153        support::token(&self.syntax, SyntaxKind::L_PAREN)
12154    }
12155    #[inline]
12156    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12157        support::token(&self.syntax, SyntaxKind::R_PAREN)
12158    }
12159    #[inline]
12160    pub fn for_token(&self) -> Option<SyntaxToken> {
12161        support::token(&self.syntax, SyntaxKind::FOR_KW)
12162    }
12163    #[inline]
12164    pub fn in_token(&self) -> Option<SyntaxToken> {
12165        support::token(&self.syntax, SyntaxKind::IN_KW)
12166    }
12167    #[inline]
12168    pub fn values_token(&self) -> Option<SyntaxToken> {
12169        support::token(&self.syntax, SyntaxKind::VALUES_KW)
12170    }
12171}
12172
12173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12174pub struct PartitionForValuesWith {
12175    pub(crate) syntax: SyntaxNode,
12176}
12177impl PartitionForValuesWith {
12178    #[inline]
12179    pub fn literal(&self) -> Option<Literal> {
12180        support::child(&self.syntax)
12181    }
12182    #[inline]
12183    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12184        support::token(&self.syntax, SyntaxKind::L_PAREN)
12185    }
12186    #[inline]
12187    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12188        support::token(&self.syntax, SyntaxKind::R_PAREN)
12189    }
12190    #[inline]
12191    pub fn comma_token(&self) -> Option<SyntaxToken> {
12192        support::token(&self.syntax, SyntaxKind::COMMA)
12193    }
12194    #[inline]
12195    pub fn for_token(&self) -> Option<SyntaxToken> {
12196        support::token(&self.syntax, SyntaxKind::FOR_KW)
12197    }
12198    #[inline]
12199    pub fn ident_token(&self) -> Option<SyntaxToken> {
12200        support::token(&self.syntax, SyntaxKind::IDENT)
12201    }
12202    #[inline]
12203    pub fn values_token(&self) -> Option<SyntaxToken> {
12204        support::token(&self.syntax, SyntaxKind::VALUES_KW)
12205    }
12206    #[inline]
12207    pub fn with_token(&self) -> Option<SyntaxToken> {
12208        support::token(&self.syntax, SyntaxKind::WITH_KW)
12209    }
12210}
12211
12212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12213pub struct PartitionItem {
12214    pub(crate) syntax: SyntaxNode,
12215}
12216impl PartitionItem {
12217    #[inline]
12218    pub fn collate(&self) -> Option<Collate> {
12219        support::child(&self.syntax)
12220    }
12221    #[inline]
12222    pub fn expr(&self) -> Option<Expr> {
12223        support::child(&self.syntax)
12224    }
12225}
12226
12227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12228pub struct PartitionItemList {
12229    pub(crate) syntax: SyntaxNode,
12230}
12231impl PartitionItemList {
12232    #[inline]
12233    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
12234        support::children(&self.syntax)
12235    }
12236    #[inline]
12237    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12238        support::token(&self.syntax, SyntaxKind::L_PAREN)
12239    }
12240    #[inline]
12241    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12242        support::token(&self.syntax, SyntaxKind::R_PAREN)
12243    }
12244}
12245
12246#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12247pub struct PartitionList {
12248    pub(crate) syntax: SyntaxNode,
12249}
12250impl PartitionList {
12251    #[inline]
12252    pub fn partitions(&self) -> AstChildren<Partition> {
12253        support::children(&self.syntax)
12254    }
12255    #[inline]
12256    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12257        support::token(&self.syntax, SyntaxKind::L_PAREN)
12258    }
12259    #[inline]
12260    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12261        support::token(&self.syntax, SyntaxKind::R_PAREN)
12262    }
12263}
12264
12265#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12266pub struct PartitionOf {
12267    pub(crate) syntax: SyntaxNode,
12268}
12269impl PartitionOf {
12270    #[inline]
12271    pub fn path(&self) -> Option<Path> {
12272        support::child(&self.syntax)
12273    }
12274    #[inline]
12275    pub fn of_token(&self) -> Option<SyntaxToken> {
12276        support::token(&self.syntax, SyntaxKind::OF_KW)
12277    }
12278    #[inline]
12279    pub fn partition_token(&self) -> Option<SyntaxToken> {
12280        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
12281    }
12282}
12283
12284#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12285pub struct Path {
12286    pub(crate) syntax: SyntaxNode,
12287}
12288impl Path {
12289    #[inline]
12290    pub fn qualifier(&self) -> Option<Path> {
12291        support::child(&self.syntax)
12292    }
12293    #[inline]
12294    pub fn segment(&self) -> Option<PathSegment> {
12295        support::child(&self.syntax)
12296    }
12297    #[inline]
12298    pub fn dot_token(&self) -> Option<SyntaxToken> {
12299        support::token(&self.syntax, SyntaxKind::DOT)
12300    }
12301}
12302
12303#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12304pub struct PathSegment {
12305    pub(crate) syntax: SyntaxNode,
12306}
12307impl PathSegment {
12308    #[inline]
12309    pub fn name(&self) -> Option<Name> {
12310        support::child(&self.syntax)
12311    }
12312    #[inline]
12313    pub fn name_ref(&self) -> Option<NameRef> {
12314        support::child(&self.syntax)
12315    }
12316}
12317
12318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12319pub struct PathType {
12320    pub(crate) syntax: SyntaxNode,
12321}
12322impl PathType {
12323    #[inline]
12324    pub fn arg_list(&self) -> Option<ArgList> {
12325        support::child(&self.syntax)
12326    }
12327    #[inline]
12328    pub fn path(&self) -> Option<Path> {
12329        support::child(&self.syntax)
12330    }
12331}
12332
12333#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12334pub struct PercentType {
12335    pub(crate) syntax: SyntaxNode,
12336}
12337impl PercentType {
12338    #[inline]
12339    pub fn percent_token(&self) -> Option<SyntaxToken> {
12340        support::token(&self.syntax, SyntaxKind::PERCENT)
12341    }
12342    #[inline]
12343    pub fn type_token(&self) -> Option<SyntaxToken> {
12344        support::token(&self.syntax, SyntaxKind::TYPE_KW)
12345    }
12346}
12347
12348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12349pub struct PercentTypeClause {
12350    pub(crate) syntax: SyntaxNode,
12351}
12352impl PercentTypeClause {
12353    #[inline]
12354    pub fn path(&self) -> Option<Path> {
12355        support::child(&self.syntax)
12356    }
12357    #[inline]
12358    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
12359        support::child(&self.syntax)
12360    }
12361}
12362
12363#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12364pub struct PositionFn {
12365    pub(crate) syntax: SyntaxNode,
12366}
12367impl PositionFn {
12368    #[inline]
12369    pub fn expr(&self) -> Option<Expr> {
12370        support::child(&self.syntax)
12371    }
12372    #[inline]
12373    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12374        support::token(&self.syntax, SyntaxKind::L_PAREN)
12375    }
12376    #[inline]
12377    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12378        support::token(&self.syntax, SyntaxKind::R_PAREN)
12379    }
12380    #[inline]
12381    pub fn in_token(&self) -> Option<SyntaxToken> {
12382        support::token(&self.syntax, SyntaxKind::IN_KW)
12383    }
12384    #[inline]
12385    pub fn position_token(&self) -> Option<SyntaxToken> {
12386        support::token(&self.syntax, SyntaxKind::POSITION_KW)
12387    }
12388}
12389
12390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12391pub struct PostfixExpr {
12392    pub(crate) syntax: SyntaxNode,
12393}
12394impl PostfixExpr {
12395    #[inline]
12396    pub fn expr(&self) -> Option<Expr> {
12397        support::child(&self.syntax)
12398    }
12399}
12400
12401#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12402pub struct PrefixExpr {
12403    pub(crate) syntax: SyntaxNode,
12404}
12405impl PrefixExpr {
12406    #[inline]
12407    pub fn expr(&self) -> Option<Expr> {
12408        support::child(&self.syntax)
12409    }
12410}
12411
12412#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12413pub struct Prepare {
12414    pub(crate) syntax: SyntaxNode,
12415}
12416impl Prepare {
12417    #[inline]
12418    pub fn name(&self) -> Option<Name> {
12419        support::child(&self.syntax)
12420    }
12421    #[inline]
12422    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
12423        support::child(&self.syntax)
12424    }
12425    #[inline]
12426    pub fn as_token(&self) -> Option<SyntaxToken> {
12427        support::token(&self.syntax, SyntaxKind::AS_KW)
12428    }
12429    #[inline]
12430    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12431        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12432    }
12433}
12434
12435#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12436pub struct PrepareTransaction {
12437    pub(crate) syntax: SyntaxNode,
12438}
12439impl PrepareTransaction {
12440    #[inline]
12441    pub fn literal(&self) -> Option<Literal> {
12442        support::child(&self.syntax)
12443    }
12444    #[inline]
12445    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12446        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12447    }
12448    #[inline]
12449    pub fn transaction_token(&self) -> Option<SyntaxToken> {
12450        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
12451    }
12452}
12453
12454#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12455pub struct PreserveRows {
12456    pub(crate) syntax: SyntaxNode,
12457}
12458impl PreserveRows {
12459    #[inline]
12460    pub fn preserve_token(&self) -> Option<SyntaxToken> {
12461        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
12462    }
12463    #[inline]
12464    pub fn rows_token(&self) -> Option<SyntaxToken> {
12465        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12466    }
12467}
12468
12469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12470pub struct PrimaryKeyConstraint {
12471    pub(crate) syntax: SyntaxNode,
12472}
12473impl PrimaryKeyConstraint {
12474    #[inline]
12475    pub fn column_list(&self) -> Option<ColumnList> {
12476        support::child(&self.syntax)
12477    }
12478    #[inline]
12479    pub fn constraint_name(&self) -> Option<ConstraintName> {
12480        support::child(&self.syntax)
12481    }
12482    #[inline]
12483    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
12484        support::child(&self.syntax)
12485    }
12486    #[inline]
12487    pub fn using_index(&self) -> Option<UsingIndex> {
12488        support::child(&self.syntax)
12489    }
12490    #[inline]
12491    pub fn key_token(&self) -> Option<SyntaxToken> {
12492        support::token(&self.syntax, SyntaxKind::KEY_KW)
12493    }
12494    #[inline]
12495    pub fn primary_token(&self) -> Option<SyntaxToken> {
12496        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
12497    }
12498}
12499
12500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12501pub struct PrivilegeTarget {
12502    pub(crate) syntax: SyntaxNode,
12503}
12504impl PrivilegeTarget {
12505    #[inline]
12506    pub fn functions_token(&self) -> Option<SyntaxToken> {
12507        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
12508    }
12509    #[inline]
12510    pub fn large_token(&self) -> Option<SyntaxToken> {
12511        support::token(&self.syntax, SyntaxKind::LARGE_KW)
12512    }
12513    #[inline]
12514    pub fn objects_token(&self) -> Option<SyntaxToken> {
12515        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
12516    }
12517    #[inline]
12518    pub fn routines_token(&self) -> Option<SyntaxToken> {
12519        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
12520    }
12521    #[inline]
12522    pub fn schemas_token(&self) -> Option<SyntaxToken> {
12523        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
12524    }
12525    #[inline]
12526    pub fn sequences_token(&self) -> Option<SyntaxToken> {
12527        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
12528    }
12529    #[inline]
12530    pub fn tables_token(&self) -> Option<SyntaxToken> {
12531        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12532    }
12533    #[inline]
12534    pub fn types_token(&self) -> Option<SyntaxToken> {
12535        support::token(&self.syntax, SyntaxKind::TYPES_KW)
12536    }
12537}
12538
12539#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12540pub struct Privileges {
12541    pub(crate) syntax: SyntaxNode,
12542}
12543impl Privileges {
12544    #[inline]
12545    pub fn column_list(&self) -> Option<ColumnList> {
12546        support::child(&self.syntax)
12547    }
12548    #[inline]
12549    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
12550        support::child(&self.syntax)
12551    }
12552    #[inline]
12553    pub fn all_token(&self) -> Option<SyntaxToken> {
12554        support::token(&self.syntax, SyntaxKind::ALL_KW)
12555    }
12556    #[inline]
12557    pub fn privileges_token(&self) -> Option<SyntaxToken> {
12558        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
12559    }
12560}
12561
12562#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12563pub struct PublicationObject {
12564    pub(crate) syntax: SyntaxNode,
12565}
12566impl PublicationObject {
12567    #[inline]
12568    pub fn column_list(&self) -> Option<ColumnList> {
12569        support::child(&self.syntax)
12570    }
12571    #[inline]
12572    pub fn name_ref(&self) -> Option<NameRef> {
12573        support::child(&self.syntax)
12574    }
12575    #[inline]
12576    pub fn path(&self) -> Option<Path> {
12577        support::child(&self.syntax)
12578    }
12579    #[inline]
12580    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
12581        support::child(&self.syntax)
12582    }
12583    #[inline]
12584    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12585        support::token(&self.syntax, SyntaxKind::L_PAREN)
12586    }
12587    #[inline]
12588    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12589        support::token(&self.syntax, SyntaxKind::R_PAREN)
12590    }
12591    #[inline]
12592    pub fn star_token(&self) -> Option<SyntaxToken> {
12593        support::token(&self.syntax, SyntaxKind::STAR)
12594    }
12595    #[inline]
12596    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
12597        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
12598    }
12599    #[inline]
12600    pub fn in_token(&self) -> Option<SyntaxToken> {
12601        support::token(&self.syntax, SyntaxKind::IN_KW)
12602    }
12603    #[inline]
12604    pub fn only_token(&self) -> Option<SyntaxToken> {
12605        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12606    }
12607    #[inline]
12608    pub fn schema_token(&self) -> Option<SyntaxToken> {
12609        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12610    }
12611    #[inline]
12612    pub fn table_token(&self) -> Option<SyntaxToken> {
12613        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12614    }
12615    #[inline]
12616    pub fn tables_token(&self) -> Option<SyntaxToken> {
12617        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12618    }
12619}
12620
12621#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12622pub struct ReadCommitted {
12623    pub(crate) syntax: SyntaxNode,
12624}
12625impl ReadCommitted {
12626    #[inline]
12627    pub fn committed_token(&self) -> Option<SyntaxToken> {
12628        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
12629    }
12630    #[inline]
12631    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12632        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12633    }
12634    #[inline]
12635    pub fn level_token(&self) -> Option<SyntaxToken> {
12636        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12637    }
12638    #[inline]
12639    pub fn read_token(&self) -> Option<SyntaxToken> {
12640        support::token(&self.syntax, SyntaxKind::READ_KW)
12641    }
12642}
12643
12644#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12645pub struct ReadOnly {
12646    pub(crate) syntax: SyntaxNode,
12647}
12648impl ReadOnly {
12649    #[inline]
12650    pub fn only_token(&self) -> Option<SyntaxToken> {
12651        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12652    }
12653    #[inline]
12654    pub fn read_token(&self) -> Option<SyntaxToken> {
12655        support::token(&self.syntax, SyntaxKind::READ_KW)
12656    }
12657}
12658
12659#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12660pub struct ReadUncommitted {
12661    pub(crate) syntax: SyntaxNode,
12662}
12663impl ReadUncommitted {
12664    #[inline]
12665    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12666        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12667    }
12668    #[inline]
12669    pub fn level_token(&self) -> Option<SyntaxToken> {
12670        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12671    }
12672    #[inline]
12673    pub fn read_token(&self) -> Option<SyntaxToken> {
12674        support::token(&self.syntax, SyntaxKind::READ_KW)
12675    }
12676    #[inline]
12677    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
12678        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
12679    }
12680}
12681
12682#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12683pub struct ReadWrite {
12684    pub(crate) syntax: SyntaxNode,
12685}
12686impl ReadWrite {
12687    #[inline]
12688    pub fn read_token(&self) -> Option<SyntaxToken> {
12689        support::token(&self.syntax, SyntaxKind::READ_KW)
12690    }
12691    #[inline]
12692    pub fn write_token(&self) -> Option<SyntaxToken> {
12693        support::token(&self.syntax, SyntaxKind::WRITE_KW)
12694    }
12695}
12696
12697#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12698pub struct Reassign {
12699    pub(crate) syntax: SyntaxNode,
12700}
12701impl Reassign {
12702    #[inline]
12703    pub fn new_roles(&self) -> Option<RoleRefList> {
12704        support::child(&self.syntax)
12705    }
12706    #[inline]
12707    pub fn old_roles(&self) -> Option<RoleRefList> {
12708        support::child(&self.syntax)
12709    }
12710    #[inline]
12711    pub fn by_token(&self) -> Option<SyntaxToken> {
12712        support::token(&self.syntax, SyntaxKind::BY_KW)
12713    }
12714    #[inline]
12715    pub fn owned_token(&self) -> Option<SyntaxToken> {
12716        support::token(&self.syntax, SyntaxKind::OWNED_KW)
12717    }
12718    #[inline]
12719    pub fn reassign_token(&self) -> Option<SyntaxToken> {
12720        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
12721    }
12722    #[inline]
12723    pub fn to_token(&self) -> Option<SyntaxToken> {
12724        support::token(&self.syntax, SyntaxKind::TO_KW)
12725    }
12726}
12727
12728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12729pub struct ReferencesConstraint {
12730    pub(crate) syntax: SyntaxNode,
12731}
12732impl ReferencesConstraint {
12733    #[inline]
12734    pub fn column(&self) -> Option<NameRef> {
12735        support::child(&self.syntax)
12736    }
12737    #[inline]
12738    pub fn constraint_name(&self) -> Option<ConstraintName> {
12739        support::child(&self.syntax)
12740    }
12741    #[inline]
12742    pub fn match_type(&self) -> Option<MatchType> {
12743        support::child(&self.syntax)
12744    }
12745    #[inline]
12746    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
12747        support::child(&self.syntax)
12748    }
12749    #[inline]
12750    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
12751        support::child(&self.syntax)
12752    }
12753    #[inline]
12754    pub fn table(&self) -> Option<Path> {
12755        support::child(&self.syntax)
12756    }
12757    #[inline]
12758    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12759        support::token(&self.syntax, SyntaxKind::L_PAREN)
12760    }
12761    #[inline]
12762    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12763        support::token(&self.syntax, SyntaxKind::R_PAREN)
12764    }
12765    #[inline]
12766    pub fn references_token(&self) -> Option<SyntaxToken> {
12767        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
12768    }
12769}
12770
12771#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12772pub struct Referencing {
12773    pub(crate) syntax: SyntaxNode,
12774}
12775impl Referencing {
12776    #[inline]
12777    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
12778        support::children(&self.syntax)
12779    }
12780    #[inline]
12781    pub fn referencing_token(&self) -> Option<SyntaxToken> {
12782        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
12783    }
12784}
12785
12786#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12787pub struct ReferencingTable {
12788    pub(crate) syntax: SyntaxNode,
12789}
12790impl ReferencingTable {
12791    #[inline]
12792    pub fn name_ref(&self) -> Option<NameRef> {
12793        support::child(&self.syntax)
12794    }
12795    #[inline]
12796    pub fn as_token(&self) -> Option<SyntaxToken> {
12797        support::token(&self.syntax, SyntaxKind::AS_KW)
12798    }
12799    #[inline]
12800    pub fn new_token(&self) -> Option<SyntaxToken> {
12801        support::token(&self.syntax, SyntaxKind::NEW_KW)
12802    }
12803    #[inline]
12804    pub fn old_token(&self) -> Option<SyntaxToken> {
12805        support::token(&self.syntax, SyntaxKind::OLD_KW)
12806    }
12807    #[inline]
12808    pub fn table_token(&self) -> Option<SyntaxToken> {
12809        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12810    }
12811}
12812
12813#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12814pub struct Refresh {
12815    pub(crate) syntax: SyntaxNode,
12816}
12817impl Refresh {
12818    #[inline]
12819    pub fn path(&self) -> Option<Path> {
12820        support::child(&self.syntax)
12821    }
12822    #[inline]
12823    pub fn with_data(&self) -> Option<WithData> {
12824        support::child(&self.syntax)
12825    }
12826    #[inline]
12827    pub fn with_no_data(&self) -> Option<WithNoData> {
12828        support::child(&self.syntax)
12829    }
12830    #[inline]
12831    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
12832        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
12833    }
12834    #[inline]
12835    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12836        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12837    }
12838    #[inline]
12839    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12840        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12841    }
12842    #[inline]
12843    pub fn view_token(&self) -> Option<SyntaxToken> {
12844        support::token(&self.syntax, SyntaxKind::VIEW_KW)
12845    }
12846}
12847
12848#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12849pub struct RefreshCollationVersion {
12850    pub(crate) syntax: SyntaxNode,
12851}
12852impl RefreshCollationVersion {
12853    #[inline]
12854    pub fn collation_token(&self) -> Option<SyntaxToken> {
12855        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
12856    }
12857    #[inline]
12858    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12859        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12860    }
12861    #[inline]
12862    pub fn version_token(&self) -> Option<SyntaxToken> {
12863        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12864    }
12865}
12866
12867#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12868pub struct RefreshVersion {
12869    pub(crate) syntax: SyntaxNode,
12870}
12871impl RefreshVersion {
12872    #[inline]
12873    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12874        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12875    }
12876    #[inline]
12877    pub fn version_token(&self) -> Option<SyntaxToken> {
12878        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12879    }
12880}
12881
12882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12883pub struct Reindex {
12884    pub(crate) syntax: SyntaxNode,
12885}
12886impl Reindex {
12887    #[inline]
12888    pub fn path(&self) -> Option<Path> {
12889        support::child(&self.syntax)
12890    }
12891    #[inline]
12892    pub fn database_token(&self) -> Option<SyntaxToken> {
12893        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
12894    }
12895    #[inline]
12896    pub fn index_token(&self) -> Option<SyntaxToken> {
12897        support::token(&self.syntax, SyntaxKind::INDEX_KW)
12898    }
12899    #[inline]
12900    pub fn reindex_token(&self) -> Option<SyntaxToken> {
12901        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
12902    }
12903    #[inline]
12904    pub fn schema_token(&self) -> Option<SyntaxToken> {
12905        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12906    }
12907    #[inline]
12908    pub fn system_token(&self) -> Option<SyntaxToken> {
12909        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
12910    }
12911    #[inline]
12912    pub fn table_token(&self) -> Option<SyntaxToken> {
12913        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12914    }
12915}
12916
12917#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12918pub struct RelationName {
12919    pub(crate) syntax: SyntaxNode,
12920}
12921impl RelationName {
12922    #[inline]
12923    pub fn path(&self) -> Option<Path> {
12924        support::child(&self.syntax)
12925    }
12926    #[inline]
12927    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12928        support::token(&self.syntax, SyntaxKind::L_PAREN)
12929    }
12930    #[inline]
12931    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12932        support::token(&self.syntax, SyntaxKind::R_PAREN)
12933    }
12934    #[inline]
12935    pub fn star_token(&self) -> Option<SyntaxToken> {
12936        support::token(&self.syntax, SyntaxKind::STAR)
12937    }
12938    #[inline]
12939    pub fn only_token(&self) -> Option<SyntaxToken> {
12940        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12941    }
12942}
12943
12944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12945pub struct ReleaseSavepoint {
12946    pub(crate) syntax: SyntaxNode,
12947}
12948impl ReleaseSavepoint {
12949    #[inline]
12950    pub fn name_ref(&self) -> Option<NameRef> {
12951        support::child(&self.syntax)
12952    }
12953    #[inline]
12954    pub fn release_token(&self) -> Option<SyntaxToken> {
12955        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
12956    }
12957    #[inline]
12958    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
12959        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
12960    }
12961}
12962
12963#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12964pub struct RenameColumn {
12965    pub(crate) syntax: SyntaxNode,
12966}
12967impl RenameColumn {
12968    #[inline]
12969    pub fn column_token(&self) -> Option<SyntaxToken> {
12970        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
12971    }
12972    #[inline]
12973    pub fn rename_token(&self) -> Option<SyntaxToken> {
12974        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12975    }
12976    #[inline]
12977    pub fn to_token(&self) -> Option<SyntaxToken> {
12978        support::token(&self.syntax, SyntaxKind::TO_KW)
12979    }
12980}
12981
12982#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12983pub struct RenameConstraint {
12984    pub(crate) syntax: SyntaxNode,
12985}
12986impl RenameConstraint {
12987    #[inline]
12988    pub fn name(&self) -> Option<Name> {
12989        support::child(&self.syntax)
12990    }
12991    #[inline]
12992    pub fn name_ref(&self) -> Option<NameRef> {
12993        support::child(&self.syntax)
12994    }
12995    #[inline]
12996    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12997        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12998    }
12999    #[inline]
13000    pub fn rename_token(&self) -> Option<SyntaxToken> {
13001        support::token(&self.syntax, SyntaxKind::RENAME_KW)
13002    }
13003    #[inline]
13004    pub fn to_token(&self) -> Option<SyntaxToken> {
13005        support::token(&self.syntax, SyntaxKind::TO_KW)
13006    }
13007}
13008
13009#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13010pub struct RenameTo {
13011    pub(crate) syntax: SyntaxNode,
13012}
13013impl RenameTo {
13014    #[inline]
13015    pub fn name(&self) -> Option<Name> {
13016        support::child(&self.syntax)
13017    }
13018    #[inline]
13019    pub fn rename_token(&self) -> Option<SyntaxToken> {
13020        support::token(&self.syntax, SyntaxKind::RENAME_KW)
13021    }
13022    #[inline]
13023    pub fn to_token(&self) -> Option<SyntaxToken> {
13024        support::token(&self.syntax, SyntaxKind::TO_KW)
13025    }
13026}
13027
13028#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13029pub struct RepeatableClause {
13030    pub(crate) syntax: SyntaxNode,
13031}
13032impl RepeatableClause {
13033    #[inline]
13034    pub fn expr(&self) -> Option<Expr> {
13035        support::child(&self.syntax)
13036    }
13037    #[inline]
13038    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13039        support::token(&self.syntax, SyntaxKind::L_PAREN)
13040    }
13041    #[inline]
13042    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13043        support::token(&self.syntax, SyntaxKind::R_PAREN)
13044    }
13045    #[inline]
13046    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
13047        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
13048    }
13049}
13050
13051#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13052pub struct RepeatableRead {
13053    pub(crate) syntax: SyntaxNode,
13054}
13055impl RepeatableRead {
13056    #[inline]
13057    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13058        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13059    }
13060    #[inline]
13061    pub fn level_token(&self) -> Option<SyntaxToken> {
13062        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13063    }
13064    #[inline]
13065    pub fn read_token(&self) -> Option<SyntaxToken> {
13066        support::token(&self.syntax, SyntaxKind::READ_KW)
13067    }
13068    #[inline]
13069    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
13070        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
13071    }
13072}
13073
13074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13075pub struct ReplicaIdentity {
13076    pub(crate) syntax: SyntaxNode,
13077}
13078impl ReplicaIdentity {
13079    #[inline]
13080    pub fn identity_token(&self) -> Option<SyntaxToken> {
13081        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
13082    }
13083    #[inline]
13084    pub fn replica_token(&self) -> Option<SyntaxToken> {
13085        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
13086    }
13087}
13088
13089#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13090pub struct Reset {
13091    pub(crate) syntax: SyntaxNode,
13092}
13093impl Reset {
13094    #[inline]
13095    pub fn name_ref(&self) -> Option<NameRef> {
13096        support::child(&self.syntax)
13097    }
13098    #[inline]
13099    pub fn all_token(&self) -> Option<SyntaxToken> {
13100        support::token(&self.syntax, SyntaxKind::ALL_KW)
13101    }
13102    #[inline]
13103    pub fn reset_token(&self) -> Option<SyntaxToken> {
13104        support::token(&self.syntax, SyntaxKind::RESET_KW)
13105    }
13106}
13107
13108#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13109pub struct ResetConfigParam {
13110    pub(crate) syntax: SyntaxNode,
13111}
13112impl ResetConfigParam {
13113    #[inline]
13114    pub fn path(&self) -> Option<Path> {
13115        support::child(&self.syntax)
13116    }
13117    #[inline]
13118    pub fn all_token(&self) -> Option<SyntaxToken> {
13119        support::token(&self.syntax, SyntaxKind::ALL_KW)
13120    }
13121    #[inline]
13122    pub fn reset_token(&self) -> Option<SyntaxToken> {
13123        support::token(&self.syntax, SyntaxKind::RESET_KW)
13124    }
13125}
13126
13127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13128pub struct ResetFuncOption {
13129    pub(crate) syntax: SyntaxNode,
13130}
13131impl ResetFuncOption {
13132    #[inline]
13133    pub fn name_ref(&self) -> Option<NameRef> {
13134        support::child(&self.syntax)
13135    }
13136    #[inline]
13137    pub fn reset_token(&self) -> Option<SyntaxToken> {
13138        support::token(&self.syntax, SyntaxKind::RESET_KW)
13139    }
13140}
13141
13142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13143pub struct ResetOptions {
13144    pub(crate) syntax: SyntaxNode,
13145}
13146impl ResetOptions {
13147    #[inline]
13148    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13149        support::token(&self.syntax, SyntaxKind::L_PAREN)
13150    }
13151    #[inline]
13152    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13153        support::token(&self.syntax, SyntaxKind::R_PAREN)
13154    }
13155    #[inline]
13156    pub fn reset_token(&self) -> Option<SyntaxToken> {
13157        support::token(&self.syntax, SyntaxKind::RESET_KW)
13158    }
13159}
13160
13161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13162pub struct ResetSessionAuth {
13163    pub(crate) syntax: SyntaxNode,
13164}
13165impl ResetSessionAuth {
13166    #[inline]
13167    pub fn authorization_token(&self) -> Option<SyntaxToken> {
13168        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
13169    }
13170    #[inline]
13171    pub fn reset_token(&self) -> Option<SyntaxToken> {
13172        support::token(&self.syntax, SyntaxKind::RESET_KW)
13173    }
13174    #[inline]
13175    pub fn session_token(&self) -> Option<SyntaxToken> {
13176        support::token(&self.syntax, SyntaxKind::SESSION_KW)
13177    }
13178}
13179
13180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13181pub struct Restart {
13182    pub(crate) syntax: SyntaxNode,
13183}
13184impl Restart {
13185    #[inline]
13186    pub fn restart_token(&self) -> Option<SyntaxToken> {
13187        support::token(&self.syntax, SyntaxKind::RESTART_KW)
13188    }
13189    #[inline]
13190    pub fn with_token(&self) -> Option<SyntaxToken> {
13191        support::token(&self.syntax, SyntaxKind::WITH_KW)
13192    }
13193}
13194
13195#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13196pub struct Restrict {
13197    pub(crate) syntax: SyntaxNode,
13198}
13199impl Restrict {
13200    #[inline]
13201    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13202        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13203    }
13204}
13205
13206#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13207pub struct RetType {
13208    pub(crate) syntax: SyntaxNode,
13209}
13210impl RetType {
13211    #[inline]
13212    pub fn table_arg_list(&self) -> Option<TableArgList> {
13213        support::child(&self.syntax)
13214    }
13215    #[inline]
13216    pub fn ty(&self) -> Option<Type> {
13217        support::child(&self.syntax)
13218    }
13219    #[inline]
13220    pub fn returns_token(&self) -> Option<SyntaxToken> {
13221        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
13222    }
13223    #[inline]
13224    pub fn table_token(&self) -> Option<SyntaxToken> {
13225        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13226    }
13227}
13228
13229#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13230pub struct ReturnFuncOption {
13231    pub(crate) syntax: SyntaxNode,
13232}
13233impl ReturnFuncOption {
13234    #[inline]
13235    pub fn expr(&self) -> Option<Expr> {
13236        support::child(&self.syntax)
13237    }
13238    #[inline]
13239    pub fn return_token(&self) -> Option<SyntaxToken> {
13240        support::token(&self.syntax, SyntaxKind::RETURN_KW)
13241    }
13242}
13243
13244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13245pub struct ReturningClause {
13246    pub(crate) syntax: SyntaxNode,
13247}
13248impl ReturningClause {
13249    #[inline]
13250    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
13251        support::child(&self.syntax)
13252    }
13253    #[inline]
13254    pub fn target_list(&self) -> Option<TargetList> {
13255        support::child(&self.syntax)
13256    }
13257    #[inline]
13258    pub fn returning_token(&self) -> Option<SyntaxToken> {
13259        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
13260    }
13261}
13262
13263#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13264pub struct ReturningOption {
13265    pub(crate) syntax: SyntaxNode,
13266}
13267impl ReturningOption {
13268    #[inline]
13269    pub fn name(&self) -> Option<Name> {
13270        support::child(&self.syntax)
13271    }
13272    #[inline]
13273    pub fn as_token(&self) -> Option<SyntaxToken> {
13274        support::token(&self.syntax, SyntaxKind::AS_KW)
13275    }
13276    #[inline]
13277    pub fn new_token(&self) -> Option<SyntaxToken> {
13278        support::token(&self.syntax, SyntaxKind::NEW_KW)
13279    }
13280    #[inline]
13281    pub fn old_token(&self) -> Option<SyntaxToken> {
13282        support::token(&self.syntax, SyntaxKind::OLD_KW)
13283    }
13284}
13285
13286#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13287pub struct ReturningOptionList {
13288    pub(crate) syntax: SyntaxNode,
13289}
13290impl ReturningOptionList {
13291    #[inline]
13292    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
13293        support::children(&self.syntax)
13294    }
13295    #[inline]
13296    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13297        support::token(&self.syntax, SyntaxKind::L_PAREN)
13298    }
13299    #[inline]
13300    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13301        support::token(&self.syntax, SyntaxKind::R_PAREN)
13302    }
13303    #[inline]
13304    pub fn with_token(&self) -> Option<SyntaxToken> {
13305        support::token(&self.syntax, SyntaxKind::WITH_KW)
13306    }
13307}
13308
13309#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13310pub struct Revoke {
13311    pub(crate) syntax: SyntaxNode,
13312}
13313impl Revoke {
13314    #[inline]
13315    pub fn name_refs(&self) -> AstChildren<NameRef> {
13316        support::children(&self.syntax)
13317    }
13318    #[inline]
13319    pub fn paths(&self) -> AstChildren<Path> {
13320        support::children(&self.syntax)
13321    }
13322    #[inline]
13323    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
13324        support::child(&self.syntax)
13325    }
13326    #[inline]
13327    pub fn role_ref(&self) -> Option<RoleRef> {
13328        support::child(&self.syntax)
13329    }
13330    #[inline]
13331    pub fn role_ref_list(&self) -> Option<RoleRefList> {
13332        support::child(&self.syntax)
13333    }
13334    #[inline]
13335    pub fn all_token(&self) -> Option<SyntaxToken> {
13336        support::token(&self.syntax, SyntaxKind::ALL_KW)
13337    }
13338    #[inline]
13339    pub fn by_token(&self) -> Option<SyntaxToken> {
13340        support::token(&self.syntax, SyntaxKind::BY_KW)
13341    }
13342    #[inline]
13343    pub fn cascade_token(&self) -> Option<SyntaxToken> {
13344        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
13345    }
13346    #[inline]
13347    pub fn for_token(&self) -> Option<SyntaxToken> {
13348        support::token(&self.syntax, SyntaxKind::FOR_KW)
13349    }
13350    #[inline]
13351    pub fn from_token(&self) -> Option<SyntaxToken> {
13352        support::token(&self.syntax, SyntaxKind::FROM_KW)
13353    }
13354    #[inline]
13355    pub fn grant_token(&self) -> Option<SyntaxToken> {
13356        support::token(&self.syntax, SyntaxKind::GRANT_KW)
13357    }
13358    #[inline]
13359    pub fn granted_token(&self) -> Option<SyntaxToken> {
13360        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
13361    }
13362    #[inline]
13363    pub fn in_token(&self) -> Option<SyntaxToken> {
13364        support::token(&self.syntax, SyntaxKind::IN_KW)
13365    }
13366    #[inline]
13367    pub fn on_token(&self) -> Option<SyntaxToken> {
13368        support::token(&self.syntax, SyntaxKind::ON_KW)
13369    }
13370    #[inline]
13371    pub fn option_token(&self) -> Option<SyntaxToken> {
13372        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13373    }
13374    #[inline]
13375    pub fn privileges_token(&self) -> Option<SyntaxToken> {
13376        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
13377    }
13378    #[inline]
13379    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13380        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13381    }
13382    #[inline]
13383    pub fn revoke_token(&self) -> Option<SyntaxToken> {
13384        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
13385    }
13386    #[inline]
13387    pub fn schema_token(&self) -> Option<SyntaxToken> {
13388        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13389    }
13390    #[inline]
13391    pub fn table_token(&self) -> Option<SyntaxToken> {
13392        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13393    }
13394    #[inline]
13395    pub fn tables_token(&self) -> Option<SyntaxToken> {
13396        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13397    }
13398}
13399
13400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13401pub struct RevokeCommand {
13402    pub(crate) syntax: SyntaxNode,
13403}
13404impl RevokeCommand {
13405    #[inline]
13406    pub fn role_ref(&self) -> Option<RoleRef> {
13407        support::child(&self.syntax)
13408    }
13409    #[inline]
13410    pub fn all_token(&self) -> Option<SyntaxToken> {
13411        support::token(&self.syntax, SyntaxKind::ALL_KW)
13412    }
13413    #[inline]
13414    pub fn alter_token(&self) -> Option<SyntaxToken> {
13415        support::token(&self.syntax, SyntaxKind::ALTER_KW)
13416    }
13417    #[inline]
13418    pub fn create_token(&self) -> Option<SyntaxToken> {
13419        support::token(&self.syntax, SyntaxKind::CREATE_KW)
13420    }
13421    #[inline]
13422    pub fn delete_token(&self) -> Option<SyntaxToken> {
13423        support::token(&self.syntax, SyntaxKind::DELETE_KW)
13424    }
13425    #[inline]
13426    pub fn execute_token(&self) -> Option<SyntaxToken> {
13427        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
13428    }
13429    #[inline]
13430    pub fn ident_token(&self) -> Option<SyntaxToken> {
13431        support::token(&self.syntax, SyntaxKind::IDENT)
13432    }
13433    #[inline]
13434    pub fn insert_token(&self) -> Option<SyntaxToken> {
13435        support::token(&self.syntax, SyntaxKind::INSERT_KW)
13436    }
13437    #[inline]
13438    pub fn references_token(&self) -> Option<SyntaxToken> {
13439        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
13440    }
13441    #[inline]
13442    pub fn select_token(&self) -> Option<SyntaxToken> {
13443        support::token(&self.syntax, SyntaxKind::SELECT_KW)
13444    }
13445    #[inline]
13446    pub fn system_token(&self) -> Option<SyntaxToken> {
13447        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
13448    }
13449    #[inline]
13450    pub fn temp_token(&self) -> Option<SyntaxToken> {
13451        support::token(&self.syntax, SyntaxKind::TEMP_KW)
13452    }
13453    #[inline]
13454    pub fn temporary_token(&self) -> Option<SyntaxToken> {
13455        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
13456    }
13457    #[inline]
13458    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13459        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13460    }
13461    #[inline]
13462    pub fn truncate_token(&self) -> Option<SyntaxToken> {
13463        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
13464    }
13465    #[inline]
13466    pub fn update_token(&self) -> Option<SyntaxToken> {
13467        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
13468    }
13469}
13470
13471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13472pub struct RevokeCommandList {
13473    pub(crate) syntax: SyntaxNode,
13474}
13475impl RevokeCommandList {
13476    #[inline]
13477    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
13478        support::children(&self.syntax)
13479    }
13480}
13481
13482#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13483pub struct RevokeDefaultPrivileges {
13484    pub(crate) syntax: SyntaxNode,
13485}
13486impl RevokeDefaultPrivileges {
13487    #[inline]
13488    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
13489        support::child(&self.syntax)
13490    }
13491    #[inline]
13492    pub fn privileges(&self) -> Option<Privileges> {
13493        support::child(&self.syntax)
13494    }
13495    #[inline]
13496    pub fn role_ref_list(&self) -> Option<RoleRefList> {
13497        support::child(&self.syntax)
13498    }
13499    #[inline]
13500    pub fn cascade_token(&self) -> Option<SyntaxToken> {
13501        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
13502    }
13503    #[inline]
13504    pub fn for_token(&self) -> Option<SyntaxToken> {
13505        support::token(&self.syntax, SyntaxKind::FOR_KW)
13506    }
13507    #[inline]
13508    pub fn from_token(&self) -> Option<SyntaxToken> {
13509        support::token(&self.syntax, SyntaxKind::FROM_KW)
13510    }
13511    #[inline]
13512    pub fn grant_token(&self) -> Option<SyntaxToken> {
13513        support::token(&self.syntax, SyntaxKind::GRANT_KW)
13514    }
13515    #[inline]
13516    pub fn on_token(&self) -> Option<SyntaxToken> {
13517        support::token(&self.syntax, SyntaxKind::ON_KW)
13518    }
13519    #[inline]
13520    pub fn option_token(&self) -> Option<SyntaxToken> {
13521        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13522    }
13523    #[inline]
13524    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13525        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13526    }
13527    #[inline]
13528    pub fn revoke_token(&self) -> Option<SyntaxToken> {
13529        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
13530    }
13531}
13532
13533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13534pub struct Role {
13535    pub(crate) syntax: SyntaxNode,
13536}
13537impl Role {
13538    #[inline]
13539    pub fn name(&self) -> Option<Name> {
13540        support::child(&self.syntax)
13541    }
13542    #[inline]
13543    pub fn current_role_token(&self) -> Option<SyntaxToken> {
13544        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
13545    }
13546    #[inline]
13547    pub fn current_user_token(&self) -> Option<SyntaxToken> {
13548        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
13549    }
13550    #[inline]
13551    pub fn group_token(&self) -> Option<SyntaxToken> {
13552        support::token(&self.syntax, SyntaxKind::GROUP_KW)
13553    }
13554    #[inline]
13555    pub fn session_user_token(&self) -> Option<SyntaxToken> {
13556        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
13557    }
13558}
13559
13560#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13561pub struct RoleOption {
13562    pub(crate) syntax: SyntaxNode,
13563}
13564impl RoleOption {
13565    #[inline]
13566    pub fn inherit_token(&self) -> Option<SyntaxToken> {
13567        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
13568    }
13569}
13570
13571#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13572pub struct RoleOptionList {
13573    pub(crate) syntax: SyntaxNode,
13574}
13575impl RoleOptionList {
13576    #[inline]
13577    pub fn role_options(&self) -> AstChildren<RoleOption> {
13578        support::children(&self.syntax)
13579    }
13580    #[inline]
13581    pub fn with_token(&self) -> Option<SyntaxToken> {
13582        support::token(&self.syntax, SyntaxKind::WITH_KW)
13583    }
13584}
13585
13586#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13587pub struct RoleRef {
13588    pub(crate) syntax: SyntaxNode,
13589}
13590impl RoleRef {
13591    #[inline]
13592    pub fn name_ref(&self) -> Option<NameRef> {
13593        support::child(&self.syntax)
13594    }
13595    #[inline]
13596    pub fn current_role_token(&self) -> Option<SyntaxToken> {
13597        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
13598    }
13599    #[inline]
13600    pub fn current_user_token(&self) -> Option<SyntaxToken> {
13601        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
13602    }
13603    #[inline]
13604    pub fn group_token(&self) -> Option<SyntaxToken> {
13605        support::token(&self.syntax, SyntaxKind::GROUP_KW)
13606    }
13607    #[inline]
13608    pub fn session_user_token(&self) -> Option<SyntaxToken> {
13609        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
13610    }
13611}
13612
13613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13614pub struct RoleRefList {
13615    pub(crate) syntax: SyntaxNode,
13616}
13617impl RoleRefList {
13618    #[inline]
13619    pub fn role_refs(&self) -> AstChildren<RoleRef> {
13620        support::children(&self.syntax)
13621    }
13622}
13623
13624#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13625pub struct Rollback {
13626    pub(crate) syntax: SyntaxNode,
13627}
13628impl Rollback {
13629    #[inline]
13630    pub fn literal(&self) -> Option<Literal> {
13631        support::child(&self.syntax)
13632    }
13633    #[inline]
13634    pub fn name_ref(&self) -> Option<NameRef> {
13635        support::child(&self.syntax)
13636    }
13637    #[inline]
13638    pub fn abort_token(&self) -> Option<SyntaxToken> {
13639        support::token(&self.syntax, SyntaxKind::ABORT_KW)
13640    }
13641    #[inline]
13642    pub fn and_token(&self) -> Option<SyntaxToken> {
13643        support::token(&self.syntax, SyntaxKind::AND_KW)
13644    }
13645    #[inline]
13646    pub fn chain_token(&self) -> Option<SyntaxToken> {
13647        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
13648    }
13649    #[inline]
13650    pub fn no_token(&self) -> Option<SyntaxToken> {
13651        support::token(&self.syntax, SyntaxKind::NO_KW)
13652    }
13653    #[inline]
13654    pub fn prepared_token(&self) -> Option<SyntaxToken> {
13655        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
13656    }
13657    #[inline]
13658    pub fn rollback_token(&self) -> Option<SyntaxToken> {
13659        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
13660    }
13661    #[inline]
13662    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13663        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13664    }
13665    #[inline]
13666    pub fn to_token(&self) -> Option<SyntaxToken> {
13667        support::token(&self.syntax, SyntaxKind::TO_KW)
13668    }
13669    #[inline]
13670    pub fn transaction_token(&self) -> Option<SyntaxToken> {
13671        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
13672    }
13673    #[inline]
13674    pub fn work_token(&self) -> Option<SyntaxToken> {
13675        support::token(&self.syntax, SyntaxKind::WORK_KW)
13676    }
13677}
13678
13679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13680pub struct Row {
13681    pub(crate) syntax: SyntaxNode,
13682}
13683impl Row {
13684    #[inline]
13685    pub fn exprs(&self) -> AstChildren<Expr> {
13686        support::children(&self.syntax)
13687    }
13688}
13689
13690#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13691pub struct RowList {
13692    pub(crate) syntax: SyntaxNode,
13693}
13694impl RowList {
13695    #[inline]
13696    pub fn rows(&self) -> AstChildren<Row> {
13697        support::children(&self.syntax)
13698    }
13699}
13700
13701#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13702pub struct RowsFuncOption {
13703    pub(crate) syntax: SyntaxNode,
13704}
13705impl RowsFuncOption {
13706    #[inline]
13707    pub fn rows_token(&self) -> Option<SyntaxToken> {
13708        support::token(&self.syntax, SyntaxKind::ROWS_KW)
13709    }
13710}
13711
13712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13713pub struct Savepoint {
13714    pub(crate) syntax: SyntaxNode,
13715}
13716impl Savepoint {
13717    #[inline]
13718    pub fn name(&self) -> Option<Name> {
13719        support::child(&self.syntax)
13720    }
13721    #[inline]
13722    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13723        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13724    }
13725}
13726
13727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13728pub struct SecurityFuncOption {
13729    pub(crate) syntax: SyntaxNode,
13730}
13731impl SecurityFuncOption {
13732    #[inline]
13733    pub fn definer_token(&self) -> Option<SyntaxToken> {
13734        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
13735    }
13736    #[inline]
13737    pub fn invoker_token(&self) -> Option<SyntaxToken> {
13738        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
13739    }
13740    #[inline]
13741    pub fn security_token(&self) -> Option<SyntaxToken> {
13742        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13743    }
13744}
13745
13746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13747pub struct SecurityLabel {
13748    pub(crate) syntax: SyntaxNode,
13749}
13750impl SecurityLabel {
13751    #[inline]
13752    pub fn aggregate(&self) -> Option<Aggregate> {
13753        support::child(&self.syntax)
13754    }
13755    #[inline]
13756    pub fn for_provider(&self) -> Option<ForProvider> {
13757        support::child(&self.syntax)
13758    }
13759    #[inline]
13760    pub fn function_sig(&self) -> Option<FunctionSig> {
13761        support::child(&self.syntax)
13762    }
13763    #[inline]
13764    pub fn literal(&self) -> Option<Literal> {
13765        support::child(&self.syntax)
13766    }
13767    #[inline]
13768    pub fn path(&self) -> Option<Path> {
13769        support::child(&self.syntax)
13770    }
13771    #[inline]
13772    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
13773        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
13774    }
13775    #[inline]
13776    pub fn column_token(&self) -> Option<SyntaxToken> {
13777        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
13778    }
13779    #[inline]
13780    pub fn database_token(&self) -> Option<SyntaxToken> {
13781        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
13782    }
13783    #[inline]
13784    pub fn domain_token(&self) -> Option<SyntaxToken> {
13785        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
13786    }
13787    #[inline]
13788    pub fn event_token(&self) -> Option<SyntaxToken> {
13789        support::token(&self.syntax, SyntaxKind::EVENT_KW)
13790    }
13791    #[inline]
13792    pub fn foreign_token(&self) -> Option<SyntaxToken> {
13793        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
13794    }
13795    #[inline]
13796    pub fn function_token(&self) -> Option<SyntaxToken> {
13797        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
13798    }
13799    #[inline]
13800    pub fn is_token(&self) -> Option<SyntaxToken> {
13801        support::token(&self.syntax, SyntaxKind::IS_KW)
13802    }
13803    #[inline]
13804    pub fn label_token(&self) -> Option<SyntaxToken> {
13805        support::token(&self.syntax, SyntaxKind::LABEL_KW)
13806    }
13807    #[inline]
13808    pub fn language_token(&self) -> Option<SyntaxToken> {
13809        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
13810    }
13811    #[inline]
13812    pub fn large_token(&self) -> Option<SyntaxToken> {
13813        support::token(&self.syntax, SyntaxKind::LARGE_KW)
13814    }
13815    #[inline]
13816    pub fn materialized_token(&self) -> Option<SyntaxToken> {
13817        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
13818    }
13819    #[inline]
13820    pub fn null_token(&self) -> Option<SyntaxToken> {
13821        support::token(&self.syntax, SyntaxKind::NULL_KW)
13822    }
13823    #[inline]
13824    pub fn object_token(&self) -> Option<SyntaxToken> {
13825        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
13826    }
13827    #[inline]
13828    pub fn on_token(&self) -> Option<SyntaxToken> {
13829        support::token(&self.syntax, SyntaxKind::ON_KW)
13830    }
13831    #[inline]
13832    pub fn procedural_token(&self) -> Option<SyntaxToken> {
13833        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
13834    }
13835    #[inline]
13836    pub fn procedure_token(&self) -> Option<SyntaxToken> {
13837        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
13838    }
13839    #[inline]
13840    pub fn publication_token(&self) -> Option<SyntaxToken> {
13841        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
13842    }
13843    #[inline]
13844    pub fn role_token(&self) -> Option<SyntaxToken> {
13845        support::token(&self.syntax, SyntaxKind::ROLE_KW)
13846    }
13847    #[inline]
13848    pub fn routine_token(&self) -> Option<SyntaxToken> {
13849        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
13850    }
13851    #[inline]
13852    pub fn schema_token(&self) -> Option<SyntaxToken> {
13853        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13854    }
13855    #[inline]
13856    pub fn security_token(&self) -> Option<SyntaxToken> {
13857        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13858    }
13859    #[inline]
13860    pub fn sequence_token(&self) -> Option<SyntaxToken> {
13861        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
13862    }
13863    #[inline]
13864    pub fn subscription_token(&self) -> Option<SyntaxToken> {
13865        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
13866    }
13867    #[inline]
13868    pub fn table_token(&self) -> Option<SyntaxToken> {
13869        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13870    }
13871    #[inline]
13872    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
13873        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
13874    }
13875    #[inline]
13876    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13877        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13878    }
13879    #[inline]
13880    pub fn type_token(&self) -> Option<SyntaxToken> {
13881        support::token(&self.syntax, SyntaxKind::TYPE_KW)
13882    }
13883    #[inline]
13884    pub fn view_token(&self) -> Option<SyntaxToken> {
13885        support::token(&self.syntax, SyntaxKind::VIEW_KW)
13886    }
13887}
13888
13889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13890pub struct Select {
13891    pub(crate) syntax: SyntaxNode,
13892}
13893impl Select {
13894    #[inline]
13895    pub fn fetch_clause(&self) -> Option<FetchClause> {
13896        support::child(&self.syntax)
13897    }
13898    #[inline]
13899    pub fn filter_clause(&self) -> Option<FilterClause> {
13900        support::child(&self.syntax)
13901    }
13902    #[inline]
13903    pub fn from_clause(&self) -> Option<FromClause> {
13904        support::child(&self.syntax)
13905    }
13906    #[inline]
13907    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13908        support::child(&self.syntax)
13909    }
13910    #[inline]
13911    pub fn having_clause(&self) -> Option<HavingClause> {
13912        support::child(&self.syntax)
13913    }
13914    #[inline]
13915    pub fn limit_clause(&self) -> Option<LimitClause> {
13916        support::child(&self.syntax)
13917    }
13918    #[inline]
13919    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
13920        support::children(&self.syntax)
13921    }
13922    #[inline]
13923    pub fn offset_clause(&self) -> Option<OffsetClause> {
13924        support::child(&self.syntax)
13925    }
13926    #[inline]
13927    pub fn order_by_clause(&self) -> Option<OrderByClause> {
13928        support::child(&self.syntax)
13929    }
13930    #[inline]
13931    pub fn select_clause(&self) -> Option<SelectClause> {
13932        support::child(&self.syntax)
13933    }
13934    #[inline]
13935    pub fn where_clause(&self) -> Option<WhereClause> {
13936        support::child(&self.syntax)
13937    }
13938    #[inline]
13939    pub fn window_clause(&self) -> Option<WindowClause> {
13940        support::child(&self.syntax)
13941    }
13942    #[inline]
13943    pub fn with_clause(&self) -> Option<WithClause> {
13944        support::child(&self.syntax)
13945    }
13946}
13947
13948#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13949pub struct SelectClause {
13950    pub(crate) syntax: SyntaxNode,
13951}
13952impl SelectClause {
13953    #[inline]
13954    pub fn distinct_clause(&self) -> Option<DistinctClause> {
13955        support::child(&self.syntax)
13956    }
13957    #[inline]
13958    pub fn target_list(&self) -> Option<TargetList> {
13959        support::child(&self.syntax)
13960    }
13961    #[inline]
13962    pub fn all_token(&self) -> Option<SyntaxToken> {
13963        support::token(&self.syntax, SyntaxKind::ALL_KW)
13964    }
13965    #[inline]
13966    pub fn select_token(&self) -> Option<SyntaxToken> {
13967        support::token(&self.syntax, SyntaxKind::SELECT_KW)
13968    }
13969}
13970
13971#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13972pub struct SelectInto {
13973    pub(crate) syntax: SyntaxNode,
13974}
13975impl SelectInto {
13976    #[inline]
13977    pub fn filter_clause(&self) -> Option<FilterClause> {
13978        support::child(&self.syntax)
13979    }
13980    #[inline]
13981    pub fn from_clause(&self) -> Option<FromClause> {
13982        support::child(&self.syntax)
13983    }
13984    #[inline]
13985    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13986        support::child(&self.syntax)
13987    }
13988    #[inline]
13989    pub fn having_clause(&self) -> Option<HavingClause> {
13990        support::child(&self.syntax)
13991    }
13992    #[inline]
13993    pub fn into_clause(&self) -> Option<IntoClause> {
13994        support::child(&self.syntax)
13995    }
13996    #[inline]
13997    pub fn limit_clause(&self) -> Option<LimitClause> {
13998        support::child(&self.syntax)
13999    }
14000    #[inline]
14001    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
14002        support::children(&self.syntax)
14003    }
14004    #[inline]
14005    pub fn offset_clause(&self) -> Option<OffsetClause> {
14006        support::child(&self.syntax)
14007    }
14008    #[inline]
14009    pub fn order_by_clause(&self) -> Option<OrderByClause> {
14010        support::child(&self.syntax)
14011    }
14012    #[inline]
14013    pub fn select_clause(&self) -> Option<SelectClause> {
14014        support::child(&self.syntax)
14015    }
14016    #[inline]
14017    pub fn where_clause(&self) -> Option<WhereClause> {
14018        support::child(&self.syntax)
14019    }
14020    #[inline]
14021    pub fn window_clause(&self) -> Option<WindowClause> {
14022        support::child(&self.syntax)
14023    }
14024    #[inline]
14025    pub fn with_clause(&self) -> Option<WithClause> {
14026        support::child(&self.syntax)
14027    }
14028}
14029
14030#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14031pub struct SequenceOption {
14032    pub(crate) syntax: SyntaxNode,
14033}
14034impl SequenceOption {
14035    #[inline]
14036    pub fn literal(&self) -> Option<Literal> {
14037        support::child(&self.syntax)
14038    }
14039    #[inline]
14040    pub fn name_ref(&self) -> Option<NameRef> {
14041        support::child(&self.syntax)
14042    }
14043    #[inline]
14044    pub fn path(&self) -> Option<Path> {
14045        support::child(&self.syntax)
14046    }
14047    #[inline]
14048    pub fn ty(&self) -> Option<Type> {
14049        support::child(&self.syntax)
14050    }
14051    #[inline]
14052    pub fn as_token(&self) -> Option<SyntaxToken> {
14053        support::token(&self.syntax, SyntaxKind::AS_KW)
14054    }
14055    #[inline]
14056    pub fn by_token(&self) -> Option<SyntaxToken> {
14057        support::token(&self.syntax, SyntaxKind::BY_KW)
14058    }
14059    #[inline]
14060    pub fn cycle_token(&self) -> Option<SyntaxToken> {
14061        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
14062    }
14063    #[inline]
14064    pub fn increment_token(&self) -> Option<SyntaxToken> {
14065        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
14066    }
14067    #[inline]
14068    pub fn logged_token(&self) -> Option<SyntaxToken> {
14069        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
14070    }
14071    #[inline]
14072    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
14073        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
14074    }
14075    #[inline]
14076    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
14077        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
14078    }
14079    #[inline]
14080    pub fn name_token(&self) -> Option<SyntaxToken> {
14081        support::token(&self.syntax, SyntaxKind::NAME_KW)
14082    }
14083    #[inline]
14084    pub fn no_token(&self) -> Option<SyntaxToken> {
14085        support::token(&self.syntax, SyntaxKind::NO_KW)
14086    }
14087    #[inline]
14088    pub fn none_token(&self) -> Option<SyntaxToken> {
14089        support::token(&self.syntax, SyntaxKind::NONE_KW)
14090    }
14091    #[inline]
14092    pub fn owned_token(&self) -> Option<SyntaxToken> {
14093        support::token(&self.syntax, SyntaxKind::OWNED_KW)
14094    }
14095    #[inline]
14096    pub fn restart_token(&self) -> Option<SyntaxToken> {
14097        support::token(&self.syntax, SyntaxKind::RESTART_KW)
14098    }
14099    #[inline]
14100    pub fn sequence_token(&self) -> Option<SyntaxToken> {
14101        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
14102    }
14103    #[inline]
14104    pub fn start_token(&self) -> Option<SyntaxToken> {
14105        support::token(&self.syntax, SyntaxKind::START_KW)
14106    }
14107    #[inline]
14108    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
14109        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
14110    }
14111    #[inline]
14112    pub fn with_token(&self) -> Option<SyntaxToken> {
14113        support::token(&self.syntax, SyntaxKind::WITH_KW)
14114    }
14115}
14116
14117#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14118pub struct SequenceOptionList {
14119    pub(crate) syntax: SyntaxNode,
14120}
14121impl SequenceOptionList {
14122    #[inline]
14123    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
14124        support::children(&self.syntax)
14125    }
14126    #[inline]
14127    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14128        support::token(&self.syntax, SyntaxKind::L_PAREN)
14129    }
14130    #[inline]
14131    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14132        support::token(&self.syntax, SyntaxKind::R_PAREN)
14133    }
14134}
14135
14136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14137pub struct Serializable {
14138    pub(crate) syntax: SyntaxNode,
14139}
14140impl Serializable {
14141    #[inline]
14142    pub fn isolation_token(&self) -> Option<SyntaxToken> {
14143        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
14144    }
14145    #[inline]
14146    pub fn level_token(&self) -> Option<SyntaxToken> {
14147        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
14148    }
14149    #[inline]
14150    pub fn serializable_token(&self) -> Option<SyntaxToken> {
14151        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
14152    }
14153}
14154
14155#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14156pub struct ServerName {
14157    pub(crate) syntax: SyntaxNode,
14158}
14159impl ServerName {
14160    #[inline]
14161    pub fn name_ref(&self) -> Option<NameRef> {
14162        support::child(&self.syntax)
14163    }
14164    #[inline]
14165    pub fn server_token(&self) -> Option<SyntaxToken> {
14166        support::token(&self.syntax, SyntaxKind::SERVER_KW)
14167    }
14168}
14169
14170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14171pub struct Set {
14172    pub(crate) syntax: SyntaxNode,
14173}
14174impl Set {
14175    #[inline]
14176    pub fn config_value(&self) -> Option<ConfigValue> {
14177        support::child(&self.syntax)
14178    }
14179    #[inline]
14180    pub fn config_values(&self) -> AstChildren<ConfigValue> {
14181        support::children(&self.syntax)
14182    }
14183    #[inline]
14184    pub fn literal(&self) -> Option<Literal> {
14185        support::child(&self.syntax)
14186    }
14187    #[inline]
14188    pub fn path(&self) -> Option<Path> {
14189        support::child(&self.syntax)
14190    }
14191    #[inline]
14192    pub fn eq_token(&self) -> Option<SyntaxToken> {
14193        support::token(&self.syntax, SyntaxKind::EQ)
14194    }
14195    #[inline]
14196    pub fn catalog_token(&self) -> Option<SyntaxToken> {
14197        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
14198    }
14199    #[inline]
14200    pub fn content_token(&self) -> Option<SyntaxToken> {
14201        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
14202    }
14203    #[inline]
14204    pub fn current_token(&self) -> Option<SyntaxToken> {
14205        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
14206    }
14207    #[inline]
14208    pub fn default_token(&self) -> Option<SyntaxToken> {
14209        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14210    }
14211    #[inline]
14212    pub fn document_token(&self) -> Option<SyntaxToken> {
14213        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
14214    }
14215    #[inline]
14216    pub fn from_token(&self) -> Option<SyntaxToken> {
14217        support::token(&self.syntax, SyntaxKind::FROM_KW)
14218    }
14219    #[inline]
14220    pub fn local_token(&self) -> Option<SyntaxToken> {
14221        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14222    }
14223    #[inline]
14224    pub fn option_token(&self) -> Option<SyntaxToken> {
14225        support::token(&self.syntax, SyntaxKind::OPTION_KW)
14226    }
14227    #[inline]
14228    pub fn schema_token(&self) -> Option<SyntaxToken> {
14229        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14230    }
14231    #[inline]
14232    pub fn session_token(&self) -> Option<SyntaxToken> {
14233        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14234    }
14235    #[inline]
14236    pub fn set_token(&self) -> Option<SyntaxToken> {
14237        support::token(&self.syntax, SyntaxKind::SET_KW)
14238    }
14239    #[inline]
14240    pub fn time_token(&self) -> Option<SyntaxToken> {
14241        support::token(&self.syntax, SyntaxKind::TIME_KW)
14242    }
14243    #[inline]
14244    pub fn to_token(&self) -> Option<SyntaxToken> {
14245        support::token(&self.syntax, SyntaxKind::TO_KW)
14246    }
14247    #[inline]
14248    pub fn xml_token(&self) -> Option<SyntaxToken> {
14249        support::token(&self.syntax, SyntaxKind::XML_KW)
14250    }
14251    #[inline]
14252    pub fn zone_token(&self) -> Option<SyntaxToken> {
14253        support::token(&self.syntax, SyntaxKind::ZONE_KW)
14254    }
14255}
14256
14257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14258pub struct SetAccessMethod {
14259    pub(crate) syntax: SyntaxNode,
14260}
14261impl SetAccessMethod {
14262    #[inline]
14263    pub fn name_ref(&self) -> Option<NameRef> {
14264        support::child(&self.syntax)
14265    }
14266    #[inline]
14267    pub fn access_token(&self) -> Option<SyntaxToken> {
14268        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
14269    }
14270    #[inline]
14271    pub fn method_token(&self) -> Option<SyntaxToken> {
14272        support::token(&self.syntax, SyntaxKind::METHOD_KW)
14273    }
14274    #[inline]
14275    pub fn set_token(&self) -> Option<SyntaxToken> {
14276        support::token(&self.syntax, SyntaxKind::SET_KW)
14277    }
14278}
14279
14280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14281pub struct SetClause {
14282    pub(crate) syntax: SyntaxNode,
14283}
14284impl SetClause {
14285    #[inline]
14286    pub fn set_column_list(&self) -> Option<SetColumnList> {
14287        support::child(&self.syntax)
14288    }
14289    #[inline]
14290    pub fn set_token(&self) -> Option<SyntaxToken> {
14291        support::token(&self.syntax, SyntaxKind::SET_KW)
14292    }
14293}
14294
14295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14296pub struct SetColumnList {
14297    pub(crate) syntax: SyntaxNode,
14298}
14299impl SetColumnList {
14300    #[inline]
14301    pub fn set_columns(&self) -> AstChildren<SetColumn> {
14302        support::children(&self.syntax)
14303    }
14304}
14305
14306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14307pub struct SetCompression {
14308    pub(crate) syntax: SyntaxNode,
14309}
14310impl SetCompression {
14311    #[inline]
14312    pub fn compression_token(&self) -> Option<SyntaxToken> {
14313        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
14314    }
14315    #[inline]
14316    pub fn set_token(&self) -> Option<SyntaxToken> {
14317        support::token(&self.syntax, SyntaxKind::SET_KW)
14318    }
14319}
14320
14321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14322pub struct SetConfigParam {
14323    pub(crate) syntax: SyntaxNode,
14324}
14325impl SetConfigParam {
14326    #[inline]
14327    pub fn path(&self) -> Option<Path> {
14328        support::child(&self.syntax)
14329    }
14330    #[inline]
14331    pub fn set_token(&self) -> Option<SyntaxToken> {
14332        support::token(&self.syntax, SyntaxKind::SET_KW)
14333    }
14334}
14335
14336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14337pub struct SetConstraints {
14338    pub(crate) syntax: SyntaxNode,
14339}
14340impl SetConstraints {
14341    #[inline]
14342    pub fn paths(&self) -> AstChildren<Path> {
14343        support::children(&self.syntax)
14344    }
14345    #[inline]
14346    pub fn all_token(&self) -> Option<SyntaxToken> {
14347        support::token(&self.syntax, SyntaxKind::ALL_KW)
14348    }
14349    #[inline]
14350    pub fn constraints_token(&self) -> Option<SyntaxToken> {
14351        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
14352    }
14353    #[inline]
14354    pub fn deferred_token(&self) -> Option<SyntaxToken> {
14355        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
14356    }
14357    #[inline]
14358    pub fn immediate_token(&self) -> Option<SyntaxToken> {
14359        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
14360    }
14361    #[inline]
14362    pub fn set_token(&self) -> Option<SyntaxToken> {
14363        support::token(&self.syntax, SyntaxKind::SET_KW)
14364    }
14365}
14366
14367#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14368pub struct SetDefault {
14369    pub(crate) syntax: SyntaxNode,
14370}
14371impl SetDefault {
14372    #[inline]
14373    pub fn expr(&self) -> Option<Expr> {
14374        support::child(&self.syntax)
14375    }
14376    #[inline]
14377    pub fn default_token(&self) -> Option<SyntaxToken> {
14378        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14379    }
14380    #[inline]
14381    pub fn set_token(&self) -> Option<SyntaxToken> {
14382        support::token(&self.syntax, SyntaxKind::SET_KW)
14383    }
14384}
14385
14386#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14387pub struct SetDefaultColumns {
14388    pub(crate) syntax: SyntaxNode,
14389}
14390impl SetDefaultColumns {
14391    #[inline]
14392    pub fn column_list(&self) -> Option<ColumnList> {
14393        support::child(&self.syntax)
14394    }
14395    #[inline]
14396    pub fn default_token(&self) -> Option<SyntaxToken> {
14397        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14398    }
14399    #[inline]
14400    pub fn set_token(&self) -> Option<SyntaxToken> {
14401        support::token(&self.syntax, SyntaxKind::SET_KW)
14402    }
14403}
14404
14405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14406pub struct SetExpr {
14407    pub(crate) syntax: SyntaxNode,
14408}
14409impl SetExpr {
14410    #[inline]
14411    pub fn expr(&self) -> Option<Expr> {
14412        support::child(&self.syntax)
14413    }
14414    #[inline]
14415    pub fn default_token(&self) -> Option<SyntaxToken> {
14416        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14417    }
14418}
14419
14420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14421pub struct SetExprList {
14422    pub(crate) syntax: SyntaxNode,
14423}
14424impl SetExprList {
14425    #[inline]
14426    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
14427        support::children(&self.syntax)
14428    }
14429    #[inline]
14430    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14431        support::token(&self.syntax, SyntaxKind::L_PAREN)
14432    }
14433    #[inline]
14434    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14435        support::token(&self.syntax, SyntaxKind::R_PAREN)
14436    }
14437    #[inline]
14438    pub fn row_token(&self) -> Option<SyntaxToken> {
14439        support::token(&self.syntax, SyntaxKind::ROW_KW)
14440    }
14441}
14442
14443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14444pub struct SetExpression {
14445    pub(crate) syntax: SyntaxNode,
14446}
14447impl SetExpression {
14448    #[inline]
14449    pub fn expr(&self) -> Option<Expr> {
14450        support::child(&self.syntax)
14451    }
14452    #[inline]
14453    pub fn expression_token(&self) -> Option<SyntaxToken> {
14454        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
14455    }
14456    #[inline]
14457    pub fn set_token(&self) -> Option<SyntaxToken> {
14458        support::token(&self.syntax, SyntaxKind::SET_KW)
14459    }
14460}
14461
14462#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14463pub struct SetFuncOption {
14464    pub(crate) syntax: SyntaxNode,
14465}
14466impl SetFuncOption {
14467    #[inline]
14468    pub fn set_token(&self) -> Option<SyntaxToken> {
14469        support::token(&self.syntax, SyntaxKind::SET_KW)
14470    }
14471}
14472
14473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14474pub struct SetGenerated {
14475    pub(crate) syntax: SyntaxNode,
14476}
14477impl SetGenerated {
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 SetGeneratedOptions {
14486    pub(crate) syntax: SyntaxNode,
14487}
14488impl SetGeneratedOptions {
14489    #[inline]
14490    pub fn generated_token(&self) -> Option<SyntaxToken> {
14491        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
14492    }
14493    #[inline]
14494    pub fn set_token(&self) -> Option<SyntaxToken> {
14495        support::token(&self.syntax, SyntaxKind::SET_KW)
14496    }
14497}
14498
14499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14500pub struct SetLogged {
14501    pub(crate) syntax: SyntaxNode,
14502}
14503impl SetLogged {
14504    #[inline]
14505    pub fn logged_token(&self) -> Option<SyntaxToken> {
14506        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
14507    }
14508    #[inline]
14509    pub fn set_token(&self) -> Option<SyntaxToken> {
14510        support::token(&self.syntax, SyntaxKind::SET_KW)
14511    }
14512}
14513
14514#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14515pub struct SetMultipleColumns {
14516    pub(crate) syntax: SyntaxNode,
14517}
14518impl SetMultipleColumns {
14519    #[inline]
14520    pub fn column_list(&self) -> Option<ColumnList> {
14521        support::child(&self.syntax)
14522    }
14523    #[inline]
14524    pub fn paren_select(&self) -> Option<ParenSelect> {
14525        support::child(&self.syntax)
14526    }
14527    #[inline]
14528    pub fn set_expr_list(&self) -> Option<SetExprList> {
14529        support::child(&self.syntax)
14530    }
14531    #[inline]
14532    pub fn eq_token(&self) -> Option<SyntaxToken> {
14533        support::token(&self.syntax, SyntaxKind::EQ)
14534    }
14535}
14536
14537#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14538pub struct SetNotNull {
14539    pub(crate) syntax: SyntaxNode,
14540}
14541impl SetNotNull {
14542    #[inline]
14543    pub fn not_token(&self) -> Option<SyntaxToken> {
14544        support::token(&self.syntax, SyntaxKind::NOT_KW)
14545    }
14546    #[inline]
14547    pub fn null_token(&self) -> Option<SyntaxToken> {
14548        support::token(&self.syntax, SyntaxKind::NULL_KW)
14549    }
14550    #[inline]
14551    pub fn set_token(&self) -> Option<SyntaxToken> {
14552        support::token(&self.syntax, SyntaxKind::SET_KW)
14553    }
14554}
14555
14556#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14557pub struct SetNullColumns {
14558    pub(crate) syntax: SyntaxNode,
14559}
14560impl SetNullColumns {
14561    #[inline]
14562    pub fn column_list(&self) -> Option<ColumnList> {
14563        support::child(&self.syntax)
14564    }
14565    #[inline]
14566    pub fn null_token(&self) -> Option<SyntaxToken> {
14567        support::token(&self.syntax, SyntaxKind::NULL_KW)
14568    }
14569    #[inline]
14570    pub fn set_token(&self) -> Option<SyntaxToken> {
14571        support::token(&self.syntax, SyntaxKind::SET_KW)
14572    }
14573}
14574
14575#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14576pub struct SetOptions {
14577    pub(crate) syntax: SyntaxNode,
14578}
14579impl SetOptions {
14580    #[inline]
14581    pub fn attribute_list(&self) -> Option<AttributeList> {
14582        support::child(&self.syntax)
14583    }
14584    #[inline]
14585    pub fn set_token(&self) -> Option<SyntaxToken> {
14586        support::token(&self.syntax, SyntaxKind::SET_KW)
14587    }
14588}
14589
14590#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14591pub struct SetOptionsList {
14592    pub(crate) syntax: SyntaxNode,
14593}
14594impl SetOptionsList {
14595    #[inline]
14596    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
14597        support::child(&self.syntax)
14598    }
14599    #[inline]
14600    pub fn options_token(&self) -> Option<SyntaxToken> {
14601        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
14602    }
14603    #[inline]
14604    pub fn set_token(&self) -> Option<SyntaxToken> {
14605        support::token(&self.syntax, SyntaxKind::SET_KW)
14606    }
14607}
14608
14609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14610pub struct SetRole {
14611    pub(crate) syntax: SyntaxNode,
14612}
14613impl SetRole {
14614    #[inline]
14615    pub fn role_ref(&self) -> Option<RoleRef> {
14616        support::child(&self.syntax)
14617    }
14618    #[inline]
14619    pub fn local_token(&self) -> Option<SyntaxToken> {
14620        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14621    }
14622    #[inline]
14623    pub fn none_token(&self) -> Option<SyntaxToken> {
14624        support::token(&self.syntax, SyntaxKind::NONE_KW)
14625    }
14626    #[inline]
14627    pub fn reset_token(&self) -> Option<SyntaxToken> {
14628        support::token(&self.syntax, SyntaxKind::RESET_KW)
14629    }
14630    #[inline]
14631    pub fn role_token(&self) -> Option<SyntaxToken> {
14632        support::token(&self.syntax, SyntaxKind::ROLE_KW)
14633    }
14634    #[inline]
14635    pub fn session_token(&self) -> Option<SyntaxToken> {
14636        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14637    }
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 SetSchema {
14646    pub(crate) syntax: SyntaxNode,
14647}
14648impl SetSchema {
14649    #[inline]
14650    pub fn name_ref(&self) -> Option<NameRef> {
14651        support::child(&self.syntax)
14652    }
14653    #[inline]
14654    pub fn schema_token(&self) -> Option<SyntaxToken> {
14655        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14656    }
14657    #[inline]
14658    pub fn set_token(&self) -> Option<SyntaxToken> {
14659        support::token(&self.syntax, SyntaxKind::SET_KW)
14660    }
14661}
14662
14663#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14664pub struct SetSequenceOption {
14665    pub(crate) syntax: SyntaxNode,
14666}
14667impl SetSequenceOption {
14668    #[inline]
14669    pub fn set_token(&self) -> Option<SyntaxToken> {
14670        support::token(&self.syntax, SyntaxKind::SET_KW)
14671    }
14672}
14673
14674#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14675pub struct SetSessionAuth {
14676    pub(crate) syntax: SyntaxNode,
14677}
14678impl SetSessionAuth {
14679    #[inline]
14680    pub fn literal(&self) -> Option<Literal> {
14681        support::child(&self.syntax)
14682    }
14683    #[inline]
14684    pub fn role_ref(&self) -> Option<RoleRef> {
14685        support::child(&self.syntax)
14686    }
14687    #[inline]
14688    pub fn authorization_token(&self) -> Option<SyntaxToken> {
14689        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
14690    }
14691    #[inline]
14692    pub fn default_token(&self) -> Option<SyntaxToken> {
14693        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14694    }
14695    #[inline]
14696    pub fn local_token(&self) -> Option<SyntaxToken> {
14697        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14698    }
14699    #[inline]
14700    pub fn session_token(&self) -> Option<SyntaxToken> {
14701        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14702    }
14703    #[inline]
14704    pub fn set_token(&self) -> Option<SyntaxToken> {
14705        support::token(&self.syntax, SyntaxKind::SET_KW)
14706    }
14707}
14708
14709#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14710pub struct SetSingleColumn {
14711    pub(crate) syntax: SyntaxNode,
14712}
14713impl SetSingleColumn {
14714    #[inline]
14715    pub fn column(&self) -> Option<Column> {
14716        support::child(&self.syntax)
14717    }
14718    #[inline]
14719    pub fn set_expr(&self) -> Option<SetExpr> {
14720        support::child(&self.syntax)
14721    }
14722    #[inline]
14723    pub fn eq_token(&self) -> Option<SyntaxToken> {
14724        support::token(&self.syntax, SyntaxKind::EQ)
14725    }
14726}
14727
14728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14729pub struct SetStatistics {
14730    pub(crate) syntax: SyntaxNode,
14731}
14732impl SetStatistics {
14733    #[inline]
14734    pub fn set_token(&self) -> Option<SyntaxToken> {
14735        support::token(&self.syntax, SyntaxKind::SET_KW)
14736    }
14737    #[inline]
14738    pub fn statistics_token(&self) -> Option<SyntaxToken> {
14739        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
14740    }
14741}
14742
14743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14744pub struct SetStorage {
14745    pub(crate) syntax: SyntaxNode,
14746}
14747impl SetStorage {
14748    #[inline]
14749    pub fn set_token(&self) -> Option<SyntaxToken> {
14750        support::token(&self.syntax, SyntaxKind::SET_KW)
14751    }
14752    #[inline]
14753    pub fn storage_token(&self) -> Option<SyntaxToken> {
14754        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14755    }
14756}
14757
14758#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14759pub struct SetTablespace {
14760    pub(crate) syntax: SyntaxNode,
14761}
14762impl SetTablespace {
14763    #[inline]
14764    pub fn path(&self) -> Option<Path> {
14765        support::child(&self.syntax)
14766    }
14767    #[inline]
14768    pub fn set_token(&self) -> Option<SyntaxToken> {
14769        support::token(&self.syntax, SyntaxKind::SET_KW)
14770    }
14771    #[inline]
14772    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
14773        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
14774    }
14775}
14776
14777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14778pub struct SetTransaction {
14779    pub(crate) syntax: SyntaxNode,
14780}
14781impl SetTransaction {
14782    #[inline]
14783    pub fn literal(&self) -> Option<Literal> {
14784        support::child(&self.syntax)
14785    }
14786    #[inline]
14787    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
14788        support::child(&self.syntax)
14789    }
14790    #[inline]
14791    pub fn as_token(&self) -> Option<SyntaxToken> {
14792        support::token(&self.syntax, SyntaxKind::AS_KW)
14793    }
14794    #[inline]
14795    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
14796        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
14797    }
14798    #[inline]
14799    pub fn session_token(&self) -> Option<SyntaxToken> {
14800        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14801    }
14802    #[inline]
14803    pub fn set_token(&self) -> Option<SyntaxToken> {
14804        support::token(&self.syntax, SyntaxKind::SET_KW)
14805    }
14806    #[inline]
14807    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
14808        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
14809    }
14810    #[inline]
14811    pub fn transaction_token(&self) -> Option<SyntaxToken> {
14812        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
14813    }
14814}
14815
14816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14817pub struct SetType {
14818    pub(crate) syntax: SyntaxNode,
14819}
14820impl SetType {
14821    #[inline]
14822    pub fn collate(&self) -> Option<Collate> {
14823        support::child(&self.syntax)
14824    }
14825    #[inline]
14826    pub fn ty(&self) -> Option<Type> {
14827        support::child(&self.syntax)
14828    }
14829    #[inline]
14830    pub fn set_token(&self) -> Option<SyntaxToken> {
14831        support::token(&self.syntax, SyntaxKind::SET_KW)
14832    }
14833    #[inline]
14834    pub fn type_token(&self) -> Option<SyntaxToken> {
14835        support::token(&self.syntax, SyntaxKind::TYPE_KW)
14836    }
14837}
14838
14839#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14840pub struct SetUnlogged {
14841    pub(crate) syntax: SyntaxNode,
14842}
14843impl SetUnlogged {
14844    #[inline]
14845    pub fn set_token(&self) -> Option<SyntaxToken> {
14846        support::token(&self.syntax, SyntaxKind::SET_KW)
14847    }
14848    #[inline]
14849    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
14850        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
14851    }
14852}
14853
14854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14855pub struct SetWithoutCluster {
14856    pub(crate) syntax: SyntaxNode,
14857}
14858impl SetWithoutCluster {
14859    #[inline]
14860    pub fn cluster_token(&self) -> Option<SyntaxToken> {
14861        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
14862    }
14863    #[inline]
14864    pub fn set_token(&self) -> Option<SyntaxToken> {
14865        support::token(&self.syntax, SyntaxKind::SET_KW)
14866    }
14867    #[inline]
14868    pub fn without_token(&self) -> Option<SyntaxToken> {
14869        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14870    }
14871}
14872
14873#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14874pub struct SetWithoutOids {
14875    pub(crate) syntax: SyntaxNode,
14876}
14877impl SetWithoutOids {
14878    #[inline]
14879    pub fn oids_token(&self) -> Option<SyntaxToken> {
14880        support::token(&self.syntax, SyntaxKind::OIDS_KW)
14881    }
14882    #[inline]
14883    pub fn set_token(&self) -> Option<SyntaxToken> {
14884        support::token(&self.syntax, SyntaxKind::SET_KW)
14885    }
14886    #[inline]
14887    pub fn without_token(&self) -> Option<SyntaxToken> {
14888        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14889    }
14890}
14891
14892#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14893pub struct Show {
14894    pub(crate) syntax: SyntaxNode,
14895}
14896impl Show {
14897    #[inline]
14898    pub fn show_token(&self) -> Option<SyntaxToken> {
14899        support::token(&self.syntax, SyntaxKind::SHOW_KW)
14900    }
14901}
14902
14903#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14904pub struct SimilarTo {
14905    pub(crate) syntax: SyntaxNode,
14906}
14907impl SimilarTo {
14908    #[inline]
14909    pub fn similar_token(&self) -> Option<SyntaxToken> {
14910        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14911    }
14912    #[inline]
14913    pub fn to_token(&self) -> Option<SyntaxToken> {
14914        support::token(&self.syntax, SyntaxKind::TO_KW)
14915    }
14916}
14917
14918#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14919pub struct SliceExpr {
14920    pub(crate) syntax: SyntaxNode,
14921}
14922impl SliceExpr {
14923    #[inline]
14924    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
14925        support::token(&self.syntax, SyntaxKind::L_BRACK)
14926    }
14927    #[inline]
14928    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
14929        support::token(&self.syntax, SyntaxKind::R_BRACK)
14930    }
14931    #[inline]
14932    pub fn colon_token(&self) -> Option<SyntaxToken> {
14933        support::token(&self.syntax, SyntaxKind::COLON)
14934    }
14935}
14936
14937#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14938pub struct SomeFn {
14939    pub(crate) syntax: SyntaxNode,
14940}
14941impl SomeFn {
14942    #[inline]
14943    pub fn expr(&self) -> Option<Expr> {
14944        support::child(&self.syntax)
14945    }
14946    #[inline]
14947    pub fn select_variant(&self) -> Option<SelectVariant> {
14948        support::child(&self.syntax)
14949    }
14950    #[inline]
14951    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14952        support::token(&self.syntax, SyntaxKind::L_PAREN)
14953    }
14954    #[inline]
14955    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14956        support::token(&self.syntax, SyntaxKind::R_PAREN)
14957    }
14958    #[inline]
14959    pub fn some_token(&self) -> Option<SyntaxToken> {
14960        support::token(&self.syntax, SyntaxKind::SOME_KW)
14961    }
14962}
14963
14964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14965pub struct SortAsc {
14966    pub(crate) syntax: SyntaxNode,
14967}
14968impl SortAsc {
14969    #[inline]
14970    pub fn asc_token(&self) -> Option<SyntaxToken> {
14971        support::token(&self.syntax, SyntaxKind::ASC_KW)
14972    }
14973}
14974
14975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14976pub struct SortBy {
14977    pub(crate) syntax: SyntaxNode,
14978}
14979impl SortBy {
14980    #[inline]
14981    pub fn expr(&self) -> Option<Expr> {
14982        support::child(&self.syntax)
14983    }
14984    #[inline]
14985    pub fn nulls_first(&self) -> Option<NullsFirst> {
14986        support::child(&self.syntax)
14987    }
14988    #[inline]
14989    pub fn nulls_last(&self) -> Option<NullsLast> {
14990        support::child(&self.syntax)
14991    }
14992    #[inline]
14993    pub fn sort_asc(&self) -> Option<SortAsc> {
14994        support::child(&self.syntax)
14995    }
14996    #[inline]
14997    pub fn sort_desc(&self) -> Option<SortDesc> {
14998        support::child(&self.syntax)
14999    }
15000    #[inline]
15001    pub fn sort_using(&self) -> Option<SortUsing> {
15002        support::child(&self.syntax)
15003    }
15004}
15005
15006#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15007pub struct SortByList {
15008    pub(crate) syntax: SyntaxNode,
15009}
15010impl SortByList {
15011    #[inline]
15012    pub fn sort_bys(&self) -> AstChildren<SortBy> {
15013        support::children(&self.syntax)
15014    }
15015}
15016
15017#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15018pub struct SortDesc {
15019    pub(crate) syntax: SyntaxNode,
15020}
15021impl SortDesc {
15022    #[inline]
15023    pub fn desc_token(&self) -> Option<SyntaxToken> {
15024        support::token(&self.syntax, SyntaxKind::DESC_KW)
15025    }
15026}
15027
15028#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15029pub struct SortUsing {
15030    pub(crate) syntax: SyntaxNode,
15031}
15032impl SortUsing {
15033    #[inline]
15034    pub fn op(&self) -> Option<Op> {
15035        support::child(&self.syntax)
15036    }
15037    #[inline]
15038    pub fn using_token(&self) -> Option<SyntaxToken> {
15039        support::token(&self.syntax, SyntaxKind::USING_KW)
15040    }
15041}
15042
15043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15044pub struct SourceFile {
15045    pub(crate) syntax: SyntaxNode,
15046}
15047impl SourceFile {
15048    #[inline]
15049    pub fn stmts(&self) -> AstChildren<Stmt> {
15050        support::children(&self.syntax)
15051    }
15052}
15053
15054#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15055pub struct SplitPartition {
15056    pub(crate) syntax: SyntaxNode,
15057}
15058impl SplitPartition {
15059    #[inline]
15060    pub fn partition_list(&self) -> Option<PartitionList> {
15061        support::child(&self.syntax)
15062    }
15063    #[inline]
15064    pub fn into_token(&self) -> Option<SyntaxToken> {
15065        support::token(&self.syntax, SyntaxKind::INTO_KW)
15066    }
15067    #[inline]
15068    pub fn partition_token(&self) -> Option<SyntaxToken> {
15069        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
15070    }
15071    #[inline]
15072    pub fn split_token(&self) -> Option<SyntaxToken> {
15073        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
15074    }
15075}
15076
15077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15078pub struct Storage {
15079    pub(crate) syntax: SyntaxNode,
15080}
15081impl Storage {
15082    #[inline]
15083    pub fn default_token(&self) -> Option<SyntaxToken> {
15084        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15085    }
15086    #[inline]
15087    pub fn external_token(&self) -> Option<SyntaxToken> {
15088        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
15089    }
15090    #[inline]
15091    pub fn ident_token(&self) -> Option<SyntaxToken> {
15092        support::token(&self.syntax, SyntaxKind::IDENT)
15093    }
15094    #[inline]
15095    pub fn storage_token(&self) -> Option<SyntaxToken> {
15096        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
15097    }
15098}
15099
15100#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15101pub struct StrictFuncOption {
15102    pub(crate) syntax: SyntaxNode,
15103}
15104impl StrictFuncOption {
15105    #[inline]
15106    pub fn called_token(&self) -> Option<SyntaxToken> {
15107        support::token(&self.syntax, SyntaxKind::CALLED_KW)
15108    }
15109    #[inline]
15110    pub fn input_token(&self) -> Option<SyntaxToken> {
15111        support::token(&self.syntax, SyntaxKind::INPUT_KW)
15112    }
15113    #[inline]
15114    pub fn null_token(&self) -> Option<SyntaxToken> {
15115        support::token(&self.syntax, SyntaxKind::NULL_KW)
15116    }
15117    #[inline]
15118    pub fn on_token(&self) -> Option<SyntaxToken> {
15119        support::token(&self.syntax, SyntaxKind::ON_KW)
15120    }
15121    #[inline]
15122    pub fn returns_token(&self) -> Option<SyntaxToken> {
15123        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
15124    }
15125    #[inline]
15126    pub fn strict_token(&self) -> Option<SyntaxToken> {
15127        support::token(&self.syntax, SyntaxKind::STRICT_KW)
15128    }
15129}
15130
15131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15132pub struct SubstringFn {
15133    pub(crate) syntax: SyntaxNode,
15134}
15135impl SubstringFn {
15136    #[inline]
15137    pub fn expr(&self) -> Option<Expr> {
15138        support::child(&self.syntax)
15139    }
15140    #[inline]
15141    pub fn exprs(&self) -> AstChildren<Expr> {
15142        support::children(&self.syntax)
15143    }
15144    #[inline]
15145    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15146        support::token(&self.syntax, SyntaxKind::L_PAREN)
15147    }
15148    #[inline]
15149    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15150        support::token(&self.syntax, SyntaxKind::R_PAREN)
15151    }
15152    #[inline]
15153    pub fn for_token(&self) -> Option<SyntaxToken> {
15154        support::token(&self.syntax, SyntaxKind::FOR_KW)
15155    }
15156    #[inline]
15157    pub fn from_token(&self) -> Option<SyntaxToken> {
15158        support::token(&self.syntax, SyntaxKind::FROM_KW)
15159    }
15160    #[inline]
15161    pub fn similar_token(&self) -> Option<SyntaxToken> {
15162        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
15163    }
15164    #[inline]
15165    pub fn substring_token(&self) -> Option<SyntaxToken> {
15166        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
15167    }
15168}
15169
15170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15171pub struct SupportFuncOption {
15172    pub(crate) syntax: SyntaxNode,
15173}
15174impl SupportFuncOption {
15175    #[inline]
15176    pub fn support_token(&self) -> Option<SyntaxToken> {
15177        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
15178    }
15179}
15180
15181#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15182pub struct Table {
15183    pub(crate) syntax: SyntaxNode,
15184}
15185impl Table {
15186    #[inline]
15187    pub fn relation_name(&self) -> Option<RelationName> {
15188        support::child(&self.syntax)
15189    }
15190    #[inline]
15191    pub fn with_clause(&self) -> Option<WithClause> {
15192        support::child(&self.syntax)
15193    }
15194    #[inline]
15195    pub fn table_token(&self) -> Option<SyntaxToken> {
15196        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15197    }
15198}
15199
15200#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15201pub struct TableAndColumns {
15202    pub(crate) syntax: SyntaxNode,
15203}
15204impl TableAndColumns {
15205    #[inline]
15206    pub fn column_list(&self) -> Option<ColumnList> {
15207        support::child(&self.syntax)
15208    }
15209    #[inline]
15210    pub fn relation_name(&self) -> Option<RelationName> {
15211        support::child(&self.syntax)
15212    }
15213}
15214
15215#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15216pub struct TableAndColumnsList {
15217    pub(crate) syntax: SyntaxNode,
15218}
15219impl TableAndColumnsList {
15220    #[inline]
15221    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
15222        support::children(&self.syntax)
15223    }
15224}
15225
15226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15227pub struct TableArgList {
15228    pub(crate) syntax: SyntaxNode,
15229}
15230impl TableArgList {
15231    #[inline]
15232    pub fn args(&self) -> AstChildren<TableArg> {
15233        support::children(&self.syntax)
15234    }
15235    #[inline]
15236    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15237        support::token(&self.syntax, SyntaxKind::L_PAREN)
15238    }
15239    #[inline]
15240    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15241        support::token(&self.syntax, SyntaxKind::R_PAREN)
15242    }
15243}
15244
15245#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15246pub struct TableList {
15247    pub(crate) syntax: SyntaxNode,
15248}
15249impl TableList {
15250    #[inline]
15251    pub fn relation_names(&self) -> AstChildren<RelationName> {
15252        support::children(&self.syntax)
15253    }
15254}
15255
15256#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15257pub struct TablesampleClause {
15258    pub(crate) syntax: SyntaxNode,
15259}
15260impl TablesampleClause {
15261    #[inline]
15262    pub fn call_expr(&self) -> Option<CallExpr> {
15263        support::child(&self.syntax)
15264    }
15265    #[inline]
15266    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
15267        support::child(&self.syntax)
15268    }
15269    #[inline]
15270    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
15271        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
15272    }
15273}
15274
15275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15276pub struct Tablespace {
15277    pub(crate) syntax: SyntaxNode,
15278}
15279impl Tablespace {
15280    #[inline]
15281    pub fn name_ref(&self) -> Option<NameRef> {
15282        support::child(&self.syntax)
15283    }
15284    #[inline]
15285    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
15286        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
15287    }
15288}
15289
15290#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15291pub struct Target {
15292    pub(crate) syntax: SyntaxNode,
15293}
15294impl Target {
15295    #[inline]
15296    pub fn as_name(&self) -> Option<AsName> {
15297        support::child(&self.syntax)
15298    }
15299    #[inline]
15300    pub fn expr(&self) -> Option<Expr> {
15301        support::child(&self.syntax)
15302    }
15303    #[inline]
15304    pub fn star_token(&self) -> Option<SyntaxToken> {
15305        support::token(&self.syntax, SyntaxKind::STAR)
15306    }
15307}
15308
15309#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15310pub struct TargetList {
15311    pub(crate) syntax: SyntaxNode,
15312}
15313impl TargetList {
15314    #[inline]
15315    pub fn targets(&self) -> AstChildren<Target> {
15316        support::children(&self.syntax)
15317    }
15318}
15319
15320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15321pub struct TimeType {
15322    pub(crate) syntax: SyntaxNode,
15323}
15324impl TimeType {
15325    #[inline]
15326    pub fn literal(&self) -> Option<Literal> {
15327        support::child(&self.syntax)
15328    }
15329    #[inline]
15330    pub fn timezone(&self) -> Option<Timezone> {
15331        support::child(&self.syntax)
15332    }
15333    #[inline]
15334    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15335        support::token(&self.syntax, SyntaxKind::L_PAREN)
15336    }
15337    #[inline]
15338    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15339        support::token(&self.syntax, SyntaxKind::R_PAREN)
15340    }
15341    #[inline]
15342    pub fn time_token(&self) -> Option<SyntaxToken> {
15343        support::token(&self.syntax, SyntaxKind::TIME_KW)
15344    }
15345    #[inline]
15346    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
15347        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
15348    }
15349}
15350
15351#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15352pub struct Timing {
15353    pub(crate) syntax: SyntaxNode,
15354}
15355impl Timing {
15356    #[inline]
15357    pub fn after_token(&self) -> Option<SyntaxToken> {
15358        support::token(&self.syntax, SyntaxKind::AFTER_KW)
15359    }
15360    #[inline]
15361    pub fn before_token(&self) -> Option<SyntaxToken> {
15362        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
15363    }
15364    #[inline]
15365    pub fn instead_token(&self) -> Option<SyntaxToken> {
15366        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
15367    }
15368    #[inline]
15369    pub fn of_token(&self) -> Option<SyntaxToken> {
15370        support::token(&self.syntax, SyntaxKind::OF_KW)
15371    }
15372}
15373
15374#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15375pub struct TransactionModeList {
15376    pub(crate) syntax: SyntaxNode,
15377}
15378impl TransactionModeList {
15379    #[inline]
15380    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
15381        support::children(&self.syntax)
15382    }
15383}
15384
15385#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15386pub struct TransformFromFunc {
15387    pub(crate) syntax: SyntaxNode,
15388}
15389impl TransformFromFunc {
15390    #[inline]
15391    pub fn function_sig(&self) -> Option<FunctionSig> {
15392        support::child(&self.syntax)
15393    }
15394    #[inline]
15395    pub fn from_token(&self) -> Option<SyntaxToken> {
15396        support::token(&self.syntax, SyntaxKind::FROM_KW)
15397    }
15398    #[inline]
15399    pub fn function_token(&self) -> Option<SyntaxToken> {
15400        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15401    }
15402    #[inline]
15403    pub fn sql_token(&self) -> Option<SyntaxToken> {
15404        support::token(&self.syntax, SyntaxKind::SQL_KW)
15405    }
15406    #[inline]
15407    pub fn with_token(&self) -> Option<SyntaxToken> {
15408        support::token(&self.syntax, SyntaxKind::WITH_KW)
15409    }
15410}
15411
15412#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15413pub struct TransformFuncOption {
15414    pub(crate) syntax: SyntaxNode,
15415}
15416impl TransformFuncOption {
15417    #[inline]
15418    pub fn transform_token(&self) -> Option<SyntaxToken> {
15419        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
15420    }
15421}
15422
15423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15424pub struct TransformToFunc {
15425    pub(crate) syntax: SyntaxNode,
15426}
15427impl TransformToFunc {
15428    #[inline]
15429    pub fn function_sig(&self) -> Option<FunctionSig> {
15430        support::child(&self.syntax)
15431    }
15432    #[inline]
15433    pub fn function_token(&self) -> Option<SyntaxToken> {
15434        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15435    }
15436    #[inline]
15437    pub fn sql_token(&self) -> Option<SyntaxToken> {
15438        support::token(&self.syntax, SyntaxKind::SQL_KW)
15439    }
15440    #[inline]
15441    pub fn to_token(&self) -> Option<SyntaxToken> {
15442        support::token(&self.syntax, SyntaxKind::TO_KW)
15443    }
15444    #[inline]
15445    pub fn with_token(&self) -> Option<SyntaxToken> {
15446        support::token(&self.syntax, SyntaxKind::WITH_KW)
15447    }
15448}
15449
15450#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15451pub struct TriggerEvent {
15452    pub(crate) syntax: SyntaxNode,
15453}
15454impl TriggerEvent {
15455    #[inline]
15456    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
15457        support::child(&self.syntax)
15458    }
15459    #[inline]
15460    pub fn delete_token(&self) -> Option<SyntaxToken> {
15461        support::token(&self.syntax, SyntaxKind::DELETE_KW)
15462    }
15463    #[inline]
15464    pub fn insert_token(&self) -> Option<SyntaxToken> {
15465        support::token(&self.syntax, SyntaxKind::INSERT_KW)
15466    }
15467    #[inline]
15468    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15469        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15470    }
15471}
15472
15473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15474pub struct TriggerEventList {
15475    pub(crate) syntax: SyntaxNode,
15476}
15477impl TriggerEventList {
15478    #[inline]
15479    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
15480        support::children(&self.syntax)
15481    }
15482}
15483
15484#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15485pub struct TriggerEventUpdate {
15486    pub(crate) syntax: SyntaxNode,
15487}
15488impl TriggerEventUpdate {
15489    #[inline]
15490    pub fn name_refs(&self) -> AstChildren<NameRef> {
15491        support::children(&self.syntax)
15492    }
15493    #[inline]
15494    pub fn of_token(&self) -> Option<SyntaxToken> {
15495        support::token(&self.syntax, SyntaxKind::OF_KW)
15496    }
15497    #[inline]
15498    pub fn update_token(&self) -> Option<SyntaxToken> {
15499        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15500    }
15501}
15502
15503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15504pub struct TrimFn {
15505    pub(crate) syntax: SyntaxNode,
15506}
15507impl TrimFn {
15508    #[inline]
15509    pub fn expr(&self) -> Option<Expr> {
15510        support::child(&self.syntax)
15511    }
15512    #[inline]
15513    pub fn exprs(&self) -> AstChildren<Expr> {
15514        support::children(&self.syntax)
15515    }
15516    #[inline]
15517    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15518        support::token(&self.syntax, SyntaxKind::L_PAREN)
15519    }
15520    #[inline]
15521    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15522        support::token(&self.syntax, SyntaxKind::R_PAREN)
15523    }
15524    #[inline]
15525    pub fn from_token(&self) -> Option<SyntaxToken> {
15526        support::token(&self.syntax, SyntaxKind::FROM_KW)
15527    }
15528    #[inline]
15529    pub fn trim_token(&self) -> Option<SyntaxToken> {
15530        support::token(&self.syntax, SyntaxKind::TRIM_KW)
15531    }
15532}
15533
15534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15535pub struct Truncate {
15536    pub(crate) syntax: SyntaxNode,
15537}
15538impl Truncate {
15539    #[inline]
15540    pub fn table_list(&self) -> Option<TableList> {
15541        support::child(&self.syntax)
15542    }
15543    #[inline]
15544    pub fn cascade_token(&self) -> Option<SyntaxToken> {
15545        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
15546    }
15547    #[inline]
15548    pub fn continue_token(&self) -> Option<SyntaxToken> {
15549        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
15550    }
15551    #[inline]
15552    pub fn identity_token(&self) -> Option<SyntaxToken> {
15553        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
15554    }
15555    #[inline]
15556    pub fn restart_token(&self) -> Option<SyntaxToken> {
15557        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15558    }
15559    #[inline]
15560    pub fn restrict_token(&self) -> Option<SyntaxToken> {
15561        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
15562    }
15563    #[inline]
15564    pub fn table_token(&self) -> Option<SyntaxToken> {
15565        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15566    }
15567    #[inline]
15568    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15569        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15570    }
15571}
15572
15573#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15574pub struct TupleExpr {
15575    pub(crate) syntax: SyntaxNode,
15576}
15577impl TupleExpr {
15578    #[inline]
15579    pub fn exprs(&self) -> AstChildren<Expr> {
15580        support::children(&self.syntax)
15581    }
15582    #[inline]
15583    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15584        support::token(&self.syntax, SyntaxKind::L_PAREN)
15585    }
15586    #[inline]
15587    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15588        support::token(&self.syntax, SyntaxKind::R_PAREN)
15589    }
15590}
15591
15592#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15593pub struct UnicodeNormalForm {
15594    pub(crate) syntax: SyntaxNode,
15595}
15596impl UnicodeNormalForm {
15597    #[inline]
15598    pub fn nfc_token(&self) -> Option<SyntaxToken> {
15599        support::token(&self.syntax, SyntaxKind::NFC_KW)
15600    }
15601    #[inline]
15602    pub fn nfd_token(&self) -> Option<SyntaxToken> {
15603        support::token(&self.syntax, SyntaxKind::NFD_KW)
15604    }
15605    #[inline]
15606    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
15607        support::token(&self.syntax, SyntaxKind::NFKC_KW)
15608    }
15609    #[inline]
15610    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
15611        support::token(&self.syntax, SyntaxKind::NFKD_KW)
15612    }
15613}
15614
15615#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15616pub struct UniqueConstraint {
15617    pub(crate) syntax: SyntaxNode,
15618}
15619impl UniqueConstraint {
15620    #[inline]
15621    pub fn column_list(&self) -> Option<ColumnList> {
15622        support::child(&self.syntax)
15623    }
15624    #[inline]
15625    pub fn constraint_name(&self) -> Option<ConstraintName> {
15626        support::child(&self.syntax)
15627    }
15628    #[inline]
15629    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
15630        support::child(&self.syntax)
15631    }
15632    #[inline]
15633    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
15634        support::child(&self.syntax)
15635    }
15636    #[inline]
15637    pub fn using_index(&self) -> Option<UsingIndex> {
15638        support::child(&self.syntax)
15639    }
15640    #[inline]
15641    pub fn unique_token(&self) -> Option<SyntaxToken> {
15642        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
15643    }
15644}
15645
15646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15647pub struct Unlisten {
15648    pub(crate) syntax: SyntaxNode,
15649}
15650impl Unlisten {
15651    #[inline]
15652    pub fn name_ref(&self) -> Option<NameRef> {
15653        support::child(&self.syntax)
15654    }
15655    #[inline]
15656    pub fn star_token(&self) -> Option<SyntaxToken> {
15657        support::token(&self.syntax, SyntaxKind::STAR)
15658    }
15659    #[inline]
15660    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
15661        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
15662    }
15663}
15664
15665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15666pub struct Update {
15667    pub(crate) syntax: SyntaxNode,
15668}
15669impl Update {
15670    #[inline]
15671    pub fn alias(&self) -> Option<Alias> {
15672        support::child(&self.syntax)
15673    }
15674    #[inline]
15675    pub fn from_clause(&self) -> Option<FromClause> {
15676        support::child(&self.syntax)
15677    }
15678    #[inline]
15679    pub fn relation_name(&self) -> Option<RelationName> {
15680        support::child(&self.syntax)
15681    }
15682    #[inline]
15683    pub fn returning_clause(&self) -> Option<ReturningClause> {
15684        support::child(&self.syntax)
15685    }
15686    #[inline]
15687    pub fn set_clause(&self) -> Option<SetClause> {
15688        support::child(&self.syntax)
15689    }
15690    #[inline]
15691    pub fn where_clause(&self) -> Option<WhereClause> {
15692        support::child(&self.syntax)
15693    }
15694    #[inline]
15695    pub fn with_clause(&self) -> Option<WithClause> {
15696        support::child(&self.syntax)
15697    }
15698    #[inline]
15699    pub fn update_token(&self) -> Option<SyntaxToken> {
15700        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15701    }
15702}
15703
15704#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15705pub struct UsingClause {
15706    pub(crate) syntax: SyntaxNode,
15707}
15708impl UsingClause {
15709    #[inline]
15710    pub fn from_items(&self) -> AstChildren<FromItem> {
15711        support::children(&self.syntax)
15712    }
15713    #[inline]
15714    pub fn using_token(&self) -> Option<SyntaxToken> {
15715        support::token(&self.syntax, SyntaxKind::USING_KW)
15716    }
15717}
15718
15719#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15720pub struct UsingExprClause {
15721    pub(crate) syntax: SyntaxNode,
15722}
15723impl UsingExprClause {
15724    #[inline]
15725    pub fn expr(&self) -> Option<Expr> {
15726        support::child(&self.syntax)
15727    }
15728    #[inline]
15729    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15730        support::token(&self.syntax, SyntaxKind::L_PAREN)
15731    }
15732    #[inline]
15733    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15734        support::token(&self.syntax, SyntaxKind::R_PAREN)
15735    }
15736    #[inline]
15737    pub fn using_token(&self) -> Option<SyntaxToken> {
15738        support::token(&self.syntax, SyntaxKind::USING_KW)
15739    }
15740}
15741
15742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15743pub struct UsingIndex {
15744    pub(crate) syntax: SyntaxNode,
15745}
15746impl UsingIndex {
15747    #[inline]
15748    pub fn name_ref(&self) -> Option<NameRef> {
15749        support::child(&self.syntax)
15750    }
15751    #[inline]
15752    pub fn index_token(&self) -> Option<SyntaxToken> {
15753        support::token(&self.syntax, SyntaxKind::INDEX_KW)
15754    }
15755    #[inline]
15756    pub fn using_token(&self) -> Option<SyntaxToken> {
15757        support::token(&self.syntax, SyntaxKind::USING_KW)
15758    }
15759}
15760
15761#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15762pub struct UsingMethod {
15763    pub(crate) syntax: SyntaxNode,
15764}
15765impl UsingMethod {
15766    #[inline]
15767    pub fn name_ref(&self) -> Option<NameRef> {
15768        support::child(&self.syntax)
15769    }
15770    #[inline]
15771    pub fn using_token(&self) -> Option<SyntaxToken> {
15772        support::token(&self.syntax, SyntaxKind::USING_KW)
15773    }
15774}
15775
15776#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15777pub struct UsingOnClause {
15778    pub(crate) syntax: SyntaxNode,
15779}
15780impl UsingOnClause {
15781    #[inline]
15782    pub fn from_item(&self) -> Option<FromItem> {
15783        support::child(&self.syntax)
15784    }
15785    #[inline]
15786    pub fn on_clause(&self) -> Option<OnClause> {
15787        support::child(&self.syntax)
15788    }
15789    #[inline]
15790    pub fn using_token(&self) -> Option<SyntaxToken> {
15791        support::token(&self.syntax, SyntaxKind::USING_KW)
15792    }
15793}
15794
15795#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15796pub struct Vacuum {
15797    pub(crate) syntax: SyntaxNode,
15798}
15799impl Vacuum {
15800    #[inline]
15801    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
15802        support::child(&self.syntax)
15803    }
15804    #[inline]
15805    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
15806        support::child(&self.syntax)
15807    }
15808    #[inline]
15809    pub fn analyse_token(&self) -> Option<SyntaxToken> {
15810        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
15811    }
15812    #[inline]
15813    pub fn analyze_token(&self) -> Option<SyntaxToken> {
15814        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
15815    }
15816    #[inline]
15817    pub fn freeze_token(&self) -> Option<SyntaxToken> {
15818        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
15819    }
15820    #[inline]
15821    pub fn full_token(&self) -> Option<SyntaxToken> {
15822        support::token(&self.syntax, SyntaxKind::FULL_KW)
15823    }
15824    #[inline]
15825    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
15826        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
15827    }
15828    #[inline]
15829    pub fn verbose_token(&self) -> Option<SyntaxToken> {
15830        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
15831    }
15832}
15833
15834#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15835pub struct VacuumOption {
15836    pub(crate) syntax: SyntaxNode,
15837}
15838impl VacuumOption {
15839    #[inline]
15840    pub fn literal(&self) -> Option<Literal> {
15841        support::child(&self.syntax)
15842    }
15843}
15844
15845#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15846pub struct VacuumOptionList {
15847    pub(crate) syntax: SyntaxNode,
15848}
15849impl VacuumOptionList {
15850    #[inline]
15851    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
15852        support::children(&self.syntax)
15853    }
15854    #[inline]
15855    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15856        support::token(&self.syntax, SyntaxKind::L_PAREN)
15857    }
15858    #[inline]
15859    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15860        support::token(&self.syntax, SyntaxKind::R_PAREN)
15861    }
15862}
15863
15864#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15865pub struct ValidateConstraint {
15866    pub(crate) syntax: SyntaxNode,
15867}
15868impl ValidateConstraint {
15869    #[inline]
15870    pub fn name_ref(&self) -> Option<NameRef> {
15871        support::child(&self.syntax)
15872    }
15873    #[inline]
15874    pub fn constraint_token(&self) -> Option<SyntaxToken> {
15875        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
15876    }
15877    #[inline]
15878    pub fn validate_token(&self) -> Option<SyntaxToken> {
15879        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
15880    }
15881}
15882
15883#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15884pub struct Values {
15885    pub(crate) syntax: SyntaxNode,
15886}
15887impl Values {
15888    #[inline]
15889    pub fn row_list(&self) -> Option<RowList> {
15890        support::child(&self.syntax)
15891    }
15892    #[inline]
15893    pub fn with_clause(&self) -> Option<WithClause> {
15894        support::child(&self.syntax)
15895    }
15896    #[inline]
15897    pub fn values_token(&self) -> Option<SyntaxToken> {
15898        support::token(&self.syntax, SyntaxKind::VALUES_KW)
15899    }
15900}
15901
15902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15903pub struct Variant {
15904    pub(crate) syntax: SyntaxNode,
15905}
15906impl Variant {
15907    #[inline]
15908    pub fn literal(&self) -> Option<Literal> {
15909        support::child(&self.syntax)
15910    }
15911}
15912
15913#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15914pub struct VariantList {
15915    pub(crate) syntax: SyntaxNode,
15916}
15917impl VariantList {
15918    #[inline]
15919    pub fn variants(&self) -> AstChildren<Variant> {
15920        support::children(&self.syntax)
15921    }
15922    #[inline]
15923    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15924        support::token(&self.syntax, SyntaxKind::L_PAREN)
15925    }
15926    #[inline]
15927    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15928        support::token(&self.syntax, SyntaxKind::R_PAREN)
15929    }
15930}
15931
15932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15933pub struct VolatilityFuncOption {
15934    pub(crate) syntax: SyntaxNode,
15935}
15936impl VolatilityFuncOption {
15937    #[inline]
15938    pub fn immutable_token(&self) -> Option<SyntaxToken> {
15939        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
15940    }
15941    #[inline]
15942    pub fn stable_token(&self) -> Option<SyntaxToken> {
15943        support::token(&self.syntax, SyntaxKind::STABLE_KW)
15944    }
15945    #[inline]
15946    pub fn volatile_token(&self) -> Option<SyntaxToken> {
15947        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
15948    }
15949}
15950
15951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15952pub struct WhenClause {
15953    pub(crate) syntax: SyntaxNode,
15954}
15955impl WhenClause {
15956    #[inline]
15957    pub fn then_token(&self) -> Option<SyntaxToken> {
15958        support::token(&self.syntax, SyntaxKind::THEN_KW)
15959    }
15960    #[inline]
15961    pub fn when_token(&self) -> Option<SyntaxToken> {
15962        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15963    }
15964}
15965
15966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15967pub struct WhenClauseList {
15968    pub(crate) syntax: SyntaxNode,
15969}
15970impl WhenClauseList {
15971    #[inline]
15972    pub fn when_clause(&self) -> Option<WhenClause> {
15973        support::child(&self.syntax)
15974    }
15975    #[inline]
15976    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
15977        support::children(&self.syntax)
15978    }
15979}
15980
15981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15982pub struct WhenCondition {
15983    pub(crate) syntax: SyntaxNode,
15984}
15985impl WhenCondition {
15986    #[inline]
15987    pub fn expr(&self) -> Option<Expr> {
15988        support::child(&self.syntax)
15989    }
15990    #[inline]
15991    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15992        support::token(&self.syntax, SyntaxKind::L_PAREN)
15993    }
15994    #[inline]
15995    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15996        support::token(&self.syntax, SyntaxKind::R_PAREN)
15997    }
15998    #[inline]
15999    pub fn when_token(&self) -> Option<SyntaxToken> {
16000        support::token(&self.syntax, SyntaxKind::WHEN_KW)
16001    }
16002}
16003
16004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16005pub struct WhereClause {
16006    pub(crate) syntax: SyntaxNode,
16007}
16008impl WhereClause {
16009    #[inline]
16010    pub fn expr(&self) -> Option<Expr> {
16011        support::child(&self.syntax)
16012    }
16013    #[inline]
16014    pub fn where_token(&self) -> Option<SyntaxToken> {
16015        support::token(&self.syntax, SyntaxKind::WHERE_KW)
16016    }
16017}
16018
16019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16020pub struct WhereConditionClause {
16021    pub(crate) syntax: SyntaxNode,
16022}
16023impl WhereConditionClause {
16024    #[inline]
16025    pub fn expr(&self) -> Option<Expr> {
16026        support::child(&self.syntax)
16027    }
16028    #[inline]
16029    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16030        support::token(&self.syntax, SyntaxKind::L_PAREN)
16031    }
16032    #[inline]
16033    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16034        support::token(&self.syntax, SyntaxKind::R_PAREN)
16035    }
16036    #[inline]
16037    pub fn where_token(&self) -> Option<SyntaxToken> {
16038        support::token(&self.syntax, SyntaxKind::WHERE_KW)
16039    }
16040}
16041
16042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16043pub struct WhereCurrentOf {
16044    pub(crate) syntax: SyntaxNode,
16045}
16046impl WhereCurrentOf {
16047    #[inline]
16048    pub fn name_ref(&self) -> Option<NameRef> {
16049        support::child(&self.syntax)
16050    }
16051    #[inline]
16052    pub fn current_token(&self) -> Option<SyntaxToken> {
16053        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
16054    }
16055    #[inline]
16056    pub fn of_token(&self) -> Option<SyntaxToken> {
16057        support::token(&self.syntax, SyntaxKind::OF_KW)
16058    }
16059    #[inline]
16060    pub fn where_token(&self) -> Option<SyntaxToken> {
16061        support::token(&self.syntax, SyntaxKind::WHERE_KW)
16062    }
16063}
16064
16065#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16066pub struct WindowClause {
16067    pub(crate) syntax: SyntaxNode,
16068}
16069impl WindowClause {
16070    #[inline]
16071    pub fn window_defs(&self) -> AstChildren<WindowDef> {
16072        support::children(&self.syntax)
16073    }
16074    #[inline]
16075    pub fn window_token(&self) -> Option<SyntaxToken> {
16076        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
16077    }
16078}
16079
16080#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16081pub struct WindowDef {
16082    pub(crate) syntax: SyntaxNode,
16083}
16084impl WindowDef {
16085    #[inline]
16086    pub fn name(&self) -> Option<Name> {
16087        support::child(&self.syntax)
16088    }
16089    #[inline]
16090    pub fn window_spec(&self) -> Option<WindowSpec> {
16091        support::child(&self.syntax)
16092    }
16093    #[inline]
16094    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16095        support::token(&self.syntax, SyntaxKind::L_PAREN)
16096    }
16097    #[inline]
16098    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16099        support::token(&self.syntax, SyntaxKind::R_PAREN)
16100    }
16101    #[inline]
16102    pub fn as_token(&self) -> Option<SyntaxToken> {
16103        support::token(&self.syntax, SyntaxKind::AS_KW)
16104    }
16105}
16106
16107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16108pub struct WindowFuncOption {
16109    pub(crate) syntax: SyntaxNode,
16110}
16111impl WindowFuncOption {
16112    #[inline]
16113    pub fn window_token(&self) -> Option<SyntaxToken> {
16114        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
16115    }
16116}
16117
16118#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16119pub struct WindowSpec {
16120    pub(crate) syntax: SyntaxNode,
16121}
16122impl WindowSpec {
16123    #[inline]
16124    pub fn exprs(&self) -> AstChildren<Expr> {
16125        support::children(&self.syntax)
16126    }
16127    #[inline]
16128    pub fn frame_clause(&self) -> Option<FrameClause> {
16129        support::child(&self.syntax)
16130    }
16131    #[inline]
16132    pub fn order_by_clause(&self) -> Option<OrderByClause> {
16133        support::child(&self.syntax)
16134    }
16135    #[inline]
16136    pub fn by_token(&self) -> Option<SyntaxToken> {
16137        support::token(&self.syntax, SyntaxKind::BY_KW)
16138    }
16139    #[inline]
16140    pub fn ident_token(&self) -> Option<SyntaxToken> {
16141        support::token(&self.syntax, SyntaxKind::IDENT)
16142    }
16143    #[inline]
16144    pub fn partition_token(&self) -> Option<SyntaxToken> {
16145        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
16146    }
16147}
16148
16149#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16150pub struct WithCheckExprClause {
16151    pub(crate) syntax: SyntaxNode,
16152}
16153impl WithCheckExprClause {
16154    #[inline]
16155    pub fn expr(&self) -> Option<Expr> {
16156        support::child(&self.syntax)
16157    }
16158    #[inline]
16159    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16160        support::token(&self.syntax, SyntaxKind::L_PAREN)
16161    }
16162    #[inline]
16163    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16164        support::token(&self.syntax, SyntaxKind::R_PAREN)
16165    }
16166    #[inline]
16167    pub fn check_token(&self) -> Option<SyntaxToken> {
16168        support::token(&self.syntax, SyntaxKind::CHECK_KW)
16169    }
16170    #[inline]
16171    pub fn with_token(&self) -> Option<SyntaxToken> {
16172        support::token(&self.syntax, SyntaxKind::WITH_KW)
16173    }
16174}
16175
16176#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16177pub struct WithClause {
16178    pub(crate) syntax: SyntaxNode,
16179}
16180impl WithClause {
16181    #[inline]
16182    pub fn with_tables(&self) -> AstChildren<WithTable> {
16183        support::children(&self.syntax)
16184    }
16185    #[inline]
16186    pub fn recursive_token(&self) -> Option<SyntaxToken> {
16187        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
16188    }
16189    #[inline]
16190    pub fn with_token(&self) -> Option<SyntaxToken> {
16191        support::token(&self.syntax, SyntaxKind::WITH_KW)
16192    }
16193}
16194
16195#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16196pub struct WithData {
16197    pub(crate) syntax: SyntaxNode,
16198}
16199impl WithData {
16200    #[inline]
16201    pub fn data_token(&self) -> Option<SyntaxToken> {
16202        support::token(&self.syntax, SyntaxKind::DATA_KW)
16203    }
16204    #[inline]
16205    pub fn with_token(&self) -> Option<SyntaxToken> {
16206        support::token(&self.syntax, SyntaxKind::WITH_KW)
16207    }
16208}
16209
16210#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16211pub struct WithNoData {
16212    pub(crate) syntax: SyntaxNode,
16213}
16214impl WithNoData {
16215    #[inline]
16216    pub fn data_token(&self) -> Option<SyntaxToken> {
16217        support::token(&self.syntax, SyntaxKind::DATA_KW)
16218    }
16219    #[inline]
16220    pub fn no_token(&self) -> Option<SyntaxToken> {
16221        support::token(&self.syntax, SyntaxKind::NO_KW)
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 WithOptions {
16231    pub(crate) syntax: SyntaxNode,
16232}
16233impl WithOptions {
16234    #[inline]
16235    pub fn options_token(&self) -> Option<SyntaxToken> {
16236        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
16237    }
16238    #[inline]
16239    pub fn with_token(&self) -> Option<SyntaxToken> {
16240        support::token(&self.syntax, SyntaxKind::WITH_KW)
16241    }
16242}
16243
16244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16245pub struct WithParams {
16246    pub(crate) syntax: SyntaxNode,
16247}
16248impl WithParams {
16249    #[inline]
16250    pub fn attribute_list(&self) -> Option<AttributeList> {
16251        support::child(&self.syntax)
16252    }
16253    #[inline]
16254    pub fn with_token(&self) -> Option<SyntaxToken> {
16255        support::token(&self.syntax, SyntaxKind::WITH_KW)
16256    }
16257}
16258
16259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16260pub struct WithTable {
16261    pub(crate) syntax: SyntaxNode,
16262}
16263impl WithTable {
16264    #[inline]
16265    pub fn column_list(&self) -> Option<ColumnList> {
16266        support::child(&self.syntax)
16267    }
16268    #[inline]
16269    pub fn materialized(&self) -> Option<Materialized> {
16270        support::child(&self.syntax)
16271    }
16272    #[inline]
16273    pub fn name(&self) -> Option<Name> {
16274        support::child(&self.syntax)
16275    }
16276    #[inline]
16277    pub fn not_materialized(&self) -> Option<NotMaterialized> {
16278        support::child(&self.syntax)
16279    }
16280    #[inline]
16281    pub fn query(&self) -> Option<WithQuery> {
16282        support::child(&self.syntax)
16283    }
16284    #[inline]
16285    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16286        support::token(&self.syntax, SyntaxKind::L_PAREN)
16287    }
16288    #[inline]
16289    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16290        support::token(&self.syntax, SyntaxKind::R_PAREN)
16291    }
16292    #[inline]
16293    pub fn as_token(&self) -> Option<SyntaxToken> {
16294        support::token(&self.syntax, SyntaxKind::AS_KW)
16295    }
16296}
16297
16298#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16299pub struct WithTimezone {
16300    pub(crate) syntax: SyntaxNode,
16301}
16302impl WithTimezone {
16303    #[inline]
16304    pub fn time_token(&self) -> Option<SyntaxToken> {
16305        support::token(&self.syntax, SyntaxKind::TIME_KW)
16306    }
16307    #[inline]
16308    pub fn with_token(&self) -> Option<SyntaxToken> {
16309        support::token(&self.syntax, SyntaxKind::WITH_KW)
16310    }
16311    #[inline]
16312    pub fn zone_token(&self) -> Option<SyntaxToken> {
16313        support::token(&self.syntax, SyntaxKind::ZONE_KW)
16314    }
16315}
16316
16317#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16318pub struct WithinClause {
16319    pub(crate) syntax: SyntaxNode,
16320}
16321impl WithinClause {
16322    #[inline]
16323    pub fn order_by_clause(&self) -> Option<OrderByClause> {
16324        support::child(&self.syntax)
16325    }
16326    #[inline]
16327    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16328        support::token(&self.syntax, SyntaxKind::L_PAREN)
16329    }
16330    #[inline]
16331    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16332        support::token(&self.syntax, SyntaxKind::R_PAREN)
16333    }
16334    #[inline]
16335    pub fn group_token(&self) -> Option<SyntaxToken> {
16336        support::token(&self.syntax, SyntaxKind::GROUP_KW)
16337    }
16338    #[inline]
16339    pub fn within_token(&self) -> Option<SyntaxToken> {
16340        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
16341    }
16342}
16343
16344#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16345pub struct WithoutOids {
16346    pub(crate) syntax: SyntaxNode,
16347}
16348impl WithoutOids {
16349    #[inline]
16350    pub fn oids_token(&self) -> Option<SyntaxToken> {
16351        support::token(&self.syntax, SyntaxKind::OIDS_KW)
16352    }
16353    #[inline]
16354    pub fn without_token(&self) -> Option<SyntaxToken> {
16355        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16356    }
16357}
16358
16359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16360pub struct WithoutTimezone {
16361    pub(crate) syntax: SyntaxNode,
16362}
16363impl WithoutTimezone {
16364    #[inline]
16365    pub fn time_token(&self) -> Option<SyntaxToken> {
16366        support::token(&self.syntax, SyntaxKind::TIME_KW)
16367    }
16368    #[inline]
16369    pub fn without_token(&self) -> Option<SyntaxToken> {
16370        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16371    }
16372    #[inline]
16373    pub fn zone_token(&self) -> Option<SyntaxToken> {
16374        support::token(&self.syntax, SyntaxKind::ZONE_KW)
16375    }
16376}
16377
16378#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16379pub struct XmlAttributeList {
16380    pub(crate) syntax: SyntaxNode,
16381}
16382impl XmlAttributeList {
16383    #[inline]
16384    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
16385        support::children(&self.syntax)
16386    }
16387}
16388
16389#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16390pub struct XmlColumnOption {
16391    pub(crate) syntax: SyntaxNode,
16392}
16393impl XmlColumnOption {
16394    #[inline]
16395    pub fn expr(&self) -> Option<Expr> {
16396        support::child(&self.syntax)
16397    }
16398    #[inline]
16399    pub fn default_token(&self) -> Option<SyntaxToken> {
16400        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16401    }
16402    #[inline]
16403    pub fn ident_token(&self) -> Option<SyntaxToken> {
16404        support::token(&self.syntax, SyntaxKind::IDENT)
16405    }
16406    #[inline]
16407    pub fn not_token(&self) -> Option<SyntaxToken> {
16408        support::token(&self.syntax, SyntaxKind::NOT_KW)
16409    }
16410    #[inline]
16411    pub fn null_token(&self) -> Option<SyntaxToken> {
16412        support::token(&self.syntax, SyntaxKind::NULL_KW)
16413    }
16414    #[inline]
16415    pub fn path_token(&self) -> Option<SyntaxToken> {
16416        support::token(&self.syntax, SyntaxKind::PATH_KW)
16417    }
16418}
16419
16420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16421pub struct XmlColumnOptionList {
16422    pub(crate) syntax: SyntaxNode,
16423}
16424impl XmlColumnOptionList {
16425    #[inline]
16426    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
16427        support::child(&self.syntax)
16428    }
16429    #[inline]
16430    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
16431        support::children(&self.syntax)
16432    }
16433}
16434
16435#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16436pub struct XmlElementFn {
16437    pub(crate) syntax: SyntaxNode,
16438}
16439impl XmlElementFn {
16440    #[inline]
16441    pub fn exprs(&self) -> AstChildren<Expr> {
16442        support::children(&self.syntax)
16443    }
16444    #[inline]
16445    pub fn name(&self) -> Option<Name> {
16446        support::child(&self.syntax)
16447    }
16448    #[inline]
16449    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
16450        support::child(&self.syntax)
16451    }
16452    #[inline]
16453    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16454        support::token(&self.syntax, SyntaxKind::L_PAREN)
16455    }
16456    #[inline]
16457    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16458        support::token(&self.syntax, SyntaxKind::R_PAREN)
16459    }
16460    #[inline]
16461    pub fn comma_token(&self) -> Option<SyntaxToken> {
16462        support::token(&self.syntax, SyntaxKind::COMMA)
16463    }
16464    #[inline]
16465    pub fn name_token(&self) -> Option<SyntaxToken> {
16466        support::token(&self.syntax, SyntaxKind::NAME_KW)
16467    }
16468    #[inline]
16469    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
16470        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
16471    }
16472    #[inline]
16473    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
16474        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
16475    }
16476}
16477
16478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16479pub struct XmlExistsFn {
16480    pub(crate) syntax: SyntaxNode,
16481}
16482impl XmlExistsFn {
16483    #[inline]
16484    pub fn expr(&self) -> Option<Expr> {
16485        support::child(&self.syntax)
16486    }
16487    #[inline]
16488    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16489        support::child(&self.syntax)
16490    }
16491    #[inline]
16492    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16493        support::token(&self.syntax, SyntaxKind::L_PAREN)
16494    }
16495    #[inline]
16496    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16497        support::token(&self.syntax, SyntaxKind::R_PAREN)
16498    }
16499    #[inline]
16500    pub fn passing_token(&self) -> Option<SyntaxToken> {
16501        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16502    }
16503    #[inline]
16504    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
16505        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
16506    }
16507}
16508
16509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16510pub struct XmlForestFn {
16511    pub(crate) syntax: SyntaxNode,
16512}
16513impl XmlForestFn {
16514    #[inline]
16515    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
16516        support::child(&self.syntax)
16517    }
16518    #[inline]
16519    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16520        support::token(&self.syntax, SyntaxKind::L_PAREN)
16521    }
16522    #[inline]
16523    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16524        support::token(&self.syntax, SyntaxKind::R_PAREN)
16525    }
16526    #[inline]
16527    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
16528        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
16529    }
16530}
16531
16532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16533pub struct XmlNamespace {
16534    pub(crate) syntax: SyntaxNode,
16535}
16536impl XmlNamespace {
16537    #[inline]
16538    pub fn expr(&self) -> Option<Expr> {
16539        support::child(&self.syntax)
16540    }
16541    #[inline]
16542    pub fn name(&self) -> Option<Name> {
16543        support::child(&self.syntax)
16544    }
16545    #[inline]
16546    pub fn as_token(&self) -> Option<SyntaxToken> {
16547        support::token(&self.syntax, SyntaxKind::AS_KW)
16548    }
16549    #[inline]
16550    pub fn default_token(&self) -> Option<SyntaxToken> {
16551        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16552    }
16553}
16554
16555#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16556pub struct XmlNamespaceList {
16557    pub(crate) syntax: SyntaxNode,
16558}
16559impl XmlNamespaceList {
16560    #[inline]
16561    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
16562        support::children(&self.syntax)
16563    }
16564    #[inline]
16565    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16566        support::token(&self.syntax, SyntaxKind::L_PAREN)
16567    }
16568    #[inline]
16569    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16570        support::token(&self.syntax, SyntaxKind::R_PAREN)
16571    }
16572}
16573
16574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16575pub struct XmlParseFn {
16576    pub(crate) syntax: SyntaxNode,
16577}
16578impl XmlParseFn {
16579    #[inline]
16580    pub fn expr(&self) -> Option<Expr> {
16581        support::child(&self.syntax)
16582    }
16583    #[inline]
16584    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16585        support::token(&self.syntax, SyntaxKind::L_PAREN)
16586    }
16587    #[inline]
16588    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16589        support::token(&self.syntax, SyntaxKind::R_PAREN)
16590    }
16591    #[inline]
16592    pub fn content_token(&self) -> Option<SyntaxToken> {
16593        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16594    }
16595    #[inline]
16596    pub fn document_token(&self) -> Option<SyntaxToken> {
16597        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16598    }
16599    #[inline]
16600    pub fn preserve_token(&self) -> Option<SyntaxToken> {
16601        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
16602    }
16603    #[inline]
16604    pub fn strip_token(&self) -> Option<SyntaxToken> {
16605        support::token(&self.syntax, SyntaxKind::STRIP_KW)
16606    }
16607    #[inline]
16608    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
16609        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
16610    }
16611    #[inline]
16612    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
16613        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
16614    }
16615}
16616
16617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16618pub struct XmlPassingMech {
16619    pub(crate) syntax: SyntaxNode,
16620}
16621impl XmlPassingMech {
16622    #[inline]
16623    pub fn by_token(&self) -> Option<SyntaxToken> {
16624        support::token(&self.syntax, SyntaxKind::BY_KW)
16625    }
16626    #[inline]
16627    pub fn ref_token(&self) -> Option<SyntaxToken> {
16628        support::token(&self.syntax, SyntaxKind::REF_KW)
16629    }
16630    #[inline]
16631    pub fn value_token(&self) -> Option<SyntaxToken> {
16632        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16633    }
16634}
16635
16636#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16637pub struct XmlPiFn {
16638    pub(crate) syntax: SyntaxNode,
16639}
16640impl XmlPiFn {
16641    #[inline]
16642    pub fn expr(&self) -> Option<Expr> {
16643        support::child(&self.syntax)
16644    }
16645    #[inline]
16646    pub fn name(&self) -> Option<Name> {
16647        support::child(&self.syntax)
16648    }
16649    #[inline]
16650    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16651        support::token(&self.syntax, SyntaxKind::L_PAREN)
16652    }
16653    #[inline]
16654    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16655        support::token(&self.syntax, SyntaxKind::R_PAREN)
16656    }
16657    #[inline]
16658    pub fn comma_token(&self) -> Option<SyntaxToken> {
16659        support::token(&self.syntax, SyntaxKind::COMMA)
16660    }
16661    #[inline]
16662    pub fn name_token(&self) -> Option<SyntaxToken> {
16663        support::token(&self.syntax, SyntaxKind::NAME_KW)
16664    }
16665    #[inline]
16666    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
16667        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
16668    }
16669}
16670
16671#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16672pub struct XmlRootFn {
16673    pub(crate) syntax: SyntaxNode,
16674}
16675impl XmlRootFn {
16676    #[inline]
16677    pub fn expr(&self) -> Option<Expr> {
16678        support::child(&self.syntax)
16679    }
16680    #[inline]
16681    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16682        support::token(&self.syntax, SyntaxKind::L_PAREN)
16683    }
16684    #[inline]
16685    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16686        support::token(&self.syntax, SyntaxKind::R_PAREN)
16687    }
16688    #[inline]
16689    pub fn comma_token(&self) -> Option<SyntaxToken> {
16690        support::token(&self.syntax, SyntaxKind::COMMA)
16691    }
16692    #[inline]
16693    pub fn no_token(&self) -> Option<SyntaxToken> {
16694        support::token(&self.syntax, SyntaxKind::NO_KW)
16695    }
16696    #[inline]
16697    pub fn standalone_token(&self) -> Option<SyntaxToken> {
16698        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
16699    }
16700    #[inline]
16701    pub fn value_token(&self) -> Option<SyntaxToken> {
16702        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16703    }
16704    #[inline]
16705    pub fn version_token(&self) -> Option<SyntaxToken> {
16706        support::token(&self.syntax, SyntaxKind::VERSION_KW)
16707    }
16708    #[inline]
16709    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
16710        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
16711    }
16712    #[inline]
16713    pub fn yes_token(&self) -> Option<SyntaxToken> {
16714        support::token(&self.syntax, SyntaxKind::YES_KW)
16715    }
16716}
16717
16718#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16719pub struct XmlRowPassingClause {
16720    pub(crate) syntax: SyntaxNode,
16721}
16722impl XmlRowPassingClause {
16723    #[inline]
16724    pub fn expr(&self) -> Option<Expr> {
16725        support::child(&self.syntax)
16726    }
16727    #[inline]
16728    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16729        support::child(&self.syntax)
16730    }
16731    #[inline]
16732    pub fn passing_token(&self) -> Option<SyntaxToken> {
16733        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16734    }
16735}
16736
16737#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16738pub struct XmlSerializeFn {
16739    pub(crate) syntax: SyntaxNode,
16740}
16741impl XmlSerializeFn {
16742    #[inline]
16743    pub fn expr(&self) -> Option<Expr> {
16744        support::child(&self.syntax)
16745    }
16746    #[inline]
16747    pub fn ty(&self) -> Option<Type> {
16748        support::child(&self.syntax)
16749    }
16750    #[inline]
16751    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16752        support::token(&self.syntax, SyntaxKind::L_PAREN)
16753    }
16754    #[inline]
16755    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16756        support::token(&self.syntax, SyntaxKind::R_PAREN)
16757    }
16758    #[inline]
16759    pub fn as_token(&self) -> Option<SyntaxToken> {
16760        support::token(&self.syntax, SyntaxKind::AS_KW)
16761    }
16762    #[inline]
16763    pub fn content_token(&self) -> Option<SyntaxToken> {
16764        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16765    }
16766    #[inline]
16767    pub fn document_token(&self) -> Option<SyntaxToken> {
16768        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16769    }
16770    #[inline]
16771    pub fn ident_token(&self) -> Option<SyntaxToken> {
16772        support::token(&self.syntax, SyntaxKind::IDENT)
16773    }
16774    #[inline]
16775    pub fn no_token(&self) -> Option<SyntaxToken> {
16776        support::token(&self.syntax, SyntaxKind::NO_KW)
16777    }
16778    #[inline]
16779    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
16780        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
16781    }
16782}
16783
16784#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16785pub struct XmlTable {
16786    pub(crate) syntax: SyntaxNode,
16787}
16788impl XmlTable {
16789    #[inline]
16790    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
16791        support::child(&self.syntax)
16792    }
16793    #[inline]
16794    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
16795        support::child(&self.syntax)
16796    }
16797    #[inline]
16798    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
16799        support::child(&self.syntax)
16800    }
16801    #[inline]
16802    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16803        support::token(&self.syntax, SyntaxKind::L_PAREN)
16804    }
16805    #[inline]
16806    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16807        support::token(&self.syntax, SyntaxKind::R_PAREN)
16808    }
16809    #[inline]
16810    pub fn comma_token(&self) -> Option<SyntaxToken> {
16811        support::token(&self.syntax, SyntaxKind::COMMA)
16812    }
16813    #[inline]
16814    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
16815        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
16816    }
16817    #[inline]
16818    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
16819        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
16820    }
16821}
16822
16823#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16824pub struct XmlTableColumn {
16825    pub(crate) syntax: SyntaxNode,
16826}
16827impl XmlTableColumn {
16828    #[inline]
16829    pub fn name(&self) -> Option<Name> {
16830        support::child(&self.syntax)
16831    }
16832    #[inline]
16833    pub fn ty(&self) -> Option<Type> {
16834        support::child(&self.syntax)
16835    }
16836    #[inline]
16837    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
16838        support::child(&self.syntax)
16839    }
16840    #[inline]
16841    pub fn for_token(&self) -> Option<SyntaxToken> {
16842        support::token(&self.syntax, SyntaxKind::FOR_KW)
16843    }
16844    #[inline]
16845    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
16846        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
16847    }
16848}
16849
16850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16851pub struct XmlTableColumnList {
16852    pub(crate) syntax: SyntaxNode,
16853}
16854impl XmlTableColumnList {
16855    #[inline]
16856    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
16857        support::children(&self.syntax)
16858    }
16859}
16860
16861#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16862pub enum AlterColumnOption {
16863    AddGenerated(AddGenerated),
16864    DropDefault(DropDefault),
16865    DropExpression(DropExpression),
16866    DropIdentity(DropIdentity),
16867    DropNotNull(DropNotNull),
16868    Inherit(Inherit),
16869    NoInherit(NoInherit),
16870    ResetOptions(ResetOptions),
16871    Restart(Restart),
16872    SetCompression(SetCompression),
16873    SetDefault(SetDefault),
16874    SetExpression(SetExpression),
16875    SetGenerated(SetGenerated),
16876    SetGeneratedOptions(SetGeneratedOptions),
16877    SetNotNull(SetNotNull),
16878    SetOptions(SetOptions),
16879    SetOptionsList(SetOptionsList),
16880    SetSequenceOption(SetSequenceOption),
16881    SetStatistics(SetStatistics),
16882    SetStorage(SetStorage),
16883    SetType(SetType),
16884}
16885
16886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16887pub enum AlterDomainAction {
16888    AddConstraint(AddConstraint),
16889    DropConstraint(DropConstraint),
16890    DropDefault(DropDefault),
16891    DropNotNull(DropNotNull),
16892    OwnerTo(OwnerTo),
16893    RenameConstraint(RenameConstraint),
16894    RenameTo(RenameTo),
16895    SetDefault(SetDefault),
16896    SetNotNull(SetNotNull),
16897    SetSchema(SetSchema),
16898    ValidateConstraint(ValidateConstraint),
16899}
16900
16901#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16902pub enum AlterIndexAction {
16903    AlterSetStatistics(AlterSetStatistics),
16904    AttachPartition(AttachPartition),
16905    DependsOnExtension(DependsOnExtension),
16906    NoDependsOnExtension(NoDependsOnExtension),
16907    RenameTo(RenameTo),
16908    ResetOptions(ResetOptions),
16909    SetOptions(SetOptions),
16910    SetTablespace(SetTablespace),
16911}
16912
16913#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16914pub enum AlterMaterializedViewAction {
16915    DependsOnExtension(DependsOnExtension),
16916    NoDependsOnExtension(NoDependsOnExtension),
16917    RenameColumn(RenameColumn),
16918    RenameTo(RenameTo),
16919    SetSchema(SetSchema),
16920    AlterTableAction(AlterTableAction),
16921}
16922
16923#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16924pub enum AlterTableAction {
16925    AddColumn(AddColumn),
16926    AddConstraint(AddConstraint),
16927    AlterColumn(AlterColumn),
16928    AlterConstraint(AlterConstraint),
16929    AttachPartition(AttachPartition),
16930    ClusterOn(ClusterOn),
16931    DetachPartition(DetachPartition),
16932    DisableRls(DisableRls),
16933    DisableRule(DisableRule),
16934    DisableTrigger(DisableTrigger),
16935    DropColumn(DropColumn),
16936    DropConstraint(DropConstraint),
16937    EnableAlwaysRule(EnableAlwaysRule),
16938    EnableAlwaysTrigger(EnableAlwaysTrigger),
16939    EnableReplicaRule(EnableReplicaRule),
16940    EnableReplicaTrigger(EnableReplicaTrigger),
16941    EnableRls(EnableRls),
16942    EnableRule(EnableRule),
16943    EnableTrigger(EnableTrigger),
16944    ForceRls(ForceRls),
16945    InheritTable(InheritTable),
16946    MergePartitions(MergePartitions),
16947    NoForceRls(NoForceRls),
16948    NoInheritTable(NoInheritTable),
16949    NotOf(NotOf),
16950    OfType(OfType),
16951    OptionItemList(OptionItemList),
16952    OwnerTo(OwnerTo),
16953    RenameColumn(RenameColumn),
16954    RenameConstraint(RenameConstraint),
16955    RenameTo(RenameTo),
16956    ReplicaIdentity(ReplicaIdentity),
16957    ResetOptions(ResetOptions),
16958    SetAccessMethod(SetAccessMethod),
16959    SetLogged(SetLogged),
16960    SetOptions(SetOptions),
16961    SetSchema(SetSchema),
16962    SetTablespace(SetTablespace),
16963    SetUnlogged(SetUnlogged),
16964    SetWithoutCluster(SetWithoutCluster),
16965    SetWithoutOids(SetWithoutOids),
16966    SplitPartition(SplitPartition),
16967    ValidateConstraint(ValidateConstraint),
16968}
16969
16970#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16971pub enum ColumnConstraint {
16972    CheckConstraint(CheckConstraint),
16973    DefaultConstraint(DefaultConstraint),
16974    ExcludeConstraint(ExcludeConstraint),
16975    NotNullConstraint(NotNullConstraint),
16976    PrimaryKeyConstraint(PrimaryKeyConstraint),
16977    ReferencesConstraint(ReferencesConstraint),
16978    UniqueConstraint(UniqueConstraint),
16979}
16980
16981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16982pub enum ConfigValue {
16983    Literal(Literal),
16984    NameRef(NameRef),
16985}
16986
16987#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16988pub enum ConflictAction {
16989    ConflictDoNothing(ConflictDoNothing),
16990    ConflictDoSelect(ConflictDoSelect),
16991    ConflictDoUpdateSet(ConflictDoUpdateSet),
16992}
16993
16994#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16995pub enum ConflictTarget {
16996    ConflictOnConstraint(ConflictOnConstraint),
16997    ConflictOnIndex(ConflictOnIndex),
16998}
16999
17000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17001pub enum Constraint {
17002    CheckConstraint(CheckConstraint),
17003    DefaultConstraint(DefaultConstraint),
17004    ForeignKeyConstraint(ForeignKeyConstraint),
17005    GeneratedConstraint(GeneratedConstraint),
17006    NotNullConstraint(NotNullConstraint),
17007    NullConstraint(NullConstraint),
17008    PrimaryKeyConstraint(PrimaryKeyConstraint),
17009    ReferencesConstraint(ReferencesConstraint),
17010    UniqueConstraint(UniqueConstraint),
17011}
17012
17013#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17014pub enum ExplainStmt {
17015    CompoundSelect(CompoundSelect),
17016    CreateMaterializedView(CreateMaterializedView),
17017    CreateTableAs(CreateTableAs),
17018    Declare(Declare),
17019    Delete(Delete),
17020    Execute(Execute),
17021    Insert(Insert),
17022    Merge(Merge),
17023    ParenSelect(ParenSelect),
17024    Select(Select),
17025    SelectInto(SelectInto),
17026    Table(Table),
17027    Update(Update),
17028    Values(Values),
17029}
17030
17031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17032pub enum Expr {
17033    ArrayExpr(ArrayExpr),
17034    BetweenExpr(BetweenExpr),
17035    BinExpr(BinExpr),
17036    CallExpr(CallExpr),
17037    CaseExpr(CaseExpr),
17038    CastExpr(CastExpr),
17039    FieldExpr(FieldExpr),
17040    IndexExpr(IndexExpr),
17041    Literal(Literal),
17042    NameRef(NameRef),
17043    ParenExpr(ParenExpr),
17044    PostfixExpr(PostfixExpr),
17045    PrefixExpr(PrefixExpr),
17046    SliceExpr(SliceExpr),
17047    TupleExpr(TupleExpr),
17048}
17049
17050#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17051pub enum FuncOption {
17052    AsFuncOption(AsFuncOption),
17053    BeginFuncOptionList(BeginFuncOptionList),
17054    CostFuncOption(CostFuncOption),
17055    LanguageFuncOption(LanguageFuncOption),
17056    LeakproofFuncOption(LeakproofFuncOption),
17057    ParallelFuncOption(ParallelFuncOption),
17058    ResetFuncOption(ResetFuncOption),
17059    ReturnFuncOption(ReturnFuncOption),
17060    RowsFuncOption(RowsFuncOption),
17061    SecurityFuncOption(SecurityFuncOption),
17062    SetFuncOption(SetFuncOption),
17063    StrictFuncOption(StrictFuncOption),
17064    SupportFuncOption(SupportFuncOption),
17065    TransformFuncOption(TransformFuncOption),
17066    VolatilityFuncOption(VolatilityFuncOption),
17067    WindowFuncOption(WindowFuncOption),
17068}
17069
17070#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17071pub enum GroupBy {
17072    GroupingCube(GroupingCube),
17073    GroupingExpr(GroupingExpr),
17074    GroupingRollup(GroupingRollup),
17075    GroupingSets(GroupingSets),
17076}
17077
17078#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17079pub enum JoinType {
17080    JoinCross(JoinCross),
17081    JoinFull(JoinFull),
17082    JoinInner(JoinInner),
17083    JoinLeft(JoinLeft),
17084    JoinRight(JoinRight),
17085}
17086
17087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17088pub enum JsonBehavior {
17089    JsonBehaviorDefault(JsonBehaviorDefault),
17090    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
17091    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
17092    JsonBehaviorError(JsonBehaviorError),
17093    JsonBehaviorFalse(JsonBehaviorFalse),
17094    JsonBehaviorNull(JsonBehaviorNull),
17095    JsonBehaviorTrue(JsonBehaviorTrue),
17096    JsonBehaviorUnknown(JsonBehaviorUnknown),
17097}
17098
17099#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17100pub enum MatchType {
17101    MatchFull(MatchFull),
17102    MatchPartial(MatchPartial),
17103    MatchSimple(MatchSimple),
17104}
17105
17106#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17107pub enum MergeAction {
17108    MergeDelete(MergeDelete),
17109    MergeDoNothing(MergeDoNothing),
17110    MergeInsert(MergeInsert),
17111    MergeUpdate(MergeUpdate),
17112}
17113
17114#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17115pub enum MergeWhenClause {
17116    MergeWhenMatched(MergeWhenMatched),
17117    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
17118    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
17119}
17120
17121#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17122pub enum OnCommitAction {
17123    DeleteRows(DeleteRows),
17124    Drop(Drop),
17125    PreserveRows(PreserveRows),
17126}
17127
17128#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17129pub enum ParamMode {
17130    ParamIn(ParamIn),
17131    ParamInOut(ParamInOut),
17132    ParamOut(ParamOut),
17133    ParamVariadic(ParamVariadic),
17134}
17135
17136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17137pub enum PartitionType {
17138    PartitionDefault(PartitionDefault),
17139    PartitionForValuesFrom(PartitionForValuesFrom),
17140    PartitionForValuesIn(PartitionForValuesIn),
17141    PartitionForValuesWith(PartitionForValuesWith),
17142}
17143
17144#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17145pub enum PreparableStmt {
17146    CompoundSelect(CompoundSelect),
17147    Delete(Delete),
17148    Insert(Insert),
17149    Merge(Merge),
17150    Select(Select),
17151    SelectInto(SelectInto),
17152    Table(Table),
17153    Update(Update),
17154    Values(Values),
17155}
17156
17157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17158pub enum RefAction {
17159    Cascade(Cascade),
17160    NoAction(NoAction),
17161    Restrict(Restrict),
17162    SetDefaultColumns(SetDefaultColumns),
17163    SetNullColumns(SetNullColumns),
17164}
17165
17166#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17167pub enum SchemaElement {
17168    CreateIndex(CreateIndex),
17169    CreateSequence(CreateSequence),
17170    CreateTable(CreateTable),
17171    CreateTrigger(CreateTrigger),
17172    CreateView(CreateView),
17173    Grant(Grant),
17174}
17175
17176#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17177pub enum SelectVariant {
17178    CompoundSelect(CompoundSelect),
17179    ParenSelect(ParenSelect),
17180    Select(Select),
17181    SelectInto(SelectInto),
17182    Table(Table),
17183    Values(Values),
17184}
17185
17186#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17187pub enum SetColumn {
17188    SetMultipleColumns(SetMultipleColumns),
17189    SetSingleColumn(SetSingleColumn),
17190}
17191
17192#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17193pub enum Stmt {
17194    AlterAggregate(AlterAggregate),
17195    AlterCollation(AlterCollation),
17196    AlterConversion(AlterConversion),
17197    AlterDatabase(AlterDatabase),
17198    AlterDefaultPrivileges(AlterDefaultPrivileges),
17199    AlterDomain(AlterDomain),
17200    AlterEventTrigger(AlterEventTrigger),
17201    AlterExtension(AlterExtension),
17202    AlterForeignDataWrapper(AlterForeignDataWrapper),
17203    AlterForeignTable(AlterForeignTable),
17204    AlterFunction(AlterFunction),
17205    AlterGroup(AlterGroup),
17206    AlterIndex(AlterIndex),
17207    AlterLanguage(AlterLanguage),
17208    AlterLargeObject(AlterLargeObject),
17209    AlterMaterializedView(AlterMaterializedView),
17210    AlterOperator(AlterOperator),
17211    AlterOperatorClass(AlterOperatorClass),
17212    AlterOperatorFamily(AlterOperatorFamily),
17213    AlterPolicy(AlterPolicy),
17214    AlterProcedure(AlterProcedure),
17215    AlterPublication(AlterPublication),
17216    AlterRole(AlterRole),
17217    AlterRoutine(AlterRoutine),
17218    AlterRule(AlterRule),
17219    AlterSchema(AlterSchema),
17220    AlterSequence(AlterSequence),
17221    AlterServer(AlterServer),
17222    AlterStatistics(AlterStatistics),
17223    AlterSubscription(AlterSubscription),
17224    AlterSystem(AlterSystem),
17225    AlterTable(AlterTable),
17226    AlterTablespace(AlterTablespace),
17227    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
17228    AlterTextSearchDictionary(AlterTextSearchDictionary),
17229    AlterTextSearchParser(AlterTextSearchParser),
17230    AlterTextSearchTemplate(AlterTextSearchTemplate),
17231    AlterTrigger(AlterTrigger),
17232    AlterType(AlterType),
17233    AlterUser(AlterUser),
17234    AlterUserMapping(AlterUserMapping),
17235    AlterView(AlterView),
17236    Analyze(Analyze),
17237    Begin(Begin),
17238    Call(Call),
17239    Checkpoint(Checkpoint),
17240    Close(Close),
17241    Cluster(Cluster),
17242    CommentOn(CommentOn),
17243    Commit(Commit),
17244    Copy(Copy),
17245    CreateAccessMethod(CreateAccessMethod),
17246    CreateAggregate(CreateAggregate),
17247    CreateCast(CreateCast),
17248    CreateCollation(CreateCollation),
17249    CreateConversion(CreateConversion),
17250    CreateDatabase(CreateDatabase),
17251    CreateDomain(CreateDomain),
17252    CreateEventTrigger(CreateEventTrigger),
17253    CreateExtension(CreateExtension),
17254    CreateForeignDataWrapper(CreateForeignDataWrapper),
17255    CreateForeignTable(CreateForeignTable),
17256    CreateFunction(CreateFunction),
17257    CreateGroup(CreateGroup),
17258    CreateIndex(CreateIndex),
17259    CreateLanguage(CreateLanguage),
17260    CreateMaterializedView(CreateMaterializedView),
17261    CreateOperator(CreateOperator),
17262    CreateOperatorClass(CreateOperatorClass),
17263    CreateOperatorFamily(CreateOperatorFamily),
17264    CreatePolicy(CreatePolicy),
17265    CreateProcedure(CreateProcedure),
17266    CreatePublication(CreatePublication),
17267    CreateRole(CreateRole),
17268    CreateRule(CreateRule),
17269    CreateSchema(CreateSchema),
17270    CreateSequence(CreateSequence),
17271    CreateServer(CreateServer),
17272    CreateStatistics(CreateStatistics),
17273    CreateSubscription(CreateSubscription),
17274    CreateTable(CreateTable),
17275    CreateTableAs(CreateTableAs),
17276    CreateTablespace(CreateTablespace),
17277    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
17278    CreateTextSearchDictionary(CreateTextSearchDictionary),
17279    CreateTextSearchParser(CreateTextSearchParser),
17280    CreateTextSearchTemplate(CreateTextSearchTemplate),
17281    CreateTransform(CreateTransform),
17282    CreateTrigger(CreateTrigger),
17283    CreateType(CreateType),
17284    CreateUser(CreateUser),
17285    CreateUserMapping(CreateUserMapping),
17286    CreateView(CreateView),
17287    Deallocate(Deallocate),
17288    Declare(Declare),
17289    Delete(Delete),
17290    Discard(Discard),
17291    Do(Do),
17292    DropAccessMethod(DropAccessMethod),
17293    DropAggregate(DropAggregate),
17294    DropCast(DropCast),
17295    DropCollation(DropCollation),
17296    DropConversion(DropConversion),
17297    DropDatabase(DropDatabase),
17298    DropDomain(DropDomain),
17299    DropEventTrigger(DropEventTrigger),
17300    DropExtension(DropExtension),
17301    DropForeignDataWrapper(DropForeignDataWrapper),
17302    DropForeignTable(DropForeignTable),
17303    DropFunction(DropFunction),
17304    DropGroup(DropGroup),
17305    DropIndex(DropIndex),
17306    DropLanguage(DropLanguage),
17307    DropMaterializedView(DropMaterializedView),
17308    DropOperator(DropOperator),
17309    DropOperatorClass(DropOperatorClass),
17310    DropOperatorFamily(DropOperatorFamily),
17311    DropOwned(DropOwned),
17312    DropPolicy(DropPolicy),
17313    DropProcedure(DropProcedure),
17314    DropPublication(DropPublication),
17315    DropRole(DropRole),
17316    DropRoutine(DropRoutine),
17317    DropRule(DropRule),
17318    DropSchema(DropSchema),
17319    DropSequence(DropSequence),
17320    DropServer(DropServer),
17321    DropStatistics(DropStatistics),
17322    DropSubscription(DropSubscription),
17323    DropTable(DropTable),
17324    DropTablespace(DropTablespace),
17325    DropTextSearchConfig(DropTextSearchConfig),
17326    DropTextSearchDict(DropTextSearchDict),
17327    DropTextSearchParser(DropTextSearchParser),
17328    DropTextSearchTemplate(DropTextSearchTemplate),
17329    DropTransform(DropTransform),
17330    DropTrigger(DropTrigger),
17331    DropType(DropType),
17332    DropUser(DropUser),
17333    DropUserMapping(DropUserMapping),
17334    DropView(DropView),
17335    Execute(Execute),
17336    Explain(Explain),
17337    Fetch(Fetch),
17338    Grant(Grant),
17339    ImportForeignSchema(ImportForeignSchema),
17340    Insert(Insert),
17341    Listen(Listen),
17342    Load(Load),
17343    Lock(Lock),
17344    Merge(Merge),
17345    Move(Move),
17346    Notify(Notify),
17347    ParenSelect(ParenSelect),
17348    Prepare(Prepare),
17349    PrepareTransaction(PrepareTransaction),
17350    Reassign(Reassign),
17351    Refresh(Refresh),
17352    Reindex(Reindex),
17353    ReleaseSavepoint(ReleaseSavepoint),
17354    Reset(Reset),
17355    ResetSessionAuth(ResetSessionAuth),
17356    Revoke(Revoke),
17357    Rollback(Rollback),
17358    Savepoint(Savepoint),
17359    SecurityLabel(SecurityLabel),
17360    Select(Select),
17361    SelectInto(SelectInto),
17362    Set(Set),
17363    SetConstraints(SetConstraints),
17364    SetRole(SetRole),
17365    SetSessionAuth(SetSessionAuth),
17366    SetTransaction(SetTransaction),
17367    Show(Show),
17368    Table(Table),
17369    Truncate(Truncate),
17370    Unlisten(Unlisten),
17371    Update(Update),
17372    Vacuum(Vacuum),
17373    Values(Values),
17374}
17375
17376#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17377pub enum TableArg {
17378    Column(Column),
17379    LikeClause(LikeClause),
17380    TableConstraint(TableConstraint),
17381}
17382
17383#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17384pub enum TableConstraint {
17385    CheckConstraint(CheckConstraint),
17386    ExcludeConstraint(ExcludeConstraint),
17387    ForeignKeyConstraint(ForeignKeyConstraint),
17388    PrimaryKeyConstraint(PrimaryKeyConstraint),
17389    UniqueConstraint(UniqueConstraint),
17390}
17391
17392#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17393pub enum Timezone {
17394    WithTimezone(WithTimezone),
17395    WithoutTimezone(WithoutTimezone),
17396}
17397
17398#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17399pub enum TransactionMode {
17400    Deferrable(Deferrable),
17401    NotDeferrable(NotDeferrable),
17402    ReadCommitted(ReadCommitted),
17403    ReadOnly(ReadOnly),
17404    ReadUncommitted(ReadUncommitted),
17405    ReadWrite(ReadWrite),
17406    RepeatableRead(RepeatableRead),
17407    Serializable(Serializable),
17408}
17409
17410#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17411pub enum Type {
17412    ArrayType(ArrayType),
17413    BitType(BitType),
17414    CharType(CharType),
17415    DoubleType(DoubleType),
17416    ExprType(ExprType),
17417    IntervalType(IntervalType),
17418    PathType(PathType),
17419    PercentType(PercentType),
17420    TimeType(TimeType),
17421}
17422
17423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17424pub enum WithQuery {
17425    CompoundSelect(CompoundSelect),
17426    Delete(Delete),
17427    Insert(Insert),
17428    Merge(Merge),
17429    ParenSelect(ParenSelect),
17430    Select(Select),
17431    Table(Table),
17432    Update(Update),
17433    Values(Values),
17434}
17435impl AstNode for AddColumn {
17436    #[inline]
17437    fn can_cast(kind: SyntaxKind) -> bool {
17438        kind == SyntaxKind::ADD_COLUMN
17439    }
17440    #[inline]
17441    fn cast(syntax: SyntaxNode) -> Option<Self> {
17442        if Self::can_cast(syntax.kind()) {
17443            Some(Self { syntax })
17444        } else {
17445            None
17446        }
17447    }
17448    #[inline]
17449    fn syntax(&self) -> &SyntaxNode {
17450        &self.syntax
17451    }
17452}
17453impl AstNode for AddConstraint {
17454    #[inline]
17455    fn can_cast(kind: SyntaxKind) -> bool {
17456        kind == SyntaxKind::ADD_CONSTRAINT
17457    }
17458    #[inline]
17459    fn cast(syntax: SyntaxNode) -> Option<Self> {
17460        if Self::can_cast(syntax.kind()) {
17461            Some(Self { syntax })
17462        } else {
17463            None
17464        }
17465    }
17466    #[inline]
17467    fn syntax(&self) -> &SyntaxNode {
17468        &self.syntax
17469    }
17470}
17471impl AstNode for AddGenerated {
17472    #[inline]
17473    fn can_cast(kind: SyntaxKind) -> bool {
17474        kind == SyntaxKind::ADD_GENERATED
17475    }
17476    #[inline]
17477    fn cast(syntax: SyntaxNode) -> Option<Self> {
17478        if Self::can_cast(syntax.kind()) {
17479            Some(Self { syntax })
17480        } else {
17481            None
17482        }
17483    }
17484    #[inline]
17485    fn syntax(&self) -> &SyntaxNode {
17486        &self.syntax
17487    }
17488}
17489impl AstNode for AddOpClassOptions {
17490    #[inline]
17491    fn can_cast(kind: SyntaxKind) -> bool {
17492        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
17493    }
17494    #[inline]
17495    fn cast(syntax: SyntaxNode) -> Option<Self> {
17496        if Self::can_cast(syntax.kind()) {
17497            Some(Self { syntax })
17498        } else {
17499            None
17500        }
17501    }
17502    #[inline]
17503    fn syntax(&self) -> &SyntaxNode {
17504        &self.syntax
17505    }
17506}
17507impl AstNode for Aggregate {
17508    #[inline]
17509    fn can_cast(kind: SyntaxKind) -> bool {
17510        kind == SyntaxKind::AGGREGATE
17511    }
17512    #[inline]
17513    fn cast(syntax: SyntaxNode) -> Option<Self> {
17514        if Self::can_cast(syntax.kind()) {
17515            Some(Self { syntax })
17516        } else {
17517            None
17518        }
17519    }
17520    #[inline]
17521    fn syntax(&self) -> &SyntaxNode {
17522        &self.syntax
17523    }
17524}
17525impl AstNode for Alias {
17526    #[inline]
17527    fn can_cast(kind: SyntaxKind) -> bool {
17528        kind == SyntaxKind::ALIAS
17529    }
17530    #[inline]
17531    fn cast(syntax: SyntaxNode) -> Option<Self> {
17532        if Self::can_cast(syntax.kind()) {
17533            Some(Self { syntax })
17534        } else {
17535            None
17536        }
17537    }
17538    #[inline]
17539    fn syntax(&self) -> &SyntaxNode {
17540        &self.syntax
17541    }
17542}
17543impl AstNode for AllFn {
17544    #[inline]
17545    fn can_cast(kind: SyntaxKind) -> bool {
17546        kind == SyntaxKind::ALL_FN
17547    }
17548    #[inline]
17549    fn cast(syntax: SyntaxNode) -> Option<Self> {
17550        if Self::can_cast(syntax.kind()) {
17551            Some(Self { syntax })
17552        } else {
17553            None
17554        }
17555    }
17556    #[inline]
17557    fn syntax(&self) -> &SyntaxNode {
17558        &self.syntax
17559    }
17560}
17561impl AstNode for AlterAggregate {
17562    #[inline]
17563    fn can_cast(kind: SyntaxKind) -> bool {
17564        kind == SyntaxKind::ALTER_AGGREGATE
17565    }
17566    #[inline]
17567    fn cast(syntax: SyntaxNode) -> Option<Self> {
17568        if Self::can_cast(syntax.kind()) {
17569            Some(Self { syntax })
17570        } else {
17571            None
17572        }
17573    }
17574    #[inline]
17575    fn syntax(&self) -> &SyntaxNode {
17576        &self.syntax
17577    }
17578}
17579impl AstNode for AlterCollation {
17580    #[inline]
17581    fn can_cast(kind: SyntaxKind) -> bool {
17582        kind == SyntaxKind::ALTER_COLLATION
17583    }
17584    #[inline]
17585    fn cast(syntax: SyntaxNode) -> Option<Self> {
17586        if Self::can_cast(syntax.kind()) {
17587            Some(Self { syntax })
17588        } else {
17589            None
17590        }
17591    }
17592    #[inline]
17593    fn syntax(&self) -> &SyntaxNode {
17594        &self.syntax
17595    }
17596}
17597impl AstNode for AlterColumn {
17598    #[inline]
17599    fn can_cast(kind: SyntaxKind) -> bool {
17600        kind == SyntaxKind::ALTER_COLUMN
17601    }
17602    #[inline]
17603    fn cast(syntax: SyntaxNode) -> Option<Self> {
17604        if Self::can_cast(syntax.kind()) {
17605            Some(Self { syntax })
17606        } else {
17607            None
17608        }
17609    }
17610    #[inline]
17611    fn syntax(&self) -> &SyntaxNode {
17612        &self.syntax
17613    }
17614}
17615impl AstNode for AlterConstraint {
17616    #[inline]
17617    fn can_cast(kind: SyntaxKind) -> bool {
17618        kind == SyntaxKind::ALTER_CONSTRAINT
17619    }
17620    #[inline]
17621    fn cast(syntax: SyntaxNode) -> Option<Self> {
17622        if Self::can_cast(syntax.kind()) {
17623            Some(Self { syntax })
17624        } else {
17625            None
17626        }
17627    }
17628    #[inline]
17629    fn syntax(&self) -> &SyntaxNode {
17630        &self.syntax
17631    }
17632}
17633impl AstNode for AlterConversion {
17634    #[inline]
17635    fn can_cast(kind: SyntaxKind) -> bool {
17636        kind == SyntaxKind::ALTER_CONVERSION
17637    }
17638    #[inline]
17639    fn cast(syntax: SyntaxNode) -> Option<Self> {
17640        if Self::can_cast(syntax.kind()) {
17641            Some(Self { syntax })
17642        } else {
17643            None
17644        }
17645    }
17646    #[inline]
17647    fn syntax(&self) -> &SyntaxNode {
17648        &self.syntax
17649    }
17650}
17651impl AstNode for AlterDatabase {
17652    #[inline]
17653    fn can_cast(kind: SyntaxKind) -> bool {
17654        kind == SyntaxKind::ALTER_DATABASE
17655    }
17656    #[inline]
17657    fn cast(syntax: SyntaxNode) -> Option<Self> {
17658        if Self::can_cast(syntax.kind()) {
17659            Some(Self { syntax })
17660        } else {
17661            None
17662        }
17663    }
17664    #[inline]
17665    fn syntax(&self) -> &SyntaxNode {
17666        &self.syntax
17667    }
17668}
17669impl AstNode for AlterDefaultPrivileges {
17670    #[inline]
17671    fn can_cast(kind: SyntaxKind) -> bool {
17672        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
17673    }
17674    #[inline]
17675    fn cast(syntax: SyntaxNode) -> Option<Self> {
17676        if Self::can_cast(syntax.kind()) {
17677            Some(Self { syntax })
17678        } else {
17679            None
17680        }
17681    }
17682    #[inline]
17683    fn syntax(&self) -> &SyntaxNode {
17684        &self.syntax
17685    }
17686}
17687impl AstNode for AlterDomain {
17688    #[inline]
17689    fn can_cast(kind: SyntaxKind) -> bool {
17690        kind == SyntaxKind::ALTER_DOMAIN
17691    }
17692    #[inline]
17693    fn cast(syntax: SyntaxNode) -> Option<Self> {
17694        if Self::can_cast(syntax.kind()) {
17695            Some(Self { syntax })
17696        } else {
17697            None
17698        }
17699    }
17700    #[inline]
17701    fn syntax(&self) -> &SyntaxNode {
17702        &self.syntax
17703    }
17704}
17705impl AstNode for AlterEventTrigger {
17706    #[inline]
17707    fn can_cast(kind: SyntaxKind) -> bool {
17708        kind == SyntaxKind::ALTER_EVENT_TRIGGER
17709    }
17710    #[inline]
17711    fn cast(syntax: SyntaxNode) -> Option<Self> {
17712        if Self::can_cast(syntax.kind()) {
17713            Some(Self { syntax })
17714        } else {
17715            None
17716        }
17717    }
17718    #[inline]
17719    fn syntax(&self) -> &SyntaxNode {
17720        &self.syntax
17721    }
17722}
17723impl AstNode for AlterExtension {
17724    #[inline]
17725    fn can_cast(kind: SyntaxKind) -> bool {
17726        kind == SyntaxKind::ALTER_EXTENSION
17727    }
17728    #[inline]
17729    fn cast(syntax: SyntaxNode) -> Option<Self> {
17730        if Self::can_cast(syntax.kind()) {
17731            Some(Self { syntax })
17732        } else {
17733            None
17734        }
17735    }
17736    #[inline]
17737    fn syntax(&self) -> &SyntaxNode {
17738        &self.syntax
17739    }
17740}
17741impl AstNode for AlterForeignDataWrapper {
17742    #[inline]
17743    fn can_cast(kind: SyntaxKind) -> bool {
17744        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
17745    }
17746    #[inline]
17747    fn cast(syntax: SyntaxNode) -> Option<Self> {
17748        if Self::can_cast(syntax.kind()) {
17749            Some(Self { syntax })
17750        } else {
17751            None
17752        }
17753    }
17754    #[inline]
17755    fn syntax(&self) -> &SyntaxNode {
17756        &self.syntax
17757    }
17758}
17759impl AstNode for AlterForeignTable {
17760    #[inline]
17761    fn can_cast(kind: SyntaxKind) -> bool {
17762        kind == SyntaxKind::ALTER_FOREIGN_TABLE
17763    }
17764    #[inline]
17765    fn cast(syntax: SyntaxNode) -> Option<Self> {
17766        if Self::can_cast(syntax.kind()) {
17767            Some(Self { syntax })
17768        } else {
17769            None
17770        }
17771    }
17772    #[inline]
17773    fn syntax(&self) -> &SyntaxNode {
17774        &self.syntax
17775    }
17776}
17777impl AstNode for AlterFunction {
17778    #[inline]
17779    fn can_cast(kind: SyntaxKind) -> bool {
17780        kind == SyntaxKind::ALTER_FUNCTION
17781    }
17782    #[inline]
17783    fn cast(syntax: SyntaxNode) -> Option<Self> {
17784        if Self::can_cast(syntax.kind()) {
17785            Some(Self { syntax })
17786        } else {
17787            None
17788        }
17789    }
17790    #[inline]
17791    fn syntax(&self) -> &SyntaxNode {
17792        &self.syntax
17793    }
17794}
17795impl AstNode for AlterGroup {
17796    #[inline]
17797    fn can_cast(kind: SyntaxKind) -> bool {
17798        kind == SyntaxKind::ALTER_GROUP
17799    }
17800    #[inline]
17801    fn cast(syntax: SyntaxNode) -> Option<Self> {
17802        if Self::can_cast(syntax.kind()) {
17803            Some(Self { syntax })
17804        } else {
17805            None
17806        }
17807    }
17808    #[inline]
17809    fn syntax(&self) -> &SyntaxNode {
17810        &self.syntax
17811    }
17812}
17813impl AstNode for AlterIndex {
17814    #[inline]
17815    fn can_cast(kind: SyntaxKind) -> bool {
17816        kind == SyntaxKind::ALTER_INDEX
17817    }
17818    #[inline]
17819    fn cast(syntax: SyntaxNode) -> Option<Self> {
17820        if Self::can_cast(syntax.kind()) {
17821            Some(Self { syntax })
17822        } else {
17823            None
17824        }
17825    }
17826    #[inline]
17827    fn syntax(&self) -> &SyntaxNode {
17828        &self.syntax
17829    }
17830}
17831impl AstNode for AlterLanguage {
17832    #[inline]
17833    fn can_cast(kind: SyntaxKind) -> bool {
17834        kind == SyntaxKind::ALTER_LANGUAGE
17835    }
17836    #[inline]
17837    fn cast(syntax: SyntaxNode) -> Option<Self> {
17838        if Self::can_cast(syntax.kind()) {
17839            Some(Self { syntax })
17840        } else {
17841            None
17842        }
17843    }
17844    #[inline]
17845    fn syntax(&self) -> &SyntaxNode {
17846        &self.syntax
17847    }
17848}
17849impl AstNode for AlterLargeObject {
17850    #[inline]
17851    fn can_cast(kind: SyntaxKind) -> bool {
17852        kind == SyntaxKind::ALTER_LARGE_OBJECT
17853    }
17854    #[inline]
17855    fn cast(syntax: SyntaxNode) -> Option<Self> {
17856        if Self::can_cast(syntax.kind()) {
17857            Some(Self { syntax })
17858        } else {
17859            None
17860        }
17861    }
17862    #[inline]
17863    fn syntax(&self) -> &SyntaxNode {
17864        &self.syntax
17865    }
17866}
17867impl AstNode for AlterMaterializedView {
17868    #[inline]
17869    fn can_cast(kind: SyntaxKind) -> bool {
17870        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
17871    }
17872    #[inline]
17873    fn cast(syntax: SyntaxNode) -> Option<Self> {
17874        if Self::can_cast(syntax.kind()) {
17875            Some(Self { syntax })
17876        } else {
17877            None
17878        }
17879    }
17880    #[inline]
17881    fn syntax(&self) -> &SyntaxNode {
17882        &self.syntax
17883    }
17884}
17885impl AstNode for AlterOperator {
17886    #[inline]
17887    fn can_cast(kind: SyntaxKind) -> bool {
17888        kind == SyntaxKind::ALTER_OPERATOR
17889    }
17890    #[inline]
17891    fn cast(syntax: SyntaxNode) -> Option<Self> {
17892        if Self::can_cast(syntax.kind()) {
17893            Some(Self { syntax })
17894        } else {
17895            None
17896        }
17897    }
17898    #[inline]
17899    fn syntax(&self) -> &SyntaxNode {
17900        &self.syntax
17901    }
17902}
17903impl AstNode for AlterOperatorClass {
17904    #[inline]
17905    fn can_cast(kind: SyntaxKind) -> bool {
17906        kind == SyntaxKind::ALTER_OPERATOR_CLASS
17907    }
17908    #[inline]
17909    fn cast(syntax: SyntaxNode) -> Option<Self> {
17910        if Self::can_cast(syntax.kind()) {
17911            Some(Self { syntax })
17912        } else {
17913            None
17914        }
17915    }
17916    #[inline]
17917    fn syntax(&self) -> &SyntaxNode {
17918        &self.syntax
17919    }
17920}
17921impl AstNode for AlterOperatorFamily {
17922    #[inline]
17923    fn can_cast(kind: SyntaxKind) -> bool {
17924        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
17925    }
17926    #[inline]
17927    fn cast(syntax: SyntaxNode) -> Option<Self> {
17928        if Self::can_cast(syntax.kind()) {
17929            Some(Self { syntax })
17930        } else {
17931            None
17932        }
17933    }
17934    #[inline]
17935    fn syntax(&self) -> &SyntaxNode {
17936        &self.syntax
17937    }
17938}
17939impl AstNode for AlterOption {
17940    #[inline]
17941    fn can_cast(kind: SyntaxKind) -> bool {
17942        kind == SyntaxKind::ALTER_OPTION
17943    }
17944    #[inline]
17945    fn cast(syntax: SyntaxNode) -> Option<Self> {
17946        if Self::can_cast(syntax.kind()) {
17947            Some(Self { syntax })
17948        } else {
17949            None
17950        }
17951    }
17952    #[inline]
17953    fn syntax(&self) -> &SyntaxNode {
17954        &self.syntax
17955    }
17956}
17957impl AstNode for AlterOptionList {
17958    #[inline]
17959    fn can_cast(kind: SyntaxKind) -> bool {
17960        kind == SyntaxKind::ALTER_OPTION_LIST
17961    }
17962    #[inline]
17963    fn cast(syntax: SyntaxNode) -> Option<Self> {
17964        if Self::can_cast(syntax.kind()) {
17965            Some(Self { syntax })
17966        } else {
17967            None
17968        }
17969    }
17970    #[inline]
17971    fn syntax(&self) -> &SyntaxNode {
17972        &self.syntax
17973    }
17974}
17975impl AstNode for AlterPolicy {
17976    #[inline]
17977    fn can_cast(kind: SyntaxKind) -> bool {
17978        kind == SyntaxKind::ALTER_POLICY
17979    }
17980    #[inline]
17981    fn cast(syntax: SyntaxNode) -> Option<Self> {
17982        if Self::can_cast(syntax.kind()) {
17983            Some(Self { syntax })
17984        } else {
17985            None
17986        }
17987    }
17988    #[inline]
17989    fn syntax(&self) -> &SyntaxNode {
17990        &self.syntax
17991    }
17992}
17993impl AstNode for AlterProcedure {
17994    #[inline]
17995    fn can_cast(kind: SyntaxKind) -> bool {
17996        kind == SyntaxKind::ALTER_PROCEDURE
17997    }
17998    #[inline]
17999    fn cast(syntax: SyntaxNode) -> Option<Self> {
18000        if Self::can_cast(syntax.kind()) {
18001            Some(Self { syntax })
18002        } else {
18003            None
18004        }
18005    }
18006    #[inline]
18007    fn syntax(&self) -> &SyntaxNode {
18008        &self.syntax
18009    }
18010}
18011impl AstNode for AlterPublication {
18012    #[inline]
18013    fn can_cast(kind: SyntaxKind) -> bool {
18014        kind == SyntaxKind::ALTER_PUBLICATION
18015    }
18016    #[inline]
18017    fn cast(syntax: SyntaxNode) -> Option<Self> {
18018        if Self::can_cast(syntax.kind()) {
18019            Some(Self { syntax })
18020        } else {
18021            None
18022        }
18023    }
18024    #[inline]
18025    fn syntax(&self) -> &SyntaxNode {
18026        &self.syntax
18027    }
18028}
18029impl AstNode for AlterRole {
18030    #[inline]
18031    fn can_cast(kind: SyntaxKind) -> bool {
18032        kind == SyntaxKind::ALTER_ROLE
18033    }
18034    #[inline]
18035    fn cast(syntax: SyntaxNode) -> Option<Self> {
18036        if Self::can_cast(syntax.kind()) {
18037            Some(Self { syntax })
18038        } else {
18039            None
18040        }
18041    }
18042    #[inline]
18043    fn syntax(&self) -> &SyntaxNode {
18044        &self.syntax
18045    }
18046}
18047impl AstNode for AlterRoutine {
18048    #[inline]
18049    fn can_cast(kind: SyntaxKind) -> bool {
18050        kind == SyntaxKind::ALTER_ROUTINE
18051    }
18052    #[inline]
18053    fn cast(syntax: SyntaxNode) -> Option<Self> {
18054        if Self::can_cast(syntax.kind()) {
18055            Some(Self { syntax })
18056        } else {
18057            None
18058        }
18059    }
18060    #[inline]
18061    fn syntax(&self) -> &SyntaxNode {
18062        &self.syntax
18063    }
18064}
18065impl AstNode for AlterRule {
18066    #[inline]
18067    fn can_cast(kind: SyntaxKind) -> bool {
18068        kind == SyntaxKind::ALTER_RULE
18069    }
18070    #[inline]
18071    fn cast(syntax: SyntaxNode) -> Option<Self> {
18072        if Self::can_cast(syntax.kind()) {
18073            Some(Self { syntax })
18074        } else {
18075            None
18076        }
18077    }
18078    #[inline]
18079    fn syntax(&self) -> &SyntaxNode {
18080        &self.syntax
18081    }
18082}
18083impl AstNode for AlterSchema {
18084    #[inline]
18085    fn can_cast(kind: SyntaxKind) -> bool {
18086        kind == SyntaxKind::ALTER_SCHEMA
18087    }
18088    #[inline]
18089    fn cast(syntax: SyntaxNode) -> Option<Self> {
18090        if Self::can_cast(syntax.kind()) {
18091            Some(Self { syntax })
18092        } else {
18093            None
18094        }
18095    }
18096    #[inline]
18097    fn syntax(&self) -> &SyntaxNode {
18098        &self.syntax
18099    }
18100}
18101impl AstNode for AlterSequence {
18102    #[inline]
18103    fn can_cast(kind: SyntaxKind) -> bool {
18104        kind == SyntaxKind::ALTER_SEQUENCE
18105    }
18106    #[inline]
18107    fn cast(syntax: SyntaxNode) -> Option<Self> {
18108        if Self::can_cast(syntax.kind()) {
18109            Some(Self { syntax })
18110        } else {
18111            None
18112        }
18113    }
18114    #[inline]
18115    fn syntax(&self) -> &SyntaxNode {
18116        &self.syntax
18117    }
18118}
18119impl AstNode for AlterServer {
18120    #[inline]
18121    fn can_cast(kind: SyntaxKind) -> bool {
18122        kind == SyntaxKind::ALTER_SERVER
18123    }
18124    #[inline]
18125    fn cast(syntax: SyntaxNode) -> Option<Self> {
18126        if Self::can_cast(syntax.kind()) {
18127            Some(Self { syntax })
18128        } else {
18129            None
18130        }
18131    }
18132    #[inline]
18133    fn syntax(&self) -> &SyntaxNode {
18134        &self.syntax
18135    }
18136}
18137impl AstNode for AlterSetStatistics {
18138    #[inline]
18139    fn can_cast(kind: SyntaxKind) -> bool {
18140        kind == SyntaxKind::ALTER_SET_STATISTICS
18141    }
18142    #[inline]
18143    fn cast(syntax: SyntaxNode) -> Option<Self> {
18144        if Self::can_cast(syntax.kind()) {
18145            Some(Self { syntax })
18146        } else {
18147            None
18148        }
18149    }
18150    #[inline]
18151    fn syntax(&self) -> &SyntaxNode {
18152        &self.syntax
18153    }
18154}
18155impl AstNode for AlterStatistics {
18156    #[inline]
18157    fn can_cast(kind: SyntaxKind) -> bool {
18158        kind == SyntaxKind::ALTER_STATISTICS
18159    }
18160    #[inline]
18161    fn cast(syntax: SyntaxNode) -> Option<Self> {
18162        if Self::can_cast(syntax.kind()) {
18163            Some(Self { syntax })
18164        } else {
18165            None
18166        }
18167    }
18168    #[inline]
18169    fn syntax(&self) -> &SyntaxNode {
18170        &self.syntax
18171    }
18172}
18173impl AstNode for AlterSubscription {
18174    #[inline]
18175    fn can_cast(kind: SyntaxKind) -> bool {
18176        kind == SyntaxKind::ALTER_SUBSCRIPTION
18177    }
18178    #[inline]
18179    fn cast(syntax: SyntaxNode) -> Option<Self> {
18180        if Self::can_cast(syntax.kind()) {
18181            Some(Self { syntax })
18182        } else {
18183            None
18184        }
18185    }
18186    #[inline]
18187    fn syntax(&self) -> &SyntaxNode {
18188        &self.syntax
18189    }
18190}
18191impl AstNode for AlterSystem {
18192    #[inline]
18193    fn can_cast(kind: SyntaxKind) -> bool {
18194        kind == SyntaxKind::ALTER_SYSTEM
18195    }
18196    #[inline]
18197    fn cast(syntax: SyntaxNode) -> Option<Self> {
18198        if Self::can_cast(syntax.kind()) {
18199            Some(Self { syntax })
18200        } else {
18201            None
18202        }
18203    }
18204    #[inline]
18205    fn syntax(&self) -> &SyntaxNode {
18206        &self.syntax
18207    }
18208}
18209impl AstNode for AlterTable {
18210    #[inline]
18211    fn can_cast(kind: SyntaxKind) -> bool {
18212        kind == SyntaxKind::ALTER_TABLE
18213    }
18214    #[inline]
18215    fn cast(syntax: SyntaxNode) -> Option<Self> {
18216        if Self::can_cast(syntax.kind()) {
18217            Some(Self { syntax })
18218        } else {
18219            None
18220        }
18221    }
18222    #[inline]
18223    fn syntax(&self) -> &SyntaxNode {
18224        &self.syntax
18225    }
18226}
18227impl AstNode for AlterTablespace {
18228    #[inline]
18229    fn can_cast(kind: SyntaxKind) -> bool {
18230        kind == SyntaxKind::ALTER_TABLESPACE
18231    }
18232    #[inline]
18233    fn cast(syntax: SyntaxNode) -> Option<Self> {
18234        if Self::can_cast(syntax.kind()) {
18235            Some(Self { syntax })
18236        } else {
18237            None
18238        }
18239    }
18240    #[inline]
18241    fn syntax(&self) -> &SyntaxNode {
18242        &self.syntax
18243    }
18244}
18245impl AstNode for AlterTextSearchConfiguration {
18246    #[inline]
18247    fn can_cast(kind: SyntaxKind) -> bool {
18248        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
18249    }
18250    #[inline]
18251    fn cast(syntax: SyntaxNode) -> Option<Self> {
18252        if Self::can_cast(syntax.kind()) {
18253            Some(Self { syntax })
18254        } else {
18255            None
18256        }
18257    }
18258    #[inline]
18259    fn syntax(&self) -> &SyntaxNode {
18260        &self.syntax
18261    }
18262}
18263impl AstNode for AlterTextSearchDictionary {
18264    #[inline]
18265    fn can_cast(kind: SyntaxKind) -> bool {
18266        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
18267    }
18268    #[inline]
18269    fn cast(syntax: SyntaxNode) -> Option<Self> {
18270        if Self::can_cast(syntax.kind()) {
18271            Some(Self { syntax })
18272        } else {
18273            None
18274        }
18275    }
18276    #[inline]
18277    fn syntax(&self) -> &SyntaxNode {
18278        &self.syntax
18279    }
18280}
18281impl AstNode for AlterTextSearchParser {
18282    #[inline]
18283    fn can_cast(kind: SyntaxKind) -> bool {
18284        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
18285    }
18286    #[inline]
18287    fn cast(syntax: SyntaxNode) -> Option<Self> {
18288        if Self::can_cast(syntax.kind()) {
18289            Some(Self { syntax })
18290        } else {
18291            None
18292        }
18293    }
18294    #[inline]
18295    fn syntax(&self) -> &SyntaxNode {
18296        &self.syntax
18297    }
18298}
18299impl AstNode for AlterTextSearchTemplate {
18300    #[inline]
18301    fn can_cast(kind: SyntaxKind) -> bool {
18302        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
18303    }
18304    #[inline]
18305    fn cast(syntax: SyntaxNode) -> Option<Self> {
18306        if Self::can_cast(syntax.kind()) {
18307            Some(Self { syntax })
18308        } else {
18309            None
18310        }
18311    }
18312    #[inline]
18313    fn syntax(&self) -> &SyntaxNode {
18314        &self.syntax
18315    }
18316}
18317impl AstNode for AlterTrigger {
18318    #[inline]
18319    fn can_cast(kind: SyntaxKind) -> bool {
18320        kind == SyntaxKind::ALTER_TRIGGER
18321    }
18322    #[inline]
18323    fn cast(syntax: SyntaxNode) -> Option<Self> {
18324        if Self::can_cast(syntax.kind()) {
18325            Some(Self { syntax })
18326        } else {
18327            None
18328        }
18329    }
18330    #[inline]
18331    fn syntax(&self) -> &SyntaxNode {
18332        &self.syntax
18333    }
18334}
18335impl AstNode for AlterType {
18336    #[inline]
18337    fn can_cast(kind: SyntaxKind) -> bool {
18338        kind == SyntaxKind::ALTER_TYPE
18339    }
18340    #[inline]
18341    fn cast(syntax: SyntaxNode) -> Option<Self> {
18342        if Self::can_cast(syntax.kind()) {
18343            Some(Self { syntax })
18344        } else {
18345            None
18346        }
18347    }
18348    #[inline]
18349    fn syntax(&self) -> &SyntaxNode {
18350        &self.syntax
18351    }
18352}
18353impl AstNode for AlterUser {
18354    #[inline]
18355    fn can_cast(kind: SyntaxKind) -> bool {
18356        kind == SyntaxKind::ALTER_USER
18357    }
18358    #[inline]
18359    fn cast(syntax: SyntaxNode) -> Option<Self> {
18360        if Self::can_cast(syntax.kind()) {
18361            Some(Self { syntax })
18362        } else {
18363            None
18364        }
18365    }
18366    #[inline]
18367    fn syntax(&self) -> &SyntaxNode {
18368        &self.syntax
18369    }
18370}
18371impl AstNode for AlterUserMapping {
18372    #[inline]
18373    fn can_cast(kind: SyntaxKind) -> bool {
18374        kind == SyntaxKind::ALTER_USER_MAPPING
18375    }
18376    #[inline]
18377    fn cast(syntax: SyntaxNode) -> Option<Self> {
18378        if Self::can_cast(syntax.kind()) {
18379            Some(Self { syntax })
18380        } else {
18381            None
18382        }
18383    }
18384    #[inline]
18385    fn syntax(&self) -> &SyntaxNode {
18386        &self.syntax
18387    }
18388}
18389impl AstNode for AlterView {
18390    #[inline]
18391    fn can_cast(kind: SyntaxKind) -> bool {
18392        kind == SyntaxKind::ALTER_VIEW
18393    }
18394    #[inline]
18395    fn cast(syntax: SyntaxNode) -> Option<Self> {
18396        if Self::can_cast(syntax.kind()) {
18397            Some(Self { syntax })
18398        } else {
18399            None
18400        }
18401    }
18402    #[inline]
18403    fn syntax(&self) -> &SyntaxNode {
18404        &self.syntax
18405    }
18406}
18407impl AstNode for Analyze {
18408    #[inline]
18409    fn can_cast(kind: SyntaxKind) -> bool {
18410        kind == SyntaxKind::ANALYZE
18411    }
18412    #[inline]
18413    fn cast(syntax: SyntaxNode) -> Option<Self> {
18414        if Self::can_cast(syntax.kind()) {
18415            Some(Self { syntax })
18416        } else {
18417            None
18418        }
18419    }
18420    #[inline]
18421    fn syntax(&self) -> &SyntaxNode {
18422        &self.syntax
18423    }
18424}
18425impl AstNode for AnyFn {
18426    #[inline]
18427    fn can_cast(kind: SyntaxKind) -> bool {
18428        kind == SyntaxKind::ANY_FN
18429    }
18430    #[inline]
18431    fn cast(syntax: SyntaxNode) -> Option<Self> {
18432        if Self::can_cast(syntax.kind()) {
18433            Some(Self { syntax })
18434        } else {
18435            None
18436        }
18437    }
18438    #[inline]
18439    fn syntax(&self) -> &SyntaxNode {
18440        &self.syntax
18441    }
18442}
18443impl AstNode for Arg {
18444    #[inline]
18445    fn can_cast(kind: SyntaxKind) -> bool {
18446        kind == SyntaxKind::ARG
18447    }
18448    #[inline]
18449    fn cast(syntax: SyntaxNode) -> Option<Self> {
18450        if Self::can_cast(syntax.kind()) {
18451            Some(Self { syntax })
18452        } else {
18453            None
18454        }
18455    }
18456    #[inline]
18457    fn syntax(&self) -> &SyntaxNode {
18458        &self.syntax
18459    }
18460}
18461impl AstNode for ArgList {
18462    #[inline]
18463    fn can_cast(kind: SyntaxKind) -> bool {
18464        kind == SyntaxKind::ARG_LIST
18465    }
18466    #[inline]
18467    fn cast(syntax: SyntaxNode) -> Option<Self> {
18468        if Self::can_cast(syntax.kind()) {
18469            Some(Self { syntax })
18470        } else {
18471            None
18472        }
18473    }
18474    #[inline]
18475    fn syntax(&self) -> &SyntaxNode {
18476        &self.syntax
18477    }
18478}
18479impl AstNode for ArrayExpr {
18480    #[inline]
18481    fn can_cast(kind: SyntaxKind) -> bool {
18482        kind == SyntaxKind::ARRAY_EXPR
18483    }
18484    #[inline]
18485    fn cast(syntax: SyntaxNode) -> Option<Self> {
18486        if Self::can_cast(syntax.kind()) {
18487            Some(Self { syntax })
18488        } else {
18489            None
18490        }
18491    }
18492    #[inline]
18493    fn syntax(&self) -> &SyntaxNode {
18494        &self.syntax
18495    }
18496}
18497impl AstNode for ArrayType {
18498    #[inline]
18499    fn can_cast(kind: SyntaxKind) -> bool {
18500        kind == SyntaxKind::ARRAY_TYPE
18501    }
18502    #[inline]
18503    fn cast(syntax: SyntaxNode) -> Option<Self> {
18504        if Self::can_cast(syntax.kind()) {
18505            Some(Self { syntax })
18506        } else {
18507            None
18508        }
18509    }
18510    #[inline]
18511    fn syntax(&self) -> &SyntaxNode {
18512        &self.syntax
18513    }
18514}
18515impl AstNode for AsFuncOption {
18516    #[inline]
18517    fn can_cast(kind: SyntaxKind) -> bool {
18518        kind == SyntaxKind::AS_FUNC_OPTION
18519    }
18520    #[inline]
18521    fn cast(syntax: SyntaxNode) -> Option<Self> {
18522        if Self::can_cast(syntax.kind()) {
18523            Some(Self { syntax })
18524        } else {
18525            None
18526        }
18527    }
18528    #[inline]
18529    fn syntax(&self) -> &SyntaxNode {
18530        &self.syntax
18531    }
18532}
18533impl AstNode for AsName {
18534    #[inline]
18535    fn can_cast(kind: SyntaxKind) -> bool {
18536        kind == SyntaxKind::AS_NAME
18537    }
18538    #[inline]
18539    fn cast(syntax: SyntaxNode) -> Option<Self> {
18540        if Self::can_cast(syntax.kind()) {
18541            Some(Self { syntax })
18542        } else {
18543            None
18544        }
18545    }
18546    #[inline]
18547    fn syntax(&self) -> &SyntaxNode {
18548        &self.syntax
18549    }
18550}
18551impl AstNode for AsPolicyType {
18552    #[inline]
18553    fn can_cast(kind: SyntaxKind) -> bool {
18554        kind == SyntaxKind::AS_POLICY_TYPE
18555    }
18556    #[inline]
18557    fn cast(syntax: SyntaxNode) -> Option<Self> {
18558        if Self::can_cast(syntax.kind()) {
18559            Some(Self { syntax })
18560        } else {
18561            None
18562        }
18563    }
18564    #[inline]
18565    fn syntax(&self) -> &SyntaxNode {
18566        &self.syntax
18567    }
18568}
18569impl AstNode for AtTimeZone {
18570    #[inline]
18571    fn can_cast(kind: SyntaxKind) -> bool {
18572        kind == SyntaxKind::AT_TIME_ZONE
18573    }
18574    #[inline]
18575    fn cast(syntax: SyntaxNode) -> Option<Self> {
18576        if Self::can_cast(syntax.kind()) {
18577            Some(Self { syntax })
18578        } else {
18579            None
18580        }
18581    }
18582    #[inline]
18583    fn syntax(&self) -> &SyntaxNode {
18584        &self.syntax
18585    }
18586}
18587impl AstNode for AttachPartition {
18588    #[inline]
18589    fn can_cast(kind: SyntaxKind) -> bool {
18590        kind == SyntaxKind::ATTACH_PARTITION
18591    }
18592    #[inline]
18593    fn cast(syntax: SyntaxNode) -> Option<Self> {
18594        if Self::can_cast(syntax.kind()) {
18595            Some(Self { syntax })
18596        } else {
18597            None
18598        }
18599    }
18600    #[inline]
18601    fn syntax(&self) -> &SyntaxNode {
18602        &self.syntax
18603    }
18604}
18605impl AstNode for AttributeList {
18606    #[inline]
18607    fn can_cast(kind: SyntaxKind) -> bool {
18608        kind == SyntaxKind::ATTRIBUTE_LIST
18609    }
18610    #[inline]
18611    fn cast(syntax: SyntaxNode) -> Option<Self> {
18612        if Self::can_cast(syntax.kind()) {
18613            Some(Self { syntax })
18614        } else {
18615            None
18616        }
18617    }
18618    #[inline]
18619    fn syntax(&self) -> &SyntaxNode {
18620        &self.syntax
18621    }
18622}
18623impl AstNode for AttributeOption {
18624    #[inline]
18625    fn can_cast(kind: SyntaxKind) -> bool {
18626        kind == SyntaxKind::ATTRIBUTE_OPTION
18627    }
18628    #[inline]
18629    fn cast(syntax: SyntaxNode) -> Option<Self> {
18630        if Self::can_cast(syntax.kind()) {
18631            Some(Self { syntax })
18632        } else {
18633            None
18634        }
18635    }
18636    #[inline]
18637    fn syntax(&self) -> &SyntaxNode {
18638        &self.syntax
18639    }
18640}
18641impl AstNode for AttributeValue {
18642    #[inline]
18643    fn can_cast(kind: SyntaxKind) -> bool {
18644        kind == SyntaxKind::ATTRIBUTE_VALUE
18645    }
18646    #[inline]
18647    fn cast(syntax: SyntaxNode) -> Option<Self> {
18648        if Self::can_cast(syntax.kind()) {
18649            Some(Self { syntax })
18650        } else {
18651            None
18652        }
18653    }
18654    #[inline]
18655    fn syntax(&self) -> &SyntaxNode {
18656        &self.syntax
18657    }
18658}
18659impl AstNode for Begin {
18660    #[inline]
18661    fn can_cast(kind: SyntaxKind) -> bool {
18662        kind == SyntaxKind::BEGIN
18663    }
18664    #[inline]
18665    fn cast(syntax: SyntaxNode) -> Option<Self> {
18666        if Self::can_cast(syntax.kind()) {
18667            Some(Self { syntax })
18668        } else {
18669            None
18670        }
18671    }
18672    #[inline]
18673    fn syntax(&self) -> &SyntaxNode {
18674        &self.syntax
18675    }
18676}
18677impl AstNode for BeginFuncOption {
18678    #[inline]
18679    fn can_cast(kind: SyntaxKind) -> bool {
18680        kind == SyntaxKind::BEGIN_FUNC_OPTION
18681    }
18682    #[inline]
18683    fn cast(syntax: SyntaxNode) -> Option<Self> {
18684        if Self::can_cast(syntax.kind()) {
18685            Some(Self { syntax })
18686        } else {
18687            None
18688        }
18689    }
18690    #[inline]
18691    fn syntax(&self) -> &SyntaxNode {
18692        &self.syntax
18693    }
18694}
18695impl AstNode for BeginFuncOptionList {
18696    #[inline]
18697    fn can_cast(kind: SyntaxKind) -> bool {
18698        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
18699    }
18700    #[inline]
18701    fn cast(syntax: SyntaxNode) -> Option<Self> {
18702        if Self::can_cast(syntax.kind()) {
18703            Some(Self { syntax })
18704        } else {
18705            None
18706        }
18707    }
18708    #[inline]
18709    fn syntax(&self) -> &SyntaxNode {
18710        &self.syntax
18711    }
18712}
18713impl AstNode for BetweenExpr {
18714    #[inline]
18715    fn can_cast(kind: SyntaxKind) -> bool {
18716        kind == SyntaxKind::BETWEEN_EXPR
18717    }
18718    #[inline]
18719    fn cast(syntax: SyntaxNode) -> Option<Self> {
18720        if Self::can_cast(syntax.kind()) {
18721            Some(Self { syntax })
18722        } else {
18723            None
18724        }
18725    }
18726    #[inline]
18727    fn syntax(&self) -> &SyntaxNode {
18728        &self.syntax
18729    }
18730}
18731impl AstNode for BinExpr {
18732    #[inline]
18733    fn can_cast(kind: SyntaxKind) -> bool {
18734        kind == SyntaxKind::BIN_EXPR
18735    }
18736    #[inline]
18737    fn cast(syntax: SyntaxNode) -> Option<Self> {
18738        if Self::can_cast(syntax.kind()) {
18739            Some(Self { syntax })
18740        } else {
18741            None
18742        }
18743    }
18744    #[inline]
18745    fn syntax(&self) -> &SyntaxNode {
18746        &self.syntax
18747    }
18748}
18749impl AstNode for BitType {
18750    #[inline]
18751    fn can_cast(kind: SyntaxKind) -> bool {
18752        kind == SyntaxKind::BIT_TYPE
18753    }
18754    #[inline]
18755    fn cast(syntax: SyntaxNode) -> Option<Self> {
18756        if Self::can_cast(syntax.kind()) {
18757            Some(Self { syntax })
18758        } else {
18759            None
18760        }
18761    }
18762    #[inline]
18763    fn syntax(&self) -> &SyntaxNode {
18764        &self.syntax
18765    }
18766}
18767impl AstNode for Call {
18768    #[inline]
18769    fn can_cast(kind: SyntaxKind) -> bool {
18770        kind == SyntaxKind::CALL
18771    }
18772    #[inline]
18773    fn cast(syntax: SyntaxNode) -> Option<Self> {
18774        if Self::can_cast(syntax.kind()) {
18775            Some(Self { syntax })
18776        } else {
18777            None
18778        }
18779    }
18780    #[inline]
18781    fn syntax(&self) -> &SyntaxNode {
18782        &self.syntax
18783    }
18784}
18785impl AstNode for CallExpr {
18786    #[inline]
18787    fn can_cast(kind: SyntaxKind) -> bool {
18788        kind == SyntaxKind::CALL_EXPR
18789    }
18790    #[inline]
18791    fn cast(syntax: SyntaxNode) -> Option<Self> {
18792        if Self::can_cast(syntax.kind()) {
18793            Some(Self { syntax })
18794        } else {
18795            None
18796        }
18797    }
18798    #[inline]
18799    fn syntax(&self) -> &SyntaxNode {
18800        &self.syntax
18801    }
18802}
18803impl AstNode for Cascade {
18804    #[inline]
18805    fn can_cast(kind: SyntaxKind) -> bool {
18806        kind == SyntaxKind::CASCADE
18807    }
18808    #[inline]
18809    fn cast(syntax: SyntaxNode) -> Option<Self> {
18810        if Self::can_cast(syntax.kind()) {
18811            Some(Self { syntax })
18812        } else {
18813            None
18814        }
18815    }
18816    #[inline]
18817    fn syntax(&self) -> &SyntaxNode {
18818        &self.syntax
18819    }
18820}
18821impl AstNode for CaseExpr {
18822    #[inline]
18823    fn can_cast(kind: SyntaxKind) -> bool {
18824        kind == SyntaxKind::CASE_EXPR
18825    }
18826    #[inline]
18827    fn cast(syntax: SyntaxNode) -> Option<Self> {
18828        if Self::can_cast(syntax.kind()) {
18829            Some(Self { syntax })
18830        } else {
18831            None
18832        }
18833    }
18834    #[inline]
18835    fn syntax(&self) -> &SyntaxNode {
18836        &self.syntax
18837    }
18838}
18839impl AstNode for CastExpr {
18840    #[inline]
18841    fn can_cast(kind: SyntaxKind) -> bool {
18842        kind == SyntaxKind::CAST_EXPR
18843    }
18844    #[inline]
18845    fn cast(syntax: SyntaxNode) -> Option<Self> {
18846        if Self::can_cast(syntax.kind()) {
18847            Some(Self { syntax })
18848        } else {
18849            None
18850        }
18851    }
18852    #[inline]
18853    fn syntax(&self) -> &SyntaxNode {
18854        &self.syntax
18855    }
18856}
18857impl AstNode for CastSig {
18858    #[inline]
18859    fn can_cast(kind: SyntaxKind) -> bool {
18860        kind == SyntaxKind::CAST_SIG
18861    }
18862    #[inline]
18863    fn cast(syntax: SyntaxNode) -> Option<Self> {
18864        if Self::can_cast(syntax.kind()) {
18865            Some(Self { syntax })
18866        } else {
18867            None
18868        }
18869    }
18870    #[inline]
18871    fn syntax(&self) -> &SyntaxNode {
18872        &self.syntax
18873    }
18874}
18875impl AstNode for CharType {
18876    #[inline]
18877    fn can_cast(kind: SyntaxKind) -> bool {
18878        kind == SyntaxKind::CHAR_TYPE
18879    }
18880    #[inline]
18881    fn cast(syntax: SyntaxNode) -> Option<Self> {
18882        if Self::can_cast(syntax.kind()) {
18883            Some(Self { syntax })
18884        } else {
18885            None
18886        }
18887    }
18888    #[inline]
18889    fn syntax(&self) -> &SyntaxNode {
18890        &self.syntax
18891    }
18892}
18893impl AstNode for CheckConstraint {
18894    #[inline]
18895    fn can_cast(kind: SyntaxKind) -> bool {
18896        kind == SyntaxKind::CHECK_CONSTRAINT
18897    }
18898    #[inline]
18899    fn cast(syntax: SyntaxNode) -> Option<Self> {
18900        if Self::can_cast(syntax.kind()) {
18901            Some(Self { syntax })
18902        } else {
18903            None
18904        }
18905    }
18906    #[inline]
18907    fn syntax(&self) -> &SyntaxNode {
18908        &self.syntax
18909    }
18910}
18911impl AstNode for Checkpoint {
18912    #[inline]
18913    fn can_cast(kind: SyntaxKind) -> bool {
18914        kind == SyntaxKind::CHECKPOINT
18915    }
18916    #[inline]
18917    fn cast(syntax: SyntaxNode) -> Option<Self> {
18918        if Self::can_cast(syntax.kind()) {
18919            Some(Self { syntax })
18920        } else {
18921            None
18922        }
18923    }
18924    #[inline]
18925    fn syntax(&self) -> &SyntaxNode {
18926        &self.syntax
18927    }
18928}
18929impl AstNode for Close {
18930    #[inline]
18931    fn can_cast(kind: SyntaxKind) -> bool {
18932        kind == SyntaxKind::CLOSE
18933    }
18934    #[inline]
18935    fn cast(syntax: SyntaxNode) -> Option<Self> {
18936        if Self::can_cast(syntax.kind()) {
18937            Some(Self { syntax })
18938        } else {
18939            None
18940        }
18941    }
18942    #[inline]
18943    fn syntax(&self) -> &SyntaxNode {
18944        &self.syntax
18945    }
18946}
18947impl AstNode for Cluster {
18948    #[inline]
18949    fn can_cast(kind: SyntaxKind) -> bool {
18950        kind == SyntaxKind::CLUSTER
18951    }
18952    #[inline]
18953    fn cast(syntax: SyntaxNode) -> Option<Self> {
18954        if Self::can_cast(syntax.kind()) {
18955            Some(Self { syntax })
18956        } else {
18957            None
18958        }
18959    }
18960    #[inline]
18961    fn syntax(&self) -> &SyntaxNode {
18962        &self.syntax
18963    }
18964}
18965impl AstNode for ClusterOn {
18966    #[inline]
18967    fn can_cast(kind: SyntaxKind) -> bool {
18968        kind == SyntaxKind::CLUSTER_ON
18969    }
18970    #[inline]
18971    fn cast(syntax: SyntaxNode) -> Option<Self> {
18972        if Self::can_cast(syntax.kind()) {
18973            Some(Self { syntax })
18974        } else {
18975            None
18976        }
18977    }
18978    #[inline]
18979    fn syntax(&self) -> &SyntaxNode {
18980        &self.syntax
18981    }
18982}
18983impl AstNode for Collate {
18984    #[inline]
18985    fn can_cast(kind: SyntaxKind) -> bool {
18986        kind == SyntaxKind::COLLATE
18987    }
18988    #[inline]
18989    fn cast(syntax: SyntaxNode) -> Option<Self> {
18990        if Self::can_cast(syntax.kind()) {
18991            Some(Self { syntax })
18992        } else {
18993            None
18994        }
18995    }
18996    #[inline]
18997    fn syntax(&self) -> &SyntaxNode {
18998        &self.syntax
18999    }
19000}
19001impl AstNode for ColonColon {
19002    #[inline]
19003    fn can_cast(kind: SyntaxKind) -> bool {
19004        kind == SyntaxKind::COLON_COLON
19005    }
19006    #[inline]
19007    fn cast(syntax: SyntaxNode) -> Option<Self> {
19008        if Self::can_cast(syntax.kind()) {
19009            Some(Self { syntax })
19010        } else {
19011            None
19012        }
19013    }
19014    #[inline]
19015    fn syntax(&self) -> &SyntaxNode {
19016        &self.syntax
19017    }
19018}
19019impl AstNode for ColonEq {
19020    #[inline]
19021    fn can_cast(kind: SyntaxKind) -> bool {
19022        kind == SyntaxKind::COLON_EQ
19023    }
19024    #[inline]
19025    fn cast(syntax: SyntaxNode) -> Option<Self> {
19026        if Self::can_cast(syntax.kind()) {
19027            Some(Self { syntax })
19028        } else {
19029            None
19030        }
19031    }
19032    #[inline]
19033    fn syntax(&self) -> &SyntaxNode {
19034        &self.syntax
19035    }
19036}
19037impl AstNode for Column {
19038    #[inline]
19039    fn can_cast(kind: SyntaxKind) -> bool {
19040        kind == SyntaxKind::COLUMN
19041    }
19042    #[inline]
19043    fn cast(syntax: SyntaxNode) -> Option<Self> {
19044        if Self::can_cast(syntax.kind()) {
19045            Some(Self { syntax })
19046        } else {
19047            None
19048        }
19049    }
19050    #[inline]
19051    fn syntax(&self) -> &SyntaxNode {
19052        &self.syntax
19053    }
19054}
19055impl AstNode for ColumnList {
19056    #[inline]
19057    fn can_cast(kind: SyntaxKind) -> bool {
19058        kind == SyntaxKind::COLUMN_LIST
19059    }
19060    #[inline]
19061    fn cast(syntax: SyntaxNode) -> Option<Self> {
19062        if Self::can_cast(syntax.kind()) {
19063            Some(Self { syntax })
19064        } else {
19065            None
19066        }
19067    }
19068    #[inline]
19069    fn syntax(&self) -> &SyntaxNode {
19070        &self.syntax
19071    }
19072}
19073impl AstNode for CommentOn {
19074    #[inline]
19075    fn can_cast(kind: SyntaxKind) -> bool {
19076        kind == SyntaxKind::COMMENT_ON
19077    }
19078    #[inline]
19079    fn cast(syntax: SyntaxNode) -> Option<Self> {
19080        if Self::can_cast(syntax.kind()) {
19081            Some(Self { syntax })
19082        } else {
19083            None
19084        }
19085    }
19086    #[inline]
19087    fn syntax(&self) -> &SyntaxNode {
19088        &self.syntax
19089    }
19090}
19091impl AstNode for Commit {
19092    #[inline]
19093    fn can_cast(kind: SyntaxKind) -> bool {
19094        kind == SyntaxKind::COMMIT
19095    }
19096    #[inline]
19097    fn cast(syntax: SyntaxNode) -> Option<Self> {
19098        if Self::can_cast(syntax.kind()) {
19099            Some(Self { syntax })
19100        } else {
19101            None
19102        }
19103    }
19104    #[inline]
19105    fn syntax(&self) -> &SyntaxNode {
19106        &self.syntax
19107    }
19108}
19109impl AstNode for CompoundSelect {
19110    #[inline]
19111    fn can_cast(kind: SyntaxKind) -> bool {
19112        kind == SyntaxKind::COMPOUND_SELECT
19113    }
19114    #[inline]
19115    fn cast(syntax: SyntaxNode) -> Option<Self> {
19116        if Self::can_cast(syntax.kind()) {
19117            Some(Self { syntax })
19118        } else {
19119            None
19120        }
19121    }
19122    #[inline]
19123    fn syntax(&self) -> &SyntaxNode {
19124        &self.syntax
19125    }
19126}
19127impl AstNode for CompressionMethod {
19128    #[inline]
19129    fn can_cast(kind: SyntaxKind) -> bool {
19130        kind == SyntaxKind::COMPRESSION_METHOD
19131    }
19132    #[inline]
19133    fn cast(syntax: SyntaxNode) -> Option<Self> {
19134        if Self::can_cast(syntax.kind()) {
19135            Some(Self { syntax })
19136        } else {
19137            None
19138        }
19139    }
19140    #[inline]
19141    fn syntax(&self) -> &SyntaxNode {
19142        &self.syntax
19143    }
19144}
19145impl AstNode for ConflictDoNothing {
19146    #[inline]
19147    fn can_cast(kind: SyntaxKind) -> bool {
19148        kind == SyntaxKind::CONFLICT_DO_NOTHING
19149    }
19150    #[inline]
19151    fn cast(syntax: SyntaxNode) -> Option<Self> {
19152        if Self::can_cast(syntax.kind()) {
19153            Some(Self { syntax })
19154        } else {
19155            None
19156        }
19157    }
19158    #[inline]
19159    fn syntax(&self) -> &SyntaxNode {
19160        &self.syntax
19161    }
19162}
19163impl AstNode for ConflictDoSelect {
19164    #[inline]
19165    fn can_cast(kind: SyntaxKind) -> bool {
19166        kind == SyntaxKind::CONFLICT_DO_SELECT
19167    }
19168    #[inline]
19169    fn cast(syntax: SyntaxNode) -> Option<Self> {
19170        if Self::can_cast(syntax.kind()) {
19171            Some(Self { syntax })
19172        } else {
19173            None
19174        }
19175    }
19176    #[inline]
19177    fn syntax(&self) -> &SyntaxNode {
19178        &self.syntax
19179    }
19180}
19181impl AstNode for ConflictDoUpdateSet {
19182    #[inline]
19183    fn can_cast(kind: SyntaxKind) -> bool {
19184        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
19185    }
19186    #[inline]
19187    fn cast(syntax: SyntaxNode) -> Option<Self> {
19188        if Self::can_cast(syntax.kind()) {
19189            Some(Self { syntax })
19190        } else {
19191            None
19192        }
19193    }
19194    #[inline]
19195    fn syntax(&self) -> &SyntaxNode {
19196        &self.syntax
19197    }
19198}
19199impl AstNode for ConflictIndexItem {
19200    #[inline]
19201    fn can_cast(kind: SyntaxKind) -> bool {
19202        kind == SyntaxKind::CONFLICT_INDEX_ITEM
19203    }
19204    #[inline]
19205    fn cast(syntax: SyntaxNode) -> Option<Self> {
19206        if Self::can_cast(syntax.kind()) {
19207            Some(Self { syntax })
19208        } else {
19209            None
19210        }
19211    }
19212    #[inline]
19213    fn syntax(&self) -> &SyntaxNode {
19214        &self.syntax
19215    }
19216}
19217impl AstNode for ConflictIndexItemList {
19218    #[inline]
19219    fn can_cast(kind: SyntaxKind) -> bool {
19220        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
19221    }
19222    #[inline]
19223    fn cast(syntax: SyntaxNode) -> Option<Self> {
19224        if Self::can_cast(syntax.kind()) {
19225            Some(Self { syntax })
19226        } else {
19227            None
19228        }
19229    }
19230    #[inline]
19231    fn syntax(&self) -> &SyntaxNode {
19232        &self.syntax
19233    }
19234}
19235impl AstNode for ConflictOnConstraint {
19236    #[inline]
19237    fn can_cast(kind: SyntaxKind) -> bool {
19238        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
19239    }
19240    #[inline]
19241    fn cast(syntax: SyntaxNode) -> Option<Self> {
19242        if Self::can_cast(syntax.kind()) {
19243            Some(Self { syntax })
19244        } else {
19245            None
19246        }
19247    }
19248    #[inline]
19249    fn syntax(&self) -> &SyntaxNode {
19250        &self.syntax
19251    }
19252}
19253impl AstNode for ConflictOnIndex {
19254    #[inline]
19255    fn can_cast(kind: SyntaxKind) -> bool {
19256        kind == SyntaxKind::CONFLICT_ON_INDEX
19257    }
19258    #[inline]
19259    fn cast(syntax: SyntaxNode) -> Option<Self> {
19260        if Self::can_cast(syntax.kind()) {
19261            Some(Self { syntax })
19262        } else {
19263            None
19264        }
19265    }
19266    #[inline]
19267    fn syntax(&self) -> &SyntaxNode {
19268        &self.syntax
19269    }
19270}
19271impl AstNode for ConstraintExclusion {
19272    #[inline]
19273    fn can_cast(kind: SyntaxKind) -> bool {
19274        kind == SyntaxKind::CONSTRAINT_EXCLUSION
19275    }
19276    #[inline]
19277    fn cast(syntax: SyntaxNode) -> Option<Self> {
19278        if Self::can_cast(syntax.kind()) {
19279            Some(Self { syntax })
19280        } else {
19281            None
19282        }
19283    }
19284    #[inline]
19285    fn syntax(&self) -> &SyntaxNode {
19286        &self.syntax
19287    }
19288}
19289impl AstNode for ConstraintExclusionList {
19290    #[inline]
19291    fn can_cast(kind: SyntaxKind) -> bool {
19292        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
19293    }
19294    #[inline]
19295    fn cast(syntax: SyntaxNode) -> Option<Self> {
19296        if Self::can_cast(syntax.kind()) {
19297            Some(Self { syntax })
19298        } else {
19299            None
19300        }
19301    }
19302    #[inline]
19303    fn syntax(&self) -> &SyntaxNode {
19304        &self.syntax
19305    }
19306}
19307impl AstNode for ConstraintIncludeClause {
19308    #[inline]
19309    fn can_cast(kind: SyntaxKind) -> bool {
19310        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
19311    }
19312    #[inline]
19313    fn cast(syntax: SyntaxNode) -> Option<Self> {
19314        if Self::can_cast(syntax.kind()) {
19315            Some(Self { syntax })
19316        } else {
19317            None
19318        }
19319    }
19320    #[inline]
19321    fn syntax(&self) -> &SyntaxNode {
19322        &self.syntax
19323    }
19324}
19325impl AstNode for ConstraintIndexMethod {
19326    #[inline]
19327    fn can_cast(kind: SyntaxKind) -> bool {
19328        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
19329    }
19330    #[inline]
19331    fn cast(syntax: SyntaxNode) -> Option<Self> {
19332        if Self::can_cast(syntax.kind()) {
19333            Some(Self { syntax })
19334        } else {
19335            None
19336        }
19337    }
19338    #[inline]
19339    fn syntax(&self) -> &SyntaxNode {
19340        &self.syntax
19341    }
19342}
19343impl AstNode for ConstraintIndexTablespace {
19344    #[inline]
19345    fn can_cast(kind: SyntaxKind) -> bool {
19346        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
19347    }
19348    #[inline]
19349    fn cast(syntax: SyntaxNode) -> Option<Self> {
19350        if Self::can_cast(syntax.kind()) {
19351            Some(Self { syntax })
19352        } else {
19353            None
19354        }
19355    }
19356    #[inline]
19357    fn syntax(&self) -> &SyntaxNode {
19358        &self.syntax
19359    }
19360}
19361impl AstNode for ConstraintName {
19362    #[inline]
19363    fn can_cast(kind: SyntaxKind) -> bool {
19364        kind == SyntaxKind::CONSTRAINT_NAME
19365    }
19366    #[inline]
19367    fn cast(syntax: SyntaxNode) -> Option<Self> {
19368        if Self::can_cast(syntax.kind()) {
19369            Some(Self { syntax })
19370        } else {
19371            None
19372        }
19373    }
19374    #[inline]
19375    fn syntax(&self) -> &SyntaxNode {
19376        &self.syntax
19377    }
19378}
19379impl AstNode for Copy {
19380    #[inline]
19381    fn can_cast(kind: SyntaxKind) -> bool {
19382        kind == SyntaxKind::COPY
19383    }
19384    #[inline]
19385    fn cast(syntax: SyntaxNode) -> Option<Self> {
19386        if Self::can_cast(syntax.kind()) {
19387            Some(Self { syntax })
19388        } else {
19389            None
19390        }
19391    }
19392    #[inline]
19393    fn syntax(&self) -> &SyntaxNode {
19394        &self.syntax
19395    }
19396}
19397impl AstNode for CopyOption {
19398    #[inline]
19399    fn can_cast(kind: SyntaxKind) -> bool {
19400        kind == SyntaxKind::COPY_OPTION
19401    }
19402    #[inline]
19403    fn cast(syntax: SyntaxNode) -> Option<Self> {
19404        if Self::can_cast(syntax.kind()) {
19405            Some(Self { syntax })
19406        } else {
19407            None
19408        }
19409    }
19410    #[inline]
19411    fn syntax(&self) -> &SyntaxNode {
19412        &self.syntax
19413    }
19414}
19415impl AstNode for CopyOptionList {
19416    #[inline]
19417    fn can_cast(kind: SyntaxKind) -> bool {
19418        kind == SyntaxKind::COPY_OPTION_LIST
19419    }
19420    #[inline]
19421    fn cast(syntax: SyntaxNode) -> Option<Self> {
19422        if Self::can_cast(syntax.kind()) {
19423            Some(Self { syntax })
19424        } else {
19425            None
19426        }
19427    }
19428    #[inline]
19429    fn syntax(&self) -> &SyntaxNode {
19430        &self.syntax
19431    }
19432}
19433impl AstNode for CostFuncOption {
19434    #[inline]
19435    fn can_cast(kind: SyntaxKind) -> bool {
19436        kind == SyntaxKind::COST_FUNC_OPTION
19437    }
19438    #[inline]
19439    fn cast(syntax: SyntaxNode) -> Option<Self> {
19440        if Self::can_cast(syntax.kind()) {
19441            Some(Self { syntax })
19442        } else {
19443            None
19444        }
19445    }
19446    #[inline]
19447    fn syntax(&self) -> &SyntaxNode {
19448        &self.syntax
19449    }
19450}
19451impl AstNode for CreateAccessMethod {
19452    #[inline]
19453    fn can_cast(kind: SyntaxKind) -> bool {
19454        kind == SyntaxKind::CREATE_ACCESS_METHOD
19455    }
19456    #[inline]
19457    fn cast(syntax: SyntaxNode) -> Option<Self> {
19458        if Self::can_cast(syntax.kind()) {
19459            Some(Self { syntax })
19460        } else {
19461            None
19462        }
19463    }
19464    #[inline]
19465    fn syntax(&self) -> &SyntaxNode {
19466        &self.syntax
19467    }
19468}
19469impl AstNode for CreateAggregate {
19470    #[inline]
19471    fn can_cast(kind: SyntaxKind) -> bool {
19472        kind == SyntaxKind::CREATE_AGGREGATE
19473    }
19474    #[inline]
19475    fn cast(syntax: SyntaxNode) -> Option<Self> {
19476        if Self::can_cast(syntax.kind()) {
19477            Some(Self { syntax })
19478        } else {
19479            None
19480        }
19481    }
19482    #[inline]
19483    fn syntax(&self) -> &SyntaxNode {
19484        &self.syntax
19485    }
19486}
19487impl AstNode for CreateCast {
19488    #[inline]
19489    fn can_cast(kind: SyntaxKind) -> bool {
19490        kind == SyntaxKind::CREATE_CAST
19491    }
19492    #[inline]
19493    fn cast(syntax: SyntaxNode) -> Option<Self> {
19494        if Self::can_cast(syntax.kind()) {
19495            Some(Self { syntax })
19496        } else {
19497            None
19498        }
19499    }
19500    #[inline]
19501    fn syntax(&self) -> &SyntaxNode {
19502        &self.syntax
19503    }
19504}
19505impl AstNode for CreateCollation {
19506    #[inline]
19507    fn can_cast(kind: SyntaxKind) -> bool {
19508        kind == SyntaxKind::CREATE_COLLATION
19509    }
19510    #[inline]
19511    fn cast(syntax: SyntaxNode) -> Option<Self> {
19512        if Self::can_cast(syntax.kind()) {
19513            Some(Self { syntax })
19514        } else {
19515            None
19516        }
19517    }
19518    #[inline]
19519    fn syntax(&self) -> &SyntaxNode {
19520        &self.syntax
19521    }
19522}
19523impl AstNode for CreateConversion {
19524    #[inline]
19525    fn can_cast(kind: SyntaxKind) -> bool {
19526        kind == SyntaxKind::CREATE_CONVERSION
19527    }
19528    #[inline]
19529    fn cast(syntax: SyntaxNode) -> Option<Self> {
19530        if Self::can_cast(syntax.kind()) {
19531            Some(Self { syntax })
19532        } else {
19533            None
19534        }
19535    }
19536    #[inline]
19537    fn syntax(&self) -> &SyntaxNode {
19538        &self.syntax
19539    }
19540}
19541impl AstNode for CreateDatabase {
19542    #[inline]
19543    fn can_cast(kind: SyntaxKind) -> bool {
19544        kind == SyntaxKind::CREATE_DATABASE
19545    }
19546    #[inline]
19547    fn cast(syntax: SyntaxNode) -> Option<Self> {
19548        if Self::can_cast(syntax.kind()) {
19549            Some(Self { syntax })
19550        } else {
19551            None
19552        }
19553    }
19554    #[inline]
19555    fn syntax(&self) -> &SyntaxNode {
19556        &self.syntax
19557    }
19558}
19559impl AstNode for CreateDatabaseOption {
19560    #[inline]
19561    fn can_cast(kind: SyntaxKind) -> bool {
19562        kind == SyntaxKind::CREATE_DATABASE_OPTION
19563    }
19564    #[inline]
19565    fn cast(syntax: SyntaxNode) -> Option<Self> {
19566        if Self::can_cast(syntax.kind()) {
19567            Some(Self { syntax })
19568        } else {
19569            None
19570        }
19571    }
19572    #[inline]
19573    fn syntax(&self) -> &SyntaxNode {
19574        &self.syntax
19575    }
19576}
19577impl AstNode for CreateDatabaseOptionList {
19578    #[inline]
19579    fn can_cast(kind: SyntaxKind) -> bool {
19580        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
19581    }
19582    #[inline]
19583    fn cast(syntax: SyntaxNode) -> Option<Self> {
19584        if Self::can_cast(syntax.kind()) {
19585            Some(Self { syntax })
19586        } else {
19587            None
19588        }
19589    }
19590    #[inline]
19591    fn syntax(&self) -> &SyntaxNode {
19592        &self.syntax
19593    }
19594}
19595impl AstNode for CreateDomain {
19596    #[inline]
19597    fn can_cast(kind: SyntaxKind) -> bool {
19598        kind == SyntaxKind::CREATE_DOMAIN
19599    }
19600    #[inline]
19601    fn cast(syntax: SyntaxNode) -> Option<Self> {
19602        if Self::can_cast(syntax.kind()) {
19603            Some(Self { syntax })
19604        } else {
19605            None
19606        }
19607    }
19608    #[inline]
19609    fn syntax(&self) -> &SyntaxNode {
19610        &self.syntax
19611    }
19612}
19613impl AstNode for CreateEventTrigger {
19614    #[inline]
19615    fn can_cast(kind: SyntaxKind) -> bool {
19616        kind == SyntaxKind::CREATE_EVENT_TRIGGER
19617    }
19618    #[inline]
19619    fn cast(syntax: SyntaxNode) -> Option<Self> {
19620        if Self::can_cast(syntax.kind()) {
19621            Some(Self { syntax })
19622        } else {
19623            None
19624        }
19625    }
19626    #[inline]
19627    fn syntax(&self) -> &SyntaxNode {
19628        &self.syntax
19629    }
19630}
19631impl AstNode for CreateExtension {
19632    #[inline]
19633    fn can_cast(kind: SyntaxKind) -> bool {
19634        kind == SyntaxKind::CREATE_EXTENSION
19635    }
19636    #[inline]
19637    fn cast(syntax: SyntaxNode) -> Option<Self> {
19638        if Self::can_cast(syntax.kind()) {
19639            Some(Self { syntax })
19640        } else {
19641            None
19642        }
19643    }
19644    #[inline]
19645    fn syntax(&self) -> &SyntaxNode {
19646        &self.syntax
19647    }
19648}
19649impl AstNode for CreateForeignDataWrapper {
19650    #[inline]
19651    fn can_cast(kind: SyntaxKind) -> bool {
19652        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
19653    }
19654    #[inline]
19655    fn cast(syntax: SyntaxNode) -> Option<Self> {
19656        if Self::can_cast(syntax.kind()) {
19657            Some(Self { syntax })
19658        } else {
19659            None
19660        }
19661    }
19662    #[inline]
19663    fn syntax(&self) -> &SyntaxNode {
19664        &self.syntax
19665    }
19666}
19667impl AstNode for CreateForeignTable {
19668    #[inline]
19669    fn can_cast(kind: SyntaxKind) -> bool {
19670        kind == SyntaxKind::CREATE_FOREIGN_TABLE
19671    }
19672    #[inline]
19673    fn cast(syntax: SyntaxNode) -> Option<Self> {
19674        if Self::can_cast(syntax.kind()) {
19675            Some(Self { syntax })
19676        } else {
19677            None
19678        }
19679    }
19680    #[inline]
19681    fn syntax(&self) -> &SyntaxNode {
19682        &self.syntax
19683    }
19684}
19685impl AstNode for CreateFunction {
19686    #[inline]
19687    fn can_cast(kind: SyntaxKind) -> bool {
19688        kind == SyntaxKind::CREATE_FUNCTION
19689    }
19690    #[inline]
19691    fn cast(syntax: SyntaxNode) -> Option<Self> {
19692        if Self::can_cast(syntax.kind()) {
19693            Some(Self { syntax })
19694        } else {
19695            None
19696        }
19697    }
19698    #[inline]
19699    fn syntax(&self) -> &SyntaxNode {
19700        &self.syntax
19701    }
19702}
19703impl AstNode for CreateGroup {
19704    #[inline]
19705    fn can_cast(kind: SyntaxKind) -> bool {
19706        kind == SyntaxKind::CREATE_GROUP
19707    }
19708    #[inline]
19709    fn cast(syntax: SyntaxNode) -> Option<Self> {
19710        if Self::can_cast(syntax.kind()) {
19711            Some(Self { syntax })
19712        } else {
19713            None
19714        }
19715    }
19716    #[inline]
19717    fn syntax(&self) -> &SyntaxNode {
19718        &self.syntax
19719    }
19720}
19721impl AstNode for CreateIndex {
19722    #[inline]
19723    fn can_cast(kind: SyntaxKind) -> bool {
19724        kind == SyntaxKind::CREATE_INDEX
19725    }
19726    #[inline]
19727    fn cast(syntax: SyntaxNode) -> Option<Self> {
19728        if Self::can_cast(syntax.kind()) {
19729            Some(Self { syntax })
19730        } else {
19731            None
19732        }
19733    }
19734    #[inline]
19735    fn syntax(&self) -> &SyntaxNode {
19736        &self.syntax
19737    }
19738}
19739impl AstNode for CreateLanguage {
19740    #[inline]
19741    fn can_cast(kind: SyntaxKind) -> bool {
19742        kind == SyntaxKind::CREATE_LANGUAGE
19743    }
19744    #[inline]
19745    fn cast(syntax: SyntaxNode) -> Option<Self> {
19746        if Self::can_cast(syntax.kind()) {
19747            Some(Self { syntax })
19748        } else {
19749            None
19750        }
19751    }
19752    #[inline]
19753    fn syntax(&self) -> &SyntaxNode {
19754        &self.syntax
19755    }
19756}
19757impl AstNode for CreateMaterializedView {
19758    #[inline]
19759    fn can_cast(kind: SyntaxKind) -> bool {
19760        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
19761    }
19762    #[inline]
19763    fn cast(syntax: SyntaxNode) -> Option<Self> {
19764        if Self::can_cast(syntax.kind()) {
19765            Some(Self { syntax })
19766        } else {
19767            None
19768        }
19769    }
19770    #[inline]
19771    fn syntax(&self) -> &SyntaxNode {
19772        &self.syntax
19773    }
19774}
19775impl AstNode for CreateOperator {
19776    #[inline]
19777    fn can_cast(kind: SyntaxKind) -> bool {
19778        kind == SyntaxKind::CREATE_OPERATOR
19779    }
19780    #[inline]
19781    fn cast(syntax: SyntaxNode) -> Option<Self> {
19782        if Self::can_cast(syntax.kind()) {
19783            Some(Self { syntax })
19784        } else {
19785            None
19786        }
19787    }
19788    #[inline]
19789    fn syntax(&self) -> &SyntaxNode {
19790        &self.syntax
19791    }
19792}
19793impl AstNode for CreateOperatorClass {
19794    #[inline]
19795    fn can_cast(kind: SyntaxKind) -> bool {
19796        kind == SyntaxKind::CREATE_OPERATOR_CLASS
19797    }
19798    #[inline]
19799    fn cast(syntax: SyntaxNode) -> Option<Self> {
19800        if Self::can_cast(syntax.kind()) {
19801            Some(Self { syntax })
19802        } else {
19803            None
19804        }
19805    }
19806    #[inline]
19807    fn syntax(&self) -> &SyntaxNode {
19808        &self.syntax
19809    }
19810}
19811impl AstNode for CreateOperatorFamily {
19812    #[inline]
19813    fn can_cast(kind: SyntaxKind) -> bool {
19814        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
19815    }
19816    #[inline]
19817    fn cast(syntax: SyntaxNode) -> Option<Self> {
19818        if Self::can_cast(syntax.kind()) {
19819            Some(Self { syntax })
19820        } else {
19821            None
19822        }
19823    }
19824    #[inline]
19825    fn syntax(&self) -> &SyntaxNode {
19826        &self.syntax
19827    }
19828}
19829impl AstNode for CreatePolicy {
19830    #[inline]
19831    fn can_cast(kind: SyntaxKind) -> bool {
19832        kind == SyntaxKind::CREATE_POLICY
19833    }
19834    #[inline]
19835    fn cast(syntax: SyntaxNode) -> Option<Self> {
19836        if Self::can_cast(syntax.kind()) {
19837            Some(Self { syntax })
19838        } else {
19839            None
19840        }
19841    }
19842    #[inline]
19843    fn syntax(&self) -> &SyntaxNode {
19844        &self.syntax
19845    }
19846}
19847impl AstNode for CreateProcedure {
19848    #[inline]
19849    fn can_cast(kind: SyntaxKind) -> bool {
19850        kind == SyntaxKind::CREATE_PROCEDURE
19851    }
19852    #[inline]
19853    fn cast(syntax: SyntaxNode) -> Option<Self> {
19854        if Self::can_cast(syntax.kind()) {
19855            Some(Self { syntax })
19856        } else {
19857            None
19858        }
19859    }
19860    #[inline]
19861    fn syntax(&self) -> &SyntaxNode {
19862        &self.syntax
19863    }
19864}
19865impl AstNode for CreatePublication {
19866    #[inline]
19867    fn can_cast(kind: SyntaxKind) -> bool {
19868        kind == SyntaxKind::CREATE_PUBLICATION
19869    }
19870    #[inline]
19871    fn cast(syntax: SyntaxNode) -> Option<Self> {
19872        if Self::can_cast(syntax.kind()) {
19873            Some(Self { syntax })
19874        } else {
19875            None
19876        }
19877    }
19878    #[inline]
19879    fn syntax(&self) -> &SyntaxNode {
19880        &self.syntax
19881    }
19882}
19883impl AstNode for CreateRole {
19884    #[inline]
19885    fn can_cast(kind: SyntaxKind) -> bool {
19886        kind == SyntaxKind::CREATE_ROLE
19887    }
19888    #[inline]
19889    fn cast(syntax: SyntaxNode) -> Option<Self> {
19890        if Self::can_cast(syntax.kind()) {
19891            Some(Self { syntax })
19892        } else {
19893            None
19894        }
19895    }
19896    #[inline]
19897    fn syntax(&self) -> &SyntaxNode {
19898        &self.syntax
19899    }
19900}
19901impl AstNode for CreateRule {
19902    #[inline]
19903    fn can_cast(kind: SyntaxKind) -> bool {
19904        kind == SyntaxKind::CREATE_RULE
19905    }
19906    #[inline]
19907    fn cast(syntax: SyntaxNode) -> Option<Self> {
19908        if Self::can_cast(syntax.kind()) {
19909            Some(Self { syntax })
19910        } else {
19911            None
19912        }
19913    }
19914    #[inline]
19915    fn syntax(&self) -> &SyntaxNode {
19916        &self.syntax
19917    }
19918}
19919impl AstNode for CreateSchema {
19920    #[inline]
19921    fn can_cast(kind: SyntaxKind) -> bool {
19922        kind == SyntaxKind::CREATE_SCHEMA
19923    }
19924    #[inline]
19925    fn cast(syntax: SyntaxNode) -> Option<Self> {
19926        if Self::can_cast(syntax.kind()) {
19927            Some(Self { syntax })
19928        } else {
19929            None
19930        }
19931    }
19932    #[inline]
19933    fn syntax(&self) -> &SyntaxNode {
19934        &self.syntax
19935    }
19936}
19937impl AstNode for CreateSequence {
19938    #[inline]
19939    fn can_cast(kind: SyntaxKind) -> bool {
19940        kind == SyntaxKind::CREATE_SEQUENCE
19941    }
19942    #[inline]
19943    fn cast(syntax: SyntaxNode) -> Option<Self> {
19944        if Self::can_cast(syntax.kind()) {
19945            Some(Self { syntax })
19946        } else {
19947            None
19948        }
19949    }
19950    #[inline]
19951    fn syntax(&self) -> &SyntaxNode {
19952        &self.syntax
19953    }
19954}
19955impl AstNode for CreateServer {
19956    #[inline]
19957    fn can_cast(kind: SyntaxKind) -> bool {
19958        kind == SyntaxKind::CREATE_SERVER
19959    }
19960    #[inline]
19961    fn cast(syntax: SyntaxNode) -> Option<Self> {
19962        if Self::can_cast(syntax.kind()) {
19963            Some(Self { syntax })
19964        } else {
19965            None
19966        }
19967    }
19968    #[inline]
19969    fn syntax(&self) -> &SyntaxNode {
19970        &self.syntax
19971    }
19972}
19973impl AstNode for CreateStatistics {
19974    #[inline]
19975    fn can_cast(kind: SyntaxKind) -> bool {
19976        kind == SyntaxKind::CREATE_STATISTICS
19977    }
19978    #[inline]
19979    fn cast(syntax: SyntaxNode) -> Option<Self> {
19980        if Self::can_cast(syntax.kind()) {
19981            Some(Self { syntax })
19982        } else {
19983            None
19984        }
19985    }
19986    #[inline]
19987    fn syntax(&self) -> &SyntaxNode {
19988        &self.syntax
19989    }
19990}
19991impl AstNode for CreateSubscription {
19992    #[inline]
19993    fn can_cast(kind: SyntaxKind) -> bool {
19994        kind == SyntaxKind::CREATE_SUBSCRIPTION
19995    }
19996    #[inline]
19997    fn cast(syntax: SyntaxNode) -> Option<Self> {
19998        if Self::can_cast(syntax.kind()) {
19999            Some(Self { syntax })
20000        } else {
20001            None
20002        }
20003    }
20004    #[inline]
20005    fn syntax(&self) -> &SyntaxNode {
20006        &self.syntax
20007    }
20008}
20009impl AstNode for CreateTable {
20010    #[inline]
20011    fn can_cast(kind: SyntaxKind) -> bool {
20012        kind == SyntaxKind::CREATE_TABLE
20013    }
20014    #[inline]
20015    fn cast(syntax: SyntaxNode) -> Option<Self> {
20016        if Self::can_cast(syntax.kind()) {
20017            Some(Self { syntax })
20018        } else {
20019            None
20020        }
20021    }
20022    #[inline]
20023    fn syntax(&self) -> &SyntaxNode {
20024        &self.syntax
20025    }
20026}
20027impl AstNode for CreateTableAs {
20028    #[inline]
20029    fn can_cast(kind: SyntaxKind) -> bool {
20030        kind == SyntaxKind::CREATE_TABLE_AS
20031    }
20032    #[inline]
20033    fn cast(syntax: SyntaxNode) -> Option<Self> {
20034        if Self::can_cast(syntax.kind()) {
20035            Some(Self { syntax })
20036        } else {
20037            None
20038        }
20039    }
20040    #[inline]
20041    fn syntax(&self) -> &SyntaxNode {
20042        &self.syntax
20043    }
20044}
20045impl AstNode for CreateTablespace {
20046    #[inline]
20047    fn can_cast(kind: SyntaxKind) -> bool {
20048        kind == SyntaxKind::CREATE_TABLESPACE
20049    }
20050    #[inline]
20051    fn cast(syntax: SyntaxNode) -> Option<Self> {
20052        if Self::can_cast(syntax.kind()) {
20053            Some(Self { syntax })
20054        } else {
20055            None
20056        }
20057    }
20058    #[inline]
20059    fn syntax(&self) -> &SyntaxNode {
20060        &self.syntax
20061    }
20062}
20063impl AstNode for CreateTextSearchConfiguration {
20064    #[inline]
20065    fn can_cast(kind: SyntaxKind) -> bool {
20066        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
20067    }
20068    #[inline]
20069    fn cast(syntax: SyntaxNode) -> Option<Self> {
20070        if Self::can_cast(syntax.kind()) {
20071            Some(Self { syntax })
20072        } else {
20073            None
20074        }
20075    }
20076    #[inline]
20077    fn syntax(&self) -> &SyntaxNode {
20078        &self.syntax
20079    }
20080}
20081impl AstNode for CreateTextSearchDictionary {
20082    #[inline]
20083    fn can_cast(kind: SyntaxKind) -> bool {
20084        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
20085    }
20086    #[inline]
20087    fn cast(syntax: SyntaxNode) -> Option<Self> {
20088        if Self::can_cast(syntax.kind()) {
20089            Some(Self { syntax })
20090        } else {
20091            None
20092        }
20093    }
20094    #[inline]
20095    fn syntax(&self) -> &SyntaxNode {
20096        &self.syntax
20097    }
20098}
20099impl AstNode for CreateTextSearchParser {
20100    #[inline]
20101    fn can_cast(kind: SyntaxKind) -> bool {
20102        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
20103    }
20104    #[inline]
20105    fn cast(syntax: SyntaxNode) -> Option<Self> {
20106        if Self::can_cast(syntax.kind()) {
20107            Some(Self { syntax })
20108        } else {
20109            None
20110        }
20111    }
20112    #[inline]
20113    fn syntax(&self) -> &SyntaxNode {
20114        &self.syntax
20115    }
20116}
20117impl AstNode for CreateTextSearchTemplate {
20118    #[inline]
20119    fn can_cast(kind: SyntaxKind) -> bool {
20120        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
20121    }
20122    #[inline]
20123    fn cast(syntax: SyntaxNode) -> Option<Self> {
20124        if Self::can_cast(syntax.kind()) {
20125            Some(Self { syntax })
20126        } else {
20127            None
20128        }
20129    }
20130    #[inline]
20131    fn syntax(&self) -> &SyntaxNode {
20132        &self.syntax
20133    }
20134}
20135impl AstNode for CreateTransform {
20136    #[inline]
20137    fn can_cast(kind: SyntaxKind) -> bool {
20138        kind == SyntaxKind::CREATE_TRANSFORM
20139    }
20140    #[inline]
20141    fn cast(syntax: SyntaxNode) -> Option<Self> {
20142        if Self::can_cast(syntax.kind()) {
20143            Some(Self { syntax })
20144        } else {
20145            None
20146        }
20147    }
20148    #[inline]
20149    fn syntax(&self) -> &SyntaxNode {
20150        &self.syntax
20151    }
20152}
20153impl AstNode for CreateTrigger {
20154    #[inline]
20155    fn can_cast(kind: SyntaxKind) -> bool {
20156        kind == SyntaxKind::CREATE_TRIGGER
20157    }
20158    #[inline]
20159    fn cast(syntax: SyntaxNode) -> Option<Self> {
20160        if Self::can_cast(syntax.kind()) {
20161            Some(Self { syntax })
20162        } else {
20163            None
20164        }
20165    }
20166    #[inline]
20167    fn syntax(&self) -> &SyntaxNode {
20168        &self.syntax
20169    }
20170}
20171impl AstNode for CreateType {
20172    #[inline]
20173    fn can_cast(kind: SyntaxKind) -> bool {
20174        kind == SyntaxKind::CREATE_TYPE
20175    }
20176    #[inline]
20177    fn cast(syntax: SyntaxNode) -> Option<Self> {
20178        if Self::can_cast(syntax.kind()) {
20179            Some(Self { syntax })
20180        } else {
20181            None
20182        }
20183    }
20184    #[inline]
20185    fn syntax(&self) -> &SyntaxNode {
20186        &self.syntax
20187    }
20188}
20189impl AstNode for CreateUser {
20190    #[inline]
20191    fn can_cast(kind: SyntaxKind) -> bool {
20192        kind == SyntaxKind::CREATE_USER
20193    }
20194    #[inline]
20195    fn cast(syntax: SyntaxNode) -> Option<Self> {
20196        if Self::can_cast(syntax.kind()) {
20197            Some(Self { syntax })
20198        } else {
20199            None
20200        }
20201    }
20202    #[inline]
20203    fn syntax(&self) -> &SyntaxNode {
20204        &self.syntax
20205    }
20206}
20207impl AstNode for CreateUserMapping {
20208    #[inline]
20209    fn can_cast(kind: SyntaxKind) -> bool {
20210        kind == SyntaxKind::CREATE_USER_MAPPING
20211    }
20212    #[inline]
20213    fn cast(syntax: SyntaxNode) -> Option<Self> {
20214        if Self::can_cast(syntax.kind()) {
20215            Some(Self { syntax })
20216        } else {
20217            None
20218        }
20219    }
20220    #[inline]
20221    fn syntax(&self) -> &SyntaxNode {
20222        &self.syntax
20223    }
20224}
20225impl AstNode for CreateView {
20226    #[inline]
20227    fn can_cast(kind: SyntaxKind) -> bool {
20228        kind == SyntaxKind::CREATE_VIEW
20229    }
20230    #[inline]
20231    fn cast(syntax: SyntaxNode) -> Option<Self> {
20232        if Self::can_cast(syntax.kind()) {
20233            Some(Self { syntax })
20234        } else {
20235            None
20236        }
20237    }
20238    #[inline]
20239    fn syntax(&self) -> &SyntaxNode {
20240        &self.syntax
20241    }
20242}
20243impl AstNode for CustomOp {
20244    #[inline]
20245    fn can_cast(kind: SyntaxKind) -> bool {
20246        kind == SyntaxKind::CUSTOM_OP
20247    }
20248    #[inline]
20249    fn cast(syntax: SyntaxNode) -> Option<Self> {
20250        if Self::can_cast(syntax.kind()) {
20251            Some(Self { syntax })
20252        } else {
20253            None
20254        }
20255    }
20256    #[inline]
20257    fn syntax(&self) -> &SyntaxNode {
20258        &self.syntax
20259    }
20260}
20261impl AstNode for Deallocate {
20262    #[inline]
20263    fn can_cast(kind: SyntaxKind) -> bool {
20264        kind == SyntaxKind::DEALLOCATE
20265    }
20266    #[inline]
20267    fn cast(syntax: SyntaxNode) -> Option<Self> {
20268        if Self::can_cast(syntax.kind()) {
20269            Some(Self { syntax })
20270        } else {
20271            None
20272        }
20273    }
20274    #[inline]
20275    fn syntax(&self) -> &SyntaxNode {
20276        &self.syntax
20277    }
20278}
20279impl AstNode for Declare {
20280    #[inline]
20281    fn can_cast(kind: SyntaxKind) -> bool {
20282        kind == SyntaxKind::DECLARE
20283    }
20284    #[inline]
20285    fn cast(syntax: SyntaxNode) -> Option<Self> {
20286        if Self::can_cast(syntax.kind()) {
20287            Some(Self { syntax })
20288        } else {
20289            None
20290        }
20291    }
20292    #[inline]
20293    fn syntax(&self) -> &SyntaxNode {
20294        &self.syntax
20295    }
20296}
20297impl AstNode for DefaultConstraint {
20298    #[inline]
20299    fn can_cast(kind: SyntaxKind) -> bool {
20300        kind == SyntaxKind::DEFAULT_CONSTRAINT
20301    }
20302    #[inline]
20303    fn cast(syntax: SyntaxNode) -> Option<Self> {
20304        if Self::can_cast(syntax.kind()) {
20305            Some(Self { syntax })
20306        } else {
20307            None
20308        }
20309    }
20310    #[inline]
20311    fn syntax(&self) -> &SyntaxNode {
20312        &self.syntax
20313    }
20314}
20315impl AstNode for Deferrable {
20316    #[inline]
20317    fn can_cast(kind: SyntaxKind) -> bool {
20318        kind == SyntaxKind::DEFERRABLE
20319    }
20320    #[inline]
20321    fn cast(syntax: SyntaxNode) -> Option<Self> {
20322        if Self::can_cast(syntax.kind()) {
20323            Some(Self { syntax })
20324        } else {
20325            None
20326        }
20327    }
20328    #[inline]
20329    fn syntax(&self) -> &SyntaxNode {
20330        &self.syntax
20331    }
20332}
20333impl AstNode for DeferrableConstraintOption {
20334    #[inline]
20335    fn can_cast(kind: SyntaxKind) -> bool {
20336        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
20337    }
20338    #[inline]
20339    fn cast(syntax: SyntaxNode) -> Option<Self> {
20340        if Self::can_cast(syntax.kind()) {
20341            Some(Self { syntax })
20342        } else {
20343            None
20344        }
20345    }
20346    #[inline]
20347    fn syntax(&self) -> &SyntaxNode {
20348        &self.syntax
20349    }
20350}
20351impl AstNode for Delete {
20352    #[inline]
20353    fn can_cast(kind: SyntaxKind) -> bool {
20354        kind == SyntaxKind::DELETE
20355    }
20356    #[inline]
20357    fn cast(syntax: SyntaxNode) -> Option<Self> {
20358        if Self::can_cast(syntax.kind()) {
20359            Some(Self { syntax })
20360        } else {
20361            None
20362        }
20363    }
20364    #[inline]
20365    fn syntax(&self) -> &SyntaxNode {
20366        &self.syntax
20367    }
20368}
20369impl AstNode for DeleteRows {
20370    #[inline]
20371    fn can_cast(kind: SyntaxKind) -> bool {
20372        kind == SyntaxKind::DELETE_ROWS
20373    }
20374    #[inline]
20375    fn cast(syntax: SyntaxNode) -> Option<Self> {
20376        if Self::can_cast(syntax.kind()) {
20377            Some(Self { syntax })
20378        } else {
20379            None
20380        }
20381    }
20382    #[inline]
20383    fn syntax(&self) -> &SyntaxNode {
20384        &self.syntax
20385    }
20386}
20387impl AstNode for DependsOnExtension {
20388    #[inline]
20389    fn can_cast(kind: SyntaxKind) -> bool {
20390        kind == SyntaxKind::DEPENDS_ON_EXTENSION
20391    }
20392    #[inline]
20393    fn cast(syntax: SyntaxNode) -> Option<Self> {
20394        if Self::can_cast(syntax.kind()) {
20395            Some(Self { syntax })
20396        } else {
20397            None
20398        }
20399    }
20400    #[inline]
20401    fn syntax(&self) -> &SyntaxNode {
20402        &self.syntax
20403    }
20404}
20405impl AstNode for DetachPartition {
20406    #[inline]
20407    fn can_cast(kind: SyntaxKind) -> bool {
20408        kind == SyntaxKind::DETACH_PARTITION
20409    }
20410    #[inline]
20411    fn cast(syntax: SyntaxNode) -> Option<Self> {
20412        if Self::can_cast(syntax.kind()) {
20413            Some(Self { syntax })
20414        } else {
20415            None
20416        }
20417    }
20418    #[inline]
20419    fn syntax(&self) -> &SyntaxNode {
20420        &self.syntax
20421    }
20422}
20423impl AstNode for DisableRls {
20424    #[inline]
20425    fn can_cast(kind: SyntaxKind) -> bool {
20426        kind == SyntaxKind::DISABLE_RLS
20427    }
20428    #[inline]
20429    fn cast(syntax: SyntaxNode) -> Option<Self> {
20430        if Self::can_cast(syntax.kind()) {
20431            Some(Self { syntax })
20432        } else {
20433            None
20434        }
20435    }
20436    #[inline]
20437    fn syntax(&self) -> &SyntaxNode {
20438        &self.syntax
20439    }
20440}
20441impl AstNode for DisableRule {
20442    #[inline]
20443    fn can_cast(kind: SyntaxKind) -> bool {
20444        kind == SyntaxKind::DISABLE_RULE
20445    }
20446    #[inline]
20447    fn cast(syntax: SyntaxNode) -> Option<Self> {
20448        if Self::can_cast(syntax.kind()) {
20449            Some(Self { syntax })
20450        } else {
20451            None
20452        }
20453    }
20454    #[inline]
20455    fn syntax(&self) -> &SyntaxNode {
20456        &self.syntax
20457    }
20458}
20459impl AstNode for DisableTrigger {
20460    #[inline]
20461    fn can_cast(kind: SyntaxKind) -> bool {
20462        kind == SyntaxKind::DISABLE_TRIGGER
20463    }
20464    #[inline]
20465    fn cast(syntax: SyntaxNode) -> Option<Self> {
20466        if Self::can_cast(syntax.kind()) {
20467            Some(Self { syntax })
20468        } else {
20469            None
20470        }
20471    }
20472    #[inline]
20473    fn syntax(&self) -> &SyntaxNode {
20474        &self.syntax
20475    }
20476}
20477impl AstNode for Discard {
20478    #[inline]
20479    fn can_cast(kind: SyntaxKind) -> bool {
20480        kind == SyntaxKind::DISCARD
20481    }
20482    #[inline]
20483    fn cast(syntax: SyntaxNode) -> Option<Self> {
20484        if Self::can_cast(syntax.kind()) {
20485            Some(Self { syntax })
20486        } else {
20487            None
20488        }
20489    }
20490    #[inline]
20491    fn syntax(&self) -> &SyntaxNode {
20492        &self.syntax
20493    }
20494}
20495impl AstNode for DistinctClause {
20496    #[inline]
20497    fn can_cast(kind: SyntaxKind) -> bool {
20498        kind == SyntaxKind::DISTINCT_CLAUSE
20499    }
20500    #[inline]
20501    fn cast(syntax: SyntaxNode) -> Option<Self> {
20502        if Self::can_cast(syntax.kind()) {
20503            Some(Self { syntax })
20504        } else {
20505            None
20506        }
20507    }
20508    #[inline]
20509    fn syntax(&self) -> &SyntaxNode {
20510        &self.syntax
20511    }
20512}
20513impl AstNode for Do {
20514    #[inline]
20515    fn can_cast(kind: SyntaxKind) -> bool {
20516        kind == SyntaxKind::DO
20517    }
20518    #[inline]
20519    fn cast(syntax: SyntaxNode) -> Option<Self> {
20520        if Self::can_cast(syntax.kind()) {
20521            Some(Self { syntax })
20522        } else {
20523            None
20524        }
20525    }
20526    #[inline]
20527    fn syntax(&self) -> &SyntaxNode {
20528        &self.syntax
20529    }
20530}
20531impl AstNode for DoubleType {
20532    #[inline]
20533    fn can_cast(kind: SyntaxKind) -> bool {
20534        kind == SyntaxKind::DOUBLE_TYPE
20535    }
20536    #[inline]
20537    fn cast(syntax: SyntaxNode) -> Option<Self> {
20538        if Self::can_cast(syntax.kind()) {
20539            Some(Self { syntax })
20540        } else {
20541            None
20542        }
20543    }
20544    #[inline]
20545    fn syntax(&self) -> &SyntaxNode {
20546        &self.syntax
20547    }
20548}
20549impl AstNode for Drop {
20550    #[inline]
20551    fn can_cast(kind: SyntaxKind) -> bool {
20552        kind == SyntaxKind::DROP
20553    }
20554    #[inline]
20555    fn cast(syntax: SyntaxNode) -> Option<Self> {
20556        if Self::can_cast(syntax.kind()) {
20557            Some(Self { syntax })
20558        } else {
20559            None
20560        }
20561    }
20562    #[inline]
20563    fn syntax(&self) -> &SyntaxNode {
20564        &self.syntax
20565    }
20566}
20567impl AstNode for DropAccessMethod {
20568    #[inline]
20569    fn can_cast(kind: SyntaxKind) -> bool {
20570        kind == SyntaxKind::DROP_ACCESS_METHOD
20571    }
20572    #[inline]
20573    fn cast(syntax: SyntaxNode) -> Option<Self> {
20574        if Self::can_cast(syntax.kind()) {
20575            Some(Self { syntax })
20576        } else {
20577            None
20578        }
20579    }
20580    #[inline]
20581    fn syntax(&self) -> &SyntaxNode {
20582        &self.syntax
20583    }
20584}
20585impl AstNode for DropAggregate {
20586    #[inline]
20587    fn can_cast(kind: SyntaxKind) -> bool {
20588        kind == SyntaxKind::DROP_AGGREGATE
20589    }
20590    #[inline]
20591    fn cast(syntax: SyntaxNode) -> Option<Self> {
20592        if Self::can_cast(syntax.kind()) {
20593            Some(Self { syntax })
20594        } else {
20595            None
20596        }
20597    }
20598    #[inline]
20599    fn syntax(&self) -> &SyntaxNode {
20600        &self.syntax
20601    }
20602}
20603impl AstNode for DropCast {
20604    #[inline]
20605    fn can_cast(kind: SyntaxKind) -> bool {
20606        kind == SyntaxKind::DROP_CAST
20607    }
20608    #[inline]
20609    fn cast(syntax: SyntaxNode) -> Option<Self> {
20610        if Self::can_cast(syntax.kind()) {
20611            Some(Self { syntax })
20612        } else {
20613            None
20614        }
20615    }
20616    #[inline]
20617    fn syntax(&self) -> &SyntaxNode {
20618        &self.syntax
20619    }
20620}
20621impl AstNode for DropCollation {
20622    #[inline]
20623    fn can_cast(kind: SyntaxKind) -> bool {
20624        kind == SyntaxKind::DROP_COLLATION
20625    }
20626    #[inline]
20627    fn cast(syntax: SyntaxNode) -> Option<Self> {
20628        if Self::can_cast(syntax.kind()) {
20629            Some(Self { syntax })
20630        } else {
20631            None
20632        }
20633    }
20634    #[inline]
20635    fn syntax(&self) -> &SyntaxNode {
20636        &self.syntax
20637    }
20638}
20639impl AstNode for DropColumn {
20640    #[inline]
20641    fn can_cast(kind: SyntaxKind) -> bool {
20642        kind == SyntaxKind::DROP_COLUMN
20643    }
20644    #[inline]
20645    fn cast(syntax: SyntaxNode) -> Option<Self> {
20646        if Self::can_cast(syntax.kind()) {
20647            Some(Self { syntax })
20648        } else {
20649            None
20650        }
20651    }
20652    #[inline]
20653    fn syntax(&self) -> &SyntaxNode {
20654        &self.syntax
20655    }
20656}
20657impl AstNode for DropConstraint {
20658    #[inline]
20659    fn can_cast(kind: SyntaxKind) -> bool {
20660        kind == SyntaxKind::DROP_CONSTRAINT
20661    }
20662    #[inline]
20663    fn cast(syntax: SyntaxNode) -> Option<Self> {
20664        if Self::can_cast(syntax.kind()) {
20665            Some(Self { syntax })
20666        } else {
20667            None
20668        }
20669    }
20670    #[inline]
20671    fn syntax(&self) -> &SyntaxNode {
20672        &self.syntax
20673    }
20674}
20675impl AstNode for DropConversion {
20676    #[inline]
20677    fn can_cast(kind: SyntaxKind) -> bool {
20678        kind == SyntaxKind::DROP_CONVERSION
20679    }
20680    #[inline]
20681    fn cast(syntax: SyntaxNode) -> Option<Self> {
20682        if Self::can_cast(syntax.kind()) {
20683            Some(Self { syntax })
20684        } else {
20685            None
20686        }
20687    }
20688    #[inline]
20689    fn syntax(&self) -> &SyntaxNode {
20690        &self.syntax
20691    }
20692}
20693impl AstNode for DropDatabase {
20694    #[inline]
20695    fn can_cast(kind: SyntaxKind) -> bool {
20696        kind == SyntaxKind::DROP_DATABASE
20697    }
20698    #[inline]
20699    fn cast(syntax: SyntaxNode) -> Option<Self> {
20700        if Self::can_cast(syntax.kind()) {
20701            Some(Self { syntax })
20702        } else {
20703            None
20704        }
20705    }
20706    #[inline]
20707    fn syntax(&self) -> &SyntaxNode {
20708        &self.syntax
20709    }
20710}
20711impl AstNode for DropDefault {
20712    #[inline]
20713    fn can_cast(kind: SyntaxKind) -> bool {
20714        kind == SyntaxKind::DROP_DEFAULT
20715    }
20716    #[inline]
20717    fn cast(syntax: SyntaxNode) -> Option<Self> {
20718        if Self::can_cast(syntax.kind()) {
20719            Some(Self { syntax })
20720        } else {
20721            None
20722        }
20723    }
20724    #[inline]
20725    fn syntax(&self) -> &SyntaxNode {
20726        &self.syntax
20727    }
20728}
20729impl AstNode for DropDomain {
20730    #[inline]
20731    fn can_cast(kind: SyntaxKind) -> bool {
20732        kind == SyntaxKind::DROP_DOMAIN
20733    }
20734    #[inline]
20735    fn cast(syntax: SyntaxNode) -> Option<Self> {
20736        if Self::can_cast(syntax.kind()) {
20737            Some(Self { syntax })
20738        } else {
20739            None
20740        }
20741    }
20742    #[inline]
20743    fn syntax(&self) -> &SyntaxNode {
20744        &self.syntax
20745    }
20746}
20747impl AstNode for DropEventTrigger {
20748    #[inline]
20749    fn can_cast(kind: SyntaxKind) -> bool {
20750        kind == SyntaxKind::DROP_EVENT_TRIGGER
20751    }
20752    #[inline]
20753    fn cast(syntax: SyntaxNode) -> Option<Self> {
20754        if Self::can_cast(syntax.kind()) {
20755            Some(Self { syntax })
20756        } else {
20757            None
20758        }
20759    }
20760    #[inline]
20761    fn syntax(&self) -> &SyntaxNode {
20762        &self.syntax
20763    }
20764}
20765impl AstNode for DropExpression {
20766    #[inline]
20767    fn can_cast(kind: SyntaxKind) -> bool {
20768        kind == SyntaxKind::DROP_EXPRESSION
20769    }
20770    #[inline]
20771    fn cast(syntax: SyntaxNode) -> Option<Self> {
20772        if Self::can_cast(syntax.kind()) {
20773            Some(Self { syntax })
20774        } else {
20775            None
20776        }
20777    }
20778    #[inline]
20779    fn syntax(&self) -> &SyntaxNode {
20780        &self.syntax
20781    }
20782}
20783impl AstNode for DropExtension {
20784    #[inline]
20785    fn can_cast(kind: SyntaxKind) -> bool {
20786        kind == SyntaxKind::DROP_EXTENSION
20787    }
20788    #[inline]
20789    fn cast(syntax: SyntaxNode) -> Option<Self> {
20790        if Self::can_cast(syntax.kind()) {
20791            Some(Self { syntax })
20792        } else {
20793            None
20794        }
20795    }
20796    #[inline]
20797    fn syntax(&self) -> &SyntaxNode {
20798        &self.syntax
20799    }
20800}
20801impl AstNode for DropForeignDataWrapper {
20802    #[inline]
20803    fn can_cast(kind: SyntaxKind) -> bool {
20804        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
20805    }
20806    #[inline]
20807    fn cast(syntax: SyntaxNode) -> Option<Self> {
20808        if Self::can_cast(syntax.kind()) {
20809            Some(Self { syntax })
20810        } else {
20811            None
20812        }
20813    }
20814    #[inline]
20815    fn syntax(&self) -> &SyntaxNode {
20816        &self.syntax
20817    }
20818}
20819impl AstNode for DropForeignTable {
20820    #[inline]
20821    fn can_cast(kind: SyntaxKind) -> bool {
20822        kind == SyntaxKind::DROP_FOREIGN_TABLE
20823    }
20824    #[inline]
20825    fn cast(syntax: SyntaxNode) -> Option<Self> {
20826        if Self::can_cast(syntax.kind()) {
20827            Some(Self { syntax })
20828        } else {
20829            None
20830        }
20831    }
20832    #[inline]
20833    fn syntax(&self) -> &SyntaxNode {
20834        &self.syntax
20835    }
20836}
20837impl AstNode for DropFunction {
20838    #[inline]
20839    fn can_cast(kind: SyntaxKind) -> bool {
20840        kind == SyntaxKind::DROP_FUNCTION
20841    }
20842    #[inline]
20843    fn cast(syntax: SyntaxNode) -> Option<Self> {
20844        if Self::can_cast(syntax.kind()) {
20845            Some(Self { syntax })
20846        } else {
20847            None
20848        }
20849    }
20850    #[inline]
20851    fn syntax(&self) -> &SyntaxNode {
20852        &self.syntax
20853    }
20854}
20855impl AstNode for DropGroup {
20856    #[inline]
20857    fn can_cast(kind: SyntaxKind) -> bool {
20858        kind == SyntaxKind::DROP_GROUP
20859    }
20860    #[inline]
20861    fn cast(syntax: SyntaxNode) -> Option<Self> {
20862        if Self::can_cast(syntax.kind()) {
20863            Some(Self { syntax })
20864        } else {
20865            None
20866        }
20867    }
20868    #[inline]
20869    fn syntax(&self) -> &SyntaxNode {
20870        &self.syntax
20871    }
20872}
20873impl AstNode for DropIdentity {
20874    #[inline]
20875    fn can_cast(kind: SyntaxKind) -> bool {
20876        kind == SyntaxKind::DROP_IDENTITY
20877    }
20878    #[inline]
20879    fn cast(syntax: SyntaxNode) -> Option<Self> {
20880        if Self::can_cast(syntax.kind()) {
20881            Some(Self { syntax })
20882        } else {
20883            None
20884        }
20885    }
20886    #[inline]
20887    fn syntax(&self) -> &SyntaxNode {
20888        &self.syntax
20889    }
20890}
20891impl AstNode for DropIndex {
20892    #[inline]
20893    fn can_cast(kind: SyntaxKind) -> bool {
20894        kind == SyntaxKind::DROP_INDEX
20895    }
20896    #[inline]
20897    fn cast(syntax: SyntaxNode) -> Option<Self> {
20898        if Self::can_cast(syntax.kind()) {
20899            Some(Self { syntax })
20900        } else {
20901            None
20902        }
20903    }
20904    #[inline]
20905    fn syntax(&self) -> &SyntaxNode {
20906        &self.syntax
20907    }
20908}
20909impl AstNode for DropLanguage {
20910    #[inline]
20911    fn can_cast(kind: SyntaxKind) -> bool {
20912        kind == SyntaxKind::DROP_LANGUAGE
20913    }
20914    #[inline]
20915    fn cast(syntax: SyntaxNode) -> Option<Self> {
20916        if Self::can_cast(syntax.kind()) {
20917            Some(Self { syntax })
20918        } else {
20919            None
20920        }
20921    }
20922    #[inline]
20923    fn syntax(&self) -> &SyntaxNode {
20924        &self.syntax
20925    }
20926}
20927impl AstNode for DropMaterializedView {
20928    #[inline]
20929    fn can_cast(kind: SyntaxKind) -> bool {
20930        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
20931    }
20932    #[inline]
20933    fn cast(syntax: SyntaxNode) -> Option<Self> {
20934        if Self::can_cast(syntax.kind()) {
20935            Some(Self { syntax })
20936        } else {
20937            None
20938        }
20939    }
20940    #[inline]
20941    fn syntax(&self) -> &SyntaxNode {
20942        &self.syntax
20943    }
20944}
20945impl AstNode for DropNotNull {
20946    #[inline]
20947    fn can_cast(kind: SyntaxKind) -> bool {
20948        kind == SyntaxKind::DROP_NOT_NULL
20949    }
20950    #[inline]
20951    fn cast(syntax: SyntaxNode) -> Option<Self> {
20952        if Self::can_cast(syntax.kind()) {
20953            Some(Self { syntax })
20954        } else {
20955            None
20956        }
20957    }
20958    #[inline]
20959    fn syntax(&self) -> &SyntaxNode {
20960        &self.syntax
20961    }
20962}
20963impl AstNode for DropOpClassOption {
20964    #[inline]
20965    fn can_cast(kind: SyntaxKind) -> bool {
20966        kind == SyntaxKind::DROP_OP_CLASS_OPTION
20967    }
20968    #[inline]
20969    fn cast(syntax: SyntaxNode) -> Option<Self> {
20970        if Self::can_cast(syntax.kind()) {
20971            Some(Self { syntax })
20972        } else {
20973            None
20974        }
20975    }
20976    #[inline]
20977    fn syntax(&self) -> &SyntaxNode {
20978        &self.syntax
20979    }
20980}
20981impl AstNode for DropOpClassOptionList {
20982    #[inline]
20983    fn can_cast(kind: SyntaxKind) -> bool {
20984        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
20985    }
20986    #[inline]
20987    fn cast(syntax: SyntaxNode) -> Option<Self> {
20988        if Self::can_cast(syntax.kind()) {
20989            Some(Self { syntax })
20990        } else {
20991            None
20992        }
20993    }
20994    #[inline]
20995    fn syntax(&self) -> &SyntaxNode {
20996        &self.syntax
20997    }
20998}
20999impl AstNode for DropOpClassOptions {
21000    #[inline]
21001    fn can_cast(kind: SyntaxKind) -> bool {
21002        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
21003    }
21004    #[inline]
21005    fn cast(syntax: SyntaxNode) -> Option<Self> {
21006        if Self::can_cast(syntax.kind()) {
21007            Some(Self { syntax })
21008        } else {
21009            None
21010        }
21011    }
21012    #[inline]
21013    fn syntax(&self) -> &SyntaxNode {
21014        &self.syntax
21015    }
21016}
21017impl AstNode for DropOperator {
21018    #[inline]
21019    fn can_cast(kind: SyntaxKind) -> bool {
21020        kind == SyntaxKind::DROP_OPERATOR
21021    }
21022    #[inline]
21023    fn cast(syntax: SyntaxNode) -> Option<Self> {
21024        if Self::can_cast(syntax.kind()) {
21025            Some(Self { syntax })
21026        } else {
21027            None
21028        }
21029    }
21030    #[inline]
21031    fn syntax(&self) -> &SyntaxNode {
21032        &self.syntax
21033    }
21034}
21035impl AstNode for DropOperatorClass {
21036    #[inline]
21037    fn can_cast(kind: SyntaxKind) -> bool {
21038        kind == SyntaxKind::DROP_OPERATOR_CLASS
21039    }
21040    #[inline]
21041    fn cast(syntax: SyntaxNode) -> Option<Self> {
21042        if Self::can_cast(syntax.kind()) {
21043            Some(Self { syntax })
21044        } else {
21045            None
21046        }
21047    }
21048    #[inline]
21049    fn syntax(&self) -> &SyntaxNode {
21050        &self.syntax
21051    }
21052}
21053impl AstNode for DropOperatorFamily {
21054    #[inline]
21055    fn can_cast(kind: SyntaxKind) -> bool {
21056        kind == SyntaxKind::DROP_OPERATOR_FAMILY
21057    }
21058    #[inline]
21059    fn cast(syntax: SyntaxNode) -> Option<Self> {
21060        if Self::can_cast(syntax.kind()) {
21061            Some(Self { syntax })
21062        } else {
21063            None
21064        }
21065    }
21066    #[inline]
21067    fn syntax(&self) -> &SyntaxNode {
21068        &self.syntax
21069    }
21070}
21071impl AstNode for DropOwned {
21072    #[inline]
21073    fn can_cast(kind: SyntaxKind) -> bool {
21074        kind == SyntaxKind::DROP_OWNED
21075    }
21076    #[inline]
21077    fn cast(syntax: SyntaxNode) -> Option<Self> {
21078        if Self::can_cast(syntax.kind()) {
21079            Some(Self { syntax })
21080        } else {
21081            None
21082        }
21083    }
21084    #[inline]
21085    fn syntax(&self) -> &SyntaxNode {
21086        &self.syntax
21087    }
21088}
21089impl AstNode for DropPolicy {
21090    #[inline]
21091    fn can_cast(kind: SyntaxKind) -> bool {
21092        kind == SyntaxKind::DROP_POLICY
21093    }
21094    #[inline]
21095    fn cast(syntax: SyntaxNode) -> Option<Self> {
21096        if Self::can_cast(syntax.kind()) {
21097            Some(Self { syntax })
21098        } else {
21099            None
21100        }
21101    }
21102    #[inline]
21103    fn syntax(&self) -> &SyntaxNode {
21104        &self.syntax
21105    }
21106}
21107impl AstNode for DropProcedure {
21108    #[inline]
21109    fn can_cast(kind: SyntaxKind) -> bool {
21110        kind == SyntaxKind::DROP_PROCEDURE
21111    }
21112    #[inline]
21113    fn cast(syntax: SyntaxNode) -> Option<Self> {
21114        if Self::can_cast(syntax.kind()) {
21115            Some(Self { syntax })
21116        } else {
21117            None
21118        }
21119    }
21120    #[inline]
21121    fn syntax(&self) -> &SyntaxNode {
21122        &self.syntax
21123    }
21124}
21125impl AstNode for DropPublication {
21126    #[inline]
21127    fn can_cast(kind: SyntaxKind) -> bool {
21128        kind == SyntaxKind::DROP_PUBLICATION
21129    }
21130    #[inline]
21131    fn cast(syntax: SyntaxNode) -> Option<Self> {
21132        if Self::can_cast(syntax.kind()) {
21133            Some(Self { syntax })
21134        } else {
21135            None
21136        }
21137    }
21138    #[inline]
21139    fn syntax(&self) -> &SyntaxNode {
21140        &self.syntax
21141    }
21142}
21143impl AstNode for DropRole {
21144    #[inline]
21145    fn can_cast(kind: SyntaxKind) -> bool {
21146        kind == SyntaxKind::DROP_ROLE
21147    }
21148    #[inline]
21149    fn cast(syntax: SyntaxNode) -> Option<Self> {
21150        if Self::can_cast(syntax.kind()) {
21151            Some(Self { syntax })
21152        } else {
21153            None
21154        }
21155    }
21156    #[inline]
21157    fn syntax(&self) -> &SyntaxNode {
21158        &self.syntax
21159    }
21160}
21161impl AstNode for DropRoutine {
21162    #[inline]
21163    fn can_cast(kind: SyntaxKind) -> bool {
21164        kind == SyntaxKind::DROP_ROUTINE
21165    }
21166    #[inline]
21167    fn cast(syntax: SyntaxNode) -> Option<Self> {
21168        if Self::can_cast(syntax.kind()) {
21169            Some(Self { syntax })
21170        } else {
21171            None
21172        }
21173    }
21174    #[inline]
21175    fn syntax(&self) -> &SyntaxNode {
21176        &self.syntax
21177    }
21178}
21179impl AstNode for DropRule {
21180    #[inline]
21181    fn can_cast(kind: SyntaxKind) -> bool {
21182        kind == SyntaxKind::DROP_RULE
21183    }
21184    #[inline]
21185    fn cast(syntax: SyntaxNode) -> Option<Self> {
21186        if Self::can_cast(syntax.kind()) {
21187            Some(Self { syntax })
21188        } else {
21189            None
21190        }
21191    }
21192    #[inline]
21193    fn syntax(&self) -> &SyntaxNode {
21194        &self.syntax
21195    }
21196}
21197impl AstNode for DropSchema {
21198    #[inline]
21199    fn can_cast(kind: SyntaxKind) -> bool {
21200        kind == SyntaxKind::DROP_SCHEMA
21201    }
21202    #[inline]
21203    fn cast(syntax: SyntaxNode) -> Option<Self> {
21204        if Self::can_cast(syntax.kind()) {
21205            Some(Self { syntax })
21206        } else {
21207            None
21208        }
21209    }
21210    #[inline]
21211    fn syntax(&self) -> &SyntaxNode {
21212        &self.syntax
21213    }
21214}
21215impl AstNode for DropSequence {
21216    #[inline]
21217    fn can_cast(kind: SyntaxKind) -> bool {
21218        kind == SyntaxKind::DROP_SEQUENCE
21219    }
21220    #[inline]
21221    fn cast(syntax: SyntaxNode) -> Option<Self> {
21222        if Self::can_cast(syntax.kind()) {
21223            Some(Self { syntax })
21224        } else {
21225            None
21226        }
21227    }
21228    #[inline]
21229    fn syntax(&self) -> &SyntaxNode {
21230        &self.syntax
21231    }
21232}
21233impl AstNode for DropServer {
21234    #[inline]
21235    fn can_cast(kind: SyntaxKind) -> bool {
21236        kind == SyntaxKind::DROP_SERVER
21237    }
21238    #[inline]
21239    fn cast(syntax: SyntaxNode) -> Option<Self> {
21240        if Self::can_cast(syntax.kind()) {
21241            Some(Self { syntax })
21242        } else {
21243            None
21244        }
21245    }
21246    #[inline]
21247    fn syntax(&self) -> &SyntaxNode {
21248        &self.syntax
21249    }
21250}
21251impl AstNode for DropStatistics {
21252    #[inline]
21253    fn can_cast(kind: SyntaxKind) -> bool {
21254        kind == SyntaxKind::DROP_STATISTICS
21255    }
21256    #[inline]
21257    fn cast(syntax: SyntaxNode) -> Option<Self> {
21258        if Self::can_cast(syntax.kind()) {
21259            Some(Self { syntax })
21260        } else {
21261            None
21262        }
21263    }
21264    #[inline]
21265    fn syntax(&self) -> &SyntaxNode {
21266        &self.syntax
21267    }
21268}
21269impl AstNode for DropSubscription {
21270    #[inline]
21271    fn can_cast(kind: SyntaxKind) -> bool {
21272        kind == SyntaxKind::DROP_SUBSCRIPTION
21273    }
21274    #[inline]
21275    fn cast(syntax: SyntaxNode) -> Option<Self> {
21276        if Self::can_cast(syntax.kind()) {
21277            Some(Self { syntax })
21278        } else {
21279            None
21280        }
21281    }
21282    #[inline]
21283    fn syntax(&self) -> &SyntaxNode {
21284        &self.syntax
21285    }
21286}
21287impl AstNode for DropTable {
21288    #[inline]
21289    fn can_cast(kind: SyntaxKind) -> bool {
21290        kind == SyntaxKind::DROP_TABLE
21291    }
21292    #[inline]
21293    fn cast(syntax: SyntaxNode) -> Option<Self> {
21294        if Self::can_cast(syntax.kind()) {
21295            Some(Self { syntax })
21296        } else {
21297            None
21298        }
21299    }
21300    #[inline]
21301    fn syntax(&self) -> &SyntaxNode {
21302        &self.syntax
21303    }
21304}
21305impl AstNode for DropTablespace {
21306    #[inline]
21307    fn can_cast(kind: SyntaxKind) -> bool {
21308        kind == SyntaxKind::DROP_TABLESPACE
21309    }
21310    #[inline]
21311    fn cast(syntax: SyntaxNode) -> Option<Self> {
21312        if Self::can_cast(syntax.kind()) {
21313            Some(Self { syntax })
21314        } else {
21315            None
21316        }
21317    }
21318    #[inline]
21319    fn syntax(&self) -> &SyntaxNode {
21320        &self.syntax
21321    }
21322}
21323impl AstNode for DropTextSearchConfig {
21324    #[inline]
21325    fn can_cast(kind: SyntaxKind) -> bool {
21326        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
21327    }
21328    #[inline]
21329    fn cast(syntax: SyntaxNode) -> Option<Self> {
21330        if Self::can_cast(syntax.kind()) {
21331            Some(Self { syntax })
21332        } else {
21333            None
21334        }
21335    }
21336    #[inline]
21337    fn syntax(&self) -> &SyntaxNode {
21338        &self.syntax
21339    }
21340}
21341impl AstNode for DropTextSearchDict {
21342    #[inline]
21343    fn can_cast(kind: SyntaxKind) -> bool {
21344        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
21345    }
21346    #[inline]
21347    fn cast(syntax: SyntaxNode) -> Option<Self> {
21348        if Self::can_cast(syntax.kind()) {
21349            Some(Self { syntax })
21350        } else {
21351            None
21352        }
21353    }
21354    #[inline]
21355    fn syntax(&self) -> &SyntaxNode {
21356        &self.syntax
21357    }
21358}
21359impl AstNode for DropTextSearchParser {
21360    #[inline]
21361    fn can_cast(kind: SyntaxKind) -> bool {
21362        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
21363    }
21364    #[inline]
21365    fn cast(syntax: SyntaxNode) -> Option<Self> {
21366        if Self::can_cast(syntax.kind()) {
21367            Some(Self { syntax })
21368        } else {
21369            None
21370        }
21371    }
21372    #[inline]
21373    fn syntax(&self) -> &SyntaxNode {
21374        &self.syntax
21375    }
21376}
21377impl AstNode for DropTextSearchTemplate {
21378    #[inline]
21379    fn can_cast(kind: SyntaxKind) -> bool {
21380        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
21381    }
21382    #[inline]
21383    fn cast(syntax: SyntaxNode) -> Option<Self> {
21384        if Self::can_cast(syntax.kind()) {
21385            Some(Self { syntax })
21386        } else {
21387            None
21388        }
21389    }
21390    #[inline]
21391    fn syntax(&self) -> &SyntaxNode {
21392        &self.syntax
21393    }
21394}
21395impl AstNode for DropTransform {
21396    #[inline]
21397    fn can_cast(kind: SyntaxKind) -> bool {
21398        kind == SyntaxKind::DROP_TRANSFORM
21399    }
21400    #[inline]
21401    fn cast(syntax: SyntaxNode) -> Option<Self> {
21402        if Self::can_cast(syntax.kind()) {
21403            Some(Self { syntax })
21404        } else {
21405            None
21406        }
21407    }
21408    #[inline]
21409    fn syntax(&self) -> &SyntaxNode {
21410        &self.syntax
21411    }
21412}
21413impl AstNode for DropTrigger {
21414    #[inline]
21415    fn can_cast(kind: SyntaxKind) -> bool {
21416        kind == SyntaxKind::DROP_TRIGGER
21417    }
21418    #[inline]
21419    fn cast(syntax: SyntaxNode) -> Option<Self> {
21420        if Self::can_cast(syntax.kind()) {
21421            Some(Self { syntax })
21422        } else {
21423            None
21424        }
21425    }
21426    #[inline]
21427    fn syntax(&self) -> &SyntaxNode {
21428        &self.syntax
21429    }
21430}
21431impl AstNode for DropType {
21432    #[inline]
21433    fn can_cast(kind: SyntaxKind) -> bool {
21434        kind == SyntaxKind::DROP_TYPE
21435    }
21436    #[inline]
21437    fn cast(syntax: SyntaxNode) -> Option<Self> {
21438        if Self::can_cast(syntax.kind()) {
21439            Some(Self { syntax })
21440        } else {
21441            None
21442        }
21443    }
21444    #[inline]
21445    fn syntax(&self) -> &SyntaxNode {
21446        &self.syntax
21447    }
21448}
21449impl AstNode for DropUser {
21450    #[inline]
21451    fn can_cast(kind: SyntaxKind) -> bool {
21452        kind == SyntaxKind::DROP_USER
21453    }
21454    #[inline]
21455    fn cast(syntax: SyntaxNode) -> Option<Self> {
21456        if Self::can_cast(syntax.kind()) {
21457            Some(Self { syntax })
21458        } else {
21459            None
21460        }
21461    }
21462    #[inline]
21463    fn syntax(&self) -> &SyntaxNode {
21464        &self.syntax
21465    }
21466}
21467impl AstNode for DropUserMapping {
21468    #[inline]
21469    fn can_cast(kind: SyntaxKind) -> bool {
21470        kind == SyntaxKind::DROP_USER_MAPPING
21471    }
21472    #[inline]
21473    fn cast(syntax: SyntaxNode) -> Option<Self> {
21474        if Self::can_cast(syntax.kind()) {
21475            Some(Self { syntax })
21476        } else {
21477            None
21478        }
21479    }
21480    #[inline]
21481    fn syntax(&self) -> &SyntaxNode {
21482        &self.syntax
21483    }
21484}
21485impl AstNode for DropView {
21486    #[inline]
21487    fn can_cast(kind: SyntaxKind) -> bool {
21488        kind == SyntaxKind::DROP_VIEW
21489    }
21490    #[inline]
21491    fn cast(syntax: SyntaxNode) -> Option<Self> {
21492        if Self::can_cast(syntax.kind()) {
21493            Some(Self { syntax })
21494        } else {
21495            None
21496        }
21497    }
21498    #[inline]
21499    fn syntax(&self) -> &SyntaxNode {
21500        &self.syntax
21501    }
21502}
21503impl AstNode for ElseClause {
21504    #[inline]
21505    fn can_cast(kind: SyntaxKind) -> bool {
21506        kind == SyntaxKind::ELSE_CLAUSE
21507    }
21508    #[inline]
21509    fn cast(syntax: SyntaxNode) -> Option<Self> {
21510        if Self::can_cast(syntax.kind()) {
21511            Some(Self { syntax })
21512        } else {
21513            None
21514        }
21515    }
21516    #[inline]
21517    fn syntax(&self) -> &SyntaxNode {
21518        &self.syntax
21519    }
21520}
21521impl AstNode for EnableAlwaysRule {
21522    #[inline]
21523    fn can_cast(kind: SyntaxKind) -> bool {
21524        kind == SyntaxKind::ENABLE_ALWAYS_RULE
21525    }
21526    #[inline]
21527    fn cast(syntax: SyntaxNode) -> Option<Self> {
21528        if Self::can_cast(syntax.kind()) {
21529            Some(Self { syntax })
21530        } else {
21531            None
21532        }
21533    }
21534    #[inline]
21535    fn syntax(&self) -> &SyntaxNode {
21536        &self.syntax
21537    }
21538}
21539impl AstNode for EnableAlwaysTrigger {
21540    #[inline]
21541    fn can_cast(kind: SyntaxKind) -> bool {
21542        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
21543    }
21544    #[inline]
21545    fn cast(syntax: SyntaxNode) -> Option<Self> {
21546        if Self::can_cast(syntax.kind()) {
21547            Some(Self { syntax })
21548        } else {
21549            None
21550        }
21551    }
21552    #[inline]
21553    fn syntax(&self) -> &SyntaxNode {
21554        &self.syntax
21555    }
21556}
21557impl AstNode for EnableReplicaRule {
21558    #[inline]
21559    fn can_cast(kind: SyntaxKind) -> bool {
21560        kind == SyntaxKind::ENABLE_REPLICA_RULE
21561    }
21562    #[inline]
21563    fn cast(syntax: SyntaxNode) -> Option<Self> {
21564        if Self::can_cast(syntax.kind()) {
21565            Some(Self { syntax })
21566        } else {
21567            None
21568        }
21569    }
21570    #[inline]
21571    fn syntax(&self) -> &SyntaxNode {
21572        &self.syntax
21573    }
21574}
21575impl AstNode for EnableReplicaTrigger {
21576    #[inline]
21577    fn can_cast(kind: SyntaxKind) -> bool {
21578        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
21579    }
21580    #[inline]
21581    fn cast(syntax: SyntaxNode) -> Option<Self> {
21582        if Self::can_cast(syntax.kind()) {
21583            Some(Self { syntax })
21584        } else {
21585            None
21586        }
21587    }
21588    #[inline]
21589    fn syntax(&self) -> &SyntaxNode {
21590        &self.syntax
21591    }
21592}
21593impl AstNode for EnableRls {
21594    #[inline]
21595    fn can_cast(kind: SyntaxKind) -> bool {
21596        kind == SyntaxKind::ENABLE_RLS
21597    }
21598    #[inline]
21599    fn cast(syntax: SyntaxNode) -> Option<Self> {
21600        if Self::can_cast(syntax.kind()) {
21601            Some(Self { syntax })
21602        } else {
21603            None
21604        }
21605    }
21606    #[inline]
21607    fn syntax(&self) -> &SyntaxNode {
21608        &self.syntax
21609    }
21610}
21611impl AstNode for EnableRule {
21612    #[inline]
21613    fn can_cast(kind: SyntaxKind) -> bool {
21614        kind == SyntaxKind::ENABLE_RULE
21615    }
21616    #[inline]
21617    fn cast(syntax: SyntaxNode) -> Option<Self> {
21618        if Self::can_cast(syntax.kind()) {
21619            Some(Self { syntax })
21620        } else {
21621            None
21622        }
21623    }
21624    #[inline]
21625    fn syntax(&self) -> &SyntaxNode {
21626        &self.syntax
21627    }
21628}
21629impl AstNode for EnableTrigger {
21630    #[inline]
21631    fn can_cast(kind: SyntaxKind) -> bool {
21632        kind == SyntaxKind::ENABLE_TRIGGER
21633    }
21634    #[inline]
21635    fn cast(syntax: SyntaxNode) -> Option<Self> {
21636        if Self::can_cast(syntax.kind()) {
21637            Some(Self { syntax })
21638        } else {
21639            None
21640        }
21641    }
21642    #[inline]
21643    fn syntax(&self) -> &SyntaxNode {
21644        &self.syntax
21645    }
21646}
21647impl AstNode for Enforced {
21648    #[inline]
21649    fn can_cast(kind: SyntaxKind) -> bool {
21650        kind == SyntaxKind::ENFORCED
21651    }
21652    #[inline]
21653    fn cast(syntax: SyntaxNode) -> Option<Self> {
21654        if Self::can_cast(syntax.kind()) {
21655            Some(Self { syntax })
21656        } else {
21657            None
21658        }
21659    }
21660    #[inline]
21661    fn syntax(&self) -> &SyntaxNode {
21662        &self.syntax
21663    }
21664}
21665impl AstNode for EventTriggerWhen {
21666    #[inline]
21667    fn can_cast(kind: SyntaxKind) -> bool {
21668        kind == SyntaxKind::EVENT_TRIGGER_WHEN
21669    }
21670    #[inline]
21671    fn cast(syntax: SyntaxNode) -> Option<Self> {
21672        if Self::can_cast(syntax.kind()) {
21673            Some(Self { syntax })
21674        } else {
21675            None
21676        }
21677    }
21678    #[inline]
21679    fn syntax(&self) -> &SyntaxNode {
21680        &self.syntax
21681    }
21682}
21683impl AstNode for EventTriggerWhenClause {
21684    #[inline]
21685    fn can_cast(kind: SyntaxKind) -> bool {
21686        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
21687    }
21688    #[inline]
21689    fn cast(syntax: SyntaxNode) -> Option<Self> {
21690        if Self::can_cast(syntax.kind()) {
21691            Some(Self { syntax })
21692        } else {
21693            None
21694        }
21695    }
21696    #[inline]
21697    fn syntax(&self) -> &SyntaxNode {
21698        &self.syntax
21699    }
21700}
21701impl AstNode for ExceptTables {
21702    #[inline]
21703    fn can_cast(kind: SyntaxKind) -> bool {
21704        kind == SyntaxKind::EXCEPT_TABLES
21705    }
21706    #[inline]
21707    fn cast(syntax: SyntaxNode) -> Option<Self> {
21708        if Self::can_cast(syntax.kind()) {
21709            Some(Self { syntax })
21710        } else {
21711            None
21712        }
21713    }
21714    #[inline]
21715    fn syntax(&self) -> &SyntaxNode {
21716        &self.syntax
21717    }
21718}
21719impl AstNode for ExcludeConstraint {
21720    #[inline]
21721    fn can_cast(kind: SyntaxKind) -> bool {
21722        kind == SyntaxKind::EXCLUDE_CONSTRAINT
21723    }
21724    #[inline]
21725    fn cast(syntax: SyntaxNode) -> Option<Self> {
21726        if Self::can_cast(syntax.kind()) {
21727            Some(Self { syntax })
21728        } else {
21729            None
21730        }
21731    }
21732    #[inline]
21733    fn syntax(&self) -> &SyntaxNode {
21734        &self.syntax
21735    }
21736}
21737impl AstNode for Execute {
21738    #[inline]
21739    fn can_cast(kind: SyntaxKind) -> bool {
21740        kind == SyntaxKind::EXECUTE
21741    }
21742    #[inline]
21743    fn cast(syntax: SyntaxNode) -> Option<Self> {
21744        if Self::can_cast(syntax.kind()) {
21745            Some(Self { syntax })
21746        } else {
21747            None
21748        }
21749    }
21750    #[inline]
21751    fn syntax(&self) -> &SyntaxNode {
21752        &self.syntax
21753    }
21754}
21755impl AstNode for ExistsFn {
21756    #[inline]
21757    fn can_cast(kind: SyntaxKind) -> bool {
21758        kind == SyntaxKind::EXISTS_FN
21759    }
21760    #[inline]
21761    fn cast(syntax: SyntaxNode) -> Option<Self> {
21762        if Self::can_cast(syntax.kind()) {
21763            Some(Self { syntax })
21764        } else {
21765            None
21766        }
21767    }
21768    #[inline]
21769    fn syntax(&self) -> &SyntaxNode {
21770        &self.syntax
21771    }
21772}
21773impl AstNode for Explain {
21774    #[inline]
21775    fn can_cast(kind: SyntaxKind) -> bool {
21776        kind == SyntaxKind::EXPLAIN
21777    }
21778    #[inline]
21779    fn cast(syntax: SyntaxNode) -> Option<Self> {
21780        if Self::can_cast(syntax.kind()) {
21781            Some(Self { syntax })
21782        } else {
21783            None
21784        }
21785    }
21786    #[inline]
21787    fn syntax(&self) -> &SyntaxNode {
21788        &self.syntax
21789    }
21790}
21791impl AstNode for ExprAsName {
21792    #[inline]
21793    fn can_cast(kind: SyntaxKind) -> bool {
21794        kind == SyntaxKind::EXPR_AS_NAME
21795    }
21796    #[inline]
21797    fn cast(syntax: SyntaxNode) -> Option<Self> {
21798        if Self::can_cast(syntax.kind()) {
21799            Some(Self { syntax })
21800        } else {
21801            None
21802        }
21803    }
21804    #[inline]
21805    fn syntax(&self) -> &SyntaxNode {
21806        &self.syntax
21807    }
21808}
21809impl AstNode for ExprType {
21810    #[inline]
21811    fn can_cast(kind: SyntaxKind) -> bool {
21812        kind == SyntaxKind::EXPR_TYPE
21813    }
21814    #[inline]
21815    fn cast(syntax: SyntaxNode) -> Option<Self> {
21816        if Self::can_cast(syntax.kind()) {
21817            Some(Self { syntax })
21818        } else {
21819            None
21820        }
21821    }
21822    #[inline]
21823    fn syntax(&self) -> &SyntaxNode {
21824        &self.syntax
21825    }
21826}
21827impl AstNode for ExtractFn {
21828    #[inline]
21829    fn can_cast(kind: SyntaxKind) -> bool {
21830        kind == SyntaxKind::EXTRACT_FN
21831    }
21832    #[inline]
21833    fn cast(syntax: SyntaxNode) -> Option<Self> {
21834        if Self::can_cast(syntax.kind()) {
21835            Some(Self { syntax })
21836        } else {
21837            None
21838        }
21839    }
21840    #[inline]
21841    fn syntax(&self) -> &SyntaxNode {
21842        &self.syntax
21843    }
21844}
21845impl AstNode for FatArrow {
21846    #[inline]
21847    fn can_cast(kind: SyntaxKind) -> bool {
21848        kind == SyntaxKind::FAT_ARROW
21849    }
21850    #[inline]
21851    fn cast(syntax: SyntaxNode) -> Option<Self> {
21852        if Self::can_cast(syntax.kind()) {
21853            Some(Self { syntax })
21854        } else {
21855            None
21856        }
21857    }
21858    #[inline]
21859    fn syntax(&self) -> &SyntaxNode {
21860        &self.syntax
21861    }
21862}
21863impl AstNode for FdwOption {
21864    #[inline]
21865    fn can_cast(kind: SyntaxKind) -> bool {
21866        kind == SyntaxKind::FDW_OPTION
21867    }
21868    #[inline]
21869    fn cast(syntax: SyntaxNode) -> Option<Self> {
21870        if Self::can_cast(syntax.kind()) {
21871            Some(Self { syntax })
21872        } else {
21873            None
21874        }
21875    }
21876    #[inline]
21877    fn syntax(&self) -> &SyntaxNode {
21878        &self.syntax
21879    }
21880}
21881impl AstNode for FdwOptionList {
21882    #[inline]
21883    fn can_cast(kind: SyntaxKind) -> bool {
21884        kind == SyntaxKind::FDW_OPTION_LIST
21885    }
21886    #[inline]
21887    fn cast(syntax: SyntaxNode) -> Option<Self> {
21888        if Self::can_cast(syntax.kind()) {
21889            Some(Self { syntax })
21890        } else {
21891            None
21892        }
21893    }
21894    #[inline]
21895    fn syntax(&self) -> &SyntaxNode {
21896        &self.syntax
21897    }
21898}
21899impl AstNode for Fetch {
21900    #[inline]
21901    fn can_cast(kind: SyntaxKind) -> bool {
21902        kind == SyntaxKind::FETCH
21903    }
21904    #[inline]
21905    fn cast(syntax: SyntaxNode) -> Option<Self> {
21906        if Self::can_cast(syntax.kind()) {
21907            Some(Self { syntax })
21908        } else {
21909            None
21910        }
21911    }
21912    #[inline]
21913    fn syntax(&self) -> &SyntaxNode {
21914        &self.syntax
21915    }
21916}
21917impl AstNode for FetchClause {
21918    #[inline]
21919    fn can_cast(kind: SyntaxKind) -> bool {
21920        kind == SyntaxKind::FETCH_CLAUSE
21921    }
21922    #[inline]
21923    fn cast(syntax: SyntaxNode) -> Option<Self> {
21924        if Self::can_cast(syntax.kind()) {
21925            Some(Self { syntax })
21926        } else {
21927            None
21928        }
21929    }
21930    #[inline]
21931    fn syntax(&self) -> &SyntaxNode {
21932        &self.syntax
21933    }
21934}
21935impl AstNode for FieldExpr {
21936    #[inline]
21937    fn can_cast(kind: SyntaxKind) -> bool {
21938        kind == SyntaxKind::FIELD_EXPR
21939    }
21940    #[inline]
21941    fn cast(syntax: SyntaxNode) -> Option<Self> {
21942        if Self::can_cast(syntax.kind()) {
21943            Some(Self { syntax })
21944        } else {
21945            None
21946        }
21947    }
21948    #[inline]
21949    fn syntax(&self) -> &SyntaxNode {
21950        &self.syntax
21951    }
21952}
21953impl AstNode for FilterClause {
21954    #[inline]
21955    fn can_cast(kind: SyntaxKind) -> bool {
21956        kind == SyntaxKind::FILTER_CLAUSE
21957    }
21958    #[inline]
21959    fn cast(syntax: SyntaxNode) -> Option<Self> {
21960        if Self::can_cast(syntax.kind()) {
21961            Some(Self { syntax })
21962        } else {
21963            None
21964        }
21965    }
21966    #[inline]
21967    fn syntax(&self) -> &SyntaxNode {
21968        &self.syntax
21969    }
21970}
21971impl AstNode for ForProvider {
21972    #[inline]
21973    fn can_cast(kind: SyntaxKind) -> bool {
21974        kind == SyntaxKind::FOR_PROVIDER
21975    }
21976    #[inline]
21977    fn cast(syntax: SyntaxNode) -> Option<Self> {
21978        if Self::can_cast(syntax.kind()) {
21979            Some(Self { syntax })
21980        } else {
21981            None
21982        }
21983    }
21984    #[inline]
21985    fn syntax(&self) -> &SyntaxNode {
21986        &self.syntax
21987    }
21988}
21989impl AstNode for ForceRls {
21990    #[inline]
21991    fn can_cast(kind: SyntaxKind) -> bool {
21992        kind == SyntaxKind::FORCE_RLS
21993    }
21994    #[inline]
21995    fn cast(syntax: SyntaxNode) -> Option<Self> {
21996        if Self::can_cast(syntax.kind()) {
21997            Some(Self { syntax })
21998        } else {
21999            None
22000        }
22001    }
22002    #[inline]
22003    fn syntax(&self) -> &SyntaxNode {
22004        &self.syntax
22005    }
22006}
22007impl AstNode for ForeignKeyConstraint {
22008    #[inline]
22009    fn can_cast(kind: SyntaxKind) -> bool {
22010        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
22011    }
22012    #[inline]
22013    fn cast(syntax: SyntaxNode) -> Option<Self> {
22014        if Self::can_cast(syntax.kind()) {
22015            Some(Self { syntax })
22016        } else {
22017            None
22018        }
22019    }
22020    #[inline]
22021    fn syntax(&self) -> &SyntaxNode {
22022        &self.syntax
22023    }
22024}
22025impl AstNode for FrameClause {
22026    #[inline]
22027    fn can_cast(kind: SyntaxKind) -> bool {
22028        kind == SyntaxKind::FRAME_CLAUSE
22029    }
22030    #[inline]
22031    fn cast(syntax: SyntaxNode) -> Option<Self> {
22032        if Self::can_cast(syntax.kind()) {
22033            Some(Self { syntax })
22034        } else {
22035            None
22036        }
22037    }
22038    #[inline]
22039    fn syntax(&self) -> &SyntaxNode {
22040        &self.syntax
22041    }
22042}
22043impl AstNode for FromClause {
22044    #[inline]
22045    fn can_cast(kind: SyntaxKind) -> bool {
22046        kind == SyntaxKind::FROM_CLAUSE
22047    }
22048    #[inline]
22049    fn cast(syntax: SyntaxNode) -> Option<Self> {
22050        if Self::can_cast(syntax.kind()) {
22051            Some(Self { syntax })
22052        } else {
22053            None
22054        }
22055    }
22056    #[inline]
22057    fn syntax(&self) -> &SyntaxNode {
22058        &self.syntax
22059    }
22060}
22061impl AstNode for FromItem {
22062    #[inline]
22063    fn can_cast(kind: SyntaxKind) -> bool {
22064        kind == SyntaxKind::FROM_ITEM
22065    }
22066    #[inline]
22067    fn cast(syntax: SyntaxNode) -> Option<Self> {
22068        if Self::can_cast(syntax.kind()) {
22069            Some(Self { syntax })
22070        } else {
22071            None
22072        }
22073    }
22074    #[inline]
22075    fn syntax(&self) -> &SyntaxNode {
22076        &self.syntax
22077    }
22078}
22079impl AstNode for FromTable {
22080    #[inline]
22081    fn can_cast(kind: SyntaxKind) -> bool {
22082        kind == SyntaxKind::FROM_TABLE
22083    }
22084    #[inline]
22085    fn cast(syntax: SyntaxNode) -> Option<Self> {
22086        if Self::can_cast(syntax.kind()) {
22087            Some(Self { syntax })
22088        } else {
22089            None
22090        }
22091    }
22092    #[inline]
22093    fn syntax(&self) -> &SyntaxNode {
22094        &self.syntax
22095    }
22096}
22097impl AstNode for FuncOptionList {
22098    #[inline]
22099    fn can_cast(kind: SyntaxKind) -> bool {
22100        kind == SyntaxKind::FUNC_OPTION_LIST
22101    }
22102    #[inline]
22103    fn cast(syntax: SyntaxNode) -> Option<Self> {
22104        if Self::can_cast(syntax.kind()) {
22105            Some(Self { syntax })
22106        } else {
22107            None
22108        }
22109    }
22110    #[inline]
22111    fn syntax(&self) -> &SyntaxNode {
22112        &self.syntax
22113    }
22114}
22115impl AstNode for FunctionSig {
22116    #[inline]
22117    fn can_cast(kind: SyntaxKind) -> bool {
22118        kind == SyntaxKind::FUNCTION_SIG
22119    }
22120    #[inline]
22121    fn cast(syntax: SyntaxNode) -> Option<Self> {
22122        if Self::can_cast(syntax.kind()) {
22123            Some(Self { syntax })
22124        } else {
22125            None
22126        }
22127    }
22128    #[inline]
22129    fn syntax(&self) -> &SyntaxNode {
22130        &self.syntax
22131    }
22132}
22133impl AstNode for FunctionSigList {
22134    #[inline]
22135    fn can_cast(kind: SyntaxKind) -> bool {
22136        kind == SyntaxKind::FUNCTION_SIG_LIST
22137    }
22138    #[inline]
22139    fn cast(syntax: SyntaxNode) -> Option<Self> {
22140        if Self::can_cast(syntax.kind()) {
22141            Some(Self { syntax })
22142        } else {
22143            None
22144        }
22145    }
22146    #[inline]
22147    fn syntax(&self) -> &SyntaxNode {
22148        &self.syntax
22149    }
22150}
22151impl AstNode for GeneratedConstraint {
22152    #[inline]
22153    fn can_cast(kind: SyntaxKind) -> bool {
22154        kind == SyntaxKind::GENERATED_CONSTRAINT
22155    }
22156    #[inline]
22157    fn cast(syntax: SyntaxNode) -> Option<Self> {
22158        if Self::can_cast(syntax.kind()) {
22159            Some(Self { syntax })
22160        } else {
22161            None
22162        }
22163    }
22164    #[inline]
22165    fn syntax(&self) -> &SyntaxNode {
22166        &self.syntax
22167    }
22168}
22169impl AstNode for Grant {
22170    #[inline]
22171    fn can_cast(kind: SyntaxKind) -> bool {
22172        kind == SyntaxKind::GRANT
22173    }
22174    #[inline]
22175    fn cast(syntax: SyntaxNode) -> Option<Self> {
22176        if Self::can_cast(syntax.kind()) {
22177            Some(Self { syntax })
22178        } else {
22179            None
22180        }
22181    }
22182    #[inline]
22183    fn syntax(&self) -> &SyntaxNode {
22184        &self.syntax
22185    }
22186}
22187impl AstNode for GrantDefaultPrivileges {
22188    #[inline]
22189    fn can_cast(kind: SyntaxKind) -> bool {
22190        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
22191    }
22192    #[inline]
22193    fn cast(syntax: SyntaxNode) -> Option<Self> {
22194        if Self::can_cast(syntax.kind()) {
22195            Some(Self { syntax })
22196        } else {
22197            None
22198        }
22199    }
22200    #[inline]
22201    fn syntax(&self) -> &SyntaxNode {
22202        &self.syntax
22203    }
22204}
22205impl AstNode for GroupByClause {
22206    #[inline]
22207    fn can_cast(kind: SyntaxKind) -> bool {
22208        kind == SyntaxKind::GROUP_BY_CLAUSE
22209    }
22210    #[inline]
22211    fn cast(syntax: SyntaxNode) -> Option<Self> {
22212        if Self::can_cast(syntax.kind()) {
22213            Some(Self { syntax })
22214        } else {
22215            None
22216        }
22217    }
22218    #[inline]
22219    fn syntax(&self) -> &SyntaxNode {
22220        &self.syntax
22221    }
22222}
22223impl AstNode for GroupByList {
22224    #[inline]
22225    fn can_cast(kind: SyntaxKind) -> bool {
22226        kind == SyntaxKind::GROUP_BY_LIST
22227    }
22228    #[inline]
22229    fn cast(syntax: SyntaxNode) -> Option<Self> {
22230        if Self::can_cast(syntax.kind()) {
22231            Some(Self { syntax })
22232        } else {
22233            None
22234        }
22235    }
22236    #[inline]
22237    fn syntax(&self) -> &SyntaxNode {
22238        &self.syntax
22239    }
22240}
22241impl AstNode for GroupingCube {
22242    #[inline]
22243    fn can_cast(kind: SyntaxKind) -> bool {
22244        kind == SyntaxKind::GROUPING_CUBE
22245    }
22246    #[inline]
22247    fn cast(syntax: SyntaxNode) -> Option<Self> {
22248        if Self::can_cast(syntax.kind()) {
22249            Some(Self { syntax })
22250        } else {
22251            None
22252        }
22253    }
22254    #[inline]
22255    fn syntax(&self) -> &SyntaxNode {
22256        &self.syntax
22257    }
22258}
22259impl AstNode for GroupingExpr {
22260    #[inline]
22261    fn can_cast(kind: SyntaxKind) -> bool {
22262        kind == SyntaxKind::GROUPING_EXPR
22263    }
22264    #[inline]
22265    fn cast(syntax: SyntaxNode) -> Option<Self> {
22266        if Self::can_cast(syntax.kind()) {
22267            Some(Self { syntax })
22268        } else {
22269            None
22270        }
22271    }
22272    #[inline]
22273    fn syntax(&self) -> &SyntaxNode {
22274        &self.syntax
22275    }
22276}
22277impl AstNode for GroupingRollup {
22278    #[inline]
22279    fn can_cast(kind: SyntaxKind) -> bool {
22280        kind == SyntaxKind::GROUPING_ROLLUP
22281    }
22282    #[inline]
22283    fn cast(syntax: SyntaxNode) -> Option<Self> {
22284        if Self::can_cast(syntax.kind()) {
22285            Some(Self { syntax })
22286        } else {
22287            None
22288        }
22289    }
22290    #[inline]
22291    fn syntax(&self) -> &SyntaxNode {
22292        &self.syntax
22293    }
22294}
22295impl AstNode for GroupingSets {
22296    #[inline]
22297    fn can_cast(kind: SyntaxKind) -> bool {
22298        kind == SyntaxKind::GROUPING_SETS
22299    }
22300    #[inline]
22301    fn cast(syntax: SyntaxNode) -> Option<Self> {
22302        if Self::can_cast(syntax.kind()) {
22303            Some(Self { syntax })
22304        } else {
22305            None
22306        }
22307    }
22308    #[inline]
22309    fn syntax(&self) -> &SyntaxNode {
22310        &self.syntax
22311    }
22312}
22313impl AstNode for Gteq {
22314    #[inline]
22315    fn can_cast(kind: SyntaxKind) -> bool {
22316        kind == SyntaxKind::GTEQ
22317    }
22318    #[inline]
22319    fn cast(syntax: SyntaxNode) -> Option<Self> {
22320        if Self::can_cast(syntax.kind()) {
22321            Some(Self { syntax })
22322        } else {
22323            None
22324        }
22325    }
22326    #[inline]
22327    fn syntax(&self) -> &SyntaxNode {
22328        &self.syntax
22329    }
22330}
22331impl AstNode for HandlerClause {
22332    #[inline]
22333    fn can_cast(kind: SyntaxKind) -> bool {
22334        kind == SyntaxKind::HANDLER_CLAUSE
22335    }
22336    #[inline]
22337    fn cast(syntax: SyntaxNode) -> Option<Self> {
22338        if Self::can_cast(syntax.kind()) {
22339            Some(Self { syntax })
22340        } else {
22341            None
22342        }
22343    }
22344    #[inline]
22345    fn syntax(&self) -> &SyntaxNode {
22346        &self.syntax
22347    }
22348}
22349impl AstNode for HavingClause {
22350    #[inline]
22351    fn can_cast(kind: SyntaxKind) -> bool {
22352        kind == SyntaxKind::HAVING_CLAUSE
22353    }
22354    #[inline]
22355    fn cast(syntax: SyntaxNode) -> Option<Self> {
22356        if Self::can_cast(syntax.kind()) {
22357            Some(Self { syntax })
22358        } else {
22359            None
22360        }
22361    }
22362    #[inline]
22363    fn syntax(&self) -> &SyntaxNode {
22364        &self.syntax
22365    }
22366}
22367impl AstNode for IfExists {
22368    #[inline]
22369    fn can_cast(kind: SyntaxKind) -> bool {
22370        kind == SyntaxKind::IF_EXISTS
22371    }
22372    #[inline]
22373    fn cast(syntax: SyntaxNode) -> Option<Self> {
22374        if Self::can_cast(syntax.kind()) {
22375            Some(Self { syntax })
22376        } else {
22377            None
22378        }
22379    }
22380    #[inline]
22381    fn syntax(&self) -> &SyntaxNode {
22382        &self.syntax
22383    }
22384}
22385impl AstNode for IfNotExists {
22386    #[inline]
22387    fn can_cast(kind: SyntaxKind) -> bool {
22388        kind == SyntaxKind::IF_NOT_EXISTS
22389    }
22390    #[inline]
22391    fn cast(syntax: SyntaxNode) -> Option<Self> {
22392        if Self::can_cast(syntax.kind()) {
22393            Some(Self { syntax })
22394        } else {
22395            None
22396        }
22397    }
22398    #[inline]
22399    fn syntax(&self) -> &SyntaxNode {
22400        &self.syntax
22401    }
22402}
22403impl AstNode for ImportForeignSchema {
22404    #[inline]
22405    fn can_cast(kind: SyntaxKind) -> bool {
22406        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
22407    }
22408    #[inline]
22409    fn cast(syntax: SyntaxNode) -> Option<Self> {
22410        if Self::can_cast(syntax.kind()) {
22411            Some(Self { syntax })
22412        } else {
22413            None
22414        }
22415    }
22416    #[inline]
22417    fn syntax(&self) -> &SyntaxNode {
22418        &self.syntax
22419    }
22420}
22421impl AstNode for IndexExpr {
22422    #[inline]
22423    fn can_cast(kind: SyntaxKind) -> bool {
22424        kind == SyntaxKind::INDEX_EXPR
22425    }
22426    #[inline]
22427    fn cast(syntax: SyntaxNode) -> Option<Self> {
22428        if Self::can_cast(syntax.kind()) {
22429            Some(Self { syntax })
22430        } else {
22431            None
22432        }
22433    }
22434    #[inline]
22435    fn syntax(&self) -> &SyntaxNode {
22436        &self.syntax
22437    }
22438}
22439impl AstNode for Inherit {
22440    #[inline]
22441    fn can_cast(kind: SyntaxKind) -> bool {
22442        kind == SyntaxKind::INHERIT
22443    }
22444    #[inline]
22445    fn cast(syntax: SyntaxNode) -> Option<Self> {
22446        if Self::can_cast(syntax.kind()) {
22447            Some(Self { syntax })
22448        } else {
22449            None
22450        }
22451    }
22452    #[inline]
22453    fn syntax(&self) -> &SyntaxNode {
22454        &self.syntax
22455    }
22456}
22457impl AstNode for InheritTable {
22458    #[inline]
22459    fn can_cast(kind: SyntaxKind) -> bool {
22460        kind == SyntaxKind::INHERIT_TABLE
22461    }
22462    #[inline]
22463    fn cast(syntax: SyntaxNode) -> Option<Self> {
22464        if Self::can_cast(syntax.kind()) {
22465            Some(Self { syntax })
22466        } else {
22467            None
22468        }
22469    }
22470    #[inline]
22471    fn syntax(&self) -> &SyntaxNode {
22472        &self.syntax
22473    }
22474}
22475impl AstNode for Inherits {
22476    #[inline]
22477    fn can_cast(kind: SyntaxKind) -> bool {
22478        kind == SyntaxKind::INHERITS
22479    }
22480    #[inline]
22481    fn cast(syntax: SyntaxNode) -> Option<Self> {
22482        if Self::can_cast(syntax.kind()) {
22483            Some(Self { syntax })
22484        } else {
22485            None
22486        }
22487    }
22488    #[inline]
22489    fn syntax(&self) -> &SyntaxNode {
22490        &self.syntax
22491    }
22492}
22493impl AstNode for InitiallyDeferredConstraintOption {
22494    #[inline]
22495    fn can_cast(kind: SyntaxKind) -> bool {
22496        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
22497    }
22498    #[inline]
22499    fn cast(syntax: SyntaxNode) -> Option<Self> {
22500        if Self::can_cast(syntax.kind()) {
22501            Some(Self { syntax })
22502        } else {
22503            None
22504        }
22505    }
22506    #[inline]
22507    fn syntax(&self) -> &SyntaxNode {
22508        &self.syntax
22509    }
22510}
22511impl AstNode for InitiallyImmediateConstraintOption {
22512    #[inline]
22513    fn can_cast(kind: SyntaxKind) -> bool {
22514        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
22515    }
22516    #[inline]
22517    fn cast(syntax: SyntaxNode) -> Option<Self> {
22518        if Self::can_cast(syntax.kind()) {
22519            Some(Self { syntax })
22520        } else {
22521            None
22522        }
22523    }
22524    #[inline]
22525    fn syntax(&self) -> &SyntaxNode {
22526        &self.syntax
22527    }
22528}
22529impl AstNode for Insert {
22530    #[inline]
22531    fn can_cast(kind: SyntaxKind) -> bool {
22532        kind == SyntaxKind::INSERT
22533    }
22534    #[inline]
22535    fn cast(syntax: SyntaxNode) -> Option<Self> {
22536        if Self::can_cast(syntax.kind()) {
22537            Some(Self { syntax })
22538        } else {
22539            None
22540        }
22541    }
22542    #[inline]
22543    fn syntax(&self) -> &SyntaxNode {
22544        &self.syntax
22545    }
22546}
22547impl AstNode for IntervalType {
22548    #[inline]
22549    fn can_cast(kind: SyntaxKind) -> bool {
22550        kind == SyntaxKind::INTERVAL_TYPE
22551    }
22552    #[inline]
22553    fn cast(syntax: SyntaxNode) -> Option<Self> {
22554        if Self::can_cast(syntax.kind()) {
22555            Some(Self { syntax })
22556        } else {
22557            None
22558        }
22559    }
22560    #[inline]
22561    fn syntax(&self) -> &SyntaxNode {
22562        &self.syntax
22563    }
22564}
22565impl AstNode for IntoClause {
22566    #[inline]
22567    fn can_cast(kind: SyntaxKind) -> bool {
22568        kind == SyntaxKind::INTO_CLAUSE
22569    }
22570    #[inline]
22571    fn cast(syntax: SyntaxNode) -> Option<Self> {
22572        if Self::can_cast(syntax.kind()) {
22573            Some(Self { syntax })
22574        } else {
22575            None
22576        }
22577    }
22578    #[inline]
22579    fn syntax(&self) -> &SyntaxNode {
22580        &self.syntax
22581    }
22582}
22583impl AstNode for IntoSchema {
22584    #[inline]
22585    fn can_cast(kind: SyntaxKind) -> bool {
22586        kind == SyntaxKind::INTO_SCHEMA
22587    }
22588    #[inline]
22589    fn cast(syntax: SyntaxNode) -> Option<Self> {
22590        if Self::can_cast(syntax.kind()) {
22591            Some(Self { syntax })
22592        } else {
22593            None
22594        }
22595    }
22596    #[inline]
22597    fn syntax(&self) -> &SyntaxNode {
22598        &self.syntax
22599    }
22600}
22601impl AstNode for IsDistinctFrom {
22602    #[inline]
22603    fn can_cast(kind: SyntaxKind) -> bool {
22604        kind == SyntaxKind::IS_DISTINCT_FROM
22605    }
22606    #[inline]
22607    fn cast(syntax: SyntaxNode) -> Option<Self> {
22608        if Self::can_cast(syntax.kind()) {
22609            Some(Self { syntax })
22610        } else {
22611            None
22612        }
22613    }
22614    #[inline]
22615    fn syntax(&self) -> &SyntaxNode {
22616        &self.syntax
22617    }
22618}
22619impl AstNode for IsJson {
22620    #[inline]
22621    fn can_cast(kind: SyntaxKind) -> bool {
22622        kind == SyntaxKind::IS_JSON
22623    }
22624    #[inline]
22625    fn cast(syntax: SyntaxNode) -> Option<Self> {
22626        if Self::can_cast(syntax.kind()) {
22627            Some(Self { syntax })
22628        } else {
22629            None
22630        }
22631    }
22632    #[inline]
22633    fn syntax(&self) -> &SyntaxNode {
22634        &self.syntax
22635    }
22636}
22637impl AstNode for IsJsonArray {
22638    #[inline]
22639    fn can_cast(kind: SyntaxKind) -> bool {
22640        kind == SyntaxKind::IS_JSON_ARRAY
22641    }
22642    #[inline]
22643    fn cast(syntax: SyntaxNode) -> Option<Self> {
22644        if Self::can_cast(syntax.kind()) {
22645            Some(Self { syntax })
22646        } else {
22647            None
22648        }
22649    }
22650    #[inline]
22651    fn syntax(&self) -> &SyntaxNode {
22652        &self.syntax
22653    }
22654}
22655impl AstNode for IsJsonObject {
22656    #[inline]
22657    fn can_cast(kind: SyntaxKind) -> bool {
22658        kind == SyntaxKind::IS_JSON_OBJECT
22659    }
22660    #[inline]
22661    fn cast(syntax: SyntaxNode) -> Option<Self> {
22662        if Self::can_cast(syntax.kind()) {
22663            Some(Self { syntax })
22664        } else {
22665            None
22666        }
22667    }
22668    #[inline]
22669    fn syntax(&self) -> &SyntaxNode {
22670        &self.syntax
22671    }
22672}
22673impl AstNode for IsJsonScalar {
22674    #[inline]
22675    fn can_cast(kind: SyntaxKind) -> bool {
22676        kind == SyntaxKind::IS_JSON_SCALAR
22677    }
22678    #[inline]
22679    fn cast(syntax: SyntaxNode) -> Option<Self> {
22680        if Self::can_cast(syntax.kind()) {
22681            Some(Self { syntax })
22682        } else {
22683            None
22684        }
22685    }
22686    #[inline]
22687    fn syntax(&self) -> &SyntaxNode {
22688        &self.syntax
22689    }
22690}
22691impl AstNode for IsJsonValue {
22692    #[inline]
22693    fn can_cast(kind: SyntaxKind) -> bool {
22694        kind == SyntaxKind::IS_JSON_VALUE
22695    }
22696    #[inline]
22697    fn cast(syntax: SyntaxNode) -> Option<Self> {
22698        if Self::can_cast(syntax.kind()) {
22699            Some(Self { syntax })
22700        } else {
22701            None
22702        }
22703    }
22704    #[inline]
22705    fn syntax(&self) -> &SyntaxNode {
22706        &self.syntax
22707    }
22708}
22709impl AstNode for IsNormalized {
22710    #[inline]
22711    fn can_cast(kind: SyntaxKind) -> bool {
22712        kind == SyntaxKind::IS_NORMALIZED
22713    }
22714    #[inline]
22715    fn cast(syntax: SyntaxNode) -> Option<Self> {
22716        if Self::can_cast(syntax.kind()) {
22717            Some(Self { syntax })
22718        } else {
22719            None
22720        }
22721    }
22722    #[inline]
22723    fn syntax(&self) -> &SyntaxNode {
22724        &self.syntax
22725    }
22726}
22727impl AstNode for IsNot {
22728    #[inline]
22729    fn can_cast(kind: SyntaxKind) -> bool {
22730        kind == SyntaxKind::IS_NOT
22731    }
22732    #[inline]
22733    fn cast(syntax: SyntaxNode) -> Option<Self> {
22734        if Self::can_cast(syntax.kind()) {
22735            Some(Self { syntax })
22736        } else {
22737            None
22738        }
22739    }
22740    #[inline]
22741    fn syntax(&self) -> &SyntaxNode {
22742        &self.syntax
22743    }
22744}
22745impl AstNode for IsNotDistinctFrom {
22746    #[inline]
22747    fn can_cast(kind: SyntaxKind) -> bool {
22748        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
22749    }
22750    #[inline]
22751    fn cast(syntax: SyntaxNode) -> Option<Self> {
22752        if Self::can_cast(syntax.kind()) {
22753            Some(Self { syntax })
22754        } else {
22755            None
22756        }
22757    }
22758    #[inline]
22759    fn syntax(&self) -> &SyntaxNode {
22760        &self.syntax
22761    }
22762}
22763impl AstNode for IsNotJson {
22764    #[inline]
22765    fn can_cast(kind: SyntaxKind) -> bool {
22766        kind == SyntaxKind::IS_NOT_JSON
22767    }
22768    #[inline]
22769    fn cast(syntax: SyntaxNode) -> Option<Self> {
22770        if Self::can_cast(syntax.kind()) {
22771            Some(Self { syntax })
22772        } else {
22773            None
22774        }
22775    }
22776    #[inline]
22777    fn syntax(&self) -> &SyntaxNode {
22778        &self.syntax
22779    }
22780}
22781impl AstNode for IsNotJsonArray {
22782    #[inline]
22783    fn can_cast(kind: SyntaxKind) -> bool {
22784        kind == SyntaxKind::IS_NOT_JSON_ARRAY
22785    }
22786    #[inline]
22787    fn cast(syntax: SyntaxNode) -> Option<Self> {
22788        if Self::can_cast(syntax.kind()) {
22789            Some(Self { syntax })
22790        } else {
22791            None
22792        }
22793    }
22794    #[inline]
22795    fn syntax(&self) -> &SyntaxNode {
22796        &self.syntax
22797    }
22798}
22799impl AstNode for IsNotJsonObject {
22800    #[inline]
22801    fn can_cast(kind: SyntaxKind) -> bool {
22802        kind == SyntaxKind::IS_NOT_JSON_OBJECT
22803    }
22804    #[inline]
22805    fn cast(syntax: SyntaxNode) -> Option<Self> {
22806        if Self::can_cast(syntax.kind()) {
22807            Some(Self { syntax })
22808        } else {
22809            None
22810        }
22811    }
22812    #[inline]
22813    fn syntax(&self) -> &SyntaxNode {
22814        &self.syntax
22815    }
22816}
22817impl AstNode for IsNotJsonScalar {
22818    #[inline]
22819    fn can_cast(kind: SyntaxKind) -> bool {
22820        kind == SyntaxKind::IS_NOT_JSON_SCALAR
22821    }
22822    #[inline]
22823    fn cast(syntax: SyntaxNode) -> Option<Self> {
22824        if Self::can_cast(syntax.kind()) {
22825            Some(Self { syntax })
22826        } else {
22827            None
22828        }
22829    }
22830    #[inline]
22831    fn syntax(&self) -> &SyntaxNode {
22832        &self.syntax
22833    }
22834}
22835impl AstNode for IsNotJsonValue {
22836    #[inline]
22837    fn can_cast(kind: SyntaxKind) -> bool {
22838        kind == SyntaxKind::IS_NOT_JSON_VALUE
22839    }
22840    #[inline]
22841    fn cast(syntax: SyntaxNode) -> Option<Self> {
22842        if Self::can_cast(syntax.kind()) {
22843            Some(Self { syntax })
22844        } else {
22845            None
22846        }
22847    }
22848    #[inline]
22849    fn syntax(&self) -> &SyntaxNode {
22850        &self.syntax
22851    }
22852}
22853impl AstNode for IsNotNormalized {
22854    #[inline]
22855    fn can_cast(kind: SyntaxKind) -> bool {
22856        kind == SyntaxKind::IS_NOT_NORMALIZED
22857    }
22858    #[inline]
22859    fn cast(syntax: SyntaxNode) -> Option<Self> {
22860        if Self::can_cast(syntax.kind()) {
22861            Some(Self { syntax })
22862        } else {
22863            None
22864        }
22865    }
22866    #[inline]
22867    fn syntax(&self) -> &SyntaxNode {
22868        &self.syntax
22869    }
22870}
22871impl AstNode for Join {
22872    #[inline]
22873    fn can_cast(kind: SyntaxKind) -> bool {
22874        kind == SyntaxKind::JOIN
22875    }
22876    #[inline]
22877    fn cast(syntax: SyntaxNode) -> Option<Self> {
22878        if Self::can_cast(syntax.kind()) {
22879            Some(Self { syntax })
22880        } else {
22881            None
22882        }
22883    }
22884    #[inline]
22885    fn syntax(&self) -> &SyntaxNode {
22886        &self.syntax
22887    }
22888}
22889impl AstNode for JoinCross {
22890    #[inline]
22891    fn can_cast(kind: SyntaxKind) -> bool {
22892        kind == SyntaxKind::JOIN_CROSS
22893    }
22894    #[inline]
22895    fn cast(syntax: SyntaxNode) -> Option<Self> {
22896        if Self::can_cast(syntax.kind()) {
22897            Some(Self { syntax })
22898        } else {
22899            None
22900        }
22901    }
22902    #[inline]
22903    fn syntax(&self) -> &SyntaxNode {
22904        &self.syntax
22905    }
22906}
22907impl AstNode for JoinExpr {
22908    #[inline]
22909    fn can_cast(kind: SyntaxKind) -> bool {
22910        kind == SyntaxKind::JOIN_EXPR
22911    }
22912    #[inline]
22913    fn cast(syntax: SyntaxNode) -> Option<Self> {
22914        if Self::can_cast(syntax.kind()) {
22915            Some(Self { syntax })
22916        } else {
22917            None
22918        }
22919    }
22920    #[inline]
22921    fn syntax(&self) -> &SyntaxNode {
22922        &self.syntax
22923    }
22924}
22925impl AstNode for JoinFull {
22926    #[inline]
22927    fn can_cast(kind: SyntaxKind) -> bool {
22928        kind == SyntaxKind::JOIN_FULL
22929    }
22930    #[inline]
22931    fn cast(syntax: SyntaxNode) -> Option<Self> {
22932        if Self::can_cast(syntax.kind()) {
22933            Some(Self { syntax })
22934        } else {
22935            None
22936        }
22937    }
22938    #[inline]
22939    fn syntax(&self) -> &SyntaxNode {
22940        &self.syntax
22941    }
22942}
22943impl AstNode for JoinInner {
22944    #[inline]
22945    fn can_cast(kind: SyntaxKind) -> bool {
22946        kind == SyntaxKind::JOIN_INNER
22947    }
22948    #[inline]
22949    fn cast(syntax: SyntaxNode) -> Option<Self> {
22950        if Self::can_cast(syntax.kind()) {
22951            Some(Self { syntax })
22952        } else {
22953            None
22954        }
22955    }
22956    #[inline]
22957    fn syntax(&self) -> &SyntaxNode {
22958        &self.syntax
22959    }
22960}
22961impl AstNode for JoinLeft {
22962    #[inline]
22963    fn can_cast(kind: SyntaxKind) -> bool {
22964        kind == SyntaxKind::JOIN_LEFT
22965    }
22966    #[inline]
22967    fn cast(syntax: SyntaxNode) -> Option<Self> {
22968        if Self::can_cast(syntax.kind()) {
22969            Some(Self { syntax })
22970        } else {
22971            None
22972        }
22973    }
22974    #[inline]
22975    fn syntax(&self) -> &SyntaxNode {
22976        &self.syntax
22977    }
22978}
22979impl AstNode for JoinRight {
22980    #[inline]
22981    fn can_cast(kind: SyntaxKind) -> bool {
22982        kind == SyntaxKind::JOIN_RIGHT
22983    }
22984    #[inline]
22985    fn cast(syntax: SyntaxNode) -> Option<Self> {
22986        if Self::can_cast(syntax.kind()) {
22987            Some(Self { syntax })
22988        } else {
22989            None
22990        }
22991    }
22992    #[inline]
22993    fn syntax(&self) -> &SyntaxNode {
22994        &self.syntax
22995    }
22996}
22997impl AstNode for JoinUsingClause {
22998    #[inline]
22999    fn can_cast(kind: SyntaxKind) -> bool {
23000        kind == SyntaxKind::JOIN_USING_CLAUSE
23001    }
23002    #[inline]
23003    fn cast(syntax: SyntaxNode) -> Option<Self> {
23004        if Self::can_cast(syntax.kind()) {
23005            Some(Self { syntax })
23006        } else {
23007            None
23008        }
23009    }
23010    #[inline]
23011    fn syntax(&self) -> &SyntaxNode {
23012        &self.syntax
23013    }
23014}
23015impl AstNode for JsonArrayAggFn {
23016    #[inline]
23017    fn can_cast(kind: SyntaxKind) -> bool {
23018        kind == SyntaxKind::JSON_ARRAY_AGG_FN
23019    }
23020    #[inline]
23021    fn cast(syntax: SyntaxNode) -> Option<Self> {
23022        if Self::can_cast(syntax.kind()) {
23023            Some(Self { syntax })
23024        } else {
23025            None
23026        }
23027    }
23028    #[inline]
23029    fn syntax(&self) -> &SyntaxNode {
23030        &self.syntax
23031    }
23032}
23033impl AstNode for JsonArrayFn {
23034    #[inline]
23035    fn can_cast(kind: SyntaxKind) -> bool {
23036        kind == SyntaxKind::JSON_ARRAY_FN
23037    }
23038    #[inline]
23039    fn cast(syntax: SyntaxNode) -> Option<Self> {
23040        if Self::can_cast(syntax.kind()) {
23041            Some(Self { syntax })
23042        } else {
23043            None
23044        }
23045    }
23046    #[inline]
23047    fn syntax(&self) -> &SyntaxNode {
23048        &self.syntax
23049    }
23050}
23051impl AstNode for JsonBehaviorClause {
23052    #[inline]
23053    fn can_cast(kind: SyntaxKind) -> bool {
23054        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
23055    }
23056    #[inline]
23057    fn cast(syntax: SyntaxNode) -> Option<Self> {
23058        if Self::can_cast(syntax.kind()) {
23059            Some(Self { syntax })
23060        } else {
23061            None
23062        }
23063    }
23064    #[inline]
23065    fn syntax(&self) -> &SyntaxNode {
23066        &self.syntax
23067    }
23068}
23069impl AstNode for JsonBehaviorDefault {
23070    #[inline]
23071    fn can_cast(kind: SyntaxKind) -> bool {
23072        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
23073    }
23074    #[inline]
23075    fn cast(syntax: SyntaxNode) -> Option<Self> {
23076        if Self::can_cast(syntax.kind()) {
23077            Some(Self { syntax })
23078        } else {
23079            None
23080        }
23081    }
23082    #[inline]
23083    fn syntax(&self) -> &SyntaxNode {
23084        &self.syntax
23085    }
23086}
23087impl AstNode for JsonBehaviorEmptyArray {
23088    #[inline]
23089    fn can_cast(kind: SyntaxKind) -> bool {
23090        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
23091    }
23092    #[inline]
23093    fn cast(syntax: SyntaxNode) -> Option<Self> {
23094        if Self::can_cast(syntax.kind()) {
23095            Some(Self { syntax })
23096        } else {
23097            None
23098        }
23099    }
23100    #[inline]
23101    fn syntax(&self) -> &SyntaxNode {
23102        &self.syntax
23103    }
23104}
23105impl AstNode for JsonBehaviorEmptyObject {
23106    #[inline]
23107    fn can_cast(kind: SyntaxKind) -> bool {
23108        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
23109    }
23110    #[inline]
23111    fn cast(syntax: SyntaxNode) -> Option<Self> {
23112        if Self::can_cast(syntax.kind()) {
23113            Some(Self { syntax })
23114        } else {
23115            None
23116        }
23117    }
23118    #[inline]
23119    fn syntax(&self) -> &SyntaxNode {
23120        &self.syntax
23121    }
23122}
23123impl AstNode for JsonBehaviorError {
23124    #[inline]
23125    fn can_cast(kind: SyntaxKind) -> bool {
23126        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
23127    }
23128    #[inline]
23129    fn cast(syntax: SyntaxNode) -> Option<Self> {
23130        if Self::can_cast(syntax.kind()) {
23131            Some(Self { syntax })
23132        } else {
23133            None
23134        }
23135    }
23136    #[inline]
23137    fn syntax(&self) -> &SyntaxNode {
23138        &self.syntax
23139    }
23140}
23141impl AstNode for JsonBehaviorFalse {
23142    #[inline]
23143    fn can_cast(kind: SyntaxKind) -> bool {
23144        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
23145    }
23146    #[inline]
23147    fn cast(syntax: SyntaxNode) -> Option<Self> {
23148        if Self::can_cast(syntax.kind()) {
23149            Some(Self { syntax })
23150        } else {
23151            None
23152        }
23153    }
23154    #[inline]
23155    fn syntax(&self) -> &SyntaxNode {
23156        &self.syntax
23157    }
23158}
23159impl AstNode for JsonBehaviorNull {
23160    #[inline]
23161    fn can_cast(kind: SyntaxKind) -> bool {
23162        kind == SyntaxKind::JSON_BEHAVIOR_NULL
23163    }
23164    #[inline]
23165    fn cast(syntax: SyntaxNode) -> Option<Self> {
23166        if Self::can_cast(syntax.kind()) {
23167            Some(Self { syntax })
23168        } else {
23169            None
23170        }
23171    }
23172    #[inline]
23173    fn syntax(&self) -> &SyntaxNode {
23174        &self.syntax
23175    }
23176}
23177impl AstNode for JsonBehaviorTrue {
23178    #[inline]
23179    fn can_cast(kind: SyntaxKind) -> bool {
23180        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
23181    }
23182    #[inline]
23183    fn cast(syntax: SyntaxNode) -> Option<Self> {
23184        if Self::can_cast(syntax.kind()) {
23185            Some(Self { syntax })
23186        } else {
23187            None
23188        }
23189    }
23190    #[inline]
23191    fn syntax(&self) -> &SyntaxNode {
23192        &self.syntax
23193    }
23194}
23195impl AstNode for JsonBehaviorUnknown {
23196    #[inline]
23197    fn can_cast(kind: SyntaxKind) -> bool {
23198        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
23199    }
23200    #[inline]
23201    fn cast(syntax: SyntaxNode) -> Option<Self> {
23202        if Self::can_cast(syntax.kind()) {
23203            Some(Self { syntax })
23204        } else {
23205            None
23206        }
23207    }
23208    #[inline]
23209    fn syntax(&self) -> &SyntaxNode {
23210        &self.syntax
23211    }
23212}
23213impl AstNode for JsonEncodingClause {
23214    #[inline]
23215    fn can_cast(kind: SyntaxKind) -> bool {
23216        kind == SyntaxKind::JSON_ENCODING_CLAUSE
23217    }
23218    #[inline]
23219    fn cast(syntax: SyntaxNode) -> Option<Self> {
23220        if Self::can_cast(syntax.kind()) {
23221            Some(Self { syntax })
23222        } else {
23223            None
23224        }
23225    }
23226    #[inline]
23227    fn syntax(&self) -> &SyntaxNode {
23228        &self.syntax
23229    }
23230}
23231impl AstNode for JsonExistsFn {
23232    #[inline]
23233    fn can_cast(kind: SyntaxKind) -> bool {
23234        kind == SyntaxKind::JSON_EXISTS_FN
23235    }
23236    #[inline]
23237    fn cast(syntax: SyntaxNode) -> Option<Self> {
23238        if Self::can_cast(syntax.kind()) {
23239            Some(Self { syntax })
23240        } else {
23241            None
23242        }
23243    }
23244    #[inline]
23245    fn syntax(&self) -> &SyntaxNode {
23246        &self.syntax
23247    }
23248}
23249impl AstNode for JsonExprFormat {
23250    #[inline]
23251    fn can_cast(kind: SyntaxKind) -> bool {
23252        kind == SyntaxKind::JSON_EXPR_FORMAT
23253    }
23254    #[inline]
23255    fn cast(syntax: SyntaxNode) -> Option<Self> {
23256        if Self::can_cast(syntax.kind()) {
23257            Some(Self { syntax })
23258        } else {
23259            None
23260        }
23261    }
23262    #[inline]
23263    fn syntax(&self) -> &SyntaxNode {
23264        &self.syntax
23265    }
23266}
23267impl AstNode for JsonFn {
23268    #[inline]
23269    fn can_cast(kind: SyntaxKind) -> bool {
23270        kind == SyntaxKind::JSON_FN
23271    }
23272    #[inline]
23273    fn cast(syntax: SyntaxNode) -> Option<Self> {
23274        if Self::can_cast(syntax.kind()) {
23275            Some(Self { syntax })
23276        } else {
23277            None
23278        }
23279    }
23280    #[inline]
23281    fn syntax(&self) -> &SyntaxNode {
23282        &self.syntax
23283    }
23284}
23285impl AstNode for JsonFormatClause {
23286    #[inline]
23287    fn can_cast(kind: SyntaxKind) -> bool {
23288        kind == SyntaxKind::JSON_FORMAT_CLAUSE
23289    }
23290    #[inline]
23291    fn cast(syntax: SyntaxNode) -> Option<Self> {
23292        if Self::can_cast(syntax.kind()) {
23293            Some(Self { syntax })
23294        } else {
23295            None
23296        }
23297    }
23298    #[inline]
23299    fn syntax(&self) -> &SyntaxNode {
23300        &self.syntax
23301    }
23302}
23303impl AstNode for JsonKeyValue {
23304    #[inline]
23305    fn can_cast(kind: SyntaxKind) -> bool {
23306        kind == SyntaxKind::JSON_KEY_VALUE
23307    }
23308    #[inline]
23309    fn cast(syntax: SyntaxNode) -> Option<Self> {
23310        if Self::can_cast(syntax.kind()) {
23311            Some(Self { syntax })
23312        } else {
23313            None
23314        }
23315    }
23316    #[inline]
23317    fn syntax(&self) -> &SyntaxNode {
23318        &self.syntax
23319    }
23320}
23321impl AstNode for JsonKeysUniqueClause {
23322    #[inline]
23323    fn can_cast(kind: SyntaxKind) -> bool {
23324        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
23325    }
23326    #[inline]
23327    fn cast(syntax: SyntaxNode) -> Option<Self> {
23328        if Self::can_cast(syntax.kind()) {
23329            Some(Self { syntax })
23330        } else {
23331            None
23332        }
23333    }
23334    #[inline]
23335    fn syntax(&self) -> &SyntaxNode {
23336        &self.syntax
23337    }
23338}
23339impl AstNode for JsonNullClause {
23340    #[inline]
23341    fn can_cast(kind: SyntaxKind) -> bool {
23342        kind == SyntaxKind::JSON_NULL_CLAUSE
23343    }
23344    #[inline]
23345    fn cast(syntax: SyntaxNode) -> Option<Self> {
23346        if Self::can_cast(syntax.kind()) {
23347            Some(Self { syntax })
23348        } else {
23349            None
23350        }
23351    }
23352    #[inline]
23353    fn syntax(&self) -> &SyntaxNode {
23354        &self.syntax
23355    }
23356}
23357impl AstNode for JsonObjectAggFn {
23358    #[inline]
23359    fn can_cast(kind: SyntaxKind) -> bool {
23360        kind == SyntaxKind::JSON_OBJECT_AGG_FN
23361    }
23362    #[inline]
23363    fn cast(syntax: SyntaxNode) -> Option<Self> {
23364        if Self::can_cast(syntax.kind()) {
23365            Some(Self { syntax })
23366        } else {
23367            None
23368        }
23369    }
23370    #[inline]
23371    fn syntax(&self) -> &SyntaxNode {
23372        &self.syntax
23373    }
23374}
23375impl AstNode for JsonObjectFn {
23376    #[inline]
23377    fn can_cast(kind: SyntaxKind) -> bool {
23378        kind == SyntaxKind::JSON_OBJECT_FN
23379    }
23380    #[inline]
23381    fn cast(syntax: SyntaxNode) -> Option<Self> {
23382        if Self::can_cast(syntax.kind()) {
23383            Some(Self { syntax })
23384        } else {
23385            None
23386        }
23387    }
23388    #[inline]
23389    fn syntax(&self) -> &SyntaxNode {
23390        &self.syntax
23391    }
23392}
23393impl AstNode for JsonOnEmptyClause {
23394    #[inline]
23395    fn can_cast(kind: SyntaxKind) -> bool {
23396        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
23397    }
23398    #[inline]
23399    fn cast(syntax: SyntaxNode) -> Option<Self> {
23400        if Self::can_cast(syntax.kind()) {
23401            Some(Self { syntax })
23402        } else {
23403            None
23404        }
23405    }
23406    #[inline]
23407    fn syntax(&self) -> &SyntaxNode {
23408        &self.syntax
23409    }
23410}
23411impl AstNode for JsonOnErrorClause {
23412    #[inline]
23413    fn can_cast(kind: SyntaxKind) -> bool {
23414        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
23415    }
23416    #[inline]
23417    fn cast(syntax: SyntaxNode) -> Option<Self> {
23418        if Self::can_cast(syntax.kind()) {
23419            Some(Self { syntax })
23420        } else {
23421            None
23422        }
23423    }
23424    #[inline]
23425    fn syntax(&self) -> &SyntaxNode {
23426        &self.syntax
23427    }
23428}
23429impl AstNode for JsonPassingArg {
23430    #[inline]
23431    fn can_cast(kind: SyntaxKind) -> bool {
23432        kind == SyntaxKind::JSON_PASSING_ARG
23433    }
23434    #[inline]
23435    fn cast(syntax: SyntaxNode) -> Option<Self> {
23436        if Self::can_cast(syntax.kind()) {
23437            Some(Self { syntax })
23438        } else {
23439            None
23440        }
23441    }
23442    #[inline]
23443    fn syntax(&self) -> &SyntaxNode {
23444        &self.syntax
23445    }
23446}
23447impl AstNode for JsonPassingClause {
23448    #[inline]
23449    fn can_cast(kind: SyntaxKind) -> bool {
23450        kind == SyntaxKind::JSON_PASSING_CLAUSE
23451    }
23452    #[inline]
23453    fn cast(syntax: SyntaxNode) -> Option<Self> {
23454        if Self::can_cast(syntax.kind()) {
23455            Some(Self { syntax })
23456        } else {
23457            None
23458        }
23459    }
23460    #[inline]
23461    fn syntax(&self) -> &SyntaxNode {
23462        &self.syntax
23463    }
23464}
23465impl AstNode for JsonPathClause {
23466    #[inline]
23467    fn can_cast(kind: SyntaxKind) -> bool {
23468        kind == SyntaxKind::JSON_PATH_CLAUSE
23469    }
23470    #[inline]
23471    fn cast(syntax: SyntaxNode) -> Option<Self> {
23472        if Self::can_cast(syntax.kind()) {
23473            Some(Self { syntax })
23474        } else {
23475            None
23476        }
23477    }
23478    #[inline]
23479    fn syntax(&self) -> &SyntaxNode {
23480        &self.syntax
23481    }
23482}
23483impl AstNode for JsonQueryFn {
23484    #[inline]
23485    fn can_cast(kind: SyntaxKind) -> bool {
23486        kind == SyntaxKind::JSON_QUERY_FN
23487    }
23488    #[inline]
23489    fn cast(syntax: SyntaxNode) -> Option<Self> {
23490        if Self::can_cast(syntax.kind()) {
23491            Some(Self { syntax })
23492        } else {
23493            None
23494        }
23495    }
23496    #[inline]
23497    fn syntax(&self) -> &SyntaxNode {
23498        &self.syntax
23499    }
23500}
23501impl AstNode for JsonQuotesClause {
23502    #[inline]
23503    fn can_cast(kind: SyntaxKind) -> bool {
23504        kind == SyntaxKind::JSON_QUOTES_CLAUSE
23505    }
23506    #[inline]
23507    fn cast(syntax: SyntaxNode) -> Option<Self> {
23508        if Self::can_cast(syntax.kind()) {
23509            Some(Self { syntax })
23510        } else {
23511            None
23512        }
23513    }
23514    #[inline]
23515    fn syntax(&self) -> &SyntaxNode {
23516        &self.syntax
23517    }
23518}
23519impl AstNode for JsonReturningClause {
23520    #[inline]
23521    fn can_cast(kind: SyntaxKind) -> bool {
23522        kind == SyntaxKind::JSON_RETURNING_CLAUSE
23523    }
23524    #[inline]
23525    fn cast(syntax: SyntaxNode) -> Option<Self> {
23526        if Self::can_cast(syntax.kind()) {
23527            Some(Self { syntax })
23528        } else {
23529            None
23530        }
23531    }
23532    #[inline]
23533    fn syntax(&self) -> &SyntaxNode {
23534        &self.syntax
23535    }
23536}
23537impl AstNode for JsonScalarFn {
23538    #[inline]
23539    fn can_cast(kind: SyntaxKind) -> bool {
23540        kind == SyntaxKind::JSON_SCALAR_FN
23541    }
23542    #[inline]
23543    fn cast(syntax: SyntaxNode) -> Option<Self> {
23544        if Self::can_cast(syntax.kind()) {
23545            Some(Self { syntax })
23546        } else {
23547            None
23548        }
23549    }
23550    #[inline]
23551    fn syntax(&self) -> &SyntaxNode {
23552        &self.syntax
23553    }
23554}
23555impl AstNode for JsonSelectFormat {
23556    #[inline]
23557    fn can_cast(kind: SyntaxKind) -> bool {
23558        kind == SyntaxKind::JSON_SELECT_FORMAT
23559    }
23560    #[inline]
23561    fn cast(syntax: SyntaxNode) -> Option<Self> {
23562        if Self::can_cast(syntax.kind()) {
23563            Some(Self { syntax })
23564        } else {
23565            None
23566        }
23567    }
23568    #[inline]
23569    fn syntax(&self) -> &SyntaxNode {
23570        &self.syntax
23571    }
23572}
23573impl AstNode for JsonSerializeFn {
23574    #[inline]
23575    fn can_cast(kind: SyntaxKind) -> bool {
23576        kind == SyntaxKind::JSON_SERIALIZE_FN
23577    }
23578    #[inline]
23579    fn cast(syntax: SyntaxNode) -> Option<Self> {
23580        if Self::can_cast(syntax.kind()) {
23581            Some(Self { syntax })
23582        } else {
23583            None
23584        }
23585    }
23586    #[inline]
23587    fn syntax(&self) -> &SyntaxNode {
23588        &self.syntax
23589    }
23590}
23591impl AstNode for JsonTable {
23592    #[inline]
23593    fn can_cast(kind: SyntaxKind) -> bool {
23594        kind == SyntaxKind::JSON_TABLE
23595    }
23596    #[inline]
23597    fn cast(syntax: SyntaxNode) -> Option<Self> {
23598        if Self::can_cast(syntax.kind()) {
23599            Some(Self { syntax })
23600        } else {
23601            None
23602        }
23603    }
23604    #[inline]
23605    fn syntax(&self) -> &SyntaxNode {
23606        &self.syntax
23607    }
23608}
23609impl AstNode for JsonTableColumn {
23610    #[inline]
23611    fn can_cast(kind: SyntaxKind) -> bool {
23612        kind == SyntaxKind::JSON_TABLE_COLUMN
23613    }
23614    #[inline]
23615    fn cast(syntax: SyntaxNode) -> Option<Self> {
23616        if Self::can_cast(syntax.kind()) {
23617            Some(Self { syntax })
23618        } else {
23619            None
23620        }
23621    }
23622    #[inline]
23623    fn syntax(&self) -> &SyntaxNode {
23624        &self.syntax
23625    }
23626}
23627impl AstNode for JsonTableColumnList {
23628    #[inline]
23629    fn can_cast(kind: SyntaxKind) -> bool {
23630        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
23631    }
23632    #[inline]
23633    fn cast(syntax: SyntaxNode) -> Option<Self> {
23634        if Self::can_cast(syntax.kind()) {
23635            Some(Self { syntax })
23636        } else {
23637            None
23638        }
23639    }
23640    #[inline]
23641    fn syntax(&self) -> &SyntaxNode {
23642        &self.syntax
23643    }
23644}
23645impl AstNode for JsonValueExpr {
23646    #[inline]
23647    fn can_cast(kind: SyntaxKind) -> bool {
23648        kind == SyntaxKind::JSON_VALUE_EXPR
23649    }
23650    #[inline]
23651    fn cast(syntax: SyntaxNode) -> Option<Self> {
23652        if Self::can_cast(syntax.kind()) {
23653            Some(Self { syntax })
23654        } else {
23655            None
23656        }
23657    }
23658    #[inline]
23659    fn syntax(&self) -> &SyntaxNode {
23660        &self.syntax
23661    }
23662}
23663impl AstNode for JsonValueFn {
23664    #[inline]
23665    fn can_cast(kind: SyntaxKind) -> bool {
23666        kind == SyntaxKind::JSON_VALUE_FN
23667    }
23668    #[inline]
23669    fn cast(syntax: SyntaxNode) -> Option<Self> {
23670        if Self::can_cast(syntax.kind()) {
23671            Some(Self { syntax })
23672        } else {
23673            None
23674        }
23675    }
23676    #[inline]
23677    fn syntax(&self) -> &SyntaxNode {
23678        &self.syntax
23679    }
23680}
23681impl AstNode for JsonWrapperBehaviorClause {
23682    #[inline]
23683    fn can_cast(kind: SyntaxKind) -> bool {
23684        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
23685    }
23686    #[inline]
23687    fn cast(syntax: SyntaxNode) -> Option<Self> {
23688        if Self::can_cast(syntax.kind()) {
23689            Some(Self { syntax })
23690        } else {
23691            None
23692        }
23693    }
23694    #[inline]
23695    fn syntax(&self) -> &SyntaxNode {
23696        &self.syntax
23697    }
23698}
23699impl AstNode for LanguageFuncOption {
23700    #[inline]
23701    fn can_cast(kind: SyntaxKind) -> bool {
23702        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
23703    }
23704    #[inline]
23705    fn cast(syntax: SyntaxNode) -> Option<Self> {
23706        if Self::can_cast(syntax.kind()) {
23707            Some(Self { syntax })
23708        } else {
23709            None
23710        }
23711    }
23712    #[inline]
23713    fn syntax(&self) -> &SyntaxNode {
23714        &self.syntax
23715    }
23716}
23717impl AstNode for LeakproofFuncOption {
23718    #[inline]
23719    fn can_cast(kind: SyntaxKind) -> bool {
23720        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
23721    }
23722    #[inline]
23723    fn cast(syntax: SyntaxNode) -> Option<Self> {
23724        if Self::can_cast(syntax.kind()) {
23725            Some(Self { syntax })
23726        } else {
23727            None
23728        }
23729    }
23730    #[inline]
23731    fn syntax(&self) -> &SyntaxNode {
23732        &self.syntax
23733    }
23734}
23735impl AstNode for LikeClause {
23736    #[inline]
23737    fn can_cast(kind: SyntaxKind) -> bool {
23738        kind == SyntaxKind::LIKE_CLAUSE
23739    }
23740    #[inline]
23741    fn cast(syntax: SyntaxNode) -> Option<Self> {
23742        if Self::can_cast(syntax.kind()) {
23743            Some(Self { syntax })
23744        } else {
23745            None
23746        }
23747    }
23748    #[inline]
23749    fn syntax(&self) -> &SyntaxNode {
23750        &self.syntax
23751    }
23752}
23753impl AstNode for LikeOption {
23754    #[inline]
23755    fn can_cast(kind: SyntaxKind) -> bool {
23756        kind == SyntaxKind::LIKE_OPTION
23757    }
23758    #[inline]
23759    fn cast(syntax: SyntaxNode) -> Option<Self> {
23760        if Self::can_cast(syntax.kind()) {
23761            Some(Self { syntax })
23762        } else {
23763            None
23764        }
23765    }
23766    #[inline]
23767    fn syntax(&self) -> &SyntaxNode {
23768        &self.syntax
23769    }
23770}
23771impl AstNode for LimitClause {
23772    #[inline]
23773    fn can_cast(kind: SyntaxKind) -> bool {
23774        kind == SyntaxKind::LIMIT_CLAUSE
23775    }
23776    #[inline]
23777    fn cast(syntax: SyntaxNode) -> Option<Self> {
23778        if Self::can_cast(syntax.kind()) {
23779            Some(Self { syntax })
23780        } else {
23781            None
23782        }
23783    }
23784    #[inline]
23785    fn syntax(&self) -> &SyntaxNode {
23786        &self.syntax
23787    }
23788}
23789impl AstNode for LimitToTables {
23790    #[inline]
23791    fn can_cast(kind: SyntaxKind) -> bool {
23792        kind == SyntaxKind::LIMIT_TO_TABLES
23793    }
23794    #[inline]
23795    fn cast(syntax: SyntaxNode) -> Option<Self> {
23796        if Self::can_cast(syntax.kind()) {
23797            Some(Self { syntax })
23798        } else {
23799            None
23800        }
23801    }
23802    #[inline]
23803    fn syntax(&self) -> &SyntaxNode {
23804        &self.syntax
23805    }
23806}
23807impl AstNode for Listen {
23808    #[inline]
23809    fn can_cast(kind: SyntaxKind) -> bool {
23810        kind == SyntaxKind::LISTEN
23811    }
23812    #[inline]
23813    fn cast(syntax: SyntaxNode) -> Option<Self> {
23814        if Self::can_cast(syntax.kind()) {
23815            Some(Self { syntax })
23816        } else {
23817            None
23818        }
23819    }
23820    #[inline]
23821    fn syntax(&self) -> &SyntaxNode {
23822        &self.syntax
23823    }
23824}
23825impl AstNode for Literal {
23826    #[inline]
23827    fn can_cast(kind: SyntaxKind) -> bool {
23828        kind == SyntaxKind::LITERAL
23829    }
23830    #[inline]
23831    fn cast(syntax: SyntaxNode) -> Option<Self> {
23832        if Self::can_cast(syntax.kind()) {
23833            Some(Self { syntax })
23834        } else {
23835            None
23836        }
23837    }
23838    #[inline]
23839    fn syntax(&self) -> &SyntaxNode {
23840        &self.syntax
23841    }
23842}
23843impl AstNode for Load {
23844    #[inline]
23845    fn can_cast(kind: SyntaxKind) -> bool {
23846        kind == SyntaxKind::LOAD
23847    }
23848    #[inline]
23849    fn cast(syntax: SyntaxNode) -> Option<Self> {
23850        if Self::can_cast(syntax.kind()) {
23851            Some(Self { syntax })
23852        } else {
23853            None
23854        }
23855    }
23856    #[inline]
23857    fn syntax(&self) -> &SyntaxNode {
23858        &self.syntax
23859    }
23860}
23861impl AstNode for Lock {
23862    #[inline]
23863    fn can_cast(kind: SyntaxKind) -> bool {
23864        kind == SyntaxKind::LOCK
23865    }
23866    #[inline]
23867    fn cast(syntax: SyntaxNode) -> Option<Self> {
23868        if Self::can_cast(syntax.kind()) {
23869            Some(Self { syntax })
23870        } else {
23871            None
23872        }
23873    }
23874    #[inline]
23875    fn syntax(&self) -> &SyntaxNode {
23876        &self.syntax
23877    }
23878}
23879impl AstNode for LockingClause {
23880    #[inline]
23881    fn can_cast(kind: SyntaxKind) -> bool {
23882        kind == SyntaxKind::LOCKING_CLAUSE
23883    }
23884    #[inline]
23885    fn cast(syntax: SyntaxNode) -> Option<Self> {
23886        if Self::can_cast(syntax.kind()) {
23887            Some(Self { syntax })
23888        } else {
23889            None
23890        }
23891    }
23892    #[inline]
23893    fn syntax(&self) -> &SyntaxNode {
23894        &self.syntax
23895    }
23896}
23897impl AstNode for Lteq {
23898    #[inline]
23899    fn can_cast(kind: SyntaxKind) -> bool {
23900        kind == SyntaxKind::LTEQ
23901    }
23902    #[inline]
23903    fn cast(syntax: SyntaxNode) -> Option<Self> {
23904        if Self::can_cast(syntax.kind()) {
23905            Some(Self { syntax })
23906        } else {
23907            None
23908        }
23909    }
23910    #[inline]
23911    fn syntax(&self) -> &SyntaxNode {
23912        &self.syntax
23913    }
23914}
23915impl AstNode for MatchFull {
23916    #[inline]
23917    fn can_cast(kind: SyntaxKind) -> bool {
23918        kind == SyntaxKind::MATCH_FULL
23919    }
23920    #[inline]
23921    fn cast(syntax: SyntaxNode) -> Option<Self> {
23922        if Self::can_cast(syntax.kind()) {
23923            Some(Self { syntax })
23924        } else {
23925            None
23926        }
23927    }
23928    #[inline]
23929    fn syntax(&self) -> &SyntaxNode {
23930        &self.syntax
23931    }
23932}
23933impl AstNode for MatchPartial {
23934    #[inline]
23935    fn can_cast(kind: SyntaxKind) -> bool {
23936        kind == SyntaxKind::MATCH_PARTIAL
23937    }
23938    #[inline]
23939    fn cast(syntax: SyntaxNode) -> Option<Self> {
23940        if Self::can_cast(syntax.kind()) {
23941            Some(Self { syntax })
23942        } else {
23943            None
23944        }
23945    }
23946    #[inline]
23947    fn syntax(&self) -> &SyntaxNode {
23948        &self.syntax
23949    }
23950}
23951impl AstNode for MatchSimple {
23952    #[inline]
23953    fn can_cast(kind: SyntaxKind) -> bool {
23954        kind == SyntaxKind::MATCH_SIMPLE
23955    }
23956    #[inline]
23957    fn cast(syntax: SyntaxNode) -> Option<Self> {
23958        if Self::can_cast(syntax.kind()) {
23959            Some(Self { syntax })
23960        } else {
23961            None
23962        }
23963    }
23964    #[inline]
23965    fn syntax(&self) -> &SyntaxNode {
23966        &self.syntax
23967    }
23968}
23969impl AstNode for Materialized {
23970    #[inline]
23971    fn can_cast(kind: SyntaxKind) -> bool {
23972        kind == SyntaxKind::MATERIALIZED
23973    }
23974    #[inline]
23975    fn cast(syntax: SyntaxNode) -> Option<Self> {
23976        if Self::can_cast(syntax.kind()) {
23977            Some(Self { syntax })
23978        } else {
23979            None
23980        }
23981    }
23982    #[inline]
23983    fn syntax(&self) -> &SyntaxNode {
23984        &self.syntax
23985    }
23986}
23987impl AstNode for Merge {
23988    #[inline]
23989    fn can_cast(kind: SyntaxKind) -> bool {
23990        kind == SyntaxKind::MERGE
23991    }
23992    #[inline]
23993    fn cast(syntax: SyntaxNode) -> Option<Self> {
23994        if Self::can_cast(syntax.kind()) {
23995            Some(Self { syntax })
23996        } else {
23997            None
23998        }
23999    }
24000    #[inline]
24001    fn syntax(&self) -> &SyntaxNode {
24002        &self.syntax
24003    }
24004}
24005impl AstNode for MergeDelete {
24006    #[inline]
24007    fn can_cast(kind: SyntaxKind) -> bool {
24008        kind == SyntaxKind::MERGE_DELETE
24009    }
24010    #[inline]
24011    fn cast(syntax: SyntaxNode) -> Option<Self> {
24012        if Self::can_cast(syntax.kind()) {
24013            Some(Self { syntax })
24014        } else {
24015            None
24016        }
24017    }
24018    #[inline]
24019    fn syntax(&self) -> &SyntaxNode {
24020        &self.syntax
24021    }
24022}
24023impl AstNode for MergeDoNothing {
24024    #[inline]
24025    fn can_cast(kind: SyntaxKind) -> bool {
24026        kind == SyntaxKind::MERGE_DO_NOTHING
24027    }
24028    #[inline]
24029    fn cast(syntax: SyntaxNode) -> Option<Self> {
24030        if Self::can_cast(syntax.kind()) {
24031            Some(Self { syntax })
24032        } else {
24033            None
24034        }
24035    }
24036    #[inline]
24037    fn syntax(&self) -> &SyntaxNode {
24038        &self.syntax
24039    }
24040}
24041impl AstNode for MergeInsert {
24042    #[inline]
24043    fn can_cast(kind: SyntaxKind) -> bool {
24044        kind == SyntaxKind::MERGE_INSERT
24045    }
24046    #[inline]
24047    fn cast(syntax: SyntaxNode) -> Option<Self> {
24048        if Self::can_cast(syntax.kind()) {
24049            Some(Self { syntax })
24050        } else {
24051            None
24052        }
24053    }
24054    #[inline]
24055    fn syntax(&self) -> &SyntaxNode {
24056        &self.syntax
24057    }
24058}
24059impl AstNode for MergePartitions {
24060    #[inline]
24061    fn can_cast(kind: SyntaxKind) -> bool {
24062        kind == SyntaxKind::MERGE_PARTITIONS
24063    }
24064    #[inline]
24065    fn cast(syntax: SyntaxNode) -> Option<Self> {
24066        if Self::can_cast(syntax.kind()) {
24067            Some(Self { syntax })
24068        } else {
24069            None
24070        }
24071    }
24072    #[inline]
24073    fn syntax(&self) -> &SyntaxNode {
24074        &self.syntax
24075    }
24076}
24077impl AstNode for MergeUpdate {
24078    #[inline]
24079    fn can_cast(kind: SyntaxKind) -> bool {
24080        kind == SyntaxKind::MERGE_UPDATE
24081    }
24082    #[inline]
24083    fn cast(syntax: SyntaxNode) -> Option<Self> {
24084        if Self::can_cast(syntax.kind()) {
24085            Some(Self { syntax })
24086        } else {
24087            None
24088        }
24089    }
24090    #[inline]
24091    fn syntax(&self) -> &SyntaxNode {
24092        &self.syntax
24093    }
24094}
24095impl AstNode for MergeWhenMatched {
24096    #[inline]
24097    fn can_cast(kind: SyntaxKind) -> bool {
24098        kind == SyntaxKind::MERGE_WHEN_MATCHED
24099    }
24100    #[inline]
24101    fn cast(syntax: SyntaxNode) -> Option<Self> {
24102        if Self::can_cast(syntax.kind()) {
24103            Some(Self { syntax })
24104        } else {
24105            None
24106        }
24107    }
24108    #[inline]
24109    fn syntax(&self) -> &SyntaxNode {
24110        &self.syntax
24111    }
24112}
24113impl AstNode for MergeWhenNotMatchedSource {
24114    #[inline]
24115    fn can_cast(kind: SyntaxKind) -> bool {
24116        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
24117    }
24118    #[inline]
24119    fn cast(syntax: SyntaxNode) -> Option<Self> {
24120        if Self::can_cast(syntax.kind()) {
24121            Some(Self { syntax })
24122        } else {
24123            None
24124        }
24125    }
24126    #[inline]
24127    fn syntax(&self) -> &SyntaxNode {
24128        &self.syntax
24129    }
24130}
24131impl AstNode for MergeWhenNotMatchedTarget {
24132    #[inline]
24133    fn can_cast(kind: SyntaxKind) -> bool {
24134        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
24135    }
24136    #[inline]
24137    fn cast(syntax: SyntaxNode) -> Option<Self> {
24138        if Self::can_cast(syntax.kind()) {
24139            Some(Self { syntax })
24140        } else {
24141            None
24142        }
24143    }
24144    #[inline]
24145    fn syntax(&self) -> &SyntaxNode {
24146        &self.syntax
24147    }
24148}
24149impl AstNode for Move {
24150    #[inline]
24151    fn can_cast(kind: SyntaxKind) -> bool {
24152        kind == SyntaxKind::MOVE
24153    }
24154    #[inline]
24155    fn cast(syntax: SyntaxNode) -> Option<Self> {
24156        if Self::can_cast(syntax.kind()) {
24157            Some(Self { syntax })
24158        } else {
24159            None
24160        }
24161    }
24162    #[inline]
24163    fn syntax(&self) -> &SyntaxNode {
24164        &self.syntax
24165    }
24166}
24167impl AstNode for Name {
24168    #[inline]
24169    fn can_cast(kind: SyntaxKind) -> bool {
24170        kind == SyntaxKind::NAME
24171    }
24172    #[inline]
24173    fn cast(syntax: SyntaxNode) -> Option<Self> {
24174        if Self::can_cast(syntax.kind()) {
24175            Some(Self { syntax })
24176        } else {
24177            None
24178        }
24179    }
24180    #[inline]
24181    fn syntax(&self) -> &SyntaxNode {
24182        &self.syntax
24183    }
24184}
24185impl AstNode for NameRef {
24186    #[inline]
24187    fn can_cast(kind: SyntaxKind) -> bool {
24188        kind == SyntaxKind::NAME_REF
24189    }
24190    #[inline]
24191    fn cast(syntax: SyntaxNode) -> Option<Self> {
24192        if Self::can_cast(syntax.kind()) {
24193            Some(Self { syntax })
24194        } else {
24195            None
24196        }
24197    }
24198    #[inline]
24199    fn syntax(&self) -> &SyntaxNode {
24200        &self.syntax
24201    }
24202}
24203impl AstNode for NamedArg {
24204    #[inline]
24205    fn can_cast(kind: SyntaxKind) -> bool {
24206        kind == SyntaxKind::NAMED_ARG
24207    }
24208    #[inline]
24209    fn cast(syntax: SyntaxNode) -> Option<Self> {
24210        if Self::can_cast(syntax.kind()) {
24211            Some(Self { syntax })
24212        } else {
24213            None
24214        }
24215    }
24216    #[inline]
24217    fn syntax(&self) -> &SyntaxNode {
24218        &self.syntax
24219    }
24220}
24221impl AstNode for Neq {
24222    #[inline]
24223    fn can_cast(kind: SyntaxKind) -> bool {
24224        kind == SyntaxKind::NEQ
24225    }
24226    #[inline]
24227    fn cast(syntax: SyntaxNode) -> Option<Self> {
24228        if Self::can_cast(syntax.kind()) {
24229            Some(Self { syntax })
24230        } else {
24231            None
24232        }
24233    }
24234    #[inline]
24235    fn syntax(&self) -> &SyntaxNode {
24236        &self.syntax
24237    }
24238}
24239impl AstNode for Neqb {
24240    #[inline]
24241    fn can_cast(kind: SyntaxKind) -> bool {
24242        kind == SyntaxKind::NEQB
24243    }
24244    #[inline]
24245    fn cast(syntax: SyntaxNode) -> Option<Self> {
24246        if Self::can_cast(syntax.kind()) {
24247            Some(Self { syntax })
24248        } else {
24249            None
24250        }
24251    }
24252    #[inline]
24253    fn syntax(&self) -> &SyntaxNode {
24254        &self.syntax
24255    }
24256}
24257impl AstNode for NoAction {
24258    #[inline]
24259    fn can_cast(kind: SyntaxKind) -> bool {
24260        kind == SyntaxKind::NO_ACTION
24261    }
24262    #[inline]
24263    fn cast(syntax: SyntaxNode) -> Option<Self> {
24264        if Self::can_cast(syntax.kind()) {
24265            Some(Self { syntax })
24266        } else {
24267            None
24268        }
24269    }
24270    #[inline]
24271    fn syntax(&self) -> &SyntaxNode {
24272        &self.syntax
24273    }
24274}
24275impl AstNode for NoDependsOnExtension {
24276    #[inline]
24277    fn can_cast(kind: SyntaxKind) -> bool {
24278        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
24279    }
24280    #[inline]
24281    fn cast(syntax: SyntaxNode) -> Option<Self> {
24282        if Self::can_cast(syntax.kind()) {
24283            Some(Self { syntax })
24284        } else {
24285            None
24286        }
24287    }
24288    #[inline]
24289    fn syntax(&self) -> &SyntaxNode {
24290        &self.syntax
24291    }
24292}
24293impl AstNode for NoForceRls {
24294    #[inline]
24295    fn can_cast(kind: SyntaxKind) -> bool {
24296        kind == SyntaxKind::NO_FORCE_RLS
24297    }
24298    #[inline]
24299    fn cast(syntax: SyntaxNode) -> Option<Self> {
24300        if Self::can_cast(syntax.kind()) {
24301            Some(Self { syntax })
24302        } else {
24303            None
24304        }
24305    }
24306    #[inline]
24307    fn syntax(&self) -> &SyntaxNode {
24308        &self.syntax
24309    }
24310}
24311impl AstNode for NoInherit {
24312    #[inline]
24313    fn can_cast(kind: SyntaxKind) -> bool {
24314        kind == SyntaxKind::NO_INHERIT
24315    }
24316    #[inline]
24317    fn cast(syntax: SyntaxNode) -> Option<Self> {
24318        if Self::can_cast(syntax.kind()) {
24319            Some(Self { syntax })
24320        } else {
24321            None
24322        }
24323    }
24324    #[inline]
24325    fn syntax(&self) -> &SyntaxNode {
24326        &self.syntax
24327    }
24328}
24329impl AstNode for NoInheritTable {
24330    #[inline]
24331    fn can_cast(kind: SyntaxKind) -> bool {
24332        kind == SyntaxKind::NO_INHERIT_TABLE
24333    }
24334    #[inline]
24335    fn cast(syntax: SyntaxNode) -> Option<Self> {
24336        if Self::can_cast(syntax.kind()) {
24337            Some(Self { syntax })
24338        } else {
24339            None
24340        }
24341    }
24342    #[inline]
24343    fn syntax(&self) -> &SyntaxNode {
24344        &self.syntax
24345    }
24346}
24347impl AstNode for NonStandardParam {
24348    #[inline]
24349    fn can_cast(kind: SyntaxKind) -> bool {
24350        kind == SyntaxKind::NON_STANDARD_PARAM
24351    }
24352    #[inline]
24353    fn cast(syntax: SyntaxNode) -> Option<Self> {
24354        if Self::can_cast(syntax.kind()) {
24355            Some(Self { syntax })
24356        } else {
24357            None
24358        }
24359    }
24360    #[inline]
24361    fn syntax(&self) -> &SyntaxNode {
24362        &self.syntax
24363    }
24364}
24365impl AstNode for NotDeferrable {
24366    #[inline]
24367    fn can_cast(kind: SyntaxKind) -> bool {
24368        kind == SyntaxKind::NOT_DEFERRABLE
24369    }
24370    #[inline]
24371    fn cast(syntax: SyntaxNode) -> Option<Self> {
24372        if Self::can_cast(syntax.kind()) {
24373            Some(Self { syntax })
24374        } else {
24375            None
24376        }
24377    }
24378    #[inline]
24379    fn syntax(&self) -> &SyntaxNode {
24380        &self.syntax
24381    }
24382}
24383impl AstNode for NotDeferrableConstraintOption {
24384    #[inline]
24385    fn can_cast(kind: SyntaxKind) -> bool {
24386        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
24387    }
24388    #[inline]
24389    fn cast(syntax: SyntaxNode) -> Option<Self> {
24390        if Self::can_cast(syntax.kind()) {
24391            Some(Self { syntax })
24392        } else {
24393            None
24394        }
24395    }
24396    #[inline]
24397    fn syntax(&self) -> &SyntaxNode {
24398        &self.syntax
24399    }
24400}
24401impl AstNode for NotEnforced {
24402    #[inline]
24403    fn can_cast(kind: SyntaxKind) -> bool {
24404        kind == SyntaxKind::NOT_ENFORCED
24405    }
24406    #[inline]
24407    fn cast(syntax: SyntaxNode) -> Option<Self> {
24408        if Self::can_cast(syntax.kind()) {
24409            Some(Self { syntax })
24410        } else {
24411            None
24412        }
24413    }
24414    #[inline]
24415    fn syntax(&self) -> &SyntaxNode {
24416        &self.syntax
24417    }
24418}
24419impl AstNode for NotIlike {
24420    #[inline]
24421    fn can_cast(kind: SyntaxKind) -> bool {
24422        kind == SyntaxKind::NOT_ILIKE
24423    }
24424    #[inline]
24425    fn cast(syntax: SyntaxNode) -> Option<Self> {
24426        if Self::can_cast(syntax.kind()) {
24427            Some(Self { syntax })
24428        } else {
24429            None
24430        }
24431    }
24432    #[inline]
24433    fn syntax(&self) -> &SyntaxNode {
24434        &self.syntax
24435    }
24436}
24437impl AstNode for NotIn {
24438    #[inline]
24439    fn can_cast(kind: SyntaxKind) -> bool {
24440        kind == SyntaxKind::NOT_IN
24441    }
24442    #[inline]
24443    fn cast(syntax: SyntaxNode) -> Option<Self> {
24444        if Self::can_cast(syntax.kind()) {
24445            Some(Self { syntax })
24446        } else {
24447            None
24448        }
24449    }
24450    #[inline]
24451    fn syntax(&self) -> &SyntaxNode {
24452        &self.syntax
24453    }
24454}
24455impl AstNode for NotLike {
24456    #[inline]
24457    fn can_cast(kind: SyntaxKind) -> bool {
24458        kind == SyntaxKind::NOT_LIKE
24459    }
24460    #[inline]
24461    fn cast(syntax: SyntaxNode) -> Option<Self> {
24462        if Self::can_cast(syntax.kind()) {
24463            Some(Self { syntax })
24464        } else {
24465            None
24466        }
24467    }
24468    #[inline]
24469    fn syntax(&self) -> &SyntaxNode {
24470        &self.syntax
24471    }
24472}
24473impl AstNode for NotMaterialized {
24474    #[inline]
24475    fn can_cast(kind: SyntaxKind) -> bool {
24476        kind == SyntaxKind::NOT_MATERIALIZED
24477    }
24478    #[inline]
24479    fn cast(syntax: SyntaxNode) -> Option<Self> {
24480        if Self::can_cast(syntax.kind()) {
24481            Some(Self { syntax })
24482        } else {
24483            None
24484        }
24485    }
24486    #[inline]
24487    fn syntax(&self) -> &SyntaxNode {
24488        &self.syntax
24489    }
24490}
24491impl AstNode for NotNullConstraint {
24492    #[inline]
24493    fn can_cast(kind: SyntaxKind) -> bool {
24494        kind == SyntaxKind::NOT_NULL_CONSTRAINT
24495    }
24496    #[inline]
24497    fn cast(syntax: SyntaxNode) -> Option<Self> {
24498        if Self::can_cast(syntax.kind()) {
24499            Some(Self { syntax })
24500        } else {
24501            None
24502        }
24503    }
24504    #[inline]
24505    fn syntax(&self) -> &SyntaxNode {
24506        &self.syntax
24507    }
24508}
24509impl AstNode for NotOf {
24510    #[inline]
24511    fn can_cast(kind: SyntaxKind) -> bool {
24512        kind == SyntaxKind::NOT_OF
24513    }
24514    #[inline]
24515    fn cast(syntax: SyntaxNode) -> Option<Self> {
24516        if Self::can_cast(syntax.kind()) {
24517            Some(Self { syntax })
24518        } else {
24519            None
24520        }
24521    }
24522    #[inline]
24523    fn syntax(&self) -> &SyntaxNode {
24524        &self.syntax
24525    }
24526}
24527impl AstNode for NotSimilarTo {
24528    #[inline]
24529    fn can_cast(kind: SyntaxKind) -> bool {
24530        kind == SyntaxKind::NOT_SIMILAR_TO
24531    }
24532    #[inline]
24533    fn cast(syntax: SyntaxNode) -> Option<Self> {
24534        if Self::can_cast(syntax.kind()) {
24535            Some(Self { syntax })
24536        } else {
24537            None
24538        }
24539    }
24540    #[inline]
24541    fn syntax(&self) -> &SyntaxNode {
24542        &self.syntax
24543    }
24544}
24545impl AstNode for NotValid {
24546    #[inline]
24547    fn can_cast(kind: SyntaxKind) -> bool {
24548        kind == SyntaxKind::NOT_VALID
24549    }
24550    #[inline]
24551    fn cast(syntax: SyntaxNode) -> Option<Self> {
24552        if Self::can_cast(syntax.kind()) {
24553            Some(Self { syntax })
24554        } else {
24555            None
24556        }
24557    }
24558    #[inline]
24559    fn syntax(&self) -> &SyntaxNode {
24560        &self.syntax
24561    }
24562}
24563impl AstNode for Notify {
24564    #[inline]
24565    fn can_cast(kind: SyntaxKind) -> bool {
24566        kind == SyntaxKind::NOTIFY
24567    }
24568    #[inline]
24569    fn cast(syntax: SyntaxNode) -> Option<Self> {
24570        if Self::can_cast(syntax.kind()) {
24571            Some(Self { syntax })
24572        } else {
24573            None
24574        }
24575    }
24576    #[inline]
24577    fn syntax(&self) -> &SyntaxNode {
24578        &self.syntax
24579    }
24580}
24581impl AstNode for NullConstraint {
24582    #[inline]
24583    fn can_cast(kind: SyntaxKind) -> bool {
24584        kind == SyntaxKind::NULL_CONSTRAINT
24585    }
24586    #[inline]
24587    fn cast(syntax: SyntaxNode) -> Option<Self> {
24588        if Self::can_cast(syntax.kind()) {
24589            Some(Self { syntax })
24590        } else {
24591            None
24592        }
24593    }
24594    #[inline]
24595    fn syntax(&self) -> &SyntaxNode {
24596        &self.syntax
24597    }
24598}
24599impl AstNode for NullsDistinct {
24600    #[inline]
24601    fn can_cast(kind: SyntaxKind) -> bool {
24602        kind == SyntaxKind::NULLS_DISTINCT
24603    }
24604    #[inline]
24605    fn cast(syntax: SyntaxNode) -> Option<Self> {
24606        if Self::can_cast(syntax.kind()) {
24607            Some(Self { syntax })
24608        } else {
24609            None
24610        }
24611    }
24612    #[inline]
24613    fn syntax(&self) -> &SyntaxNode {
24614        &self.syntax
24615    }
24616}
24617impl AstNode for NullsFirst {
24618    #[inline]
24619    fn can_cast(kind: SyntaxKind) -> bool {
24620        kind == SyntaxKind::NULLS_FIRST
24621    }
24622    #[inline]
24623    fn cast(syntax: SyntaxNode) -> Option<Self> {
24624        if Self::can_cast(syntax.kind()) {
24625            Some(Self { syntax })
24626        } else {
24627            None
24628        }
24629    }
24630    #[inline]
24631    fn syntax(&self) -> &SyntaxNode {
24632        &self.syntax
24633    }
24634}
24635impl AstNode for NullsLast {
24636    #[inline]
24637    fn can_cast(kind: SyntaxKind) -> bool {
24638        kind == SyntaxKind::NULLS_LAST
24639    }
24640    #[inline]
24641    fn cast(syntax: SyntaxNode) -> Option<Self> {
24642        if Self::can_cast(syntax.kind()) {
24643            Some(Self { syntax })
24644        } else {
24645            None
24646        }
24647    }
24648    #[inline]
24649    fn syntax(&self) -> &SyntaxNode {
24650        &self.syntax
24651    }
24652}
24653impl AstNode for NullsNotDistinct {
24654    #[inline]
24655    fn can_cast(kind: SyntaxKind) -> bool {
24656        kind == SyntaxKind::NULLS_NOT_DISTINCT
24657    }
24658    #[inline]
24659    fn cast(syntax: SyntaxNode) -> Option<Self> {
24660        if Self::can_cast(syntax.kind()) {
24661            Some(Self { syntax })
24662        } else {
24663            None
24664        }
24665    }
24666    #[inline]
24667    fn syntax(&self) -> &SyntaxNode {
24668        &self.syntax
24669    }
24670}
24671impl AstNode for OfType {
24672    #[inline]
24673    fn can_cast(kind: SyntaxKind) -> bool {
24674        kind == SyntaxKind::OF_TYPE
24675    }
24676    #[inline]
24677    fn cast(syntax: SyntaxNode) -> Option<Self> {
24678        if Self::can_cast(syntax.kind()) {
24679            Some(Self { syntax })
24680        } else {
24681            None
24682        }
24683    }
24684    #[inline]
24685    fn syntax(&self) -> &SyntaxNode {
24686        &self.syntax
24687    }
24688}
24689impl AstNode for OffsetClause {
24690    #[inline]
24691    fn can_cast(kind: SyntaxKind) -> bool {
24692        kind == SyntaxKind::OFFSET_CLAUSE
24693    }
24694    #[inline]
24695    fn cast(syntax: SyntaxNode) -> Option<Self> {
24696        if Self::can_cast(syntax.kind()) {
24697            Some(Self { syntax })
24698        } else {
24699            None
24700        }
24701    }
24702    #[inline]
24703    fn syntax(&self) -> &SyntaxNode {
24704        &self.syntax
24705    }
24706}
24707impl AstNode for OnClause {
24708    #[inline]
24709    fn can_cast(kind: SyntaxKind) -> bool {
24710        kind == SyntaxKind::ON_CLAUSE
24711    }
24712    #[inline]
24713    fn cast(syntax: SyntaxNode) -> Option<Self> {
24714        if Self::can_cast(syntax.kind()) {
24715            Some(Self { syntax })
24716        } else {
24717            None
24718        }
24719    }
24720    #[inline]
24721    fn syntax(&self) -> &SyntaxNode {
24722        &self.syntax
24723    }
24724}
24725impl AstNode for OnCommit {
24726    #[inline]
24727    fn can_cast(kind: SyntaxKind) -> bool {
24728        kind == SyntaxKind::ON_COMMIT
24729    }
24730    #[inline]
24731    fn cast(syntax: SyntaxNode) -> Option<Self> {
24732        if Self::can_cast(syntax.kind()) {
24733            Some(Self { syntax })
24734        } else {
24735            None
24736        }
24737    }
24738    #[inline]
24739    fn syntax(&self) -> &SyntaxNode {
24740        &self.syntax
24741    }
24742}
24743impl AstNode for OnConflictClause {
24744    #[inline]
24745    fn can_cast(kind: SyntaxKind) -> bool {
24746        kind == SyntaxKind::ON_CONFLICT_CLAUSE
24747    }
24748    #[inline]
24749    fn cast(syntax: SyntaxNode) -> Option<Self> {
24750        if Self::can_cast(syntax.kind()) {
24751            Some(Self { syntax })
24752        } else {
24753            None
24754        }
24755    }
24756    #[inline]
24757    fn syntax(&self) -> &SyntaxNode {
24758        &self.syntax
24759    }
24760}
24761impl AstNode for OnDeleteAction {
24762    #[inline]
24763    fn can_cast(kind: SyntaxKind) -> bool {
24764        kind == SyntaxKind::ON_DELETE_ACTION
24765    }
24766    #[inline]
24767    fn cast(syntax: SyntaxNode) -> Option<Self> {
24768        if Self::can_cast(syntax.kind()) {
24769            Some(Self { syntax })
24770        } else {
24771            None
24772        }
24773    }
24774    #[inline]
24775    fn syntax(&self) -> &SyntaxNode {
24776        &self.syntax
24777    }
24778}
24779impl AstNode for OnTable {
24780    #[inline]
24781    fn can_cast(kind: SyntaxKind) -> bool {
24782        kind == SyntaxKind::ON_TABLE
24783    }
24784    #[inline]
24785    fn cast(syntax: SyntaxNode) -> Option<Self> {
24786        if Self::can_cast(syntax.kind()) {
24787            Some(Self { syntax })
24788        } else {
24789            None
24790        }
24791    }
24792    #[inline]
24793    fn syntax(&self) -> &SyntaxNode {
24794        &self.syntax
24795    }
24796}
24797impl AstNode for OnUpdateAction {
24798    #[inline]
24799    fn can_cast(kind: SyntaxKind) -> bool {
24800        kind == SyntaxKind::ON_UPDATE_ACTION
24801    }
24802    #[inline]
24803    fn cast(syntax: SyntaxNode) -> Option<Self> {
24804        if Self::can_cast(syntax.kind()) {
24805            Some(Self { syntax })
24806        } else {
24807            None
24808        }
24809    }
24810    #[inline]
24811    fn syntax(&self) -> &SyntaxNode {
24812        &self.syntax
24813    }
24814}
24815impl AstNode for Op {
24816    #[inline]
24817    fn can_cast(kind: SyntaxKind) -> bool {
24818        kind == SyntaxKind::OP
24819    }
24820    #[inline]
24821    fn cast(syntax: SyntaxNode) -> Option<Self> {
24822        if Self::can_cast(syntax.kind()) {
24823            Some(Self { syntax })
24824        } else {
24825            None
24826        }
24827    }
24828    #[inline]
24829    fn syntax(&self) -> &SyntaxNode {
24830        &self.syntax
24831    }
24832}
24833impl AstNode for OpClassOption {
24834    #[inline]
24835    fn can_cast(kind: SyntaxKind) -> bool {
24836        kind == SyntaxKind::OP_CLASS_OPTION
24837    }
24838    #[inline]
24839    fn cast(syntax: SyntaxNode) -> Option<Self> {
24840        if Self::can_cast(syntax.kind()) {
24841            Some(Self { syntax })
24842        } else {
24843            None
24844        }
24845    }
24846    #[inline]
24847    fn syntax(&self) -> &SyntaxNode {
24848        &self.syntax
24849    }
24850}
24851impl AstNode for OpSig {
24852    #[inline]
24853    fn can_cast(kind: SyntaxKind) -> bool {
24854        kind == SyntaxKind::OP_SIG
24855    }
24856    #[inline]
24857    fn cast(syntax: SyntaxNode) -> Option<Self> {
24858        if Self::can_cast(syntax.kind()) {
24859            Some(Self { syntax })
24860        } else {
24861            None
24862        }
24863    }
24864    #[inline]
24865    fn syntax(&self) -> &SyntaxNode {
24866        &self.syntax
24867    }
24868}
24869impl AstNode for OpSigList {
24870    #[inline]
24871    fn can_cast(kind: SyntaxKind) -> bool {
24872        kind == SyntaxKind::OP_SIG_LIST
24873    }
24874    #[inline]
24875    fn cast(syntax: SyntaxNode) -> Option<Self> {
24876        if Self::can_cast(syntax.kind()) {
24877            Some(Self { syntax })
24878        } else {
24879            None
24880        }
24881    }
24882    #[inline]
24883    fn syntax(&self) -> &SyntaxNode {
24884        &self.syntax
24885    }
24886}
24887impl AstNode for OperatorCall {
24888    #[inline]
24889    fn can_cast(kind: SyntaxKind) -> bool {
24890        kind == SyntaxKind::OPERATOR_CALL
24891    }
24892    #[inline]
24893    fn cast(syntax: SyntaxNode) -> Option<Self> {
24894        if Self::can_cast(syntax.kind()) {
24895            Some(Self { syntax })
24896        } else {
24897            None
24898        }
24899    }
24900    #[inline]
24901    fn syntax(&self) -> &SyntaxNode {
24902        &self.syntax
24903    }
24904}
24905impl AstNode for OperatorClassOptionList {
24906    #[inline]
24907    fn can_cast(kind: SyntaxKind) -> bool {
24908        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
24909    }
24910    #[inline]
24911    fn cast(syntax: SyntaxNode) -> Option<Self> {
24912        if Self::can_cast(syntax.kind()) {
24913            Some(Self { syntax })
24914        } else {
24915            None
24916        }
24917    }
24918    #[inline]
24919    fn syntax(&self) -> &SyntaxNode {
24920        &self.syntax
24921    }
24922}
24923impl AstNode for OptionItem {
24924    #[inline]
24925    fn can_cast(kind: SyntaxKind) -> bool {
24926        kind == SyntaxKind::OPTION_ITEM
24927    }
24928    #[inline]
24929    fn cast(syntax: SyntaxNode) -> Option<Self> {
24930        if Self::can_cast(syntax.kind()) {
24931            Some(Self { syntax })
24932        } else {
24933            None
24934        }
24935    }
24936    #[inline]
24937    fn syntax(&self) -> &SyntaxNode {
24938        &self.syntax
24939    }
24940}
24941impl AstNode for OptionItemList {
24942    #[inline]
24943    fn can_cast(kind: SyntaxKind) -> bool {
24944        kind == SyntaxKind::OPTION_ITEM_LIST
24945    }
24946    #[inline]
24947    fn cast(syntax: SyntaxNode) -> Option<Self> {
24948        if Self::can_cast(syntax.kind()) {
24949            Some(Self { syntax })
24950        } else {
24951            None
24952        }
24953    }
24954    #[inline]
24955    fn syntax(&self) -> &SyntaxNode {
24956        &self.syntax
24957    }
24958}
24959impl AstNode for OrReplace {
24960    #[inline]
24961    fn can_cast(kind: SyntaxKind) -> bool {
24962        kind == SyntaxKind::OR_REPLACE
24963    }
24964    #[inline]
24965    fn cast(syntax: SyntaxNode) -> Option<Self> {
24966        if Self::can_cast(syntax.kind()) {
24967            Some(Self { syntax })
24968        } else {
24969            None
24970        }
24971    }
24972    #[inline]
24973    fn syntax(&self) -> &SyntaxNode {
24974        &self.syntax
24975    }
24976}
24977impl AstNode for OrderByClause {
24978    #[inline]
24979    fn can_cast(kind: SyntaxKind) -> bool {
24980        kind == SyntaxKind::ORDER_BY_CLAUSE
24981    }
24982    #[inline]
24983    fn cast(syntax: SyntaxNode) -> Option<Self> {
24984        if Self::can_cast(syntax.kind()) {
24985            Some(Self { syntax })
24986        } else {
24987            None
24988        }
24989    }
24990    #[inline]
24991    fn syntax(&self) -> &SyntaxNode {
24992        &self.syntax
24993    }
24994}
24995impl AstNode for OverClause {
24996    #[inline]
24997    fn can_cast(kind: SyntaxKind) -> bool {
24998        kind == SyntaxKind::OVER_CLAUSE
24999    }
25000    #[inline]
25001    fn cast(syntax: SyntaxNode) -> Option<Self> {
25002        if Self::can_cast(syntax.kind()) {
25003            Some(Self { syntax })
25004        } else {
25005            None
25006        }
25007    }
25008    #[inline]
25009    fn syntax(&self) -> &SyntaxNode {
25010        &self.syntax
25011    }
25012}
25013impl AstNode for OverlayFn {
25014    #[inline]
25015    fn can_cast(kind: SyntaxKind) -> bool {
25016        kind == SyntaxKind::OVERLAY_FN
25017    }
25018    #[inline]
25019    fn cast(syntax: SyntaxNode) -> Option<Self> {
25020        if Self::can_cast(syntax.kind()) {
25021            Some(Self { syntax })
25022        } else {
25023            None
25024        }
25025    }
25026    #[inline]
25027    fn syntax(&self) -> &SyntaxNode {
25028        &self.syntax
25029    }
25030}
25031impl AstNode for OwnedByRoles {
25032    #[inline]
25033    fn can_cast(kind: SyntaxKind) -> bool {
25034        kind == SyntaxKind::OWNED_BY_ROLES
25035    }
25036    #[inline]
25037    fn cast(syntax: SyntaxNode) -> Option<Self> {
25038        if Self::can_cast(syntax.kind()) {
25039            Some(Self { syntax })
25040        } else {
25041            None
25042        }
25043    }
25044    #[inline]
25045    fn syntax(&self) -> &SyntaxNode {
25046        &self.syntax
25047    }
25048}
25049impl AstNode for OwnerTo {
25050    #[inline]
25051    fn can_cast(kind: SyntaxKind) -> bool {
25052        kind == SyntaxKind::OWNER_TO
25053    }
25054    #[inline]
25055    fn cast(syntax: SyntaxNode) -> Option<Self> {
25056        if Self::can_cast(syntax.kind()) {
25057            Some(Self { syntax })
25058        } else {
25059            None
25060        }
25061    }
25062    #[inline]
25063    fn syntax(&self) -> &SyntaxNode {
25064        &self.syntax
25065    }
25066}
25067impl AstNode for ParallelFuncOption {
25068    #[inline]
25069    fn can_cast(kind: SyntaxKind) -> bool {
25070        kind == SyntaxKind::PARALLEL_FUNC_OPTION
25071    }
25072    #[inline]
25073    fn cast(syntax: SyntaxNode) -> Option<Self> {
25074        if Self::can_cast(syntax.kind()) {
25075            Some(Self { syntax })
25076        } else {
25077            None
25078        }
25079    }
25080    #[inline]
25081    fn syntax(&self) -> &SyntaxNode {
25082        &self.syntax
25083    }
25084}
25085impl AstNode for Param {
25086    #[inline]
25087    fn can_cast(kind: SyntaxKind) -> bool {
25088        kind == SyntaxKind::PARAM
25089    }
25090    #[inline]
25091    fn cast(syntax: SyntaxNode) -> Option<Self> {
25092        if Self::can_cast(syntax.kind()) {
25093            Some(Self { syntax })
25094        } else {
25095            None
25096        }
25097    }
25098    #[inline]
25099    fn syntax(&self) -> &SyntaxNode {
25100        &self.syntax
25101    }
25102}
25103impl AstNode for ParamDefault {
25104    #[inline]
25105    fn can_cast(kind: SyntaxKind) -> bool {
25106        kind == SyntaxKind::PARAM_DEFAULT
25107    }
25108    #[inline]
25109    fn cast(syntax: SyntaxNode) -> Option<Self> {
25110        if Self::can_cast(syntax.kind()) {
25111            Some(Self { syntax })
25112        } else {
25113            None
25114        }
25115    }
25116    #[inline]
25117    fn syntax(&self) -> &SyntaxNode {
25118        &self.syntax
25119    }
25120}
25121impl AstNode for ParamIn {
25122    #[inline]
25123    fn can_cast(kind: SyntaxKind) -> bool {
25124        kind == SyntaxKind::PARAM_IN
25125    }
25126    #[inline]
25127    fn cast(syntax: SyntaxNode) -> Option<Self> {
25128        if Self::can_cast(syntax.kind()) {
25129            Some(Self { syntax })
25130        } else {
25131            None
25132        }
25133    }
25134    #[inline]
25135    fn syntax(&self) -> &SyntaxNode {
25136        &self.syntax
25137    }
25138}
25139impl AstNode for ParamInOut {
25140    #[inline]
25141    fn can_cast(kind: SyntaxKind) -> bool {
25142        kind == SyntaxKind::PARAM_IN_OUT
25143    }
25144    #[inline]
25145    fn cast(syntax: SyntaxNode) -> Option<Self> {
25146        if Self::can_cast(syntax.kind()) {
25147            Some(Self { syntax })
25148        } else {
25149            None
25150        }
25151    }
25152    #[inline]
25153    fn syntax(&self) -> &SyntaxNode {
25154        &self.syntax
25155    }
25156}
25157impl AstNode for ParamList {
25158    #[inline]
25159    fn can_cast(kind: SyntaxKind) -> bool {
25160        kind == SyntaxKind::PARAM_LIST
25161    }
25162    #[inline]
25163    fn cast(syntax: SyntaxNode) -> Option<Self> {
25164        if Self::can_cast(syntax.kind()) {
25165            Some(Self { syntax })
25166        } else {
25167            None
25168        }
25169    }
25170    #[inline]
25171    fn syntax(&self) -> &SyntaxNode {
25172        &self.syntax
25173    }
25174}
25175impl AstNode for ParamOut {
25176    #[inline]
25177    fn can_cast(kind: SyntaxKind) -> bool {
25178        kind == SyntaxKind::PARAM_OUT
25179    }
25180    #[inline]
25181    fn cast(syntax: SyntaxNode) -> Option<Self> {
25182        if Self::can_cast(syntax.kind()) {
25183            Some(Self { syntax })
25184        } else {
25185            None
25186        }
25187    }
25188    #[inline]
25189    fn syntax(&self) -> &SyntaxNode {
25190        &self.syntax
25191    }
25192}
25193impl AstNode for ParamVariadic {
25194    #[inline]
25195    fn can_cast(kind: SyntaxKind) -> bool {
25196        kind == SyntaxKind::PARAM_VARIADIC
25197    }
25198    #[inline]
25199    fn cast(syntax: SyntaxNode) -> Option<Self> {
25200        if Self::can_cast(syntax.kind()) {
25201            Some(Self { syntax })
25202        } else {
25203            None
25204        }
25205    }
25206    #[inline]
25207    fn syntax(&self) -> &SyntaxNode {
25208        &self.syntax
25209    }
25210}
25211impl AstNode for ParenExpr {
25212    #[inline]
25213    fn can_cast(kind: SyntaxKind) -> bool {
25214        kind == SyntaxKind::PAREN_EXPR
25215    }
25216    #[inline]
25217    fn cast(syntax: SyntaxNode) -> Option<Self> {
25218        if Self::can_cast(syntax.kind()) {
25219            Some(Self { syntax })
25220        } else {
25221            None
25222        }
25223    }
25224    #[inline]
25225    fn syntax(&self) -> &SyntaxNode {
25226        &self.syntax
25227    }
25228}
25229impl AstNode for ParenSelect {
25230    #[inline]
25231    fn can_cast(kind: SyntaxKind) -> bool {
25232        kind == SyntaxKind::PAREN_SELECT
25233    }
25234    #[inline]
25235    fn cast(syntax: SyntaxNode) -> Option<Self> {
25236        if Self::can_cast(syntax.kind()) {
25237            Some(Self { syntax })
25238        } else {
25239            None
25240        }
25241    }
25242    #[inline]
25243    fn syntax(&self) -> &SyntaxNode {
25244        &self.syntax
25245    }
25246}
25247impl AstNode for Partition {
25248    #[inline]
25249    fn can_cast(kind: SyntaxKind) -> bool {
25250        kind == SyntaxKind::PARTITION
25251    }
25252    #[inline]
25253    fn cast(syntax: SyntaxNode) -> Option<Self> {
25254        if Self::can_cast(syntax.kind()) {
25255            Some(Self { syntax })
25256        } else {
25257            None
25258        }
25259    }
25260    #[inline]
25261    fn syntax(&self) -> &SyntaxNode {
25262        &self.syntax
25263    }
25264}
25265impl AstNode for PartitionBy {
25266    #[inline]
25267    fn can_cast(kind: SyntaxKind) -> bool {
25268        kind == SyntaxKind::PARTITION_BY
25269    }
25270    #[inline]
25271    fn cast(syntax: SyntaxNode) -> Option<Self> {
25272        if Self::can_cast(syntax.kind()) {
25273            Some(Self { syntax })
25274        } else {
25275            None
25276        }
25277    }
25278    #[inline]
25279    fn syntax(&self) -> &SyntaxNode {
25280        &self.syntax
25281    }
25282}
25283impl AstNode for PartitionDefault {
25284    #[inline]
25285    fn can_cast(kind: SyntaxKind) -> bool {
25286        kind == SyntaxKind::PARTITION_DEFAULT
25287    }
25288    #[inline]
25289    fn cast(syntax: SyntaxNode) -> Option<Self> {
25290        if Self::can_cast(syntax.kind()) {
25291            Some(Self { syntax })
25292        } else {
25293            None
25294        }
25295    }
25296    #[inline]
25297    fn syntax(&self) -> &SyntaxNode {
25298        &self.syntax
25299    }
25300}
25301impl AstNode for PartitionForValuesFrom {
25302    #[inline]
25303    fn can_cast(kind: SyntaxKind) -> bool {
25304        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
25305    }
25306    #[inline]
25307    fn cast(syntax: SyntaxNode) -> Option<Self> {
25308        if Self::can_cast(syntax.kind()) {
25309            Some(Self { syntax })
25310        } else {
25311            None
25312        }
25313    }
25314    #[inline]
25315    fn syntax(&self) -> &SyntaxNode {
25316        &self.syntax
25317    }
25318}
25319impl AstNode for PartitionForValuesIn {
25320    #[inline]
25321    fn can_cast(kind: SyntaxKind) -> bool {
25322        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
25323    }
25324    #[inline]
25325    fn cast(syntax: SyntaxNode) -> Option<Self> {
25326        if Self::can_cast(syntax.kind()) {
25327            Some(Self { syntax })
25328        } else {
25329            None
25330        }
25331    }
25332    #[inline]
25333    fn syntax(&self) -> &SyntaxNode {
25334        &self.syntax
25335    }
25336}
25337impl AstNode for PartitionForValuesWith {
25338    #[inline]
25339    fn can_cast(kind: SyntaxKind) -> bool {
25340        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
25341    }
25342    #[inline]
25343    fn cast(syntax: SyntaxNode) -> Option<Self> {
25344        if Self::can_cast(syntax.kind()) {
25345            Some(Self { syntax })
25346        } else {
25347            None
25348        }
25349    }
25350    #[inline]
25351    fn syntax(&self) -> &SyntaxNode {
25352        &self.syntax
25353    }
25354}
25355impl AstNode for PartitionItem {
25356    #[inline]
25357    fn can_cast(kind: SyntaxKind) -> bool {
25358        kind == SyntaxKind::PARTITION_ITEM
25359    }
25360    #[inline]
25361    fn cast(syntax: SyntaxNode) -> Option<Self> {
25362        if Self::can_cast(syntax.kind()) {
25363            Some(Self { syntax })
25364        } else {
25365            None
25366        }
25367    }
25368    #[inline]
25369    fn syntax(&self) -> &SyntaxNode {
25370        &self.syntax
25371    }
25372}
25373impl AstNode for PartitionItemList {
25374    #[inline]
25375    fn can_cast(kind: SyntaxKind) -> bool {
25376        kind == SyntaxKind::PARTITION_ITEM_LIST
25377    }
25378    #[inline]
25379    fn cast(syntax: SyntaxNode) -> Option<Self> {
25380        if Self::can_cast(syntax.kind()) {
25381            Some(Self { syntax })
25382        } else {
25383            None
25384        }
25385    }
25386    #[inline]
25387    fn syntax(&self) -> &SyntaxNode {
25388        &self.syntax
25389    }
25390}
25391impl AstNode for PartitionList {
25392    #[inline]
25393    fn can_cast(kind: SyntaxKind) -> bool {
25394        kind == SyntaxKind::PARTITION_LIST
25395    }
25396    #[inline]
25397    fn cast(syntax: SyntaxNode) -> Option<Self> {
25398        if Self::can_cast(syntax.kind()) {
25399            Some(Self { syntax })
25400        } else {
25401            None
25402        }
25403    }
25404    #[inline]
25405    fn syntax(&self) -> &SyntaxNode {
25406        &self.syntax
25407    }
25408}
25409impl AstNode for PartitionOf {
25410    #[inline]
25411    fn can_cast(kind: SyntaxKind) -> bool {
25412        kind == SyntaxKind::PARTITION_OF
25413    }
25414    #[inline]
25415    fn cast(syntax: SyntaxNode) -> Option<Self> {
25416        if Self::can_cast(syntax.kind()) {
25417            Some(Self { syntax })
25418        } else {
25419            None
25420        }
25421    }
25422    #[inline]
25423    fn syntax(&self) -> &SyntaxNode {
25424        &self.syntax
25425    }
25426}
25427impl AstNode for Path {
25428    #[inline]
25429    fn can_cast(kind: SyntaxKind) -> bool {
25430        kind == SyntaxKind::PATH
25431    }
25432    #[inline]
25433    fn cast(syntax: SyntaxNode) -> Option<Self> {
25434        if Self::can_cast(syntax.kind()) {
25435            Some(Self { syntax })
25436        } else {
25437            None
25438        }
25439    }
25440    #[inline]
25441    fn syntax(&self) -> &SyntaxNode {
25442        &self.syntax
25443    }
25444}
25445impl AstNode for PathSegment {
25446    #[inline]
25447    fn can_cast(kind: SyntaxKind) -> bool {
25448        kind == SyntaxKind::PATH_SEGMENT
25449    }
25450    #[inline]
25451    fn cast(syntax: SyntaxNode) -> Option<Self> {
25452        if Self::can_cast(syntax.kind()) {
25453            Some(Self { syntax })
25454        } else {
25455            None
25456        }
25457    }
25458    #[inline]
25459    fn syntax(&self) -> &SyntaxNode {
25460        &self.syntax
25461    }
25462}
25463impl AstNode for PathType {
25464    #[inline]
25465    fn can_cast(kind: SyntaxKind) -> bool {
25466        kind == SyntaxKind::PATH_TYPE
25467    }
25468    #[inline]
25469    fn cast(syntax: SyntaxNode) -> Option<Self> {
25470        if Self::can_cast(syntax.kind()) {
25471            Some(Self { syntax })
25472        } else {
25473            None
25474        }
25475    }
25476    #[inline]
25477    fn syntax(&self) -> &SyntaxNode {
25478        &self.syntax
25479    }
25480}
25481impl AstNode for PercentType {
25482    #[inline]
25483    fn can_cast(kind: SyntaxKind) -> bool {
25484        kind == SyntaxKind::PERCENT_TYPE
25485    }
25486    #[inline]
25487    fn cast(syntax: SyntaxNode) -> Option<Self> {
25488        if Self::can_cast(syntax.kind()) {
25489            Some(Self { syntax })
25490        } else {
25491            None
25492        }
25493    }
25494    #[inline]
25495    fn syntax(&self) -> &SyntaxNode {
25496        &self.syntax
25497    }
25498}
25499impl AstNode for PercentTypeClause {
25500    #[inline]
25501    fn can_cast(kind: SyntaxKind) -> bool {
25502        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
25503    }
25504    #[inline]
25505    fn cast(syntax: SyntaxNode) -> Option<Self> {
25506        if Self::can_cast(syntax.kind()) {
25507            Some(Self { syntax })
25508        } else {
25509            None
25510        }
25511    }
25512    #[inline]
25513    fn syntax(&self) -> &SyntaxNode {
25514        &self.syntax
25515    }
25516}
25517impl AstNode for PositionFn {
25518    #[inline]
25519    fn can_cast(kind: SyntaxKind) -> bool {
25520        kind == SyntaxKind::POSITION_FN
25521    }
25522    #[inline]
25523    fn cast(syntax: SyntaxNode) -> Option<Self> {
25524        if Self::can_cast(syntax.kind()) {
25525            Some(Self { syntax })
25526        } else {
25527            None
25528        }
25529    }
25530    #[inline]
25531    fn syntax(&self) -> &SyntaxNode {
25532        &self.syntax
25533    }
25534}
25535impl AstNode for PostfixExpr {
25536    #[inline]
25537    fn can_cast(kind: SyntaxKind) -> bool {
25538        kind == SyntaxKind::POSTFIX_EXPR
25539    }
25540    #[inline]
25541    fn cast(syntax: SyntaxNode) -> Option<Self> {
25542        if Self::can_cast(syntax.kind()) {
25543            Some(Self { syntax })
25544        } else {
25545            None
25546        }
25547    }
25548    #[inline]
25549    fn syntax(&self) -> &SyntaxNode {
25550        &self.syntax
25551    }
25552}
25553impl AstNode for PrefixExpr {
25554    #[inline]
25555    fn can_cast(kind: SyntaxKind) -> bool {
25556        kind == SyntaxKind::PREFIX_EXPR
25557    }
25558    #[inline]
25559    fn cast(syntax: SyntaxNode) -> Option<Self> {
25560        if Self::can_cast(syntax.kind()) {
25561            Some(Self { syntax })
25562        } else {
25563            None
25564        }
25565    }
25566    #[inline]
25567    fn syntax(&self) -> &SyntaxNode {
25568        &self.syntax
25569    }
25570}
25571impl AstNode for Prepare {
25572    #[inline]
25573    fn can_cast(kind: SyntaxKind) -> bool {
25574        kind == SyntaxKind::PREPARE
25575    }
25576    #[inline]
25577    fn cast(syntax: SyntaxNode) -> Option<Self> {
25578        if Self::can_cast(syntax.kind()) {
25579            Some(Self { syntax })
25580        } else {
25581            None
25582        }
25583    }
25584    #[inline]
25585    fn syntax(&self) -> &SyntaxNode {
25586        &self.syntax
25587    }
25588}
25589impl AstNode for PrepareTransaction {
25590    #[inline]
25591    fn can_cast(kind: SyntaxKind) -> bool {
25592        kind == SyntaxKind::PREPARE_TRANSACTION
25593    }
25594    #[inline]
25595    fn cast(syntax: SyntaxNode) -> Option<Self> {
25596        if Self::can_cast(syntax.kind()) {
25597            Some(Self { syntax })
25598        } else {
25599            None
25600        }
25601    }
25602    #[inline]
25603    fn syntax(&self) -> &SyntaxNode {
25604        &self.syntax
25605    }
25606}
25607impl AstNode for PreserveRows {
25608    #[inline]
25609    fn can_cast(kind: SyntaxKind) -> bool {
25610        kind == SyntaxKind::PRESERVE_ROWS
25611    }
25612    #[inline]
25613    fn cast(syntax: SyntaxNode) -> Option<Self> {
25614        if Self::can_cast(syntax.kind()) {
25615            Some(Self { syntax })
25616        } else {
25617            None
25618        }
25619    }
25620    #[inline]
25621    fn syntax(&self) -> &SyntaxNode {
25622        &self.syntax
25623    }
25624}
25625impl AstNode for PrimaryKeyConstraint {
25626    #[inline]
25627    fn can_cast(kind: SyntaxKind) -> bool {
25628        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
25629    }
25630    #[inline]
25631    fn cast(syntax: SyntaxNode) -> Option<Self> {
25632        if Self::can_cast(syntax.kind()) {
25633            Some(Self { syntax })
25634        } else {
25635            None
25636        }
25637    }
25638    #[inline]
25639    fn syntax(&self) -> &SyntaxNode {
25640        &self.syntax
25641    }
25642}
25643impl AstNode for PrivilegeTarget {
25644    #[inline]
25645    fn can_cast(kind: SyntaxKind) -> bool {
25646        kind == SyntaxKind::PRIVILEGE_TARGET
25647    }
25648    #[inline]
25649    fn cast(syntax: SyntaxNode) -> Option<Self> {
25650        if Self::can_cast(syntax.kind()) {
25651            Some(Self { syntax })
25652        } else {
25653            None
25654        }
25655    }
25656    #[inline]
25657    fn syntax(&self) -> &SyntaxNode {
25658        &self.syntax
25659    }
25660}
25661impl AstNode for Privileges {
25662    #[inline]
25663    fn can_cast(kind: SyntaxKind) -> bool {
25664        kind == SyntaxKind::PRIVILEGES
25665    }
25666    #[inline]
25667    fn cast(syntax: SyntaxNode) -> Option<Self> {
25668        if Self::can_cast(syntax.kind()) {
25669            Some(Self { syntax })
25670        } else {
25671            None
25672        }
25673    }
25674    #[inline]
25675    fn syntax(&self) -> &SyntaxNode {
25676        &self.syntax
25677    }
25678}
25679impl AstNode for PublicationObject {
25680    #[inline]
25681    fn can_cast(kind: SyntaxKind) -> bool {
25682        kind == SyntaxKind::PUBLICATION_OBJECT
25683    }
25684    #[inline]
25685    fn cast(syntax: SyntaxNode) -> Option<Self> {
25686        if Self::can_cast(syntax.kind()) {
25687            Some(Self { syntax })
25688        } else {
25689            None
25690        }
25691    }
25692    #[inline]
25693    fn syntax(&self) -> &SyntaxNode {
25694        &self.syntax
25695    }
25696}
25697impl AstNode for ReadCommitted {
25698    #[inline]
25699    fn can_cast(kind: SyntaxKind) -> bool {
25700        kind == SyntaxKind::READ_COMMITTED
25701    }
25702    #[inline]
25703    fn cast(syntax: SyntaxNode) -> Option<Self> {
25704        if Self::can_cast(syntax.kind()) {
25705            Some(Self { syntax })
25706        } else {
25707            None
25708        }
25709    }
25710    #[inline]
25711    fn syntax(&self) -> &SyntaxNode {
25712        &self.syntax
25713    }
25714}
25715impl AstNode for ReadOnly {
25716    #[inline]
25717    fn can_cast(kind: SyntaxKind) -> bool {
25718        kind == SyntaxKind::READ_ONLY
25719    }
25720    #[inline]
25721    fn cast(syntax: SyntaxNode) -> Option<Self> {
25722        if Self::can_cast(syntax.kind()) {
25723            Some(Self { syntax })
25724        } else {
25725            None
25726        }
25727    }
25728    #[inline]
25729    fn syntax(&self) -> &SyntaxNode {
25730        &self.syntax
25731    }
25732}
25733impl AstNode for ReadUncommitted {
25734    #[inline]
25735    fn can_cast(kind: SyntaxKind) -> bool {
25736        kind == SyntaxKind::READ_UNCOMMITTED
25737    }
25738    #[inline]
25739    fn cast(syntax: SyntaxNode) -> Option<Self> {
25740        if Self::can_cast(syntax.kind()) {
25741            Some(Self { syntax })
25742        } else {
25743            None
25744        }
25745    }
25746    #[inline]
25747    fn syntax(&self) -> &SyntaxNode {
25748        &self.syntax
25749    }
25750}
25751impl AstNode for ReadWrite {
25752    #[inline]
25753    fn can_cast(kind: SyntaxKind) -> bool {
25754        kind == SyntaxKind::READ_WRITE
25755    }
25756    #[inline]
25757    fn cast(syntax: SyntaxNode) -> Option<Self> {
25758        if Self::can_cast(syntax.kind()) {
25759            Some(Self { syntax })
25760        } else {
25761            None
25762        }
25763    }
25764    #[inline]
25765    fn syntax(&self) -> &SyntaxNode {
25766        &self.syntax
25767    }
25768}
25769impl AstNode for Reassign {
25770    #[inline]
25771    fn can_cast(kind: SyntaxKind) -> bool {
25772        kind == SyntaxKind::REASSIGN
25773    }
25774    #[inline]
25775    fn cast(syntax: SyntaxNode) -> Option<Self> {
25776        if Self::can_cast(syntax.kind()) {
25777            Some(Self { syntax })
25778        } else {
25779            None
25780        }
25781    }
25782    #[inline]
25783    fn syntax(&self) -> &SyntaxNode {
25784        &self.syntax
25785    }
25786}
25787impl AstNode for ReferencesConstraint {
25788    #[inline]
25789    fn can_cast(kind: SyntaxKind) -> bool {
25790        kind == SyntaxKind::REFERENCES_CONSTRAINT
25791    }
25792    #[inline]
25793    fn cast(syntax: SyntaxNode) -> Option<Self> {
25794        if Self::can_cast(syntax.kind()) {
25795            Some(Self { syntax })
25796        } else {
25797            None
25798        }
25799    }
25800    #[inline]
25801    fn syntax(&self) -> &SyntaxNode {
25802        &self.syntax
25803    }
25804}
25805impl AstNode for Referencing {
25806    #[inline]
25807    fn can_cast(kind: SyntaxKind) -> bool {
25808        kind == SyntaxKind::REFERENCING
25809    }
25810    #[inline]
25811    fn cast(syntax: SyntaxNode) -> Option<Self> {
25812        if Self::can_cast(syntax.kind()) {
25813            Some(Self { syntax })
25814        } else {
25815            None
25816        }
25817    }
25818    #[inline]
25819    fn syntax(&self) -> &SyntaxNode {
25820        &self.syntax
25821    }
25822}
25823impl AstNode for ReferencingTable {
25824    #[inline]
25825    fn can_cast(kind: SyntaxKind) -> bool {
25826        kind == SyntaxKind::REFERENCING_TABLE
25827    }
25828    #[inline]
25829    fn cast(syntax: SyntaxNode) -> Option<Self> {
25830        if Self::can_cast(syntax.kind()) {
25831            Some(Self { syntax })
25832        } else {
25833            None
25834        }
25835    }
25836    #[inline]
25837    fn syntax(&self) -> &SyntaxNode {
25838        &self.syntax
25839    }
25840}
25841impl AstNode for Refresh {
25842    #[inline]
25843    fn can_cast(kind: SyntaxKind) -> bool {
25844        kind == SyntaxKind::REFRESH
25845    }
25846    #[inline]
25847    fn cast(syntax: SyntaxNode) -> Option<Self> {
25848        if Self::can_cast(syntax.kind()) {
25849            Some(Self { syntax })
25850        } else {
25851            None
25852        }
25853    }
25854    #[inline]
25855    fn syntax(&self) -> &SyntaxNode {
25856        &self.syntax
25857    }
25858}
25859impl AstNode for RefreshCollationVersion {
25860    #[inline]
25861    fn can_cast(kind: SyntaxKind) -> bool {
25862        kind == SyntaxKind::REFRESH_COLLATION_VERSION
25863    }
25864    #[inline]
25865    fn cast(syntax: SyntaxNode) -> Option<Self> {
25866        if Self::can_cast(syntax.kind()) {
25867            Some(Self { syntax })
25868        } else {
25869            None
25870        }
25871    }
25872    #[inline]
25873    fn syntax(&self) -> &SyntaxNode {
25874        &self.syntax
25875    }
25876}
25877impl AstNode for RefreshVersion {
25878    #[inline]
25879    fn can_cast(kind: SyntaxKind) -> bool {
25880        kind == SyntaxKind::REFRESH_VERSION
25881    }
25882    #[inline]
25883    fn cast(syntax: SyntaxNode) -> Option<Self> {
25884        if Self::can_cast(syntax.kind()) {
25885            Some(Self { syntax })
25886        } else {
25887            None
25888        }
25889    }
25890    #[inline]
25891    fn syntax(&self) -> &SyntaxNode {
25892        &self.syntax
25893    }
25894}
25895impl AstNode for Reindex {
25896    #[inline]
25897    fn can_cast(kind: SyntaxKind) -> bool {
25898        kind == SyntaxKind::REINDEX
25899    }
25900    #[inline]
25901    fn cast(syntax: SyntaxNode) -> Option<Self> {
25902        if Self::can_cast(syntax.kind()) {
25903            Some(Self { syntax })
25904        } else {
25905            None
25906        }
25907    }
25908    #[inline]
25909    fn syntax(&self) -> &SyntaxNode {
25910        &self.syntax
25911    }
25912}
25913impl AstNode for RelationName {
25914    #[inline]
25915    fn can_cast(kind: SyntaxKind) -> bool {
25916        kind == SyntaxKind::RELATION_NAME
25917    }
25918    #[inline]
25919    fn cast(syntax: SyntaxNode) -> Option<Self> {
25920        if Self::can_cast(syntax.kind()) {
25921            Some(Self { syntax })
25922        } else {
25923            None
25924        }
25925    }
25926    #[inline]
25927    fn syntax(&self) -> &SyntaxNode {
25928        &self.syntax
25929    }
25930}
25931impl AstNode for ReleaseSavepoint {
25932    #[inline]
25933    fn can_cast(kind: SyntaxKind) -> bool {
25934        kind == SyntaxKind::RELEASE_SAVEPOINT
25935    }
25936    #[inline]
25937    fn cast(syntax: SyntaxNode) -> Option<Self> {
25938        if Self::can_cast(syntax.kind()) {
25939            Some(Self { syntax })
25940        } else {
25941            None
25942        }
25943    }
25944    #[inline]
25945    fn syntax(&self) -> &SyntaxNode {
25946        &self.syntax
25947    }
25948}
25949impl AstNode for RenameColumn {
25950    #[inline]
25951    fn can_cast(kind: SyntaxKind) -> bool {
25952        kind == SyntaxKind::RENAME_COLUMN
25953    }
25954    #[inline]
25955    fn cast(syntax: SyntaxNode) -> Option<Self> {
25956        if Self::can_cast(syntax.kind()) {
25957            Some(Self { syntax })
25958        } else {
25959            None
25960        }
25961    }
25962    #[inline]
25963    fn syntax(&self) -> &SyntaxNode {
25964        &self.syntax
25965    }
25966}
25967impl AstNode for RenameConstraint {
25968    #[inline]
25969    fn can_cast(kind: SyntaxKind) -> bool {
25970        kind == SyntaxKind::RENAME_CONSTRAINT
25971    }
25972    #[inline]
25973    fn cast(syntax: SyntaxNode) -> Option<Self> {
25974        if Self::can_cast(syntax.kind()) {
25975            Some(Self { syntax })
25976        } else {
25977            None
25978        }
25979    }
25980    #[inline]
25981    fn syntax(&self) -> &SyntaxNode {
25982        &self.syntax
25983    }
25984}
25985impl AstNode for RenameTo {
25986    #[inline]
25987    fn can_cast(kind: SyntaxKind) -> bool {
25988        kind == SyntaxKind::RENAME_TO
25989    }
25990    #[inline]
25991    fn cast(syntax: SyntaxNode) -> Option<Self> {
25992        if Self::can_cast(syntax.kind()) {
25993            Some(Self { syntax })
25994        } else {
25995            None
25996        }
25997    }
25998    #[inline]
25999    fn syntax(&self) -> &SyntaxNode {
26000        &self.syntax
26001    }
26002}
26003impl AstNode for RepeatableClause {
26004    #[inline]
26005    fn can_cast(kind: SyntaxKind) -> bool {
26006        kind == SyntaxKind::REPEATABLE_CLAUSE
26007    }
26008    #[inline]
26009    fn cast(syntax: SyntaxNode) -> Option<Self> {
26010        if Self::can_cast(syntax.kind()) {
26011            Some(Self { syntax })
26012        } else {
26013            None
26014        }
26015    }
26016    #[inline]
26017    fn syntax(&self) -> &SyntaxNode {
26018        &self.syntax
26019    }
26020}
26021impl AstNode for RepeatableRead {
26022    #[inline]
26023    fn can_cast(kind: SyntaxKind) -> bool {
26024        kind == SyntaxKind::REPEATABLE_READ
26025    }
26026    #[inline]
26027    fn cast(syntax: SyntaxNode) -> Option<Self> {
26028        if Self::can_cast(syntax.kind()) {
26029            Some(Self { syntax })
26030        } else {
26031            None
26032        }
26033    }
26034    #[inline]
26035    fn syntax(&self) -> &SyntaxNode {
26036        &self.syntax
26037    }
26038}
26039impl AstNode for ReplicaIdentity {
26040    #[inline]
26041    fn can_cast(kind: SyntaxKind) -> bool {
26042        kind == SyntaxKind::REPLICA_IDENTITY
26043    }
26044    #[inline]
26045    fn cast(syntax: SyntaxNode) -> Option<Self> {
26046        if Self::can_cast(syntax.kind()) {
26047            Some(Self { syntax })
26048        } else {
26049            None
26050        }
26051    }
26052    #[inline]
26053    fn syntax(&self) -> &SyntaxNode {
26054        &self.syntax
26055    }
26056}
26057impl AstNode for Reset {
26058    #[inline]
26059    fn can_cast(kind: SyntaxKind) -> bool {
26060        kind == SyntaxKind::RESET
26061    }
26062    #[inline]
26063    fn cast(syntax: SyntaxNode) -> Option<Self> {
26064        if Self::can_cast(syntax.kind()) {
26065            Some(Self { syntax })
26066        } else {
26067            None
26068        }
26069    }
26070    #[inline]
26071    fn syntax(&self) -> &SyntaxNode {
26072        &self.syntax
26073    }
26074}
26075impl AstNode for ResetConfigParam {
26076    #[inline]
26077    fn can_cast(kind: SyntaxKind) -> bool {
26078        kind == SyntaxKind::RESET_CONFIG_PARAM
26079    }
26080    #[inline]
26081    fn cast(syntax: SyntaxNode) -> Option<Self> {
26082        if Self::can_cast(syntax.kind()) {
26083            Some(Self { syntax })
26084        } else {
26085            None
26086        }
26087    }
26088    #[inline]
26089    fn syntax(&self) -> &SyntaxNode {
26090        &self.syntax
26091    }
26092}
26093impl AstNode for ResetFuncOption {
26094    #[inline]
26095    fn can_cast(kind: SyntaxKind) -> bool {
26096        kind == SyntaxKind::RESET_FUNC_OPTION
26097    }
26098    #[inline]
26099    fn cast(syntax: SyntaxNode) -> Option<Self> {
26100        if Self::can_cast(syntax.kind()) {
26101            Some(Self { syntax })
26102        } else {
26103            None
26104        }
26105    }
26106    #[inline]
26107    fn syntax(&self) -> &SyntaxNode {
26108        &self.syntax
26109    }
26110}
26111impl AstNode for ResetOptions {
26112    #[inline]
26113    fn can_cast(kind: SyntaxKind) -> bool {
26114        kind == SyntaxKind::RESET_OPTIONS
26115    }
26116    #[inline]
26117    fn cast(syntax: SyntaxNode) -> Option<Self> {
26118        if Self::can_cast(syntax.kind()) {
26119            Some(Self { syntax })
26120        } else {
26121            None
26122        }
26123    }
26124    #[inline]
26125    fn syntax(&self) -> &SyntaxNode {
26126        &self.syntax
26127    }
26128}
26129impl AstNode for ResetSessionAuth {
26130    #[inline]
26131    fn can_cast(kind: SyntaxKind) -> bool {
26132        kind == SyntaxKind::RESET_SESSION_AUTH
26133    }
26134    #[inline]
26135    fn cast(syntax: SyntaxNode) -> Option<Self> {
26136        if Self::can_cast(syntax.kind()) {
26137            Some(Self { syntax })
26138        } else {
26139            None
26140        }
26141    }
26142    #[inline]
26143    fn syntax(&self) -> &SyntaxNode {
26144        &self.syntax
26145    }
26146}
26147impl AstNode for Restart {
26148    #[inline]
26149    fn can_cast(kind: SyntaxKind) -> bool {
26150        kind == SyntaxKind::RESTART
26151    }
26152    #[inline]
26153    fn cast(syntax: SyntaxNode) -> Option<Self> {
26154        if Self::can_cast(syntax.kind()) {
26155            Some(Self { syntax })
26156        } else {
26157            None
26158        }
26159    }
26160    #[inline]
26161    fn syntax(&self) -> &SyntaxNode {
26162        &self.syntax
26163    }
26164}
26165impl AstNode for Restrict {
26166    #[inline]
26167    fn can_cast(kind: SyntaxKind) -> bool {
26168        kind == SyntaxKind::RESTRICT
26169    }
26170    #[inline]
26171    fn cast(syntax: SyntaxNode) -> Option<Self> {
26172        if Self::can_cast(syntax.kind()) {
26173            Some(Self { syntax })
26174        } else {
26175            None
26176        }
26177    }
26178    #[inline]
26179    fn syntax(&self) -> &SyntaxNode {
26180        &self.syntax
26181    }
26182}
26183impl AstNode for RetType {
26184    #[inline]
26185    fn can_cast(kind: SyntaxKind) -> bool {
26186        kind == SyntaxKind::RET_TYPE
26187    }
26188    #[inline]
26189    fn cast(syntax: SyntaxNode) -> Option<Self> {
26190        if Self::can_cast(syntax.kind()) {
26191            Some(Self { syntax })
26192        } else {
26193            None
26194        }
26195    }
26196    #[inline]
26197    fn syntax(&self) -> &SyntaxNode {
26198        &self.syntax
26199    }
26200}
26201impl AstNode for ReturnFuncOption {
26202    #[inline]
26203    fn can_cast(kind: SyntaxKind) -> bool {
26204        kind == SyntaxKind::RETURN_FUNC_OPTION
26205    }
26206    #[inline]
26207    fn cast(syntax: SyntaxNode) -> Option<Self> {
26208        if Self::can_cast(syntax.kind()) {
26209            Some(Self { syntax })
26210        } else {
26211            None
26212        }
26213    }
26214    #[inline]
26215    fn syntax(&self) -> &SyntaxNode {
26216        &self.syntax
26217    }
26218}
26219impl AstNode for ReturningClause {
26220    #[inline]
26221    fn can_cast(kind: SyntaxKind) -> bool {
26222        kind == SyntaxKind::RETURNING_CLAUSE
26223    }
26224    #[inline]
26225    fn cast(syntax: SyntaxNode) -> Option<Self> {
26226        if Self::can_cast(syntax.kind()) {
26227            Some(Self { syntax })
26228        } else {
26229            None
26230        }
26231    }
26232    #[inline]
26233    fn syntax(&self) -> &SyntaxNode {
26234        &self.syntax
26235    }
26236}
26237impl AstNode for ReturningOption {
26238    #[inline]
26239    fn can_cast(kind: SyntaxKind) -> bool {
26240        kind == SyntaxKind::RETURNING_OPTION
26241    }
26242    #[inline]
26243    fn cast(syntax: SyntaxNode) -> Option<Self> {
26244        if Self::can_cast(syntax.kind()) {
26245            Some(Self { syntax })
26246        } else {
26247            None
26248        }
26249    }
26250    #[inline]
26251    fn syntax(&self) -> &SyntaxNode {
26252        &self.syntax
26253    }
26254}
26255impl AstNode for ReturningOptionList {
26256    #[inline]
26257    fn can_cast(kind: SyntaxKind) -> bool {
26258        kind == SyntaxKind::RETURNING_OPTION_LIST
26259    }
26260    #[inline]
26261    fn cast(syntax: SyntaxNode) -> Option<Self> {
26262        if Self::can_cast(syntax.kind()) {
26263            Some(Self { syntax })
26264        } else {
26265            None
26266        }
26267    }
26268    #[inline]
26269    fn syntax(&self) -> &SyntaxNode {
26270        &self.syntax
26271    }
26272}
26273impl AstNode for Revoke {
26274    #[inline]
26275    fn can_cast(kind: SyntaxKind) -> bool {
26276        kind == SyntaxKind::REVOKE
26277    }
26278    #[inline]
26279    fn cast(syntax: SyntaxNode) -> Option<Self> {
26280        if Self::can_cast(syntax.kind()) {
26281            Some(Self { syntax })
26282        } else {
26283            None
26284        }
26285    }
26286    #[inline]
26287    fn syntax(&self) -> &SyntaxNode {
26288        &self.syntax
26289    }
26290}
26291impl AstNode for RevokeCommand {
26292    #[inline]
26293    fn can_cast(kind: SyntaxKind) -> bool {
26294        kind == SyntaxKind::REVOKE_COMMAND
26295    }
26296    #[inline]
26297    fn cast(syntax: SyntaxNode) -> Option<Self> {
26298        if Self::can_cast(syntax.kind()) {
26299            Some(Self { syntax })
26300        } else {
26301            None
26302        }
26303    }
26304    #[inline]
26305    fn syntax(&self) -> &SyntaxNode {
26306        &self.syntax
26307    }
26308}
26309impl AstNode for RevokeCommandList {
26310    #[inline]
26311    fn can_cast(kind: SyntaxKind) -> bool {
26312        kind == SyntaxKind::REVOKE_COMMAND_LIST
26313    }
26314    #[inline]
26315    fn cast(syntax: SyntaxNode) -> Option<Self> {
26316        if Self::can_cast(syntax.kind()) {
26317            Some(Self { syntax })
26318        } else {
26319            None
26320        }
26321    }
26322    #[inline]
26323    fn syntax(&self) -> &SyntaxNode {
26324        &self.syntax
26325    }
26326}
26327impl AstNode for RevokeDefaultPrivileges {
26328    #[inline]
26329    fn can_cast(kind: SyntaxKind) -> bool {
26330        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
26331    }
26332    #[inline]
26333    fn cast(syntax: SyntaxNode) -> Option<Self> {
26334        if Self::can_cast(syntax.kind()) {
26335            Some(Self { syntax })
26336        } else {
26337            None
26338        }
26339    }
26340    #[inline]
26341    fn syntax(&self) -> &SyntaxNode {
26342        &self.syntax
26343    }
26344}
26345impl AstNode for Role {
26346    #[inline]
26347    fn can_cast(kind: SyntaxKind) -> bool {
26348        kind == SyntaxKind::ROLE
26349    }
26350    #[inline]
26351    fn cast(syntax: SyntaxNode) -> Option<Self> {
26352        if Self::can_cast(syntax.kind()) {
26353            Some(Self { syntax })
26354        } else {
26355            None
26356        }
26357    }
26358    #[inline]
26359    fn syntax(&self) -> &SyntaxNode {
26360        &self.syntax
26361    }
26362}
26363impl AstNode for RoleOption {
26364    #[inline]
26365    fn can_cast(kind: SyntaxKind) -> bool {
26366        kind == SyntaxKind::ROLE_OPTION
26367    }
26368    #[inline]
26369    fn cast(syntax: SyntaxNode) -> Option<Self> {
26370        if Self::can_cast(syntax.kind()) {
26371            Some(Self { syntax })
26372        } else {
26373            None
26374        }
26375    }
26376    #[inline]
26377    fn syntax(&self) -> &SyntaxNode {
26378        &self.syntax
26379    }
26380}
26381impl AstNode for RoleOptionList {
26382    #[inline]
26383    fn can_cast(kind: SyntaxKind) -> bool {
26384        kind == SyntaxKind::ROLE_OPTION_LIST
26385    }
26386    #[inline]
26387    fn cast(syntax: SyntaxNode) -> Option<Self> {
26388        if Self::can_cast(syntax.kind()) {
26389            Some(Self { syntax })
26390        } else {
26391            None
26392        }
26393    }
26394    #[inline]
26395    fn syntax(&self) -> &SyntaxNode {
26396        &self.syntax
26397    }
26398}
26399impl AstNode for RoleRef {
26400    #[inline]
26401    fn can_cast(kind: SyntaxKind) -> bool {
26402        kind == SyntaxKind::ROLE_REF
26403    }
26404    #[inline]
26405    fn cast(syntax: SyntaxNode) -> Option<Self> {
26406        if Self::can_cast(syntax.kind()) {
26407            Some(Self { syntax })
26408        } else {
26409            None
26410        }
26411    }
26412    #[inline]
26413    fn syntax(&self) -> &SyntaxNode {
26414        &self.syntax
26415    }
26416}
26417impl AstNode for RoleRefList {
26418    #[inline]
26419    fn can_cast(kind: SyntaxKind) -> bool {
26420        kind == SyntaxKind::ROLE_REF_LIST
26421    }
26422    #[inline]
26423    fn cast(syntax: SyntaxNode) -> Option<Self> {
26424        if Self::can_cast(syntax.kind()) {
26425            Some(Self { syntax })
26426        } else {
26427            None
26428        }
26429    }
26430    #[inline]
26431    fn syntax(&self) -> &SyntaxNode {
26432        &self.syntax
26433    }
26434}
26435impl AstNode for Rollback {
26436    #[inline]
26437    fn can_cast(kind: SyntaxKind) -> bool {
26438        kind == SyntaxKind::ROLLBACK
26439    }
26440    #[inline]
26441    fn cast(syntax: SyntaxNode) -> Option<Self> {
26442        if Self::can_cast(syntax.kind()) {
26443            Some(Self { syntax })
26444        } else {
26445            None
26446        }
26447    }
26448    #[inline]
26449    fn syntax(&self) -> &SyntaxNode {
26450        &self.syntax
26451    }
26452}
26453impl AstNode for Row {
26454    #[inline]
26455    fn can_cast(kind: SyntaxKind) -> bool {
26456        kind == SyntaxKind::ROW
26457    }
26458    #[inline]
26459    fn cast(syntax: SyntaxNode) -> Option<Self> {
26460        if Self::can_cast(syntax.kind()) {
26461            Some(Self { syntax })
26462        } else {
26463            None
26464        }
26465    }
26466    #[inline]
26467    fn syntax(&self) -> &SyntaxNode {
26468        &self.syntax
26469    }
26470}
26471impl AstNode for RowList {
26472    #[inline]
26473    fn can_cast(kind: SyntaxKind) -> bool {
26474        kind == SyntaxKind::ROW_LIST
26475    }
26476    #[inline]
26477    fn cast(syntax: SyntaxNode) -> Option<Self> {
26478        if Self::can_cast(syntax.kind()) {
26479            Some(Self { syntax })
26480        } else {
26481            None
26482        }
26483    }
26484    #[inline]
26485    fn syntax(&self) -> &SyntaxNode {
26486        &self.syntax
26487    }
26488}
26489impl AstNode for RowsFuncOption {
26490    #[inline]
26491    fn can_cast(kind: SyntaxKind) -> bool {
26492        kind == SyntaxKind::ROWS_FUNC_OPTION
26493    }
26494    #[inline]
26495    fn cast(syntax: SyntaxNode) -> Option<Self> {
26496        if Self::can_cast(syntax.kind()) {
26497            Some(Self { syntax })
26498        } else {
26499            None
26500        }
26501    }
26502    #[inline]
26503    fn syntax(&self) -> &SyntaxNode {
26504        &self.syntax
26505    }
26506}
26507impl AstNode for Savepoint {
26508    #[inline]
26509    fn can_cast(kind: SyntaxKind) -> bool {
26510        kind == SyntaxKind::SAVEPOINT
26511    }
26512    #[inline]
26513    fn cast(syntax: SyntaxNode) -> Option<Self> {
26514        if Self::can_cast(syntax.kind()) {
26515            Some(Self { syntax })
26516        } else {
26517            None
26518        }
26519    }
26520    #[inline]
26521    fn syntax(&self) -> &SyntaxNode {
26522        &self.syntax
26523    }
26524}
26525impl AstNode for SecurityFuncOption {
26526    #[inline]
26527    fn can_cast(kind: SyntaxKind) -> bool {
26528        kind == SyntaxKind::SECURITY_FUNC_OPTION
26529    }
26530    #[inline]
26531    fn cast(syntax: SyntaxNode) -> Option<Self> {
26532        if Self::can_cast(syntax.kind()) {
26533            Some(Self { syntax })
26534        } else {
26535            None
26536        }
26537    }
26538    #[inline]
26539    fn syntax(&self) -> &SyntaxNode {
26540        &self.syntax
26541    }
26542}
26543impl AstNode for SecurityLabel {
26544    #[inline]
26545    fn can_cast(kind: SyntaxKind) -> bool {
26546        kind == SyntaxKind::SECURITY_LABEL
26547    }
26548    #[inline]
26549    fn cast(syntax: SyntaxNode) -> Option<Self> {
26550        if Self::can_cast(syntax.kind()) {
26551            Some(Self { syntax })
26552        } else {
26553            None
26554        }
26555    }
26556    #[inline]
26557    fn syntax(&self) -> &SyntaxNode {
26558        &self.syntax
26559    }
26560}
26561impl AstNode for Select {
26562    #[inline]
26563    fn can_cast(kind: SyntaxKind) -> bool {
26564        kind == SyntaxKind::SELECT
26565    }
26566    #[inline]
26567    fn cast(syntax: SyntaxNode) -> Option<Self> {
26568        if Self::can_cast(syntax.kind()) {
26569            Some(Self { syntax })
26570        } else {
26571            None
26572        }
26573    }
26574    #[inline]
26575    fn syntax(&self) -> &SyntaxNode {
26576        &self.syntax
26577    }
26578}
26579impl AstNode for SelectClause {
26580    #[inline]
26581    fn can_cast(kind: SyntaxKind) -> bool {
26582        kind == SyntaxKind::SELECT_CLAUSE
26583    }
26584    #[inline]
26585    fn cast(syntax: SyntaxNode) -> Option<Self> {
26586        if Self::can_cast(syntax.kind()) {
26587            Some(Self { syntax })
26588        } else {
26589            None
26590        }
26591    }
26592    #[inline]
26593    fn syntax(&self) -> &SyntaxNode {
26594        &self.syntax
26595    }
26596}
26597impl AstNode for SelectInto {
26598    #[inline]
26599    fn can_cast(kind: SyntaxKind) -> bool {
26600        kind == SyntaxKind::SELECT_INTO
26601    }
26602    #[inline]
26603    fn cast(syntax: SyntaxNode) -> Option<Self> {
26604        if Self::can_cast(syntax.kind()) {
26605            Some(Self { syntax })
26606        } else {
26607            None
26608        }
26609    }
26610    #[inline]
26611    fn syntax(&self) -> &SyntaxNode {
26612        &self.syntax
26613    }
26614}
26615impl AstNode for SequenceOption {
26616    #[inline]
26617    fn can_cast(kind: SyntaxKind) -> bool {
26618        kind == SyntaxKind::SEQUENCE_OPTION
26619    }
26620    #[inline]
26621    fn cast(syntax: SyntaxNode) -> Option<Self> {
26622        if Self::can_cast(syntax.kind()) {
26623            Some(Self { syntax })
26624        } else {
26625            None
26626        }
26627    }
26628    #[inline]
26629    fn syntax(&self) -> &SyntaxNode {
26630        &self.syntax
26631    }
26632}
26633impl AstNode for SequenceOptionList {
26634    #[inline]
26635    fn can_cast(kind: SyntaxKind) -> bool {
26636        kind == SyntaxKind::SEQUENCE_OPTION_LIST
26637    }
26638    #[inline]
26639    fn cast(syntax: SyntaxNode) -> Option<Self> {
26640        if Self::can_cast(syntax.kind()) {
26641            Some(Self { syntax })
26642        } else {
26643            None
26644        }
26645    }
26646    #[inline]
26647    fn syntax(&self) -> &SyntaxNode {
26648        &self.syntax
26649    }
26650}
26651impl AstNode for Serializable {
26652    #[inline]
26653    fn can_cast(kind: SyntaxKind) -> bool {
26654        kind == SyntaxKind::SERIALIZABLE
26655    }
26656    #[inline]
26657    fn cast(syntax: SyntaxNode) -> Option<Self> {
26658        if Self::can_cast(syntax.kind()) {
26659            Some(Self { syntax })
26660        } else {
26661            None
26662        }
26663    }
26664    #[inline]
26665    fn syntax(&self) -> &SyntaxNode {
26666        &self.syntax
26667    }
26668}
26669impl AstNode for ServerName {
26670    #[inline]
26671    fn can_cast(kind: SyntaxKind) -> bool {
26672        kind == SyntaxKind::SERVER_NAME
26673    }
26674    #[inline]
26675    fn cast(syntax: SyntaxNode) -> Option<Self> {
26676        if Self::can_cast(syntax.kind()) {
26677            Some(Self { syntax })
26678        } else {
26679            None
26680        }
26681    }
26682    #[inline]
26683    fn syntax(&self) -> &SyntaxNode {
26684        &self.syntax
26685    }
26686}
26687impl AstNode for Set {
26688    #[inline]
26689    fn can_cast(kind: SyntaxKind) -> bool {
26690        kind == SyntaxKind::SET
26691    }
26692    #[inline]
26693    fn cast(syntax: SyntaxNode) -> Option<Self> {
26694        if Self::can_cast(syntax.kind()) {
26695            Some(Self { syntax })
26696        } else {
26697            None
26698        }
26699    }
26700    #[inline]
26701    fn syntax(&self) -> &SyntaxNode {
26702        &self.syntax
26703    }
26704}
26705impl AstNode for SetAccessMethod {
26706    #[inline]
26707    fn can_cast(kind: SyntaxKind) -> bool {
26708        kind == SyntaxKind::SET_ACCESS_METHOD
26709    }
26710    #[inline]
26711    fn cast(syntax: SyntaxNode) -> Option<Self> {
26712        if Self::can_cast(syntax.kind()) {
26713            Some(Self { syntax })
26714        } else {
26715            None
26716        }
26717    }
26718    #[inline]
26719    fn syntax(&self) -> &SyntaxNode {
26720        &self.syntax
26721    }
26722}
26723impl AstNode for SetClause {
26724    #[inline]
26725    fn can_cast(kind: SyntaxKind) -> bool {
26726        kind == SyntaxKind::SET_CLAUSE
26727    }
26728    #[inline]
26729    fn cast(syntax: SyntaxNode) -> Option<Self> {
26730        if Self::can_cast(syntax.kind()) {
26731            Some(Self { syntax })
26732        } else {
26733            None
26734        }
26735    }
26736    #[inline]
26737    fn syntax(&self) -> &SyntaxNode {
26738        &self.syntax
26739    }
26740}
26741impl AstNode for SetColumnList {
26742    #[inline]
26743    fn can_cast(kind: SyntaxKind) -> bool {
26744        kind == SyntaxKind::SET_COLUMN_LIST
26745    }
26746    #[inline]
26747    fn cast(syntax: SyntaxNode) -> Option<Self> {
26748        if Self::can_cast(syntax.kind()) {
26749            Some(Self { syntax })
26750        } else {
26751            None
26752        }
26753    }
26754    #[inline]
26755    fn syntax(&self) -> &SyntaxNode {
26756        &self.syntax
26757    }
26758}
26759impl AstNode for SetCompression {
26760    #[inline]
26761    fn can_cast(kind: SyntaxKind) -> bool {
26762        kind == SyntaxKind::SET_COMPRESSION
26763    }
26764    #[inline]
26765    fn cast(syntax: SyntaxNode) -> Option<Self> {
26766        if Self::can_cast(syntax.kind()) {
26767            Some(Self { syntax })
26768        } else {
26769            None
26770        }
26771    }
26772    #[inline]
26773    fn syntax(&self) -> &SyntaxNode {
26774        &self.syntax
26775    }
26776}
26777impl AstNode for SetConfigParam {
26778    #[inline]
26779    fn can_cast(kind: SyntaxKind) -> bool {
26780        kind == SyntaxKind::SET_CONFIG_PARAM
26781    }
26782    #[inline]
26783    fn cast(syntax: SyntaxNode) -> Option<Self> {
26784        if Self::can_cast(syntax.kind()) {
26785            Some(Self { syntax })
26786        } else {
26787            None
26788        }
26789    }
26790    #[inline]
26791    fn syntax(&self) -> &SyntaxNode {
26792        &self.syntax
26793    }
26794}
26795impl AstNode for SetConstraints {
26796    #[inline]
26797    fn can_cast(kind: SyntaxKind) -> bool {
26798        kind == SyntaxKind::SET_CONSTRAINTS
26799    }
26800    #[inline]
26801    fn cast(syntax: SyntaxNode) -> Option<Self> {
26802        if Self::can_cast(syntax.kind()) {
26803            Some(Self { syntax })
26804        } else {
26805            None
26806        }
26807    }
26808    #[inline]
26809    fn syntax(&self) -> &SyntaxNode {
26810        &self.syntax
26811    }
26812}
26813impl AstNode for SetDefault {
26814    #[inline]
26815    fn can_cast(kind: SyntaxKind) -> bool {
26816        kind == SyntaxKind::SET_DEFAULT
26817    }
26818    #[inline]
26819    fn cast(syntax: SyntaxNode) -> Option<Self> {
26820        if Self::can_cast(syntax.kind()) {
26821            Some(Self { syntax })
26822        } else {
26823            None
26824        }
26825    }
26826    #[inline]
26827    fn syntax(&self) -> &SyntaxNode {
26828        &self.syntax
26829    }
26830}
26831impl AstNode for SetDefaultColumns {
26832    #[inline]
26833    fn can_cast(kind: SyntaxKind) -> bool {
26834        kind == SyntaxKind::SET_DEFAULT_COLUMNS
26835    }
26836    #[inline]
26837    fn cast(syntax: SyntaxNode) -> Option<Self> {
26838        if Self::can_cast(syntax.kind()) {
26839            Some(Self { syntax })
26840        } else {
26841            None
26842        }
26843    }
26844    #[inline]
26845    fn syntax(&self) -> &SyntaxNode {
26846        &self.syntax
26847    }
26848}
26849impl AstNode for SetExpr {
26850    #[inline]
26851    fn can_cast(kind: SyntaxKind) -> bool {
26852        kind == SyntaxKind::SET_EXPR
26853    }
26854    #[inline]
26855    fn cast(syntax: SyntaxNode) -> Option<Self> {
26856        if Self::can_cast(syntax.kind()) {
26857            Some(Self { syntax })
26858        } else {
26859            None
26860        }
26861    }
26862    #[inline]
26863    fn syntax(&self) -> &SyntaxNode {
26864        &self.syntax
26865    }
26866}
26867impl AstNode for SetExprList {
26868    #[inline]
26869    fn can_cast(kind: SyntaxKind) -> bool {
26870        kind == SyntaxKind::SET_EXPR_LIST
26871    }
26872    #[inline]
26873    fn cast(syntax: SyntaxNode) -> Option<Self> {
26874        if Self::can_cast(syntax.kind()) {
26875            Some(Self { syntax })
26876        } else {
26877            None
26878        }
26879    }
26880    #[inline]
26881    fn syntax(&self) -> &SyntaxNode {
26882        &self.syntax
26883    }
26884}
26885impl AstNode for SetExpression {
26886    #[inline]
26887    fn can_cast(kind: SyntaxKind) -> bool {
26888        kind == SyntaxKind::SET_EXPRESSION
26889    }
26890    #[inline]
26891    fn cast(syntax: SyntaxNode) -> Option<Self> {
26892        if Self::can_cast(syntax.kind()) {
26893            Some(Self { syntax })
26894        } else {
26895            None
26896        }
26897    }
26898    #[inline]
26899    fn syntax(&self) -> &SyntaxNode {
26900        &self.syntax
26901    }
26902}
26903impl AstNode for SetFuncOption {
26904    #[inline]
26905    fn can_cast(kind: SyntaxKind) -> bool {
26906        kind == SyntaxKind::SET_FUNC_OPTION
26907    }
26908    #[inline]
26909    fn cast(syntax: SyntaxNode) -> Option<Self> {
26910        if Self::can_cast(syntax.kind()) {
26911            Some(Self { syntax })
26912        } else {
26913            None
26914        }
26915    }
26916    #[inline]
26917    fn syntax(&self) -> &SyntaxNode {
26918        &self.syntax
26919    }
26920}
26921impl AstNode for SetGenerated {
26922    #[inline]
26923    fn can_cast(kind: SyntaxKind) -> bool {
26924        kind == SyntaxKind::SET_GENERATED
26925    }
26926    #[inline]
26927    fn cast(syntax: SyntaxNode) -> Option<Self> {
26928        if Self::can_cast(syntax.kind()) {
26929            Some(Self { syntax })
26930        } else {
26931            None
26932        }
26933    }
26934    #[inline]
26935    fn syntax(&self) -> &SyntaxNode {
26936        &self.syntax
26937    }
26938}
26939impl AstNode for SetGeneratedOptions {
26940    #[inline]
26941    fn can_cast(kind: SyntaxKind) -> bool {
26942        kind == SyntaxKind::SET_GENERATED_OPTIONS
26943    }
26944    #[inline]
26945    fn cast(syntax: SyntaxNode) -> Option<Self> {
26946        if Self::can_cast(syntax.kind()) {
26947            Some(Self { syntax })
26948        } else {
26949            None
26950        }
26951    }
26952    #[inline]
26953    fn syntax(&self) -> &SyntaxNode {
26954        &self.syntax
26955    }
26956}
26957impl AstNode for SetLogged {
26958    #[inline]
26959    fn can_cast(kind: SyntaxKind) -> bool {
26960        kind == SyntaxKind::SET_LOGGED
26961    }
26962    #[inline]
26963    fn cast(syntax: SyntaxNode) -> Option<Self> {
26964        if Self::can_cast(syntax.kind()) {
26965            Some(Self { syntax })
26966        } else {
26967            None
26968        }
26969    }
26970    #[inline]
26971    fn syntax(&self) -> &SyntaxNode {
26972        &self.syntax
26973    }
26974}
26975impl AstNode for SetMultipleColumns {
26976    #[inline]
26977    fn can_cast(kind: SyntaxKind) -> bool {
26978        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
26979    }
26980    #[inline]
26981    fn cast(syntax: SyntaxNode) -> Option<Self> {
26982        if Self::can_cast(syntax.kind()) {
26983            Some(Self { syntax })
26984        } else {
26985            None
26986        }
26987    }
26988    #[inline]
26989    fn syntax(&self) -> &SyntaxNode {
26990        &self.syntax
26991    }
26992}
26993impl AstNode for SetNotNull {
26994    #[inline]
26995    fn can_cast(kind: SyntaxKind) -> bool {
26996        kind == SyntaxKind::SET_NOT_NULL
26997    }
26998    #[inline]
26999    fn cast(syntax: SyntaxNode) -> Option<Self> {
27000        if Self::can_cast(syntax.kind()) {
27001            Some(Self { syntax })
27002        } else {
27003            None
27004        }
27005    }
27006    #[inline]
27007    fn syntax(&self) -> &SyntaxNode {
27008        &self.syntax
27009    }
27010}
27011impl AstNode for SetNullColumns {
27012    #[inline]
27013    fn can_cast(kind: SyntaxKind) -> bool {
27014        kind == SyntaxKind::SET_NULL_COLUMNS
27015    }
27016    #[inline]
27017    fn cast(syntax: SyntaxNode) -> Option<Self> {
27018        if Self::can_cast(syntax.kind()) {
27019            Some(Self { syntax })
27020        } else {
27021            None
27022        }
27023    }
27024    #[inline]
27025    fn syntax(&self) -> &SyntaxNode {
27026        &self.syntax
27027    }
27028}
27029impl AstNode for SetOptions {
27030    #[inline]
27031    fn can_cast(kind: SyntaxKind) -> bool {
27032        kind == SyntaxKind::SET_OPTIONS
27033    }
27034    #[inline]
27035    fn cast(syntax: SyntaxNode) -> Option<Self> {
27036        if Self::can_cast(syntax.kind()) {
27037            Some(Self { syntax })
27038        } else {
27039            None
27040        }
27041    }
27042    #[inline]
27043    fn syntax(&self) -> &SyntaxNode {
27044        &self.syntax
27045    }
27046}
27047impl AstNode for SetOptionsList {
27048    #[inline]
27049    fn can_cast(kind: SyntaxKind) -> bool {
27050        kind == SyntaxKind::SET_OPTIONS_LIST
27051    }
27052    #[inline]
27053    fn cast(syntax: SyntaxNode) -> Option<Self> {
27054        if Self::can_cast(syntax.kind()) {
27055            Some(Self { syntax })
27056        } else {
27057            None
27058        }
27059    }
27060    #[inline]
27061    fn syntax(&self) -> &SyntaxNode {
27062        &self.syntax
27063    }
27064}
27065impl AstNode for SetRole {
27066    #[inline]
27067    fn can_cast(kind: SyntaxKind) -> bool {
27068        kind == SyntaxKind::SET_ROLE
27069    }
27070    #[inline]
27071    fn cast(syntax: SyntaxNode) -> Option<Self> {
27072        if Self::can_cast(syntax.kind()) {
27073            Some(Self { syntax })
27074        } else {
27075            None
27076        }
27077    }
27078    #[inline]
27079    fn syntax(&self) -> &SyntaxNode {
27080        &self.syntax
27081    }
27082}
27083impl AstNode for SetSchema {
27084    #[inline]
27085    fn can_cast(kind: SyntaxKind) -> bool {
27086        kind == SyntaxKind::SET_SCHEMA
27087    }
27088    #[inline]
27089    fn cast(syntax: SyntaxNode) -> Option<Self> {
27090        if Self::can_cast(syntax.kind()) {
27091            Some(Self { syntax })
27092        } else {
27093            None
27094        }
27095    }
27096    #[inline]
27097    fn syntax(&self) -> &SyntaxNode {
27098        &self.syntax
27099    }
27100}
27101impl AstNode for SetSequenceOption {
27102    #[inline]
27103    fn can_cast(kind: SyntaxKind) -> bool {
27104        kind == SyntaxKind::SET_SEQUENCE_OPTION
27105    }
27106    #[inline]
27107    fn cast(syntax: SyntaxNode) -> Option<Self> {
27108        if Self::can_cast(syntax.kind()) {
27109            Some(Self { syntax })
27110        } else {
27111            None
27112        }
27113    }
27114    #[inline]
27115    fn syntax(&self) -> &SyntaxNode {
27116        &self.syntax
27117    }
27118}
27119impl AstNode for SetSessionAuth {
27120    #[inline]
27121    fn can_cast(kind: SyntaxKind) -> bool {
27122        kind == SyntaxKind::SET_SESSION_AUTH
27123    }
27124    #[inline]
27125    fn cast(syntax: SyntaxNode) -> Option<Self> {
27126        if Self::can_cast(syntax.kind()) {
27127            Some(Self { syntax })
27128        } else {
27129            None
27130        }
27131    }
27132    #[inline]
27133    fn syntax(&self) -> &SyntaxNode {
27134        &self.syntax
27135    }
27136}
27137impl AstNode for SetSingleColumn {
27138    #[inline]
27139    fn can_cast(kind: SyntaxKind) -> bool {
27140        kind == SyntaxKind::SET_SINGLE_COLUMN
27141    }
27142    #[inline]
27143    fn cast(syntax: SyntaxNode) -> Option<Self> {
27144        if Self::can_cast(syntax.kind()) {
27145            Some(Self { syntax })
27146        } else {
27147            None
27148        }
27149    }
27150    #[inline]
27151    fn syntax(&self) -> &SyntaxNode {
27152        &self.syntax
27153    }
27154}
27155impl AstNode for SetStatistics {
27156    #[inline]
27157    fn can_cast(kind: SyntaxKind) -> bool {
27158        kind == SyntaxKind::SET_STATISTICS
27159    }
27160    #[inline]
27161    fn cast(syntax: SyntaxNode) -> Option<Self> {
27162        if Self::can_cast(syntax.kind()) {
27163            Some(Self { syntax })
27164        } else {
27165            None
27166        }
27167    }
27168    #[inline]
27169    fn syntax(&self) -> &SyntaxNode {
27170        &self.syntax
27171    }
27172}
27173impl AstNode for SetStorage {
27174    #[inline]
27175    fn can_cast(kind: SyntaxKind) -> bool {
27176        kind == SyntaxKind::SET_STORAGE
27177    }
27178    #[inline]
27179    fn cast(syntax: SyntaxNode) -> Option<Self> {
27180        if Self::can_cast(syntax.kind()) {
27181            Some(Self { syntax })
27182        } else {
27183            None
27184        }
27185    }
27186    #[inline]
27187    fn syntax(&self) -> &SyntaxNode {
27188        &self.syntax
27189    }
27190}
27191impl AstNode for SetTablespace {
27192    #[inline]
27193    fn can_cast(kind: SyntaxKind) -> bool {
27194        kind == SyntaxKind::SET_TABLESPACE
27195    }
27196    #[inline]
27197    fn cast(syntax: SyntaxNode) -> Option<Self> {
27198        if Self::can_cast(syntax.kind()) {
27199            Some(Self { syntax })
27200        } else {
27201            None
27202        }
27203    }
27204    #[inline]
27205    fn syntax(&self) -> &SyntaxNode {
27206        &self.syntax
27207    }
27208}
27209impl AstNode for SetTransaction {
27210    #[inline]
27211    fn can_cast(kind: SyntaxKind) -> bool {
27212        kind == SyntaxKind::SET_TRANSACTION
27213    }
27214    #[inline]
27215    fn cast(syntax: SyntaxNode) -> Option<Self> {
27216        if Self::can_cast(syntax.kind()) {
27217            Some(Self { syntax })
27218        } else {
27219            None
27220        }
27221    }
27222    #[inline]
27223    fn syntax(&self) -> &SyntaxNode {
27224        &self.syntax
27225    }
27226}
27227impl AstNode for SetType {
27228    #[inline]
27229    fn can_cast(kind: SyntaxKind) -> bool {
27230        kind == SyntaxKind::SET_TYPE
27231    }
27232    #[inline]
27233    fn cast(syntax: SyntaxNode) -> Option<Self> {
27234        if Self::can_cast(syntax.kind()) {
27235            Some(Self { syntax })
27236        } else {
27237            None
27238        }
27239    }
27240    #[inline]
27241    fn syntax(&self) -> &SyntaxNode {
27242        &self.syntax
27243    }
27244}
27245impl AstNode for SetUnlogged {
27246    #[inline]
27247    fn can_cast(kind: SyntaxKind) -> bool {
27248        kind == SyntaxKind::SET_UNLOGGED
27249    }
27250    #[inline]
27251    fn cast(syntax: SyntaxNode) -> Option<Self> {
27252        if Self::can_cast(syntax.kind()) {
27253            Some(Self { syntax })
27254        } else {
27255            None
27256        }
27257    }
27258    #[inline]
27259    fn syntax(&self) -> &SyntaxNode {
27260        &self.syntax
27261    }
27262}
27263impl AstNode for SetWithoutCluster {
27264    #[inline]
27265    fn can_cast(kind: SyntaxKind) -> bool {
27266        kind == SyntaxKind::SET_WITHOUT_CLUSTER
27267    }
27268    #[inline]
27269    fn cast(syntax: SyntaxNode) -> Option<Self> {
27270        if Self::can_cast(syntax.kind()) {
27271            Some(Self { syntax })
27272        } else {
27273            None
27274        }
27275    }
27276    #[inline]
27277    fn syntax(&self) -> &SyntaxNode {
27278        &self.syntax
27279    }
27280}
27281impl AstNode for SetWithoutOids {
27282    #[inline]
27283    fn can_cast(kind: SyntaxKind) -> bool {
27284        kind == SyntaxKind::SET_WITHOUT_OIDS
27285    }
27286    #[inline]
27287    fn cast(syntax: SyntaxNode) -> Option<Self> {
27288        if Self::can_cast(syntax.kind()) {
27289            Some(Self { syntax })
27290        } else {
27291            None
27292        }
27293    }
27294    #[inline]
27295    fn syntax(&self) -> &SyntaxNode {
27296        &self.syntax
27297    }
27298}
27299impl AstNode for Show {
27300    #[inline]
27301    fn can_cast(kind: SyntaxKind) -> bool {
27302        kind == SyntaxKind::SHOW
27303    }
27304    #[inline]
27305    fn cast(syntax: SyntaxNode) -> Option<Self> {
27306        if Self::can_cast(syntax.kind()) {
27307            Some(Self { syntax })
27308        } else {
27309            None
27310        }
27311    }
27312    #[inline]
27313    fn syntax(&self) -> &SyntaxNode {
27314        &self.syntax
27315    }
27316}
27317impl AstNode for SimilarTo {
27318    #[inline]
27319    fn can_cast(kind: SyntaxKind) -> bool {
27320        kind == SyntaxKind::SIMILAR_TO
27321    }
27322    #[inline]
27323    fn cast(syntax: SyntaxNode) -> Option<Self> {
27324        if Self::can_cast(syntax.kind()) {
27325            Some(Self { syntax })
27326        } else {
27327            None
27328        }
27329    }
27330    #[inline]
27331    fn syntax(&self) -> &SyntaxNode {
27332        &self.syntax
27333    }
27334}
27335impl AstNode for SliceExpr {
27336    #[inline]
27337    fn can_cast(kind: SyntaxKind) -> bool {
27338        kind == SyntaxKind::SLICE_EXPR
27339    }
27340    #[inline]
27341    fn cast(syntax: SyntaxNode) -> Option<Self> {
27342        if Self::can_cast(syntax.kind()) {
27343            Some(Self { syntax })
27344        } else {
27345            None
27346        }
27347    }
27348    #[inline]
27349    fn syntax(&self) -> &SyntaxNode {
27350        &self.syntax
27351    }
27352}
27353impl AstNode for SomeFn {
27354    #[inline]
27355    fn can_cast(kind: SyntaxKind) -> bool {
27356        kind == SyntaxKind::SOME_FN
27357    }
27358    #[inline]
27359    fn cast(syntax: SyntaxNode) -> Option<Self> {
27360        if Self::can_cast(syntax.kind()) {
27361            Some(Self { syntax })
27362        } else {
27363            None
27364        }
27365    }
27366    #[inline]
27367    fn syntax(&self) -> &SyntaxNode {
27368        &self.syntax
27369    }
27370}
27371impl AstNode for SortAsc {
27372    #[inline]
27373    fn can_cast(kind: SyntaxKind) -> bool {
27374        kind == SyntaxKind::SORT_ASC
27375    }
27376    #[inline]
27377    fn cast(syntax: SyntaxNode) -> Option<Self> {
27378        if Self::can_cast(syntax.kind()) {
27379            Some(Self { syntax })
27380        } else {
27381            None
27382        }
27383    }
27384    #[inline]
27385    fn syntax(&self) -> &SyntaxNode {
27386        &self.syntax
27387    }
27388}
27389impl AstNode for SortBy {
27390    #[inline]
27391    fn can_cast(kind: SyntaxKind) -> bool {
27392        kind == SyntaxKind::SORT_BY
27393    }
27394    #[inline]
27395    fn cast(syntax: SyntaxNode) -> Option<Self> {
27396        if Self::can_cast(syntax.kind()) {
27397            Some(Self { syntax })
27398        } else {
27399            None
27400        }
27401    }
27402    #[inline]
27403    fn syntax(&self) -> &SyntaxNode {
27404        &self.syntax
27405    }
27406}
27407impl AstNode for SortByList {
27408    #[inline]
27409    fn can_cast(kind: SyntaxKind) -> bool {
27410        kind == SyntaxKind::SORT_BY_LIST
27411    }
27412    #[inline]
27413    fn cast(syntax: SyntaxNode) -> Option<Self> {
27414        if Self::can_cast(syntax.kind()) {
27415            Some(Self { syntax })
27416        } else {
27417            None
27418        }
27419    }
27420    #[inline]
27421    fn syntax(&self) -> &SyntaxNode {
27422        &self.syntax
27423    }
27424}
27425impl AstNode for SortDesc {
27426    #[inline]
27427    fn can_cast(kind: SyntaxKind) -> bool {
27428        kind == SyntaxKind::SORT_DESC
27429    }
27430    #[inline]
27431    fn cast(syntax: SyntaxNode) -> Option<Self> {
27432        if Self::can_cast(syntax.kind()) {
27433            Some(Self { syntax })
27434        } else {
27435            None
27436        }
27437    }
27438    #[inline]
27439    fn syntax(&self) -> &SyntaxNode {
27440        &self.syntax
27441    }
27442}
27443impl AstNode for SortUsing {
27444    #[inline]
27445    fn can_cast(kind: SyntaxKind) -> bool {
27446        kind == SyntaxKind::SORT_USING
27447    }
27448    #[inline]
27449    fn cast(syntax: SyntaxNode) -> Option<Self> {
27450        if Self::can_cast(syntax.kind()) {
27451            Some(Self { syntax })
27452        } else {
27453            None
27454        }
27455    }
27456    #[inline]
27457    fn syntax(&self) -> &SyntaxNode {
27458        &self.syntax
27459    }
27460}
27461impl AstNode for SourceFile {
27462    #[inline]
27463    fn can_cast(kind: SyntaxKind) -> bool {
27464        kind == SyntaxKind::SOURCE_FILE
27465    }
27466    #[inline]
27467    fn cast(syntax: SyntaxNode) -> Option<Self> {
27468        if Self::can_cast(syntax.kind()) {
27469            Some(Self { syntax })
27470        } else {
27471            None
27472        }
27473    }
27474    #[inline]
27475    fn syntax(&self) -> &SyntaxNode {
27476        &self.syntax
27477    }
27478}
27479impl AstNode for SplitPartition {
27480    #[inline]
27481    fn can_cast(kind: SyntaxKind) -> bool {
27482        kind == SyntaxKind::SPLIT_PARTITION
27483    }
27484    #[inline]
27485    fn cast(syntax: SyntaxNode) -> Option<Self> {
27486        if Self::can_cast(syntax.kind()) {
27487            Some(Self { syntax })
27488        } else {
27489            None
27490        }
27491    }
27492    #[inline]
27493    fn syntax(&self) -> &SyntaxNode {
27494        &self.syntax
27495    }
27496}
27497impl AstNode for Storage {
27498    #[inline]
27499    fn can_cast(kind: SyntaxKind) -> bool {
27500        kind == SyntaxKind::STORAGE
27501    }
27502    #[inline]
27503    fn cast(syntax: SyntaxNode) -> Option<Self> {
27504        if Self::can_cast(syntax.kind()) {
27505            Some(Self { syntax })
27506        } else {
27507            None
27508        }
27509    }
27510    #[inline]
27511    fn syntax(&self) -> &SyntaxNode {
27512        &self.syntax
27513    }
27514}
27515impl AstNode for StrictFuncOption {
27516    #[inline]
27517    fn can_cast(kind: SyntaxKind) -> bool {
27518        kind == SyntaxKind::STRICT_FUNC_OPTION
27519    }
27520    #[inline]
27521    fn cast(syntax: SyntaxNode) -> Option<Self> {
27522        if Self::can_cast(syntax.kind()) {
27523            Some(Self { syntax })
27524        } else {
27525            None
27526        }
27527    }
27528    #[inline]
27529    fn syntax(&self) -> &SyntaxNode {
27530        &self.syntax
27531    }
27532}
27533impl AstNode for SubstringFn {
27534    #[inline]
27535    fn can_cast(kind: SyntaxKind) -> bool {
27536        kind == SyntaxKind::SUBSTRING_FN
27537    }
27538    #[inline]
27539    fn cast(syntax: SyntaxNode) -> Option<Self> {
27540        if Self::can_cast(syntax.kind()) {
27541            Some(Self { syntax })
27542        } else {
27543            None
27544        }
27545    }
27546    #[inline]
27547    fn syntax(&self) -> &SyntaxNode {
27548        &self.syntax
27549    }
27550}
27551impl AstNode for SupportFuncOption {
27552    #[inline]
27553    fn can_cast(kind: SyntaxKind) -> bool {
27554        kind == SyntaxKind::SUPPORT_FUNC_OPTION
27555    }
27556    #[inline]
27557    fn cast(syntax: SyntaxNode) -> Option<Self> {
27558        if Self::can_cast(syntax.kind()) {
27559            Some(Self { syntax })
27560        } else {
27561            None
27562        }
27563    }
27564    #[inline]
27565    fn syntax(&self) -> &SyntaxNode {
27566        &self.syntax
27567    }
27568}
27569impl AstNode for Table {
27570    #[inline]
27571    fn can_cast(kind: SyntaxKind) -> bool {
27572        kind == SyntaxKind::TABLE
27573    }
27574    #[inline]
27575    fn cast(syntax: SyntaxNode) -> Option<Self> {
27576        if Self::can_cast(syntax.kind()) {
27577            Some(Self { syntax })
27578        } else {
27579            None
27580        }
27581    }
27582    #[inline]
27583    fn syntax(&self) -> &SyntaxNode {
27584        &self.syntax
27585    }
27586}
27587impl AstNode for TableAndColumns {
27588    #[inline]
27589    fn can_cast(kind: SyntaxKind) -> bool {
27590        kind == SyntaxKind::TABLE_AND_COLUMNS
27591    }
27592    #[inline]
27593    fn cast(syntax: SyntaxNode) -> Option<Self> {
27594        if Self::can_cast(syntax.kind()) {
27595            Some(Self { syntax })
27596        } else {
27597            None
27598        }
27599    }
27600    #[inline]
27601    fn syntax(&self) -> &SyntaxNode {
27602        &self.syntax
27603    }
27604}
27605impl AstNode for TableAndColumnsList {
27606    #[inline]
27607    fn can_cast(kind: SyntaxKind) -> bool {
27608        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
27609    }
27610    #[inline]
27611    fn cast(syntax: SyntaxNode) -> Option<Self> {
27612        if Self::can_cast(syntax.kind()) {
27613            Some(Self { syntax })
27614        } else {
27615            None
27616        }
27617    }
27618    #[inline]
27619    fn syntax(&self) -> &SyntaxNode {
27620        &self.syntax
27621    }
27622}
27623impl AstNode for TableArgList {
27624    #[inline]
27625    fn can_cast(kind: SyntaxKind) -> bool {
27626        kind == SyntaxKind::TABLE_ARG_LIST
27627    }
27628    #[inline]
27629    fn cast(syntax: SyntaxNode) -> Option<Self> {
27630        if Self::can_cast(syntax.kind()) {
27631            Some(Self { syntax })
27632        } else {
27633            None
27634        }
27635    }
27636    #[inline]
27637    fn syntax(&self) -> &SyntaxNode {
27638        &self.syntax
27639    }
27640}
27641impl AstNode for TableList {
27642    #[inline]
27643    fn can_cast(kind: SyntaxKind) -> bool {
27644        kind == SyntaxKind::TABLE_LIST
27645    }
27646    #[inline]
27647    fn cast(syntax: SyntaxNode) -> Option<Self> {
27648        if Self::can_cast(syntax.kind()) {
27649            Some(Self { syntax })
27650        } else {
27651            None
27652        }
27653    }
27654    #[inline]
27655    fn syntax(&self) -> &SyntaxNode {
27656        &self.syntax
27657    }
27658}
27659impl AstNode for TablesampleClause {
27660    #[inline]
27661    fn can_cast(kind: SyntaxKind) -> bool {
27662        kind == SyntaxKind::TABLESAMPLE_CLAUSE
27663    }
27664    #[inline]
27665    fn cast(syntax: SyntaxNode) -> Option<Self> {
27666        if Self::can_cast(syntax.kind()) {
27667            Some(Self { syntax })
27668        } else {
27669            None
27670        }
27671    }
27672    #[inline]
27673    fn syntax(&self) -> &SyntaxNode {
27674        &self.syntax
27675    }
27676}
27677impl AstNode for Tablespace {
27678    #[inline]
27679    fn can_cast(kind: SyntaxKind) -> bool {
27680        kind == SyntaxKind::TABLESPACE
27681    }
27682    #[inline]
27683    fn cast(syntax: SyntaxNode) -> Option<Self> {
27684        if Self::can_cast(syntax.kind()) {
27685            Some(Self { syntax })
27686        } else {
27687            None
27688        }
27689    }
27690    #[inline]
27691    fn syntax(&self) -> &SyntaxNode {
27692        &self.syntax
27693    }
27694}
27695impl AstNode for Target {
27696    #[inline]
27697    fn can_cast(kind: SyntaxKind) -> bool {
27698        kind == SyntaxKind::TARGET
27699    }
27700    #[inline]
27701    fn cast(syntax: SyntaxNode) -> Option<Self> {
27702        if Self::can_cast(syntax.kind()) {
27703            Some(Self { syntax })
27704        } else {
27705            None
27706        }
27707    }
27708    #[inline]
27709    fn syntax(&self) -> &SyntaxNode {
27710        &self.syntax
27711    }
27712}
27713impl AstNode for TargetList {
27714    #[inline]
27715    fn can_cast(kind: SyntaxKind) -> bool {
27716        kind == SyntaxKind::TARGET_LIST
27717    }
27718    #[inline]
27719    fn cast(syntax: SyntaxNode) -> Option<Self> {
27720        if Self::can_cast(syntax.kind()) {
27721            Some(Self { syntax })
27722        } else {
27723            None
27724        }
27725    }
27726    #[inline]
27727    fn syntax(&self) -> &SyntaxNode {
27728        &self.syntax
27729    }
27730}
27731impl AstNode for TimeType {
27732    #[inline]
27733    fn can_cast(kind: SyntaxKind) -> bool {
27734        kind == SyntaxKind::TIME_TYPE
27735    }
27736    #[inline]
27737    fn cast(syntax: SyntaxNode) -> Option<Self> {
27738        if Self::can_cast(syntax.kind()) {
27739            Some(Self { syntax })
27740        } else {
27741            None
27742        }
27743    }
27744    #[inline]
27745    fn syntax(&self) -> &SyntaxNode {
27746        &self.syntax
27747    }
27748}
27749impl AstNode for Timing {
27750    #[inline]
27751    fn can_cast(kind: SyntaxKind) -> bool {
27752        kind == SyntaxKind::TIMING
27753    }
27754    #[inline]
27755    fn cast(syntax: SyntaxNode) -> Option<Self> {
27756        if Self::can_cast(syntax.kind()) {
27757            Some(Self { syntax })
27758        } else {
27759            None
27760        }
27761    }
27762    #[inline]
27763    fn syntax(&self) -> &SyntaxNode {
27764        &self.syntax
27765    }
27766}
27767impl AstNode for TransactionModeList {
27768    #[inline]
27769    fn can_cast(kind: SyntaxKind) -> bool {
27770        kind == SyntaxKind::TRANSACTION_MODE_LIST
27771    }
27772    #[inline]
27773    fn cast(syntax: SyntaxNode) -> Option<Self> {
27774        if Self::can_cast(syntax.kind()) {
27775            Some(Self { syntax })
27776        } else {
27777            None
27778        }
27779    }
27780    #[inline]
27781    fn syntax(&self) -> &SyntaxNode {
27782        &self.syntax
27783    }
27784}
27785impl AstNode for TransformFromFunc {
27786    #[inline]
27787    fn can_cast(kind: SyntaxKind) -> bool {
27788        kind == SyntaxKind::TRANSFORM_FROM_FUNC
27789    }
27790    #[inline]
27791    fn cast(syntax: SyntaxNode) -> Option<Self> {
27792        if Self::can_cast(syntax.kind()) {
27793            Some(Self { syntax })
27794        } else {
27795            None
27796        }
27797    }
27798    #[inline]
27799    fn syntax(&self) -> &SyntaxNode {
27800        &self.syntax
27801    }
27802}
27803impl AstNode for TransformFuncOption {
27804    #[inline]
27805    fn can_cast(kind: SyntaxKind) -> bool {
27806        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
27807    }
27808    #[inline]
27809    fn cast(syntax: SyntaxNode) -> Option<Self> {
27810        if Self::can_cast(syntax.kind()) {
27811            Some(Self { syntax })
27812        } else {
27813            None
27814        }
27815    }
27816    #[inline]
27817    fn syntax(&self) -> &SyntaxNode {
27818        &self.syntax
27819    }
27820}
27821impl AstNode for TransformToFunc {
27822    #[inline]
27823    fn can_cast(kind: SyntaxKind) -> bool {
27824        kind == SyntaxKind::TRANSFORM_TO_FUNC
27825    }
27826    #[inline]
27827    fn cast(syntax: SyntaxNode) -> Option<Self> {
27828        if Self::can_cast(syntax.kind()) {
27829            Some(Self { syntax })
27830        } else {
27831            None
27832        }
27833    }
27834    #[inline]
27835    fn syntax(&self) -> &SyntaxNode {
27836        &self.syntax
27837    }
27838}
27839impl AstNode for TriggerEvent {
27840    #[inline]
27841    fn can_cast(kind: SyntaxKind) -> bool {
27842        kind == SyntaxKind::TRIGGER_EVENT
27843    }
27844    #[inline]
27845    fn cast(syntax: SyntaxNode) -> Option<Self> {
27846        if Self::can_cast(syntax.kind()) {
27847            Some(Self { syntax })
27848        } else {
27849            None
27850        }
27851    }
27852    #[inline]
27853    fn syntax(&self) -> &SyntaxNode {
27854        &self.syntax
27855    }
27856}
27857impl AstNode for TriggerEventList {
27858    #[inline]
27859    fn can_cast(kind: SyntaxKind) -> bool {
27860        kind == SyntaxKind::TRIGGER_EVENT_LIST
27861    }
27862    #[inline]
27863    fn cast(syntax: SyntaxNode) -> Option<Self> {
27864        if Self::can_cast(syntax.kind()) {
27865            Some(Self { syntax })
27866        } else {
27867            None
27868        }
27869    }
27870    #[inline]
27871    fn syntax(&self) -> &SyntaxNode {
27872        &self.syntax
27873    }
27874}
27875impl AstNode for TriggerEventUpdate {
27876    #[inline]
27877    fn can_cast(kind: SyntaxKind) -> bool {
27878        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
27879    }
27880    #[inline]
27881    fn cast(syntax: SyntaxNode) -> Option<Self> {
27882        if Self::can_cast(syntax.kind()) {
27883            Some(Self { syntax })
27884        } else {
27885            None
27886        }
27887    }
27888    #[inline]
27889    fn syntax(&self) -> &SyntaxNode {
27890        &self.syntax
27891    }
27892}
27893impl AstNode for TrimFn {
27894    #[inline]
27895    fn can_cast(kind: SyntaxKind) -> bool {
27896        kind == SyntaxKind::TRIM_FN
27897    }
27898    #[inline]
27899    fn cast(syntax: SyntaxNode) -> Option<Self> {
27900        if Self::can_cast(syntax.kind()) {
27901            Some(Self { syntax })
27902        } else {
27903            None
27904        }
27905    }
27906    #[inline]
27907    fn syntax(&self) -> &SyntaxNode {
27908        &self.syntax
27909    }
27910}
27911impl AstNode for Truncate {
27912    #[inline]
27913    fn can_cast(kind: SyntaxKind) -> bool {
27914        kind == SyntaxKind::TRUNCATE
27915    }
27916    #[inline]
27917    fn cast(syntax: SyntaxNode) -> Option<Self> {
27918        if Self::can_cast(syntax.kind()) {
27919            Some(Self { syntax })
27920        } else {
27921            None
27922        }
27923    }
27924    #[inline]
27925    fn syntax(&self) -> &SyntaxNode {
27926        &self.syntax
27927    }
27928}
27929impl AstNode for TupleExpr {
27930    #[inline]
27931    fn can_cast(kind: SyntaxKind) -> bool {
27932        kind == SyntaxKind::TUPLE_EXPR
27933    }
27934    #[inline]
27935    fn cast(syntax: SyntaxNode) -> Option<Self> {
27936        if Self::can_cast(syntax.kind()) {
27937            Some(Self { syntax })
27938        } else {
27939            None
27940        }
27941    }
27942    #[inline]
27943    fn syntax(&self) -> &SyntaxNode {
27944        &self.syntax
27945    }
27946}
27947impl AstNode for UnicodeNormalForm {
27948    #[inline]
27949    fn can_cast(kind: SyntaxKind) -> bool {
27950        kind == SyntaxKind::UNICODE_NORMAL_FORM
27951    }
27952    #[inline]
27953    fn cast(syntax: SyntaxNode) -> Option<Self> {
27954        if Self::can_cast(syntax.kind()) {
27955            Some(Self { syntax })
27956        } else {
27957            None
27958        }
27959    }
27960    #[inline]
27961    fn syntax(&self) -> &SyntaxNode {
27962        &self.syntax
27963    }
27964}
27965impl AstNode for UniqueConstraint {
27966    #[inline]
27967    fn can_cast(kind: SyntaxKind) -> bool {
27968        kind == SyntaxKind::UNIQUE_CONSTRAINT
27969    }
27970    #[inline]
27971    fn cast(syntax: SyntaxNode) -> Option<Self> {
27972        if Self::can_cast(syntax.kind()) {
27973            Some(Self { syntax })
27974        } else {
27975            None
27976        }
27977    }
27978    #[inline]
27979    fn syntax(&self) -> &SyntaxNode {
27980        &self.syntax
27981    }
27982}
27983impl AstNode for Unlisten {
27984    #[inline]
27985    fn can_cast(kind: SyntaxKind) -> bool {
27986        kind == SyntaxKind::UNLISTEN
27987    }
27988    #[inline]
27989    fn cast(syntax: SyntaxNode) -> Option<Self> {
27990        if Self::can_cast(syntax.kind()) {
27991            Some(Self { syntax })
27992        } else {
27993            None
27994        }
27995    }
27996    #[inline]
27997    fn syntax(&self) -> &SyntaxNode {
27998        &self.syntax
27999    }
28000}
28001impl AstNode for Update {
28002    #[inline]
28003    fn can_cast(kind: SyntaxKind) -> bool {
28004        kind == SyntaxKind::UPDATE
28005    }
28006    #[inline]
28007    fn cast(syntax: SyntaxNode) -> Option<Self> {
28008        if Self::can_cast(syntax.kind()) {
28009            Some(Self { syntax })
28010        } else {
28011            None
28012        }
28013    }
28014    #[inline]
28015    fn syntax(&self) -> &SyntaxNode {
28016        &self.syntax
28017    }
28018}
28019impl AstNode for UsingClause {
28020    #[inline]
28021    fn can_cast(kind: SyntaxKind) -> bool {
28022        kind == SyntaxKind::USING_CLAUSE
28023    }
28024    #[inline]
28025    fn cast(syntax: SyntaxNode) -> Option<Self> {
28026        if Self::can_cast(syntax.kind()) {
28027            Some(Self { syntax })
28028        } else {
28029            None
28030        }
28031    }
28032    #[inline]
28033    fn syntax(&self) -> &SyntaxNode {
28034        &self.syntax
28035    }
28036}
28037impl AstNode for UsingExprClause {
28038    #[inline]
28039    fn can_cast(kind: SyntaxKind) -> bool {
28040        kind == SyntaxKind::USING_EXPR_CLAUSE
28041    }
28042    #[inline]
28043    fn cast(syntax: SyntaxNode) -> Option<Self> {
28044        if Self::can_cast(syntax.kind()) {
28045            Some(Self { syntax })
28046        } else {
28047            None
28048        }
28049    }
28050    #[inline]
28051    fn syntax(&self) -> &SyntaxNode {
28052        &self.syntax
28053    }
28054}
28055impl AstNode for UsingIndex {
28056    #[inline]
28057    fn can_cast(kind: SyntaxKind) -> bool {
28058        kind == SyntaxKind::USING_INDEX
28059    }
28060    #[inline]
28061    fn cast(syntax: SyntaxNode) -> Option<Self> {
28062        if Self::can_cast(syntax.kind()) {
28063            Some(Self { syntax })
28064        } else {
28065            None
28066        }
28067    }
28068    #[inline]
28069    fn syntax(&self) -> &SyntaxNode {
28070        &self.syntax
28071    }
28072}
28073impl AstNode for UsingMethod {
28074    #[inline]
28075    fn can_cast(kind: SyntaxKind) -> bool {
28076        kind == SyntaxKind::USING_METHOD
28077    }
28078    #[inline]
28079    fn cast(syntax: SyntaxNode) -> Option<Self> {
28080        if Self::can_cast(syntax.kind()) {
28081            Some(Self { syntax })
28082        } else {
28083            None
28084        }
28085    }
28086    #[inline]
28087    fn syntax(&self) -> &SyntaxNode {
28088        &self.syntax
28089    }
28090}
28091impl AstNode for UsingOnClause {
28092    #[inline]
28093    fn can_cast(kind: SyntaxKind) -> bool {
28094        kind == SyntaxKind::USING_ON_CLAUSE
28095    }
28096    #[inline]
28097    fn cast(syntax: SyntaxNode) -> Option<Self> {
28098        if Self::can_cast(syntax.kind()) {
28099            Some(Self { syntax })
28100        } else {
28101            None
28102        }
28103    }
28104    #[inline]
28105    fn syntax(&self) -> &SyntaxNode {
28106        &self.syntax
28107    }
28108}
28109impl AstNode for Vacuum {
28110    #[inline]
28111    fn can_cast(kind: SyntaxKind) -> bool {
28112        kind == SyntaxKind::VACUUM
28113    }
28114    #[inline]
28115    fn cast(syntax: SyntaxNode) -> Option<Self> {
28116        if Self::can_cast(syntax.kind()) {
28117            Some(Self { syntax })
28118        } else {
28119            None
28120        }
28121    }
28122    #[inline]
28123    fn syntax(&self) -> &SyntaxNode {
28124        &self.syntax
28125    }
28126}
28127impl AstNode for VacuumOption {
28128    #[inline]
28129    fn can_cast(kind: SyntaxKind) -> bool {
28130        kind == SyntaxKind::VACUUM_OPTION
28131    }
28132    #[inline]
28133    fn cast(syntax: SyntaxNode) -> Option<Self> {
28134        if Self::can_cast(syntax.kind()) {
28135            Some(Self { syntax })
28136        } else {
28137            None
28138        }
28139    }
28140    #[inline]
28141    fn syntax(&self) -> &SyntaxNode {
28142        &self.syntax
28143    }
28144}
28145impl AstNode for VacuumOptionList {
28146    #[inline]
28147    fn can_cast(kind: SyntaxKind) -> bool {
28148        kind == SyntaxKind::VACUUM_OPTION_LIST
28149    }
28150    #[inline]
28151    fn cast(syntax: SyntaxNode) -> Option<Self> {
28152        if Self::can_cast(syntax.kind()) {
28153            Some(Self { syntax })
28154        } else {
28155            None
28156        }
28157    }
28158    #[inline]
28159    fn syntax(&self) -> &SyntaxNode {
28160        &self.syntax
28161    }
28162}
28163impl AstNode for ValidateConstraint {
28164    #[inline]
28165    fn can_cast(kind: SyntaxKind) -> bool {
28166        kind == SyntaxKind::VALIDATE_CONSTRAINT
28167    }
28168    #[inline]
28169    fn cast(syntax: SyntaxNode) -> Option<Self> {
28170        if Self::can_cast(syntax.kind()) {
28171            Some(Self { syntax })
28172        } else {
28173            None
28174        }
28175    }
28176    #[inline]
28177    fn syntax(&self) -> &SyntaxNode {
28178        &self.syntax
28179    }
28180}
28181impl AstNode for Values {
28182    #[inline]
28183    fn can_cast(kind: SyntaxKind) -> bool {
28184        kind == SyntaxKind::VALUES
28185    }
28186    #[inline]
28187    fn cast(syntax: SyntaxNode) -> Option<Self> {
28188        if Self::can_cast(syntax.kind()) {
28189            Some(Self { syntax })
28190        } else {
28191            None
28192        }
28193    }
28194    #[inline]
28195    fn syntax(&self) -> &SyntaxNode {
28196        &self.syntax
28197    }
28198}
28199impl AstNode for Variant {
28200    #[inline]
28201    fn can_cast(kind: SyntaxKind) -> bool {
28202        kind == SyntaxKind::VARIANT
28203    }
28204    #[inline]
28205    fn cast(syntax: SyntaxNode) -> Option<Self> {
28206        if Self::can_cast(syntax.kind()) {
28207            Some(Self { syntax })
28208        } else {
28209            None
28210        }
28211    }
28212    #[inline]
28213    fn syntax(&self) -> &SyntaxNode {
28214        &self.syntax
28215    }
28216}
28217impl AstNode for VariantList {
28218    #[inline]
28219    fn can_cast(kind: SyntaxKind) -> bool {
28220        kind == SyntaxKind::VARIANT_LIST
28221    }
28222    #[inline]
28223    fn cast(syntax: SyntaxNode) -> Option<Self> {
28224        if Self::can_cast(syntax.kind()) {
28225            Some(Self { syntax })
28226        } else {
28227            None
28228        }
28229    }
28230    #[inline]
28231    fn syntax(&self) -> &SyntaxNode {
28232        &self.syntax
28233    }
28234}
28235impl AstNode for VolatilityFuncOption {
28236    #[inline]
28237    fn can_cast(kind: SyntaxKind) -> bool {
28238        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
28239    }
28240    #[inline]
28241    fn cast(syntax: SyntaxNode) -> Option<Self> {
28242        if Self::can_cast(syntax.kind()) {
28243            Some(Self { syntax })
28244        } else {
28245            None
28246        }
28247    }
28248    #[inline]
28249    fn syntax(&self) -> &SyntaxNode {
28250        &self.syntax
28251    }
28252}
28253impl AstNode for WhenClause {
28254    #[inline]
28255    fn can_cast(kind: SyntaxKind) -> bool {
28256        kind == SyntaxKind::WHEN_CLAUSE
28257    }
28258    #[inline]
28259    fn cast(syntax: SyntaxNode) -> Option<Self> {
28260        if Self::can_cast(syntax.kind()) {
28261            Some(Self { syntax })
28262        } else {
28263            None
28264        }
28265    }
28266    #[inline]
28267    fn syntax(&self) -> &SyntaxNode {
28268        &self.syntax
28269    }
28270}
28271impl AstNode for WhenClauseList {
28272    #[inline]
28273    fn can_cast(kind: SyntaxKind) -> bool {
28274        kind == SyntaxKind::WHEN_CLAUSE_LIST
28275    }
28276    #[inline]
28277    fn cast(syntax: SyntaxNode) -> Option<Self> {
28278        if Self::can_cast(syntax.kind()) {
28279            Some(Self { syntax })
28280        } else {
28281            None
28282        }
28283    }
28284    #[inline]
28285    fn syntax(&self) -> &SyntaxNode {
28286        &self.syntax
28287    }
28288}
28289impl AstNode for WhenCondition {
28290    #[inline]
28291    fn can_cast(kind: SyntaxKind) -> bool {
28292        kind == SyntaxKind::WHEN_CONDITION
28293    }
28294    #[inline]
28295    fn cast(syntax: SyntaxNode) -> Option<Self> {
28296        if Self::can_cast(syntax.kind()) {
28297            Some(Self { syntax })
28298        } else {
28299            None
28300        }
28301    }
28302    #[inline]
28303    fn syntax(&self) -> &SyntaxNode {
28304        &self.syntax
28305    }
28306}
28307impl AstNode for WhereClause {
28308    #[inline]
28309    fn can_cast(kind: SyntaxKind) -> bool {
28310        kind == SyntaxKind::WHERE_CLAUSE
28311    }
28312    #[inline]
28313    fn cast(syntax: SyntaxNode) -> Option<Self> {
28314        if Self::can_cast(syntax.kind()) {
28315            Some(Self { syntax })
28316        } else {
28317            None
28318        }
28319    }
28320    #[inline]
28321    fn syntax(&self) -> &SyntaxNode {
28322        &self.syntax
28323    }
28324}
28325impl AstNode for WhereConditionClause {
28326    #[inline]
28327    fn can_cast(kind: SyntaxKind) -> bool {
28328        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
28329    }
28330    #[inline]
28331    fn cast(syntax: SyntaxNode) -> Option<Self> {
28332        if Self::can_cast(syntax.kind()) {
28333            Some(Self { syntax })
28334        } else {
28335            None
28336        }
28337    }
28338    #[inline]
28339    fn syntax(&self) -> &SyntaxNode {
28340        &self.syntax
28341    }
28342}
28343impl AstNode for WhereCurrentOf {
28344    #[inline]
28345    fn can_cast(kind: SyntaxKind) -> bool {
28346        kind == SyntaxKind::WHERE_CURRENT_OF
28347    }
28348    #[inline]
28349    fn cast(syntax: SyntaxNode) -> Option<Self> {
28350        if Self::can_cast(syntax.kind()) {
28351            Some(Self { syntax })
28352        } else {
28353            None
28354        }
28355    }
28356    #[inline]
28357    fn syntax(&self) -> &SyntaxNode {
28358        &self.syntax
28359    }
28360}
28361impl AstNode for WindowClause {
28362    #[inline]
28363    fn can_cast(kind: SyntaxKind) -> bool {
28364        kind == SyntaxKind::WINDOW_CLAUSE
28365    }
28366    #[inline]
28367    fn cast(syntax: SyntaxNode) -> Option<Self> {
28368        if Self::can_cast(syntax.kind()) {
28369            Some(Self { syntax })
28370        } else {
28371            None
28372        }
28373    }
28374    #[inline]
28375    fn syntax(&self) -> &SyntaxNode {
28376        &self.syntax
28377    }
28378}
28379impl AstNode for WindowDef {
28380    #[inline]
28381    fn can_cast(kind: SyntaxKind) -> bool {
28382        kind == SyntaxKind::WINDOW_DEF
28383    }
28384    #[inline]
28385    fn cast(syntax: SyntaxNode) -> Option<Self> {
28386        if Self::can_cast(syntax.kind()) {
28387            Some(Self { syntax })
28388        } else {
28389            None
28390        }
28391    }
28392    #[inline]
28393    fn syntax(&self) -> &SyntaxNode {
28394        &self.syntax
28395    }
28396}
28397impl AstNode for WindowFuncOption {
28398    #[inline]
28399    fn can_cast(kind: SyntaxKind) -> bool {
28400        kind == SyntaxKind::WINDOW_FUNC_OPTION
28401    }
28402    #[inline]
28403    fn cast(syntax: SyntaxNode) -> Option<Self> {
28404        if Self::can_cast(syntax.kind()) {
28405            Some(Self { syntax })
28406        } else {
28407            None
28408        }
28409    }
28410    #[inline]
28411    fn syntax(&self) -> &SyntaxNode {
28412        &self.syntax
28413    }
28414}
28415impl AstNode for WindowSpec {
28416    #[inline]
28417    fn can_cast(kind: SyntaxKind) -> bool {
28418        kind == SyntaxKind::WINDOW_SPEC
28419    }
28420    #[inline]
28421    fn cast(syntax: SyntaxNode) -> Option<Self> {
28422        if Self::can_cast(syntax.kind()) {
28423            Some(Self { syntax })
28424        } else {
28425            None
28426        }
28427    }
28428    #[inline]
28429    fn syntax(&self) -> &SyntaxNode {
28430        &self.syntax
28431    }
28432}
28433impl AstNode for WithCheckExprClause {
28434    #[inline]
28435    fn can_cast(kind: SyntaxKind) -> bool {
28436        kind == SyntaxKind::WITH_CHECK_EXPR_CLAUSE
28437    }
28438    #[inline]
28439    fn cast(syntax: SyntaxNode) -> Option<Self> {
28440        if Self::can_cast(syntax.kind()) {
28441            Some(Self { syntax })
28442        } else {
28443            None
28444        }
28445    }
28446    #[inline]
28447    fn syntax(&self) -> &SyntaxNode {
28448        &self.syntax
28449    }
28450}
28451impl AstNode for WithClause {
28452    #[inline]
28453    fn can_cast(kind: SyntaxKind) -> bool {
28454        kind == SyntaxKind::WITH_CLAUSE
28455    }
28456    #[inline]
28457    fn cast(syntax: SyntaxNode) -> Option<Self> {
28458        if Self::can_cast(syntax.kind()) {
28459            Some(Self { syntax })
28460        } else {
28461            None
28462        }
28463    }
28464    #[inline]
28465    fn syntax(&self) -> &SyntaxNode {
28466        &self.syntax
28467    }
28468}
28469impl AstNode for WithData {
28470    #[inline]
28471    fn can_cast(kind: SyntaxKind) -> bool {
28472        kind == SyntaxKind::WITH_DATA
28473    }
28474    #[inline]
28475    fn cast(syntax: SyntaxNode) -> Option<Self> {
28476        if Self::can_cast(syntax.kind()) {
28477            Some(Self { syntax })
28478        } else {
28479            None
28480        }
28481    }
28482    #[inline]
28483    fn syntax(&self) -> &SyntaxNode {
28484        &self.syntax
28485    }
28486}
28487impl AstNode for WithNoData {
28488    #[inline]
28489    fn can_cast(kind: SyntaxKind) -> bool {
28490        kind == SyntaxKind::WITH_NO_DATA
28491    }
28492    #[inline]
28493    fn cast(syntax: SyntaxNode) -> Option<Self> {
28494        if Self::can_cast(syntax.kind()) {
28495            Some(Self { syntax })
28496        } else {
28497            None
28498        }
28499    }
28500    #[inline]
28501    fn syntax(&self) -> &SyntaxNode {
28502        &self.syntax
28503    }
28504}
28505impl AstNode for WithOptions {
28506    #[inline]
28507    fn can_cast(kind: SyntaxKind) -> bool {
28508        kind == SyntaxKind::WITH_OPTIONS
28509    }
28510    #[inline]
28511    fn cast(syntax: SyntaxNode) -> Option<Self> {
28512        if Self::can_cast(syntax.kind()) {
28513            Some(Self { syntax })
28514        } else {
28515            None
28516        }
28517    }
28518    #[inline]
28519    fn syntax(&self) -> &SyntaxNode {
28520        &self.syntax
28521    }
28522}
28523impl AstNode for WithParams {
28524    #[inline]
28525    fn can_cast(kind: SyntaxKind) -> bool {
28526        kind == SyntaxKind::WITH_PARAMS
28527    }
28528    #[inline]
28529    fn cast(syntax: SyntaxNode) -> Option<Self> {
28530        if Self::can_cast(syntax.kind()) {
28531            Some(Self { syntax })
28532        } else {
28533            None
28534        }
28535    }
28536    #[inline]
28537    fn syntax(&self) -> &SyntaxNode {
28538        &self.syntax
28539    }
28540}
28541impl AstNode for WithTable {
28542    #[inline]
28543    fn can_cast(kind: SyntaxKind) -> bool {
28544        kind == SyntaxKind::WITH_TABLE
28545    }
28546    #[inline]
28547    fn cast(syntax: SyntaxNode) -> Option<Self> {
28548        if Self::can_cast(syntax.kind()) {
28549            Some(Self { syntax })
28550        } else {
28551            None
28552        }
28553    }
28554    #[inline]
28555    fn syntax(&self) -> &SyntaxNode {
28556        &self.syntax
28557    }
28558}
28559impl AstNode for WithTimezone {
28560    #[inline]
28561    fn can_cast(kind: SyntaxKind) -> bool {
28562        kind == SyntaxKind::WITH_TIMEZONE
28563    }
28564    #[inline]
28565    fn cast(syntax: SyntaxNode) -> Option<Self> {
28566        if Self::can_cast(syntax.kind()) {
28567            Some(Self { syntax })
28568        } else {
28569            None
28570        }
28571    }
28572    #[inline]
28573    fn syntax(&self) -> &SyntaxNode {
28574        &self.syntax
28575    }
28576}
28577impl AstNode for WithinClause {
28578    #[inline]
28579    fn can_cast(kind: SyntaxKind) -> bool {
28580        kind == SyntaxKind::WITHIN_CLAUSE
28581    }
28582    #[inline]
28583    fn cast(syntax: SyntaxNode) -> Option<Self> {
28584        if Self::can_cast(syntax.kind()) {
28585            Some(Self { syntax })
28586        } else {
28587            None
28588        }
28589    }
28590    #[inline]
28591    fn syntax(&self) -> &SyntaxNode {
28592        &self.syntax
28593    }
28594}
28595impl AstNode for WithoutOids {
28596    #[inline]
28597    fn can_cast(kind: SyntaxKind) -> bool {
28598        kind == SyntaxKind::WITHOUT_OIDS
28599    }
28600    #[inline]
28601    fn cast(syntax: SyntaxNode) -> Option<Self> {
28602        if Self::can_cast(syntax.kind()) {
28603            Some(Self { syntax })
28604        } else {
28605            None
28606        }
28607    }
28608    #[inline]
28609    fn syntax(&self) -> &SyntaxNode {
28610        &self.syntax
28611    }
28612}
28613impl AstNode for WithoutTimezone {
28614    #[inline]
28615    fn can_cast(kind: SyntaxKind) -> bool {
28616        kind == SyntaxKind::WITHOUT_TIMEZONE
28617    }
28618    #[inline]
28619    fn cast(syntax: SyntaxNode) -> Option<Self> {
28620        if Self::can_cast(syntax.kind()) {
28621            Some(Self { syntax })
28622        } else {
28623            None
28624        }
28625    }
28626    #[inline]
28627    fn syntax(&self) -> &SyntaxNode {
28628        &self.syntax
28629    }
28630}
28631impl AstNode for XmlAttributeList {
28632    #[inline]
28633    fn can_cast(kind: SyntaxKind) -> bool {
28634        kind == SyntaxKind::XML_ATTRIBUTE_LIST
28635    }
28636    #[inline]
28637    fn cast(syntax: SyntaxNode) -> Option<Self> {
28638        if Self::can_cast(syntax.kind()) {
28639            Some(Self { syntax })
28640        } else {
28641            None
28642        }
28643    }
28644    #[inline]
28645    fn syntax(&self) -> &SyntaxNode {
28646        &self.syntax
28647    }
28648}
28649impl AstNode for XmlColumnOption {
28650    #[inline]
28651    fn can_cast(kind: SyntaxKind) -> bool {
28652        kind == SyntaxKind::XML_COLUMN_OPTION
28653    }
28654    #[inline]
28655    fn cast(syntax: SyntaxNode) -> Option<Self> {
28656        if Self::can_cast(syntax.kind()) {
28657            Some(Self { syntax })
28658        } else {
28659            None
28660        }
28661    }
28662    #[inline]
28663    fn syntax(&self) -> &SyntaxNode {
28664        &self.syntax
28665    }
28666}
28667impl AstNode for XmlColumnOptionList {
28668    #[inline]
28669    fn can_cast(kind: SyntaxKind) -> bool {
28670        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
28671    }
28672    #[inline]
28673    fn cast(syntax: SyntaxNode) -> Option<Self> {
28674        if Self::can_cast(syntax.kind()) {
28675            Some(Self { syntax })
28676        } else {
28677            None
28678        }
28679    }
28680    #[inline]
28681    fn syntax(&self) -> &SyntaxNode {
28682        &self.syntax
28683    }
28684}
28685impl AstNode for XmlElementFn {
28686    #[inline]
28687    fn can_cast(kind: SyntaxKind) -> bool {
28688        kind == SyntaxKind::XML_ELEMENT_FN
28689    }
28690    #[inline]
28691    fn cast(syntax: SyntaxNode) -> Option<Self> {
28692        if Self::can_cast(syntax.kind()) {
28693            Some(Self { syntax })
28694        } else {
28695            None
28696        }
28697    }
28698    #[inline]
28699    fn syntax(&self) -> &SyntaxNode {
28700        &self.syntax
28701    }
28702}
28703impl AstNode for XmlExistsFn {
28704    #[inline]
28705    fn can_cast(kind: SyntaxKind) -> bool {
28706        kind == SyntaxKind::XML_EXISTS_FN
28707    }
28708    #[inline]
28709    fn cast(syntax: SyntaxNode) -> Option<Self> {
28710        if Self::can_cast(syntax.kind()) {
28711            Some(Self { syntax })
28712        } else {
28713            None
28714        }
28715    }
28716    #[inline]
28717    fn syntax(&self) -> &SyntaxNode {
28718        &self.syntax
28719    }
28720}
28721impl AstNode for XmlForestFn {
28722    #[inline]
28723    fn can_cast(kind: SyntaxKind) -> bool {
28724        kind == SyntaxKind::XML_FOREST_FN
28725    }
28726    #[inline]
28727    fn cast(syntax: SyntaxNode) -> Option<Self> {
28728        if Self::can_cast(syntax.kind()) {
28729            Some(Self { syntax })
28730        } else {
28731            None
28732        }
28733    }
28734    #[inline]
28735    fn syntax(&self) -> &SyntaxNode {
28736        &self.syntax
28737    }
28738}
28739impl AstNode for XmlNamespace {
28740    #[inline]
28741    fn can_cast(kind: SyntaxKind) -> bool {
28742        kind == SyntaxKind::XML_NAMESPACE
28743    }
28744    #[inline]
28745    fn cast(syntax: SyntaxNode) -> Option<Self> {
28746        if Self::can_cast(syntax.kind()) {
28747            Some(Self { syntax })
28748        } else {
28749            None
28750        }
28751    }
28752    #[inline]
28753    fn syntax(&self) -> &SyntaxNode {
28754        &self.syntax
28755    }
28756}
28757impl AstNode for XmlNamespaceList {
28758    #[inline]
28759    fn can_cast(kind: SyntaxKind) -> bool {
28760        kind == SyntaxKind::XML_NAMESPACE_LIST
28761    }
28762    #[inline]
28763    fn cast(syntax: SyntaxNode) -> Option<Self> {
28764        if Self::can_cast(syntax.kind()) {
28765            Some(Self { syntax })
28766        } else {
28767            None
28768        }
28769    }
28770    #[inline]
28771    fn syntax(&self) -> &SyntaxNode {
28772        &self.syntax
28773    }
28774}
28775impl AstNode for XmlParseFn {
28776    #[inline]
28777    fn can_cast(kind: SyntaxKind) -> bool {
28778        kind == SyntaxKind::XML_PARSE_FN
28779    }
28780    #[inline]
28781    fn cast(syntax: SyntaxNode) -> Option<Self> {
28782        if Self::can_cast(syntax.kind()) {
28783            Some(Self { syntax })
28784        } else {
28785            None
28786        }
28787    }
28788    #[inline]
28789    fn syntax(&self) -> &SyntaxNode {
28790        &self.syntax
28791    }
28792}
28793impl AstNode for XmlPassingMech {
28794    #[inline]
28795    fn can_cast(kind: SyntaxKind) -> bool {
28796        kind == SyntaxKind::XML_PASSING_MECH
28797    }
28798    #[inline]
28799    fn cast(syntax: SyntaxNode) -> Option<Self> {
28800        if Self::can_cast(syntax.kind()) {
28801            Some(Self { syntax })
28802        } else {
28803            None
28804        }
28805    }
28806    #[inline]
28807    fn syntax(&self) -> &SyntaxNode {
28808        &self.syntax
28809    }
28810}
28811impl AstNode for XmlPiFn {
28812    #[inline]
28813    fn can_cast(kind: SyntaxKind) -> bool {
28814        kind == SyntaxKind::XML_PI_FN
28815    }
28816    #[inline]
28817    fn cast(syntax: SyntaxNode) -> Option<Self> {
28818        if Self::can_cast(syntax.kind()) {
28819            Some(Self { syntax })
28820        } else {
28821            None
28822        }
28823    }
28824    #[inline]
28825    fn syntax(&self) -> &SyntaxNode {
28826        &self.syntax
28827    }
28828}
28829impl AstNode for XmlRootFn {
28830    #[inline]
28831    fn can_cast(kind: SyntaxKind) -> bool {
28832        kind == SyntaxKind::XML_ROOT_FN
28833    }
28834    #[inline]
28835    fn cast(syntax: SyntaxNode) -> Option<Self> {
28836        if Self::can_cast(syntax.kind()) {
28837            Some(Self { syntax })
28838        } else {
28839            None
28840        }
28841    }
28842    #[inline]
28843    fn syntax(&self) -> &SyntaxNode {
28844        &self.syntax
28845    }
28846}
28847impl AstNode for XmlRowPassingClause {
28848    #[inline]
28849    fn can_cast(kind: SyntaxKind) -> bool {
28850        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
28851    }
28852    #[inline]
28853    fn cast(syntax: SyntaxNode) -> Option<Self> {
28854        if Self::can_cast(syntax.kind()) {
28855            Some(Self { syntax })
28856        } else {
28857            None
28858        }
28859    }
28860    #[inline]
28861    fn syntax(&self) -> &SyntaxNode {
28862        &self.syntax
28863    }
28864}
28865impl AstNode for XmlSerializeFn {
28866    #[inline]
28867    fn can_cast(kind: SyntaxKind) -> bool {
28868        kind == SyntaxKind::XML_SERIALIZE_FN
28869    }
28870    #[inline]
28871    fn cast(syntax: SyntaxNode) -> Option<Self> {
28872        if Self::can_cast(syntax.kind()) {
28873            Some(Self { syntax })
28874        } else {
28875            None
28876        }
28877    }
28878    #[inline]
28879    fn syntax(&self) -> &SyntaxNode {
28880        &self.syntax
28881    }
28882}
28883impl AstNode for XmlTable {
28884    #[inline]
28885    fn can_cast(kind: SyntaxKind) -> bool {
28886        kind == SyntaxKind::XML_TABLE
28887    }
28888    #[inline]
28889    fn cast(syntax: SyntaxNode) -> Option<Self> {
28890        if Self::can_cast(syntax.kind()) {
28891            Some(Self { syntax })
28892        } else {
28893            None
28894        }
28895    }
28896    #[inline]
28897    fn syntax(&self) -> &SyntaxNode {
28898        &self.syntax
28899    }
28900}
28901impl AstNode for XmlTableColumn {
28902    #[inline]
28903    fn can_cast(kind: SyntaxKind) -> bool {
28904        kind == SyntaxKind::XML_TABLE_COLUMN
28905    }
28906    #[inline]
28907    fn cast(syntax: SyntaxNode) -> Option<Self> {
28908        if Self::can_cast(syntax.kind()) {
28909            Some(Self { syntax })
28910        } else {
28911            None
28912        }
28913    }
28914    #[inline]
28915    fn syntax(&self) -> &SyntaxNode {
28916        &self.syntax
28917    }
28918}
28919impl AstNode for XmlTableColumnList {
28920    #[inline]
28921    fn can_cast(kind: SyntaxKind) -> bool {
28922        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
28923    }
28924    #[inline]
28925    fn cast(syntax: SyntaxNode) -> Option<Self> {
28926        if Self::can_cast(syntax.kind()) {
28927            Some(Self { syntax })
28928        } else {
28929            None
28930        }
28931    }
28932    #[inline]
28933    fn syntax(&self) -> &SyntaxNode {
28934        &self.syntax
28935    }
28936}
28937impl AstNode for AlterColumnOption {
28938    #[inline]
28939    fn can_cast(kind: SyntaxKind) -> bool {
28940        matches!(
28941            kind,
28942            SyntaxKind::ADD_GENERATED
28943                | SyntaxKind::DROP_DEFAULT
28944                | SyntaxKind::DROP_EXPRESSION
28945                | SyntaxKind::DROP_IDENTITY
28946                | SyntaxKind::DROP_NOT_NULL
28947                | SyntaxKind::INHERIT
28948                | SyntaxKind::NO_INHERIT
28949                | SyntaxKind::RESET_OPTIONS
28950                | SyntaxKind::RESTART
28951                | SyntaxKind::SET_COMPRESSION
28952                | SyntaxKind::SET_DEFAULT
28953                | SyntaxKind::SET_EXPRESSION
28954                | SyntaxKind::SET_GENERATED
28955                | SyntaxKind::SET_GENERATED_OPTIONS
28956                | SyntaxKind::SET_NOT_NULL
28957                | SyntaxKind::SET_OPTIONS
28958                | SyntaxKind::SET_OPTIONS_LIST
28959                | SyntaxKind::SET_SEQUENCE_OPTION
28960                | SyntaxKind::SET_STATISTICS
28961                | SyntaxKind::SET_STORAGE
28962                | SyntaxKind::SET_TYPE
28963        )
28964    }
28965    #[inline]
28966    fn cast(syntax: SyntaxNode) -> Option<Self> {
28967        let res = match syntax.kind() {
28968            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
28969            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
28970            SyntaxKind::DROP_EXPRESSION => {
28971                AlterColumnOption::DropExpression(DropExpression { syntax })
28972            }
28973            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
28974            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
28975            SyntaxKind::INHERIT => AlterColumnOption::Inherit(Inherit { syntax }),
28976            SyntaxKind::NO_INHERIT => AlterColumnOption::NoInherit(NoInherit { syntax }),
28977            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
28978            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
28979            SyntaxKind::SET_COMPRESSION => {
28980                AlterColumnOption::SetCompression(SetCompression { syntax })
28981            }
28982            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
28983            SyntaxKind::SET_EXPRESSION => {
28984                AlterColumnOption::SetExpression(SetExpression { syntax })
28985            }
28986            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
28987            SyntaxKind::SET_GENERATED_OPTIONS => {
28988                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
28989            }
28990            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
28991            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
28992            SyntaxKind::SET_OPTIONS_LIST => {
28993                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
28994            }
28995            SyntaxKind::SET_SEQUENCE_OPTION => {
28996                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
28997            }
28998            SyntaxKind::SET_STATISTICS => {
28999                AlterColumnOption::SetStatistics(SetStatistics { syntax })
29000            }
29001            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
29002            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
29003            _ => {
29004                return None;
29005            }
29006        };
29007        Some(res)
29008    }
29009    #[inline]
29010    fn syntax(&self) -> &SyntaxNode {
29011        match self {
29012            AlterColumnOption::AddGenerated(it) => &it.syntax,
29013            AlterColumnOption::DropDefault(it) => &it.syntax,
29014            AlterColumnOption::DropExpression(it) => &it.syntax,
29015            AlterColumnOption::DropIdentity(it) => &it.syntax,
29016            AlterColumnOption::DropNotNull(it) => &it.syntax,
29017            AlterColumnOption::Inherit(it) => &it.syntax,
29018            AlterColumnOption::NoInherit(it) => &it.syntax,
29019            AlterColumnOption::ResetOptions(it) => &it.syntax,
29020            AlterColumnOption::Restart(it) => &it.syntax,
29021            AlterColumnOption::SetCompression(it) => &it.syntax,
29022            AlterColumnOption::SetDefault(it) => &it.syntax,
29023            AlterColumnOption::SetExpression(it) => &it.syntax,
29024            AlterColumnOption::SetGenerated(it) => &it.syntax,
29025            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
29026            AlterColumnOption::SetNotNull(it) => &it.syntax,
29027            AlterColumnOption::SetOptions(it) => &it.syntax,
29028            AlterColumnOption::SetOptionsList(it) => &it.syntax,
29029            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
29030            AlterColumnOption::SetStatistics(it) => &it.syntax,
29031            AlterColumnOption::SetStorage(it) => &it.syntax,
29032            AlterColumnOption::SetType(it) => &it.syntax,
29033        }
29034    }
29035}
29036impl From<AddGenerated> for AlterColumnOption {
29037    #[inline]
29038    fn from(node: AddGenerated) -> AlterColumnOption {
29039        AlterColumnOption::AddGenerated(node)
29040    }
29041}
29042impl From<DropDefault> for AlterColumnOption {
29043    #[inline]
29044    fn from(node: DropDefault) -> AlterColumnOption {
29045        AlterColumnOption::DropDefault(node)
29046    }
29047}
29048impl From<DropExpression> for AlterColumnOption {
29049    #[inline]
29050    fn from(node: DropExpression) -> AlterColumnOption {
29051        AlterColumnOption::DropExpression(node)
29052    }
29053}
29054impl From<DropIdentity> for AlterColumnOption {
29055    #[inline]
29056    fn from(node: DropIdentity) -> AlterColumnOption {
29057        AlterColumnOption::DropIdentity(node)
29058    }
29059}
29060impl From<DropNotNull> for AlterColumnOption {
29061    #[inline]
29062    fn from(node: DropNotNull) -> AlterColumnOption {
29063        AlterColumnOption::DropNotNull(node)
29064    }
29065}
29066impl From<Inherit> for AlterColumnOption {
29067    #[inline]
29068    fn from(node: Inherit) -> AlterColumnOption {
29069        AlterColumnOption::Inherit(node)
29070    }
29071}
29072impl From<NoInherit> for AlterColumnOption {
29073    #[inline]
29074    fn from(node: NoInherit) -> AlterColumnOption {
29075        AlterColumnOption::NoInherit(node)
29076    }
29077}
29078impl From<ResetOptions> for AlterColumnOption {
29079    #[inline]
29080    fn from(node: ResetOptions) -> AlterColumnOption {
29081        AlterColumnOption::ResetOptions(node)
29082    }
29083}
29084impl From<Restart> for AlterColumnOption {
29085    #[inline]
29086    fn from(node: Restart) -> AlterColumnOption {
29087        AlterColumnOption::Restart(node)
29088    }
29089}
29090impl From<SetCompression> for AlterColumnOption {
29091    #[inline]
29092    fn from(node: SetCompression) -> AlterColumnOption {
29093        AlterColumnOption::SetCompression(node)
29094    }
29095}
29096impl From<SetDefault> for AlterColumnOption {
29097    #[inline]
29098    fn from(node: SetDefault) -> AlterColumnOption {
29099        AlterColumnOption::SetDefault(node)
29100    }
29101}
29102impl From<SetExpression> for AlterColumnOption {
29103    #[inline]
29104    fn from(node: SetExpression) -> AlterColumnOption {
29105        AlterColumnOption::SetExpression(node)
29106    }
29107}
29108impl From<SetGenerated> for AlterColumnOption {
29109    #[inline]
29110    fn from(node: SetGenerated) -> AlterColumnOption {
29111        AlterColumnOption::SetGenerated(node)
29112    }
29113}
29114impl From<SetGeneratedOptions> for AlterColumnOption {
29115    #[inline]
29116    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
29117        AlterColumnOption::SetGeneratedOptions(node)
29118    }
29119}
29120impl From<SetNotNull> for AlterColumnOption {
29121    #[inline]
29122    fn from(node: SetNotNull) -> AlterColumnOption {
29123        AlterColumnOption::SetNotNull(node)
29124    }
29125}
29126impl From<SetOptions> for AlterColumnOption {
29127    #[inline]
29128    fn from(node: SetOptions) -> AlterColumnOption {
29129        AlterColumnOption::SetOptions(node)
29130    }
29131}
29132impl From<SetOptionsList> for AlterColumnOption {
29133    #[inline]
29134    fn from(node: SetOptionsList) -> AlterColumnOption {
29135        AlterColumnOption::SetOptionsList(node)
29136    }
29137}
29138impl From<SetSequenceOption> for AlterColumnOption {
29139    #[inline]
29140    fn from(node: SetSequenceOption) -> AlterColumnOption {
29141        AlterColumnOption::SetSequenceOption(node)
29142    }
29143}
29144impl From<SetStatistics> for AlterColumnOption {
29145    #[inline]
29146    fn from(node: SetStatistics) -> AlterColumnOption {
29147        AlterColumnOption::SetStatistics(node)
29148    }
29149}
29150impl From<SetStorage> for AlterColumnOption {
29151    #[inline]
29152    fn from(node: SetStorage) -> AlterColumnOption {
29153        AlterColumnOption::SetStorage(node)
29154    }
29155}
29156impl From<SetType> for AlterColumnOption {
29157    #[inline]
29158    fn from(node: SetType) -> AlterColumnOption {
29159        AlterColumnOption::SetType(node)
29160    }
29161}
29162impl AstNode for AlterDomainAction {
29163    #[inline]
29164    fn can_cast(kind: SyntaxKind) -> bool {
29165        matches!(
29166            kind,
29167            SyntaxKind::ADD_CONSTRAINT
29168                | SyntaxKind::DROP_CONSTRAINT
29169                | SyntaxKind::DROP_DEFAULT
29170                | SyntaxKind::DROP_NOT_NULL
29171                | SyntaxKind::OWNER_TO
29172                | SyntaxKind::RENAME_CONSTRAINT
29173                | SyntaxKind::RENAME_TO
29174                | SyntaxKind::SET_DEFAULT
29175                | SyntaxKind::SET_NOT_NULL
29176                | SyntaxKind::SET_SCHEMA
29177                | SyntaxKind::VALIDATE_CONSTRAINT
29178        )
29179    }
29180    #[inline]
29181    fn cast(syntax: SyntaxNode) -> Option<Self> {
29182        let res = match syntax.kind() {
29183            SyntaxKind::ADD_CONSTRAINT => {
29184                AlterDomainAction::AddConstraint(AddConstraint { syntax })
29185            }
29186            SyntaxKind::DROP_CONSTRAINT => {
29187                AlterDomainAction::DropConstraint(DropConstraint { syntax })
29188            }
29189            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
29190            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
29191            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
29192            SyntaxKind::RENAME_CONSTRAINT => {
29193                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
29194            }
29195            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
29196            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
29197            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
29198            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
29199            SyntaxKind::VALIDATE_CONSTRAINT => {
29200                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
29201            }
29202            _ => {
29203                return None;
29204            }
29205        };
29206        Some(res)
29207    }
29208    #[inline]
29209    fn syntax(&self) -> &SyntaxNode {
29210        match self {
29211            AlterDomainAction::AddConstraint(it) => &it.syntax,
29212            AlterDomainAction::DropConstraint(it) => &it.syntax,
29213            AlterDomainAction::DropDefault(it) => &it.syntax,
29214            AlterDomainAction::DropNotNull(it) => &it.syntax,
29215            AlterDomainAction::OwnerTo(it) => &it.syntax,
29216            AlterDomainAction::RenameConstraint(it) => &it.syntax,
29217            AlterDomainAction::RenameTo(it) => &it.syntax,
29218            AlterDomainAction::SetDefault(it) => &it.syntax,
29219            AlterDomainAction::SetNotNull(it) => &it.syntax,
29220            AlterDomainAction::SetSchema(it) => &it.syntax,
29221            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
29222        }
29223    }
29224}
29225impl From<AddConstraint> for AlterDomainAction {
29226    #[inline]
29227    fn from(node: AddConstraint) -> AlterDomainAction {
29228        AlterDomainAction::AddConstraint(node)
29229    }
29230}
29231impl From<DropConstraint> for AlterDomainAction {
29232    #[inline]
29233    fn from(node: DropConstraint) -> AlterDomainAction {
29234        AlterDomainAction::DropConstraint(node)
29235    }
29236}
29237impl From<DropDefault> for AlterDomainAction {
29238    #[inline]
29239    fn from(node: DropDefault) -> AlterDomainAction {
29240        AlterDomainAction::DropDefault(node)
29241    }
29242}
29243impl From<DropNotNull> for AlterDomainAction {
29244    #[inline]
29245    fn from(node: DropNotNull) -> AlterDomainAction {
29246        AlterDomainAction::DropNotNull(node)
29247    }
29248}
29249impl From<OwnerTo> for AlterDomainAction {
29250    #[inline]
29251    fn from(node: OwnerTo) -> AlterDomainAction {
29252        AlterDomainAction::OwnerTo(node)
29253    }
29254}
29255impl From<RenameConstraint> for AlterDomainAction {
29256    #[inline]
29257    fn from(node: RenameConstraint) -> AlterDomainAction {
29258        AlterDomainAction::RenameConstraint(node)
29259    }
29260}
29261impl From<RenameTo> for AlterDomainAction {
29262    #[inline]
29263    fn from(node: RenameTo) -> AlterDomainAction {
29264        AlterDomainAction::RenameTo(node)
29265    }
29266}
29267impl From<SetDefault> for AlterDomainAction {
29268    #[inline]
29269    fn from(node: SetDefault) -> AlterDomainAction {
29270        AlterDomainAction::SetDefault(node)
29271    }
29272}
29273impl From<SetNotNull> for AlterDomainAction {
29274    #[inline]
29275    fn from(node: SetNotNull) -> AlterDomainAction {
29276        AlterDomainAction::SetNotNull(node)
29277    }
29278}
29279impl From<SetSchema> for AlterDomainAction {
29280    #[inline]
29281    fn from(node: SetSchema) -> AlterDomainAction {
29282        AlterDomainAction::SetSchema(node)
29283    }
29284}
29285impl From<ValidateConstraint> for AlterDomainAction {
29286    #[inline]
29287    fn from(node: ValidateConstraint) -> AlterDomainAction {
29288        AlterDomainAction::ValidateConstraint(node)
29289    }
29290}
29291impl AstNode for AlterIndexAction {
29292    #[inline]
29293    fn can_cast(kind: SyntaxKind) -> bool {
29294        matches!(
29295            kind,
29296            SyntaxKind::ALTER_SET_STATISTICS
29297                | SyntaxKind::ATTACH_PARTITION
29298                | SyntaxKind::DEPENDS_ON_EXTENSION
29299                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
29300                | SyntaxKind::RENAME_TO
29301                | SyntaxKind::RESET_OPTIONS
29302                | SyntaxKind::SET_OPTIONS
29303                | SyntaxKind::SET_TABLESPACE
29304        )
29305    }
29306    #[inline]
29307    fn cast(syntax: SyntaxNode) -> Option<Self> {
29308        let res = match syntax.kind() {
29309            SyntaxKind::ALTER_SET_STATISTICS => {
29310                AlterIndexAction::AlterSetStatistics(AlterSetStatistics { syntax })
29311            }
29312            SyntaxKind::ATTACH_PARTITION => {
29313                AlterIndexAction::AttachPartition(AttachPartition { syntax })
29314            }
29315            SyntaxKind::DEPENDS_ON_EXTENSION => {
29316                AlterIndexAction::DependsOnExtension(DependsOnExtension { syntax })
29317            }
29318            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
29319                AlterIndexAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
29320            }
29321            SyntaxKind::RENAME_TO => AlterIndexAction::RenameTo(RenameTo { syntax }),
29322            SyntaxKind::RESET_OPTIONS => AlterIndexAction::ResetOptions(ResetOptions { syntax }),
29323            SyntaxKind::SET_OPTIONS => AlterIndexAction::SetOptions(SetOptions { syntax }),
29324            SyntaxKind::SET_TABLESPACE => AlterIndexAction::SetTablespace(SetTablespace { syntax }),
29325            _ => {
29326                return None;
29327            }
29328        };
29329        Some(res)
29330    }
29331    #[inline]
29332    fn syntax(&self) -> &SyntaxNode {
29333        match self {
29334            AlterIndexAction::AlterSetStatistics(it) => &it.syntax,
29335            AlterIndexAction::AttachPartition(it) => &it.syntax,
29336            AlterIndexAction::DependsOnExtension(it) => &it.syntax,
29337            AlterIndexAction::NoDependsOnExtension(it) => &it.syntax,
29338            AlterIndexAction::RenameTo(it) => &it.syntax,
29339            AlterIndexAction::ResetOptions(it) => &it.syntax,
29340            AlterIndexAction::SetOptions(it) => &it.syntax,
29341            AlterIndexAction::SetTablespace(it) => &it.syntax,
29342        }
29343    }
29344}
29345impl From<AlterSetStatistics> for AlterIndexAction {
29346    #[inline]
29347    fn from(node: AlterSetStatistics) -> AlterIndexAction {
29348        AlterIndexAction::AlterSetStatistics(node)
29349    }
29350}
29351impl From<AttachPartition> for AlterIndexAction {
29352    #[inline]
29353    fn from(node: AttachPartition) -> AlterIndexAction {
29354        AlterIndexAction::AttachPartition(node)
29355    }
29356}
29357impl From<DependsOnExtension> for AlterIndexAction {
29358    #[inline]
29359    fn from(node: DependsOnExtension) -> AlterIndexAction {
29360        AlterIndexAction::DependsOnExtension(node)
29361    }
29362}
29363impl From<NoDependsOnExtension> for AlterIndexAction {
29364    #[inline]
29365    fn from(node: NoDependsOnExtension) -> AlterIndexAction {
29366        AlterIndexAction::NoDependsOnExtension(node)
29367    }
29368}
29369impl From<RenameTo> for AlterIndexAction {
29370    #[inline]
29371    fn from(node: RenameTo) -> AlterIndexAction {
29372        AlterIndexAction::RenameTo(node)
29373    }
29374}
29375impl From<ResetOptions> for AlterIndexAction {
29376    #[inline]
29377    fn from(node: ResetOptions) -> AlterIndexAction {
29378        AlterIndexAction::ResetOptions(node)
29379    }
29380}
29381impl From<SetOptions> for AlterIndexAction {
29382    #[inline]
29383    fn from(node: SetOptions) -> AlterIndexAction {
29384        AlterIndexAction::SetOptions(node)
29385    }
29386}
29387impl From<SetTablespace> for AlterIndexAction {
29388    #[inline]
29389    fn from(node: SetTablespace) -> AlterIndexAction {
29390        AlterIndexAction::SetTablespace(node)
29391    }
29392}
29393impl AstNode for AlterMaterializedViewAction {
29394    #[inline]
29395    fn can_cast(kind: SyntaxKind) -> bool {
29396        matches!(
29397            kind,
29398            SyntaxKind::DEPENDS_ON_EXTENSION
29399                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
29400                | SyntaxKind::RENAME_COLUMN
29401                | SyntaxKind::RENAME_TO
29402                | SyntaxKind::SET_SCHEMA
29403        )
29404    }
29405    #[inline]
29406    fn cast(syntax: SyntaxNode) -> Option<Self> {
29407        let res = match syntax.kind() {
29408            SyntaxKind::DEPENDS_ON_EXTENSION => {
29409                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
29410            }
29411            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
29412                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
29413            }
29414            SyntaxKind::RENAME_COLUMN => {
29415                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
29416            }
29417            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
29418            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
29419            _ => {
29420                if let Some(result) = AlterTableAction::cast(syntax) {
29421                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
29422                }
29423                return None;
29424            }
29425        };
29426        Some(res)
29427    }
29428    #[inline]
29429    fn syntax(&self) -> &SyntaxNode {
29430        match self {
29431            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
29432            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
29433            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
29434            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
29435            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
29436            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
29437        }
29438    }
29439}
29440impl From<DependsOnExtension> for AlterMaterializedViewAction {
29441    #[inline]
29442    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
29443        AlterMaterializedViewAction::DependsOnExtension(node)
29444    }
29445}
29446impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
29447    #[inline]
29448    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
29449        AlterMaterializedViewAction::NoDependsOnExtension(node)
29450    }
29451}
29452impl From<RenameColumn> for AlterMaterializedViewAction {
29453    #[inline]
29454    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
29455        AlterMaterializedViewAction::RenameColumn(node)
29456    }
29457}
29458impl From<RenameTo> for AlterMaterializedViewAction {
29459    #[inline]
29460    fn from(node: RenameTo) -> AlterMaterializedViewAction {
29461        AlterMaterializedViewAction::RenameTo(node)
29462    }
29463}
29464impl From<SetSchema> for AlterMaterializedViewAction {
29465    #[inline]
29466    fn from(node: SetSchema) -> AlterMaterializedViewAction {
29467        AlterMaterializedViewAction::SetSchema(node)
29468    }
29469}
29470impl AstNode for AlterTableAction {
29471    #[inline]
29472    fn can_cast(kind: SyntaxKind) -> bool {
29473        matches!(
29474            kind,
29475            SyntaxKind::ADD_COLUMN
29476                | SyntaxKind::ADD_CONSTRAINT
29477                | SyntaxKind::ALTER_COLUMN
29478                | SyntaxKind::ALTER_CONSTRAINT
29479                | SyntaxKind::ATTACH_PARTITION
29480                | SyntaxKind::CLUSTER_ON
29481                | SyntaxKind::DETACH_PARTITION
29482                | SyntaxKind::DISABLE_RLS
29483                | SyntaxKind::DISABLE_RULE
29484                | SyntaxKind::DISABLE_TRIGGER
29485                | SyntaxKind::DROP_COLUMN
29486                | SyntaxKind::DROP_CONSTRAINT
29487                | SyntaxKind::ENABLE_ALWAYS_RULE
29488                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
29489                | SyntaxKind::ENABLE_REPLICA_RULE
29490                | SyntaxKind::ENABLE_REPLICA_TRIGGER
29491                | SyntaxKind::ENABLE_RLS
29492                | SyntaxKind::ENABLE_RULE
29493                | SyntaxKind::ENABLE_TRIGGER
29494                | SyntaxKind::FORCE_RLS
29495                | SyntaxKind::INHERIT_TABLE
29496                | SyntaxKind::MERGE_PARTITIONS
29497                | SyntaxKind::NO_FORCE_RLS
29498                | SyntaxKind::NO_INHERIT_TABLE
29499                | SyntaxKind::NOT_OF
29500                | SyntaxKind::OF_TYPE
29501                | SyntaxKind::OPTION_ITEM_LIST
29502                | SyntaxKind::OWNER_TO
29503                | SyntaxKind::RENAME_COLUMN
29504                | SyntaxKind::RENAME_CONSTRAINT
29505                | SyntaxKind::RENAME_TO
29506                | SyntaxKind::REPLICA_IDENTITY
29507                | SyntaxKind::RESET_OPTIONS
29508                | SyntaxKind::SET_ACCESS_METHOD
29509                | SyntaxKind::SET_LOGGED
29510                | SyntaxKind::SET_OPTIONS
29511                | SyntaxKind::SET_SCHEMA
29512                | SyntaxKind::SET_TABLESPACE
29513                | SyntaxKind::SET_UNLOGGED
29514                | SyntaxKind::SET_WITHOUT_CLUSTER
29515                | SyntaxKind::SET_WITHOUT_OIDS
29516                | SyntaxKind::SPLIT_PARTITION
29517                | SyntaxKind::VALIDATE_CONSTRAINT
29518        )
29519    }
29520    #[inline]
29521    fn cast(syntax: SyntaxNode) -> Option<Self> {
29522        let res = match syntax.kind() {
29523            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
29524            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
29525            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
29526            SyntaxKind::ALTER_CONSTRAINT => {
29527                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
29528            }
29529            SyntaxKind::ATTACH_PARTITION => {
29530                AlterTableAction::AttachPartition(AttachPartition { syntax })
29531            }
29532            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
29533            SyntaxKind::DETACH_PARTITION => {
29534                AlterTableAction::DetachPartition(DetachPartition { syntax })
29535            }
29536            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
29537            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
29538            SyntaxKind::DISABLE_TRIGGER => {
29539                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
29540            }
29541            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
29542            SyntaxKind::DROP_CONSTRAINT => {
29543                AlterTableAction::DropConstraint(DropConstraint { syntax })
29544            }
29545            SyntaxKind::ENABLE_ALWAYS_RULE => {
29546                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
29547            }
29548            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
29549                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
29550            }
29551            SyntaxKind::ENABLE_REPLICA_RULE => {
29552                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
29553            }
29554            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
29555                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
29556            }
29557            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
29558            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
29559            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
29560            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
29561            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
29562            SyntaxKind::MERGE_PARTITIONS => {
29563                AlterTableAction::MergePartitions(MergePartitions { syntax })
29564            }
29565            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
29566            SyntaxKind::NO_INHERIT_TABLE => {
29567                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
29568            }
29569            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
29570            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
29571            SyntaxKind::OPTION_ITEM_LIST => {
29572                AlterTableAction::OptionItemList(OptionItemList { syntax })
29573            }
29574            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
29575            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
29576            SyntaxKind::RENAME_CONSTRAINT => {
29577                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
29578            }
29579            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
29580            SyntaxKind::REPLICA_IDENTITY => {
29581                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
29582            }
29583            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
29584            SyntaxKind::SET_ACCESS_METHOD => {
29585                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
29586            }
29587            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
29588            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
29589            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
29590            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
29591            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
29592            SyntaxKind::SET_WITHOUT_CLUSTER => {
29593                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
29594            }
29595            SyntaxKind::SET_WITHOUT_OIDS => {
29596                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
29597            }
29598            SyntaxKind::SPLIT_PARTITION => {
29599                AlterTableAction::SplitPartition(SplitPartition { syntax })
29600            }
29601            SyntaxKind::VALIDATE_CONSTRAINT => {
29602                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
29603            }
29604            _ => {
29605                return None;
29606            }
29607        };
29608        Some(res)
29609    }
29610    #[inline]
29611    fn syntax(&self) -> &SyntaxNode {
29612        match self {
29613            AlterTableAction::AddColumn(it) => &it.syntax,
29614            AlterTableAction::AddConstraint(it) => &it.syntax,
29615            AlterTableAction::AlterColumn(it) => &it.syntax,
29616            AlterTableAction::AlterConstraint(it) => &it.syntax,
29617            AlterTableAction::AttachPartition(it) => &it.syntax,
29618            AlterTableAction::ClusterOn(it) => &it.syntax,
29619            AlterTableAction::DetachPartition(it) => &it.syntax,
29620            AlterTableAction::DisableRls(it) => &it.syntax,
29621            AlterTableAction::DisableRule(it) => &it.syntax,
29622            AlterTableAction::DisableTrigger(it) => &it.syntax,
29623            AlterTableAction::DropColumn(it) => &it.syntax,
29624            AlterTableAction::DropConstraint(it) => &it.syntax,
29625            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
29626            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
29627            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
29628            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
29629            AlterTableAction::EnableRls(it) => &it.syntax,
29630            AlterTableAction::EnableRule(it) => &it.syntax,
29631            AlterTableAction::EnableTrigger(it) => &it.syntax,
29632            AlterTableAction::ForceRls(it) => &it.syntax,
29633            AlterTableAction::InheritTable(it) => &it.syntax,
29634            AlterTableAction::MergePartitions(it) => &it.syntax,
29635            AlterTableAction::NoForceRls(it) => &it.syntax,
29636            AlterTableAction::NoInheritTable(it) => &it.syntax,
29637            AlterTableAction::NotOf(it) => &it.syntax,
29638            AlterTableAction::OfType(it) => &it.syntax,
29639            AlterTableAction::OptionItemList(it) => &it.syntax,
29640            AlterTableAction::OwnerTo(it) => &it.syntax,
29641            AlterTableAction::RenameColumn(it) => &it.syntax,
29642            AlterTableAction::RenameConstraint(it) => &it.syntax,
29643            AlterTableAction::RenameTo(it) => &it.syntax,
29644            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
29645            AlterTableAction::ResetOptions(it) => &it.syntax,
29646            AlterTableAction::SetAccessMethod(it) => &it.syntax,
29647            AlterTableAction::SetLogged(it) => &it.syntax,
29648            AlterTableAction::SetOptions(it) => &it.syntax,
29649            AlterTableAction::SetSchema(it) => &it.syntax,
29650            AlterTableAction::SetTablespace(it) => &it.syntax,
29651            AlterTableAction::SetUnlogged(it) => &it.syntax,
29652            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
29653            AlterTableAction::SetWithoutOids(it) => &it.syntax,
29654            AlterTableAction::SplitPartition(it) => &it.syntax,
29655            AlterTableAction::ValidateConstraint(it) => &it.syntax,
29656        }
29657    }
29658}
29659impl From<AddColumn> for AlterTableAction {
29660    #[inline]
29661    fn from(node: AddColumn) -> AlterTableAction {
29662        AlterTableAction::AddColumn(node)
29663    }
29664}
29665impl From<AddConstraint> for AlterTableAction {
29666    #[inline]
29667    fn from(node: AddConstraint) -> AlterTableAction {
29668        AlterTableAction::AddConstraint(node)
29669    }
29670}
29671impl From<AlterColumn> for AlterTableAction {
29672    #[inline]
29673    fn from(node: AlterColumn) -> AlterTableAction {
29674        AlterTableAction::AlterColumn(node)
29675    }
29676}
29677impl From<AlterConstraint> for AlterTableAction {
29678    #[inline]
29679    fn from(node: AlterConstraint) -> AlterTableAction {
29680        AlterTableAction::AlterConstraint(node)
29681    }
29682}
29683impl From<AttachPartition> for AlterTableAction {
29684    #[inline]
29685    fn from(node: AttachPartition) -> AlterTableAction {
29686        AlterTableAction::AttachPartition(node)
29687    }
29688}
29689impl From<ClusterOn> for AlterTableAction {
29690    #[inline]
29691    fn from(node: ClusterOn) -> AlterTableAction {
29692        AlterTableAction::ClusterOn(node)
29693    }
29694}
29695impl From<DetachPartition> for AlterTableAction {
29696    #[inline]
29697    fn from(node: DetachPartition) -> AlterTableAction {
29698        AlterTableAction::DetachPartition(node)
29699    }
29700}
29701impl From<DisableRls> for AlterTableAction {
29702    #[inline]
29703    fn from(node: DisableRls) -> AlterTableAction {
29704        AlterTableAction::DisableRls(node)
29705    }
29706}
29707impl From<DisableRule> for AlterTableAction {
29708    #[inline]
29709    fn from(node: DisableRule) -> AlterTableAction {
29710        AlterTableAction::DisableRule(node)
29711    }
29712}
29713impl From<DisableTrigger> for AlterTableAction {
29714    #[inline]
29715    fn from(node: DisableTrigger) -> AlterTableAction {
29716        AlterTableAction::DisableTrigger(node)
29717    }
29718}
29719impl From<DropColumn> for AlterTableAction {
29720    #[inline]
29721    fn from(node: DropColumn) -> AlterTableAction {
29722        AlterTableAction::DropColumn(node)
29723    }
29724}
29725impl From<DropConstraint> for AlterTableAction {
29726    #[inline]
29727    fn from(node: DropConstraint) -> AlterTableAction {
29728        AlterTableAction::DropConstraint(node)
29729    }
29730}
29731impl From<EnableAlwaysRule> for AlterTableAction {
29732    #[inline]
29733    fn from(node: EnableAlwaysRule) -> AlterTableAction {
29734        AlterTableAction::EnableAlwaysRule(node)
29735    }
29736}
29737impl From<EnableAlwaysTrigger> for AlterTableAction {
29738    #[inline]
29739    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
29740        AlterTableAction::EnableAlwaysTrigger(node)
29741    }
29742}
29743impl From<EnableReplicaRule> for AlterTableAction {
29744    #[inline]
29745    fn from(node: EnableReplicaRule) -> AlterTableAction {
29746        AlterTableAction::EnableReplicaRule(node)
29747    }
29748}
29749impl From<EnableReplicaTrigger> for AlterTableAction {
29750    #[inline]
29751    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
29752        AlterTableAction::EnableReplicaTrigger(node)
29753    }
29754}
29755impl From<EnableRls> for AlterTableAction {
29756    #[inline]
29757    fn from(node: EnableRls) -> AlterTableAction {
29758        AlterTableAction::EnableRls(node)
29759    }
29760}
29761impl From<EnableRule> for AlterTableAction {
29762    #[inline]
29763    fn from(node: EnableRule) -> AlterTableAction {
29764        AlterTableAction::EnableRule(node)
29765    }
29766}
29767impl From<EnableTrigger> for AlterTableAction {
29768    #[inline]
29769    fn from(node: EnableTrigger) -> AlterTableAction {
29770        AlterTableAction::EnableTrigger(node)
29771    }
29772}
29773impl From<ForceRls> for AlterTableAction {
29774    #[inline]
29775    fn from(node: ForceRls) -> AlterTableAction {
29776        AlterTableAction::ForceRls(node)
29777    }
29778}
29779impl From<InheritTable> for AlterTableAction {
29780    #[inline]
29781    fn from(node: InheritTable) -> AlterTableAction {
29782        AlterTableAction::InheritTable(node)
29783    }
29784}
29785impl From<MergePartitions> for AlterTableAction {
29786    #[inline]
29787    fn from(node: MergePartitions) -> AlterTableAction {
29788        AlterTableAction::MergePartitions(node)
29789    }
29790}
29791impl From<NoForceRls> for AlterTableAction {
29792    #[inline]
29793    fn from(node: NoForceRls) -> AlterTableAction {
29794        AlterTableAction::NoForceRls(node)
29795    }
29796}
29797impl From<NoInheritTable> for AlterTableAction {
29798    #[inline]
29799    fn from(node: NoInheritTable) -> AlterTableAction {
29800        AlterTableAction::NoInheritTable(node)
29801    }
29802}
29803impl From<NotOf> for AlterTableAction {
29804    #[inline]
29805    fn from(node: NotOf) -> AlterTableAction {
29806        AlterTableAction::NotOf(node)
29807    }
29808}
29809impl From<OfType> for AlterTableAction {
29810    #[inline]
29811    fn from(node: OfType) -> AlterTableAction {
29812        AlterTableAction::OfType(node)
29813    }
29814}
29815impl From<OptionItemList> for AlterTableAction {
29816    #[inline]
29817    fn from(node: OptionItemList) -> AlterTableAction {
29818        AlterTableAction::OptionItemList(node)
29819    }
29820}
29821impl From<OwnerTo> for AlterTableAction {
29822    #[inline]
29823    fn from(node: OwnerTo) -> AlterTableAction {
29824        AlterTableAction::OwnerTo(node)
29825    }
29826}
29827impl From<RenameColumn> for AlterTableAction {
29828    #[inline]
29829    fn from(node: RenameColumn) -> AlterTableAction {
29830        AlterTableAction::RenameColumn(node)
29831    }
29832}
29833impl From<RenameConstraint> for AlterTableAction {
29834    #[inline]
29835    fn from(node: RenameConstraint) -> AlterTableAction {
29836        AlterTableAction::RenameConstraint(node)
29837    }
29838}
29839impl From<RenameTo> for AlterTableAction {
29840    #[inline]
29841    fn from(node: RenameTo) -> AlterTableAction {
29842        AlterTableAction::RenameTo(node)
29843    }
29844}
29845impl From<ReplicaIdentity> for AlterTableAction {
29846    #[inline]
29847    fn from(node: ReplicaIdentity) -> AlterTableAction {
29848        AlterTableAction::ReplicaIdentity(node)
29849    }
29850}
29851impl From<ResetOptions> for AlterTableAction {
29852    #[inline]
29853    fn from(node: ResetOptions) -> AlterTableAction {
29854        AlterTableAction::ResetOptions(node)
29855    }
29856}
29857impl From<SetAccessMethod> for AlterTableAction {
29858    #[inline]
29859    fn from(node: SetAccessMethod) -> AlterTableAction {
29860        AlterTableAction::SetAccessMethod(node)
29861    }
29862}
29863impl From<SetLogged> for AlterTableAction {
29864    #[inline]
29865    fn from(node: SetLogged) -> AlterTableAction {
29866        AlterTableAction::SetLogged(node)
29867    }
29868}
29869impl From<SetOptions> for AlterTableAction {
29870    #[inline]
29871    fn from(node: SetOptions) -> AlterTableAction {
29872        AlterTableAction::SetOptions(node)
29873    }
29874}
29875impl From<SetSchema> for AlterTableAction {
29876    #[inline]
29877    fn from(node: SetSchema) -> AlterTableAction {
29878        AlterTableAction::SetSchema(node)
29879    }
29880}
29881impl From<SetTablespace> for AlterTableAction {
29882    #[inline]
29883    fn from(node: SetTablespace) -> AlterTableAction {
29884        AlterTableAction::SetTablespace(node)
29885    }
29886}
29887impl From<SetUnlogged> for AlterTableAction {
29888    #[inline]
29889    fn from(node: SetUnlogged) -> AlterTableAction {
29890        AlterTableAction::SetUnlogged(node)
29891    }
29892}
29893impl From<SetWithoutCluster> for AlterTableAction {
29894    #[inline]
29895    fn from(node: SetWithoutCluster) -> AlterTableAction {
29896        AlterTableAction::SetWithoutCluster(node)
29897    }
29898}
29899impl From<SetWithoutOids> for AlterTableAction {
29900    #[inline]
29901    fn from(node: SetWithoutOids) -> AlterTableAction {
29902        AlterTableAction::SetWithoutOids(node)
29903    }
29904}
29905impl From<SplitPartition> for AlterTableAction {
29906    #[inline]
29907    fn from(node: SplitPartition) -> AlterTableAction {
29908        AlterTableAction::SplitPartition(node)
29909    }
29910}
29911impl From<ValidateConstraint> for AlterTableAction {
29912    #[inline]
29913    fn from(node: ValidateConstraint) -> AlterTableAction {
29914        AlterTableAction::ValidateConstraint(node)
29915    }
29916}
29917impl AstNode for ColumnConstraint {
29918    #[inline]
29919    fn can_cast(kind: SyntaxKind) -> bool {
29920        matches!(
29921            kind,
29922            SyntaxKind::CHECK_CONSTRAINT
29923                | SyntaxKind::DEFAULT_CONSTRAINT
29924                | SyntaxKind::EXCLUDE_CONSTRAINT
29925                | SyntaxKind::NOT_NULL_CONSTRAINT
29926                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
29927                | SyntaxKind::REFERENCES_CONSTRAINT
29928                | SyntaxKind::UNIQUE_CONSTRAINT
29929        )
29930    }
29931    #[inline]
29932    fn cast(syntax: SyntaxNode) -> Option<Self> {
29933        let res = match syntax.kind() {
29934            SyntaxKind::CHECK_CONSTRAINT => {
29935                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
29936            }
29937            SyntaxKind::DEFAULT_CONSTRAINT => {
29938                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
29939            }
29940            SyntaxKind::EXCLUDE_CONSTRAINT => {
29941                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
29942            }
29943            SyntaxKind::NOT_NULL_CONSTRAINT => {
29944                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
29945            }
29946            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
29947                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
29948            }
29949            SyntaxKind::REFERENCES_CONSTRAINT => {
29950                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
29951            }
29952            SyntaxKind::UNIQUE_CONSTRAINT => {
29953                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
29954            }
29955            _ => {
29956                return None;
29957            }
29958        };
29959        Some(res)
29960    }
29961    #[inline]
29962    fn syntax(&self) -> &SyntaxNode {
29963        match self {
29964            ColumnConstraint::CheckConstraint(it) => &it.syntax,
29965            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
29966            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
29967            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
29968            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
29969            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
29970            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
29971        }
29972    }
29973}
29974impl From<CheckConstraint> for ColumnConstraint {
29975    #[inline]
29976    fn from(node: CheckConstraint) -> ColumnConstraint {
29977        ColumnConstraint::CheckConstraint(node)
29978    }
29979}
29980impl From<DefaultConstraint> for ColumnConstraint {
29981    #[inline]
29982    fn from(node: DefaultConstraint) -> ColumnConstraint {
29983        ColumnConstraint::DefaultConstraint(node)
29984    }
29985}
29986impl From<ExcludeConstraint> for ColumnConstraint {
29987    #[inline]
29988    fn from(node: ExcludeConstraint) -> ColumnConstraint {
29989        ColumnConstraint::ExcludeConstraint(node)
29990    }
29991}
29992impl From<NotNullConstraint> for ColumnConstraint {
29993    #[inline]
29994    fn from(node: NotNullConstraint) -> ColumnConstraint {
29995        ColumnConstraint::NotNullConstraint(node)
29996    }
29997}
29998impl From<PrimaryKeyConstraint> for ColumnConstraint {
29999    #[inline]
30000    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
30001        ColumnConstraint::PrimaryKeyConstraint(node)
30002    }
30003}
30004impl From<ReferencesConstraint> for ColumnConstraint {
30005    #[inline]
30006    fn from(node: ReferencesConstraint) -> ColumnConstraint {
30007        ColumnConstraint::ReferencesConstraint(node)
30008    }
30009}
30010impl From<UniqueConstraint> for ColumnConstraint {
30011    #[inline]
30012    fn from(node: UniqueConstraint) -> ColumnConstraint {
30013        ColumnConstraint::UniqueConstraint(node)
30014    }
30015}
30016impl AstNode for ConfigValue {
30017    #[inline]
30018    fn can_cast(kind: SyntaxKind) -> bool {
30019        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
30020    }
30021    #[inline]
30022    fn cast(syntax: SyntaxNode) -> Option<Self> {
30023        let res = match syntax.kind() {
30024            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
30025            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
30026            _ => {
30027                return None;
30028            }
30029        };
30030        Some(res)
30031    }
30032    #[inline]
30033    fn syntax(&self) -> &SyntaxNode {
30034        match self {
30035            ConfigValue::Literal(it) => &it.syntax,
30036            ConfigValue::NameRef(it) => &it.syntax,
30037        }
30038    }
30039}
30040impl From<Literal> for ConfigValue {
30041    #[inline]
30042    fn from(node: Literal) -> ConfigValue {
30043        ConfigValue::Literal(node)
30044    }
30045}
30046impl From<NameRef> for ConfigValue {
30047    #[inline]
30048    fn from(node: NameRef) -> ConfigValue {
30049        ConfigValue::NameRef(node)
30050    }
30051}
30052impl AstNode for ConflictAction {
30053    #[inline]
30054    fn can_cast(kind: SyntaxKind) -> bool {
30055        matches!(
30056            kind,
30057            SyntaxKind::CONFLICT_DO_NOTHING
30058                | SyntaxKind::CONFLICT_DO_SELECT
30059                | SyntaxKind::CONFLICT_DO_UPDATE_SET
30060        )
30061    }
30062    #[inline]
30063    fn cast(syntax: SyntaxNode) -> Option<Self> {
30064        let res = match syntax.kind() {
30065            SyntaxKind::CONFLICT_DO_NOTHING => {
30066                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
30067            }
30068            SyntaxKind::CONFLICT_DO_SELECT => {
30069                ConflictAction::ConflictDoSelect(ConflictDoSelect { syntax })
30070            }
30071            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
30072                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
30073            }
30074            _ => {
30075                return None;
30076            }
30077        };
30078        Some(res)
30079    }
30080    #[inline]
30081    fn syntax(&self) -> &SyntaxNode {
30082        match self {
30083            ConflictAction::ConflictDoNothing(it) => &it.syntax,
30084            ConflictAction::ConflictDoSelect(it) => &it.syntax,
30085            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
30086        }
30087    }
30088}
30089impl From<ConflictDoNothing> for ConflictAction {
30090    #[inline]
30091    fn from(node: ConflictDoNothing) -> ConflictAction {
30092        ConflictAction::ConflictDoNothing(node)
30093    }
30094}
30095impl From<ConflictDoSelect> for ConflictAction {
30096    #[inline]
30097    fn from(node: ConflictDoSelect) -> ConflictAction {
30098        ConflictAction::ConflictDoSelect(node)
30099    }
30100}
30101impl From<ConflictDoUpdateSet> for ConflictAction {
30102    #[inline]
30103    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
30104        ConflictAction::ConflictDoUpdateSet(node)
30105    }
30106}
30107impl AstNode for ConflictTarget {
30108    #[inline]
30109    fn can_cast(kind: SyntaxKind) -> bool {
30110        matches!(
30111            kind,
30112            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
30113        )
30114    }
30115    #[inline]
30116    fn cast(syntax: SyntaxNode) -> Option<Self> {
30117        let res = match syntax.kind() {
30118            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
30119                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
30120            }
30121            SyntaxKind::CONFLICT_ON_INDEX => {
30122                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
30123            }
30124            _ => {
30125                return None;
30126            }
30127        };
30128        Some(res)
30129    }
30130    #[inline]
30131    fn syntax(&self) -> &SyntaxNode {
30132        match self {
30133            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
30134            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
30135        }
30136    }
30137}
30138impl From<ConflictOnConstraint> for ConflictTarget {
30139    #[inline]
30140    fn from(node: ConflictOnConstraint) -> ConflictTarget {
30141        ConflictTarget::ConflictOnConstraint(node)
30142    }
30143}
30144impl From<ConflictOnIndex> for ConflictTarget {
30145    #[inline]
30146    fn from(node: ConflictOnIndex) -> ConflictTarget {
30147        ConflictTarget::ConflictOnIndex(node)
30148    }
30149}
30150impl AstNode for Constraint {
30151    #[inline]
30152    fn can_cast(kind: SyntaxKind) -> bool {
30153        matches!(
30154            kind,
30155            SyntaxKind::CHECK_CONSTRAINT
30156                | SyntaxKind::DEFAULT_CONSTRAINT
30157                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
30158                | SyntaxKind::GENERATED_CONSTRAINT
30159                | SyntaxKind::NOT_NULL_CONSTRAINT
30160                | SyntaxKind::NULL_CONSTRAINT
30161                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
30162                | SyntaxKind::REFERENCES_CONSTRAINT
30163                | SyntaxKind::UNIQUE_CONSTRAINT
30164        )
30165    }
30166    #[inline]
30167    fn cast(syntax: SyntaxNode) -> Option<Self> {
30168        let res = match syntax.kind() {
30169            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
30170            SyntaxKind::DEFAULT_CONSTRAINT => {
30171                Constraint::DefaultConstraint(DefaultConstraint { syntax })
30172            }
30173            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
30174                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
30175            }
30176            SyntaxKind::GENERATED_CONSTRAINT => {
30177                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
30178            }
30179            SyntaxKind::NOT_NULL_CONSTRAINT => {
30180                Constraint::NotNullConstraint(NotNullConstraint { syntax })
30181            }
30182            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
30183            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
30184                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
30185            }
30186            SyntaxKind::REFERENCES_CONSTRAINT => {
30187                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
30188            }
30189            SyntaxKind::UNIQUE_CONSTRAINT => {
30190                Constraint::UniqueConstraint(UniqueConstraint { syntax })
30191            }
30192            _ => {
30193                return None;
30194            }
30195        };
30196        Some(res)
30197    }
30198    #[inline]
30199    fn syntax(&self) -> &SyntaxNode {
30200        match self {
30201            Constraint::CheckConstraint(it) => &it.syntax,
30202            Constraint::DefaultConstraint(it) => &it.syntax,
30203            Constraint::ForeignKeyConstraint(it) => &it.syntax,
30204            Constraint::GeneratedConstraint(it) => &it.syntax,
30205            Constraint::NotNullConstraint(it) => &it.syntax,
30206            Constraint::NullConstraint(it) => &it.syntax,
30207            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
30208            Constraint::ReferencesConstraint(it) => &it.syntax,
30209            Constraint::UniqueConstraint(it) => &it.syntax,
30210        }
30211    }
30212}
30213impl From<CheckConstraint> for Constraint {
30214    #[inline]
30215    fn from(node: CheckConstraint) -> Constraint {
30216        Constraint::CheckConstraint(node)
30217    }
30218}
30219impl From<DefaultConstraint> for Constraint {
30220    #[inline]
30221    fn from(node: DefaultConstraint) -> Constraint {
30222        Constraint::DefaultConstraint(node)
30223    }
30224}
30225impl From<ForeignKeyConstraint> for Constraint {
30226    #[inline]
30227    fn from(node: ForeignKeyConstraint) -> Constraint {
30228        Constraint::ForeignKeyConstraint(node)
30229    }
30230}
30231impl From<GeneratedConstraint> for Constraint {
30232    #[inline]
30233    fn from(node: GeneratedConstraint) -> Constraint {
30234        Constraint::GeneratedConstraint(node)
30235    }
30236}
30237impl From<NotNullConstraint> for Constraint {
30238    #[inline]
30239    fn from(node: NotNullConstraint) -> Constraint {
30240        Constraint::NotNullConstraint(node)
30241    }
30242}
30243impl From<NullConstraint> for Constraint {
30244    #[inline]
30245    fn from(node: NullConstraint) -> Constraint {
30246        Constraint::NullConstraint(node)
30247    }
30248}
30249impl From<PrimaryKeyConstraint> for Constraint {
30250    #[inline]
30251    fn from(node: PrimaryKeyConstraint) -> Constraint {
30252        Constraint::PrimaryKeyConstraint(node)
30253    }
30254}
30255impl From<ReferencesConstraint> for Constraint {
30256    #[inline]
30257    fn from(node: ReferencesConstraint) -> Constraint {
30258        Constraint::ReferencesConstraint(node)
30259    }
30260}
30261impl From<UniqueConstraint> for Constraint {
30262    #[inline]
30263    fn from(node: UniqueConstraint) -> Constraint {
30264        Constraint::UniqueConstraint(node)
30265    }
30266}
30267impl AstNode for ExplainStmt {
30268    #[inline]
30269    fn can_cast(kind: SyntaxKind) -> bool {
30270        matches!(
30271            kind,
30272            SyntaxKind::COMPOUND_SELECT
30273                | SyntaxKind::CREATE_MATERIALIZED_VIEW
30274                | SyntaxKind::CREATE_TABLE_AS
30275                | SyntaxKind::DECLARE
30276                | SyntaxKind::DELETE
30277                | SyntaxKind::EXECUTE
30278                | SyntaxKind::INSERT
30279                | SyntaxKind::MERGE
30280                | SyntaxKind::PAREN_SELECT
30281                | SyntaxKind::SELECT
30282                | SyntaxKind::SELECT_INTO
30283                | SyntaxKind::TABLE
30284                | SyntaxKind::UPDATE
30285                | SyntaxKind::VALUES
30286        )
30287    }
30288    #[inline]
30289    fn cast(syntax: SyntaxNode) -> Option<Self> {
30290        let res = match syntax.kind() {
30291            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
30292            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
30293                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
30294            }
30295            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
30296            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
30297            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
30298            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
30299            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
30300            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
30301            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
30302            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
30303            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
30304            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
30305            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
30306            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
30307            _ => {
30308                return None;
30309            }
30310        };
30311        Some(res)
30312    }
30313    #[inline]
30314    fn syntax(&self) -> &SyntaxNode {
30315        match self {
30316            ExplainStmt::CompoundSelect(it) => &it.syntax,
30317            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
30318            ExplainStmt::CreateTableAs(it) => &it.syntax,
30319            ExplainStmt::Declare(it) => &it.syntax,
30320            ExplainStmt::Delete(it) => &it.syntax,
30321            ExplainStmt::Execute(it) => &it.syntax,
30322            ExplainStmt::Insert(it) => &it.syntax,
30323            ExplainStmt::Merge(it) => &it.syntax,
30324            ExplainStmt::ParenSelect(it) => &it.syntax,
30325            ExplainStmt::Select(it) => &it.syntax,
30326            ExplainStmt::SelectInto(it) => &it.syntax,
30327            ExplainStmt::Table(it) => &it.syntax,
30328            ExplainStmt::Update(it) => &it.syntax,
30329            ExplainStmt::Values(it) => &it.syntax,
30330        }
30331    }
30332}
30333impl From<CompoundSelect> for ExplainStmt {
30334    #[inline]
30335    fn from(node: CompoundSelect) -> ExplainStmt {
30336        ExplainStmt::CompoundSelect(node)
30337    }
30338}
30339impl From<CreateMaterializedView> for ExplainStmt {
30340    #[inline]
30341    fn from(node: CreateMaterializedView) -> ExplainStmt {
30342        ExplainStmt::CreateMaterializedView(node)
30343    }
30344}
30345impl From<CreateTableAs> for ExplainStmt {
30346    #[inline]
30347    fn from(node: CreateTableAs) -> ExplainStmt {
30348        ExplainStmt::CreateTableAs(node)
30349    }
30350}
30351impl From<Declare> for ExplainStmt {
30352    #[inline]
30353    fn from(node: Declare) -> ExplainStmt {
30354        ExplainStmt::Declare(node)
30355    }
30356}
30357impl From<Delete> for ExplainStmt {
30358    #[inline]
30359    fn from(node: Delete) -> ExplainStmt {
30360        ExplainStmt::Delete(node)
30361    }
30362}
30363impl From<Execute> for ExplainStmt {
30364    #[inline]
30365    fn from(node: Execute) -> ExplainStmt {
30366        ExplainStmt::Execute(node)
30367    }
30368}
30369impl From<Insert> for ExplainStmt {
30370    #[inline]
30371    fn from(node: Insert) -> ExplainStmt {
30372        ExplainStmt::Insert(node)
30373    }
30374}
30375impl From<Merge> for ExplainStmt {
30376    #[inline]
30377    fn from(node: Merge) -> ExplainStmt {
30378        ExplainStmt::Merge(node)
30379    }
30380}
30381impl From<ParenSelect> for ExplainStmt {
30382    #[inline]
30383    fn from(node: ParenSelect) -> ExplainStmt {
30384        ExplainStmt::ParenSelect(node)
30385    }
30386}
30387impl From<Select> for ExplainStmt {
30388    #[inline]
30389    fn from(node: Select) -> ExplainStmt {
30390        ExplainStmt::Select(node)
30391    }
30392}
30393impl From<SelectInto> for ExplainStmt {
30394    #[inline]
30395    fn from(node: SelectInto) -> ExplainStmt {
30396        ExplainStmt::SelectInto(node)
30397    }
30398}
30399impl From<Table> for ExplainStmt {
30400    #[inline]
30401    fn from(node: Table) -> ExplainStmt {
30402        ExplainStmt::Table(node)
30403    }
30404}
30405impl From<Update> for ExplainStmt {
30406    #[inline]
30407    fn from(node: Update) -> ExplainStmt {
30408        ExplainStmt::Update(node)
30409    }
30410}
30411impl From<Values> for ExplainStmt {
30412    #[inline]
30413    fn from(node: Values) -> ExplainStmt {
30414        ExplainStmt::Values(node)
30415    }
30416}
30417impl AstNode for Expr {
30418    #[inline]
30419    fn can_cast(kind: SyntaxKind) -> bool {
30420        matches!(
30421            kind,
30422            SyntaxKind::ARRAY_EXPR
30423                | SyntaxKind::BETWEEN_EXPR
30424                | SyntaxKind::BIN_EXPR
30425                | SyntaxKind::CALL_EXPR
30426                | SyntaxKind::CASE_EXPR
30427                | SyntaxKind::CAST_EXPR
30428                | SyntaxKind::FIELD_EXPR
30429                | SyntaxKind::INDEX_EXPR
30430                | SyntaxKind::LITERAL
30431                | SyntaxKind::NAME_REF
30432                | SyntaxKind::PAREN_EXPR
30433                | SyntaxKind::POSTFIX_EXPR
30434                | SyntaxKind::PREFIX_EXPR
30435                | SyntaxKind::SLICE_EXPR
30436                | SyntaxKind::TUPLE_EXPR
30437        )
30438    }
30439    #[inline]
30440    fn cast(syntax: SyntaxNode) -> Option<Self> {
30441        let res = match syntax.kind() {
30442            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
30443            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
30444            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
30445            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
30446            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
30447            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
30448            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
30449            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
30450            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
30451            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
30452            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
30453            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
30454            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
30455            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
30456            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
30457            _ => {
30458                return None;
30459            }
30460        };
30461        Some(res)
30462    }
30463    #[inline]
30464    fn syntax(&self) -> &SyntaxNode {
30465        match self {
30466            Expr::ArrayExpr(it) => &it.syntax,
30467            Expr::BetweenExpr(it) => &it.syntax,
30468            Expr::BinExpr(it) => &it.syntax,
30469            Expr::CallExpr(it) => &it.syntax,
30470            Expr::CaseExpr(it) => &it.syntax,
30471            Expr::CastExpr(it) => &it.syntax,
30472            Expr::FieldExpr(it) => &it.syntax,
30473            Expr::IndexExpr(it) => &it.syntax,
30474            Expr::Literal(it) => &it.syntax,
30475            Expr::NameRef(it) => &it.syntax,
30476            Expr::ParenExpr(it) => &it.syntax,
30477            Expr::PostfixExpr(it) => &it.syntax,
30478            Expr::PrefixExpr(it) => &it.syntax,
30479            Expr::SliceExpr(it) => &it.syntax,
30480            Expr::TupleExpr(it) => &it.syntax,
30481        }
30482    }
30483}
30484impl From<ArrayExpr> for Expr {
30485    #[inline]
30486    fn from(node: ArrayExpr) -> Expr {
30487        Expr::ArrayExpr(node)
30488    }
30489}
30490impl From<BetweenExpr> for Expr {
30491    #[inline]
30492    fn from(node: BetweenExpr) -> Expr {
30493        Expr::BetweenExpr(node)
30494    }
30495}
30496impl From<BinExpr> for Expr {
30497    #[inline]
30498    fn from(node: BinExpr) -> Expr {
30499        Expr::BinExpr(node)
30500    }
30501}
30502impl From<CallExpr> for Expr {
30503    #[inline]
30504    fn from(node: CallExpr) -> Expr {
30505        Expr::CallExpr(node)
30506    }
30507}
30508impl From<CaseExpr> for Expr {
30509    #[inline]
30510    fn from(node: CaseExpr) -> Expr {
30511        Expr::CaseExpr(node)
30512    }
30513}
30514impl From<CastExpr> for Expr {
30515    #[inline]
30516    fn from(node: CastExpr) -> Expr {
30517        Expr::CastExpr(node)
30518    }
30519}
30520impl From<FieldExpr> for Expr {
30521    #[inline]
30522    fn from(node: FieldExpr) -> Expr {
30523        Expr::FieldExpr(node)
30524    }
30525}
30526impl From<IndexExpr> for Expr {
30527    #[inline]
30528    fn from(node: IndexExpr) -> Expr {
30529        Expr::IndexExpr(node)
30530    }
30531}
30532impl From<Literal> for Expr {
30533    #[inline]
30534    fn from(node: Literal) -> Expr {
30535        Expr::Literal(node)
30536    }
30537}
30538impl From<NameRef> for Expr {
30539    #[inline]
30540    fn from(node: NameRef) -> Expr {
30541        Expr::NameRef(node)
30542    }
30543}
30544impl From<ParenExpr> for Expr {
30545    #[inline]
30546    fn from(node: ParenExpr) -> Expr {
30547        Expr::ParenExpr(node)
30548    }
30549}
30550impl From<PostfixExpr> for Expr {
30551    #[inline]
30552    fn from(node: PostfixExpr) -> Expr {
30553        Expr::PostfixExpr(node)
30554    }
30555}
30556impl From<PrefixExpr> for Expr {
30557    #[inline]
30558    fn from(node: PrefixExpr) -> Expr {
30559        Expr::PrefixExpr(node)
30560    }
30561}
30562impl From<SliceExpr> for Expr {
30563    #[inline]
30564    fn from(node: SliceExpr) -> Expr {
30565        Expr::SliceExpr(node)
30566    }
30567}
30568impl From<TupleExpr> for Expr {
30569    #[inline]
30570    fn from(node: TupleExpr) -> Expr {
30571        Expr::TupleExpr(node)
30572    }
30573}
30574impl AstNode for FuncOption {
30575    #[inline]
30576    fn can_cast(kind: SyntaxKind) -> bool {
30577        matches!(
30578            kind,
30579            SyntaxKind::AS_FUNC_OPTION
30580                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
30581                | SyntaxKind::COST_FUNC_OPTION
30582                | SyntaxKind::LANGUAGE_FUNC_OPTION
30583                | SyntaxKind::LEAKPROOF_FUNC_OPTION
30584                | SyntaxKind::PARALLEL_FUNC_OPTION
30585                | SyntaxKind::RESET_FUNC_OPTION
30586                | SyntaxKind::RETURN_FUNC_OPTION
30587                | SyntaxKind::ROWS_FUNC_OPTION
30588                | SyntaxKind::SECURITY_FUNC_OPTION
30589                | SyntaxKind::SET_FUNC_OPTION
30590                | SyntaxKind::STRICT_FUNC_OPTION
30591                | SyntaxKind::SUPPORT_FUNC_OPTION
30592                | SyntaxKind::TRANSFORM_FUNC_OPTION
30593                | SyntaxKind::VOLATILITY_FUNC_OPTION
30594                | SyntaxKind::WINDOW_FUNC_OPTION
30595        )
30596    }
30597    #[inline]
30598    fn cast(syntax: SyntaxNode) -> Option<Self> {
30599        let res = match syntax.kind() {
30600            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
30601            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
30602                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
30603            }
30604            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
30605            SyntaxKind::LANGUAGE_FUNC_OPTION => {
30606                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
30607            }
30608            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
30609                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
30610            }
30611            SyntaxKind::PARALLEL_FUNC_OPTION => {
30612                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
30613            }
30614            SyntaxKind::RESET_FUNC_OPTION => {
30615                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
30616            }
30617            SyntaxKind::RETURN_FUNC_OPTION => {
30618                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
30619            }
30620            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
30621            SyntaxKind::SECURITY_FUNC_OPTION => {
30622                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
30623            }
30624            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
30625            SyntaxKind::STRICT_FUNC_OPTION => {
30626                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
30627            }
30628            SyntaxKind::SUPPORT_FUNC_OPTION => {
30629                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
30630            }
30631            SyntaxKind::TRANSFORM_FUNC_OPTION => {
30632                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
30633            }
30634            SyntaxKind::VOLATILITY_FUNC_OPTION => {
30635                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
30636            }
30637            SyntaxKind::WINDOW_FUNC_OPTION => {
30638                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
30639            }
30640            _ => {
30641                return None;
30642            }
30643        };
30644        Some(res)
30645    }
30646    #[inline]
30647    fn syntax(&self) -> &SyntaxNode {
30648        match self {
30649            FuncOption::AsFuncOption(it) => &it.syntax,
30650            FuncOption::BeginFuncOptionList(it) => &it.syntax,
30651            FuncOption::CostFuncOption(it) => &it.syntax,
30652            FuncOption::LanguageFuncOption(it) => &it.syntax,
30653            FuncOption::LeakproofFuncOption(it) => &it.syntax,
30654            FuncOption::ParallelFuncOption(it) => &it.syntax,
30655            FuncOption::ResetFuncOption(it) => &it.syntax,
30656            FuncOption::ReturnFuncOption(it) => &it.syntax,
30657            FuncOption::RowsFuncOption(it) => &it.syntax,
30658            FuncOption::SecurityFuncOption(it) => &it.syntax,
30659            FuncOption::SetFuncOption(it) => &it.syntax,
30660            FuncOption::StrictFuncOption(it) => &it.syntax,
30661            FuncOption::SupportFuncOption(it) => &it.syntax,
30662            FuncOption::TransformFuncOption(it) => &it.syntax,
30663            FuncOption::VolatilityFuncOption(it) => &it.syntax,
30664            FuncOption::WindowFuncOption(it) => &it.syntax,
30665        }
30666    }
30667}
30668impl From<AsFuncOption> for FuncOption {
30669    #[inline]
30670    fn from(node: AsFuncOption) -> FuncOption {
30671        FuncOption::AsFuncOption(node)
30672    }
30673}
30674impl From<BeginFuncOptionList> for FuncOption {
30675    #[inline]
30676    fn from(node: BeginFuncOptionList) -> FuncOption {
30677        FuncOption::BeginFuncOptionList(node)
30678    }
30679}
30680impl From<CostFuncOption> for FuncOption {
30681    #[inline]
30682    fn from(node: CostFuncOption) -> FuncOption {
30683        FuncOption::CostFuncOption(node)
30684    }
30685}
30686impl From<LanguageFuncOption> for FuncOption {
30687    #[inline]
30688    fn from(node: LanguageFuncOption) -> FuncOption {
30689        FuncOption::LanguageFuncOption(node)
30690    }
30691}
30692impl From<LeakproofFuncOption> for FuncOption {
30693    #[inline]
30694    fn from(node: LeakproofFuncOption) -> FuncOption {
30695        FuncOption::LeakproofFuncOption(node)
30696    }
30697}
30698impl From<ParallelFuncOption> for FuncOption {
30699    #[inline]
30700    fn from(node: ParallelFuncOption) -> FuncOption {
30701        FuncOption::ParallelFuncOption(node)
30702    }
30703}
30704impl From<ResetFuncOption> for FuncOption {
30705    #[inline]
30706    fn from(node: ResetFuncOption) -> FuncOption {
30707        FuncOption::ResetFuncOption(node)
30708    }
30709}
30710impl From<ReturnFuncOption> for FuncOption {
30711    #[inline]
30712    fn from(node: ReturnFuncOption) -> FuncOption {
30713        FuncOption::ReturnFuncOption(node)
30714    }
30715}
30716impl From<RowsFuncOption> for FuncOption {
30717    #[inline]
30718    fn from(node: RowsFuncOption) -> FuncOption {
30719        FuncOption::RowsFuncOption(node)
30720    }
30721}
30722impl From<SecurityFuncOption> for FuncOption {
30723    #[inline]
30724    fn from(node: SecurityFuncOption) -> FuncOption {
30725        FuncOption::SecurityFuncOption(node)
30726    }
30727}
30728impl From<SetFuncOption> for FuncOption {
30729    #[inline]
30730    fn from(node: SetFuncOption) -> FuncOption {
30731        FuncOption::SetFuncOption(node)
30732    }
30733}
30734impl From<StrictFuncOption> for FuncOption {
30735    #[inline]
30736    fn from(node: StrictFuncOption) -> FuncOption {
30737        FuncOption::StrictFuncOption(node)
30738    }
30739}
30740impl From<SupportFuncOption> for FuncOption {
30741    #[inline]
30742    fn from(node: SupportFuncOption) -> FuncOption {
30743        FuncOption::SupportFuncOption(node)
30744    }
30745}
30746impl From<TransformFuncOption> for FuncOption {
30747    #[inline]
30748    fn from(node: TransformFuncOption) -> FuncOption {
30749        FuncOption::TransformFuncOption(node)
30750    }
30751}
30752impl From<VolatilityFuncOption> for FuncOption {
30753    #[inline]
30754    fn from(node: VolatilityFuncOption) -> FuncOption {
30755        FuncOption::VolatilityFuncOption(node)
30756    }
30757}
30758impl From<WindowFuncOption> for FuncOption {
30759    #[inline]
30760    fn from(node: WindowFuncOption) -> FuncOption {
30761        FuncOption::WindowFuncOption(node)
30762    }
30763}
30764impl AstNode for GroupBy {
30765    #[inline]
30766    fn can_cast(kind: SyntaxKind) -> bool {
30767        matches!(
30768            kind,
30769            SyntaxKind::GROUPING_CUBE
30770                | SyntaxKind::GROUPING_EXPR
30771                | SyntaxKind::GROUPING_ROLLUP
30772                | SyntaxKind::GROUPING_SETS
30773        )
30774    }
30775    #[inline]
30776    fn cast(syntax: SyntaxNode) -> Option<Self> {
30777        let res = match syntax.kind() {
30778            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
30779            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
30780            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
30781            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
30782            _ => {
30783                return None;
30784            }
30785        };
30786        Some(res)
30787    }
30788    #[inline]
30789    fn syntax(&self) -> &SyntaxNode {
30790        match self {
30791            GroupBy::GroupingCube(it) => &it.syntax,
30792            GroupBy::GroupingExpr(it) => &it.syntax,
30793            GroupBy::GroupingRollup(it) => &it.syntax,
30794            GroupBy::GroupingSets(it) => &it.syntax,
30795        }
30796    }
30797}
30798impl From<GroupingCube> for GroupBy {
30799    #[inline]
30800    fn from(node: GroupingCube) -> GroupBy {
30801        GroupBy::GroupingCube(node)
30802    }
30803}
30804impl From<GroupingExpr> for GroupBy {
30805    #[inline]
30806    fn from(node: GroupingExpr) -> GroupBy {
30807        GroupBy::GroupingExpr(node)
30808    }
30809}
30810impl From<GroupingRollup> for GroupBy {
30811    #[inline]
30812    fn from(node: GroupingRollup) -> GroupBy {
30813        GroupBy::GroupingRollup(node)
30814    }
30815}
30816impl From<GroupingSets> for GroupBy {
30817    #[inline]
30818    fn from(node: GroupingSets) -> GroupBy {
30819        GroupBy::GroupingSets(node)
30820    }
30821}
30822impl AstNode for JoinType {
30823    #[inline]
30824    fn can_cast(kind: SyntaxKind) -> bool {
30825        matches!(
30826            kind,
30827            SyntaxKind::JOIN_CROSS
30828                | SyntaxKind::JOIN_FULL
30829                | SyntaxKind::JOIN_INNER
30830                | SyntaxKind::JOIN_LEFT
30831                | SyntaxKind::JOIN_RIGHT
30832        )
30833    }
30834    #[inline]
30835    fn cast(syntax: SyntaxNode) -> Option<Self> {
30836        let res = match syntax.kind() {
30837            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
30838            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
30839            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
30840            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
30841            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
30842            _ => {
30843                return None;
30844            }
30845        };
30846        Some(res)
30847    }
30848    #[inline]
30849    fn syntax(&self) -> &SyntaxNode {
30850        match self {
30851            JoinType::JoinCross(it) => &it.syntax,
30852            JoinType::JoinFull(it) => &it.syntax,
30853            JoinType::JoinInner(it) => &it.syntax,
30854            JoinType::JoinLeft(it) => &it.syntax,
30855            JoinType::JoinRight(it) => &it.syntax,
30856        }
30857    }
30858}
30859impl From<JoinCross> for JoinType {
30860    #[inline]
30861    fn from(node: JoinCross) -> JoinType {
30862        JoinType::JoinCross(node)
30863    }
30864}
30865impl From<JoinFull> for JoinType {
30866    #[inline]
30867    fn from(node: JoinFull) -> JoinType {
30868        JoinType::JoinFull(node)
30869    }
30870}
30871impl From<JoinInner> for JoinType {
30872    #[inline]
30873    fn from(node: JoinInner) -> JoinType {
30874        JoinType::JoinInner(node)
30875    }
30876}
30877impl From<JoinLeft> for JoinType {
30878    #[inline]
30879    fn from(node: JoinLeft) -> JoinType {
30880        JoinType::JoinLeft(node)
30881    }
30882}
30883impl From<JoinRight> for JoinType {
30884    #[inline]
30885    fn from(node: JoinRight) -> JoinType {
30886        JoinType::JoinRight(node)
30887    }
30888}
30889impl AstNode for JsonBehavior {
30890    #[inline]
30891    fn can_cast(kind: SyntaxKind) -> bool {
30892        matches!(
30893            kind,
30894            SyntaxKind::JSON_BEHAVIOR_DEFAULT
30895                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
30896                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
30897                | SyntaxKind::JSON_BEHAVIOR_ERROR
30898                | SyntaxKind::JSON_BEHAVIOR_FALSE
30899                | SyntaxKind::JSON_BEHAVIOR_NULL
30900                | SyntaxKind::JSON_BEHAVIOR_TRUE
30901                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
30902        )
30903    }
30904    #[inline]
30905    fn cast(syntax: SyntaxNode) -> Option<Self> {
30906        let res = match syntax.kind() {
30907            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
30908                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
30909            }
30910            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
30911                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
30912            }
30913            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
30914                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
30915            }
30916            SyntaxKind::JSON_BEHAVIOR_ERROR => {
30917                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
30918            }
30919            SyntaxKind::JSON_BEHAVIOR_FALSE => {
30920                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
30921            }
30922            SyntaxKind::JSON_BEHAVIOR_NULL => {
30923                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
30924            }
30925            SyntaxKind::JSON_BEHAVIOR_TRUE => {
30926                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
30927            }
30928            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
30929                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
30930            }
30931            _ => {
30932                return None;
30933            }
30934        };
30935        Some(res)
30936    }
30937    #[inline]
30938    fn syntax(&self) -> &SyntaxNode {
30939        match self {
30940            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
30941            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
30942            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
30943            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
30944            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
30945            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
30946            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
30947            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
30948        }
30949    }
30950}
30951impl From<JsonBehaviorDefault> for JsonBehavior {
30952    #[inline]
30953    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
30954        JsonBehavior::JsonBehaviorDefault(node)
30955    }
30956}
30957impl From<JsonBehaviorEmptyArray> for JsonBehavior {
30958    #[inline]
30959    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
30960        JsonBehavior::JsonBehaviorEmptyArray(node)
30961    }
30962}
30963impl From<JsonBehaviorEmptyObject> for JsonBehavior {
30964    #[inline]
30965    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
30966        JsonBehavior::JsonBehaviorEmptyObject(node)
30967    }
30968}
30969impl From<JsonBehaviorError> for JsonBehavior {
30970    #[inline]
30971    fn from(node: JsonBehaviorError) -> JsonBehavior {
30972        JsonBehavior::JsonBehaviorError(node)
30973    }
30974}
30975impl From<JsonBehaviorFalse> for JsonBehavior {
30976    #[inline]
30977    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
30978        JsonBehavior::JsonBehaviorFalse(node)
30979    }
30980}
30981impl From<JsonBehaviorNull> for JsonBehavior {
30982    #[inline]
30983    fn from(node: JsonBehaviorNull) -> JsonBehavior {
30984        JsonBehavior::JsonBehaviorNull(node)
30985    }
30986}
30987impl From<JsonBehaviorTrue> for JsonBehavior {
30988    #[inline]
30989    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
30990        JsonBehavior::JsonBehaviorTrue(node)
30991    }
30992}
30993impl From<JsonBehaviorUnknown> for JsonBehavior {
30994    #[inline]
30995    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
30996        JsonBehavior::JsonBehaviorUnknown(node)
30997    }
30998}
30999impl AstNode for MatchType {
31000    #[inline]
31001    fn can_cast(kind: SyntaxKind) -> bool {
31002        matches!(
31003            kind,
31004            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
31005        )
31006    }
31007    #[inline]
31008    fn cast(syntax: SyntaxNode) -> Option<Self> {
31009        let res = match syntax.kind() {
31010            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
31011            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
31012            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
31013            _ => {
31014                return None;
31015            }
31016        };
31017        Some(res)
31018    }
31019    #[inline]
31020    fn syntax(&self) -> &SyntaxNode {
31021        match self {
31022            MatchType::MatchFull(it) => &it.syntax,
31023            MatchType::MatchPartial(it) => &it.syntax,
31024            MatchType::MatchSimple(it) => &it.syntax,
31025        }
31026    }
31027}
31028impl From<MatchFull> for MatchType {
31029    #[inline]
31030    fn from(node: MatchFull) -> MatchType {
31031        MatchType::MatchFull(node)
31032    }
31033}
31034impl From<MatchPartial> for MatchType {
31035    #[inline]
31036    fn from(node: MatchPartial) -> MatchType {
31037        MatchType::MatchPartial(node)
31038    }
31039}
31040impl From<MatchSimple> for MatchType {
31041    #[inline]
31042    fn from(node: MatchSimple) -> MatchType {
31043        MatchType::MatchSimple(node)
31044    }
31045}
31046impl AstNode for MergeAction {
31047    #[inline]
31048    fn can_cast(kind: SyntaxKind) -> bool {
31049        matches!(
31050            kind,
31051            SyntaxKind::MERGE_DELETE
31052                | SyntaxKind::MERGE_DO_NOTHING
31053                | SyntaxKind::MERGE_INSERT
31054                | SyntaxKind::MERGE_UPDATE
31055        )
31056    }
31057    #[inline]
31058    fn cast(syntax: SyntaxNode) -> Option<Self> {
31059        let res = match syntax.kind() {
31060            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
31061            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
31062            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
31063            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
31064            _ => {
31065                return None;
31066            }
31067        };
31068        Some(res)
31069    }
31070    #[inline]
31071    fn syntax(&self) -> &SyntaxNode {
31072        match self {
31073            MergeAction::MergeDelete(it) => &it.syntax,
31074            MergeAction::MergeDoNothing(it) => &it.syntax,
31075            MergeAction::MergeInsert(it) => &it.syntax,
31076            MergeAction::MergeUpdate(it) => &it.syntax,
31077        }
31078    }
31079}
31080impl From<MergeDelete> for MergeAction {
31081    #[inline]
31082    fn from(node: MergeDelete) -> MergeAction {
31083        MergeAction::MergeDelete(node)
31084    }
31085}
31086impl From<MergeDoNothing> for MergeAction {
31087    #[inline]
31088    fn from(node: MergeDoNothing) -> MergeAction {
31089        MergeAction::MergeDoNothing(node)
31090    }
31091}
31092impl From<MergeInsert> for MergeAction {
31093    #[inline]
31094    fn from(node: MergeInsert) -> MergeAction {
31095        MergeAction::MergeInsert(node)
31096    }
31097}
31098impl From<MergeUpdate> for MergeAction {
31099    #[inline]
31100    fn from(node: MergeUpdate) -> MergeAction {
31101        MergeAction::MergeUpdate(node)
31102    }
31103}
31104impl AstNode for MergeWhenClause {
31105    #[inline]
31106    fn can_cast(kind: SyntaxKind) -> bool {
31107        matches!(
31108            kind,
31109            SyntaxKind::MERGE_WHEN_MATCHED
31110                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
31111                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
31112        )
31113    }
31114    #[inline]
31115    fn cast(syntax: SyntaxNode) -> Option<Self> {
31116        let res = match syntax.kind() {
31117            SyntaxKind::MERGE_WHEN_MATCHED => {
31118                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
31119            }
31120            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
31121                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
31122            }
31123            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
31124                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
31125            }
31126            _ => {
31127                return None;
31128            }
31129        };
31130        Some(res)
31131    }
31132    #[inline]
31133    fn syntax(&self) -> &SyntaxNode {
31134        match self {
31135            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
31136            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
31137            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
31138        }
31139    }
31140}
31141impl From<MergeWhenMatched> for MergeWhenClause {
31142    #[inline]
31143    fn from(node: MergeWhenMatched) -> MergeWhenClause {
31144        MergeWhenClause::MergeWhenMatched(node)
31145    }
31146}
31147impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
31148    #[inline]
31149    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
31150        MergeWhenClause::MergeWhenNotMatchedSource(node)
31151    }
31152}
31153impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
31154    #[inline]
31155    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
31156        MergeWhenClause::MergeWhenNotMatchedTarget(node)
31157    }
31158}
31159impl AstNode for OnCommitAction {
31160    #[inline]
31161    fn can_cast(kind: SyntaxKind) -> bool {
31162        matches!(
31163            kind,
31164            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
31165        )
31166    }
31167    #[inline]
31168    fn cast(syntax: SyntaxNode) -> Option<Self> {
31169        let res = match syntax.kind() {
31170            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
31171            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
31172            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
31173            _ => {
31174                return None;
31175            }
31176        };
31177        Some(res)
31178    }
31179    #[inline]
31180    fn syntax(&self) -> &SyntaxNode {
31181        match self {
31182            OnCommitAction::DeleteRows(it) => &it.syntax,
31183            OnCommitAction::Drop(it) => &it.syntax,
31184            OnCommitAction::PreserveRows(it) => &it.syntax,
31185        }
31186    }
31187}
31188impl From<DeleteRows> for OnCommitAction {
31189    #[inline]
31190    fn from(node: DeleteRows) -> OnCommitAction {
31191        OnCommitAction::DeleteRows(node)
31192    }
31193}
31194impl From<Drop> for OnCommitAction {
31195    #[inline]
31196    fn from(node: Drop) -> OnCommitAction {
31197        OnCommitAction::Drop(node)
31198    }
31199}
31200impl From<PreserveRows> for OnCommitAction {
31201    #[inline]
31202    fn from(node: PreserveRows) -> OnCommitAction {
31203        OnCommitAction::PreserveRows(node)
31204    }
31205}
31206impl AstNode for ParamMode {
31207    #[inline]
31208    fn can_cast(kind: SyntaxKind) -> bool {
31209        matches!(
31210            kind,
31211            SyntaxKind::PARAM_IN
31212                | SyntaxKind::PARAM_IN_OUT
31213                | SyntaxKind::PARAM_OUT
31214                | SyntaxKind::PARAM_VARIADIC
31215        )
31216    }
31217    #[inline]
31218    fn cast(syntax: SyntaxNode) -> Option<Self> {
31219        let res = match syntax.kind() {
31220            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
31221            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
31222            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
31223            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
31224            _ => {
31225                return None;
31226            }
31227        };
31228        Some(res)
31229    }
31230    #[inline]
31231    fn syntax(&self) -> &SyntaxNode {
31232        match self {
31233            ParamMode::ParamIn(it) => &it.syntax,
31234            ParamMode::ParamInOut(it) => &it.syntax,
31235            ParamMode::ParamOut(it) => &it.syntax,
31236            ParamMode::ParamVariadic(it) => &it.syntax,
31237        }
31238    }
31239}
31240impl From<ParamIn> for ParamMode {
31241    #[inline]
31242    fn from(node: ParamIn) -> ParamMode {
31243        ParamMode::ParamIn(node)
31244    }
31245}
31246impl From<ParamInOut> for ParamMode {
31247    #[inline]
31248    fn from(node: ParamInOut) -> ParamMode {
31249        ParamMode::ParamInOut(node)
31250    }
31251}
31252impl From<ParamOut> for ParamMode {
31253    #[inline]
31254    fn from(node: ParamOut) -> ParamMode {
31255        ParamMode::ParamOut(node)
31256    }
31257}
31258impl From<ParamVariadic> for ParamMode {
31259    #[inline]
31260    fn from(node: ParamVariadic) -> ParamMode {
31261        ParamMode::ParamVariadic(node)
31262    }
31263}
31264impl AstNode for PartitionType {
31265    #[inline]
31266    fn can_cast(kind: SyntaxKind) -> bool {
31267        matches!(
31268            kind,
31269            SyntaxKind::PARTITION_DEFAULT
31270                | SyntaxKind::PARTITION_FOR_VALUES_FROM
31271                | SyntaxKind::PARTITION_FOR_VALUES_IN
31272                | SyntaxKind::PARTITION_FOR_VALUES_WITH
31273        )
31274    }
31275    #[inline]
31276    fn cast(syntax: SyntaxNode) -> Option<Self> {
31277        let res = match syntax.kind() {
31278            SyntaxKind::PARTITION_DEFAULT => {
31279                PartitionType::PartitionDefault(PartitionDefault { syntax })
31280            }
31281            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
31282                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
31283            }
31284            SyntaxKind::PARTITION_FOR_VALUES_IN => {
31285                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
31286            }
31287            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
31288                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
31289            }
31290            _ => {
31291                return None;
31292            }
31293        };
31294        Some(res)
31295    }
31296    #[inline]
31297    fn syntax(&self) -> &SyntaxNode {
31298        match self {
31299            PartitionType::PartitionDefault(it) => &it.syntax,
31300            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
31301            PartitionType::PartitionForValuesIn(it) => &it.syntax,
31302            PartitionType::PartitionForValuesWith(it) => &it.syntax,
31303        }
31304    }
31305}
31306impl From<PartitionDefault> for PartitionType {
31307    #[inline]
31308    fn from(node: PartitionDefault) -> PartitionType {
31309        PartitionType::PartitionDefault(node)
31310    }
31311}
31312impl From<PartitionForValuesFrom> for PartitionType {
31313    #[inline]
31314    fn from(node: PartitionForValuesFrom) -> PartitionType {
31315        PartitionType::PartitionForValuesFrom(node)
31316    }
31317}
31318impl From<PartitionForValuesIn> for PartitionType {
31319    #[inline]
31320    fn from(node: PartitionForValuesIn) -> PartitionType {
31321        PartitionType::PartitionForValuesIn(node)
31322    }
31323}
31324impl From<PartitionForValuesWith> for PartitionType {
31325    #[inline]
31326    fn from(node: PartitionForValuesWith) -> PartitionType {
31327        PartitionType::PartitionForValuesWith(node)
31328    }
31329}
31330impl AstNode for PreparableStmt {
31331    #[inline]
31332    fn can_cast(kind: SyntaxKind) -> bool {
31333        matches!(
31334            kind,
31335            SyntaxKind::COMPOUND_SELECT
31336                | SyntaxKind::DELETE
31337                | SyntaxKind::INSERT
31338                | SyntaxKind::MERGE
31339                | SyntaxKind::SELECT
31340                | SyntaxKind::SELECT_INTO
31341                | SyntaxKind::TABLE
31342                | SyntaxKind::UPDATE
31343                | SyntaxKind::VALUES
31344        )
31345    }
31346    #[inline]
31347    fn cast(syntax: SyntaxNode) -> Option<Self> {
31348        let res = match syntax.kind() {
31349            SyntaxKind::COMPOUND_SELECT => {
31350                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
31351            }
31352            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
31353            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
31354            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
31355            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
31356            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
31357            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
31358            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
31359            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
31360            _ => {
31361                return None;
31362            }
31363        };
31364        Some(res)
31365    }
31366    #[inline]
31367    fn syntax(&self) -> &SyntaxNode {
31368        match self {
31369            PreparableStmt::CompoundSelect(it) => &it.syntax,
31370            PreparableStmt::Delete(it) => &it.syntax,
31371            PreparableStmt::Insert(it) => &it.syntax,
31372            PreparableStmt::Merge(it) => &it.syntax,
31373            PreparableStmt::Select(it) => &it.syntax,
31374            PreparableStmt::SelectInto(it) => &it.syntax,
31375            PreparableStmt::Table(it) => &it.syntax,
31376            PreparableStmt::Update(it) => &it.syntax,
31377            PreparableStmt::Values(it) => &it.syntax,
31378        }
31379    }
31380}
31381impl From<CompoundSelect> for PreparableStmt {
31382    #[inline]
31383    fn from(node: CompoundSelect) -> PreparableStmt {
31384        PreparableStmt::CompoundSelect(node)
31385    }
31386}
31387impl From<Delete> for PreparableStmt {
31388    #[inline]
31389    fn from(node: Delete) -> PreparableStmt {
31390        PreparableStmt::Delete(node)
31391    }
31392}
31393impl From<Insert> for PreparableStmt {
31394    #[inline]
31395    fn from(node: Insert) -> PreparableStmt {
31396        PreparableStmt::Insert(node)
31397    }
31398}
31399impl From<Merge> for PreparableStmt {
31400    #[inline]
31401    fn from(node: Merge) -> PreparableStmt {
31402        PreparableStmt::Merge(node)
31403    }
31404}
31405impl From<Select> for PreparableStmt {
31406    #[inline]
31407    fn from(node: Select) -> PreparableStmt {
31408        PreparableStmt::Select(node)
31409    }
31410}
31411impl From<SelectInto> for PreparableStmt {
31412    #[inline]
31413    fn from(node: SelectInto) -> PreparableStmt {
31414        PreparableStmt::SelectInto(node)
31415    }
31416}
31417impl From<Table> for PreparableStmt {
31418    #[inline]
31419    fn from(node: Table) -> PreparableStmt {
31420        PreparableStmt::Table(node)
31421    }
31422}
31423impl From<Update> for PreparableStmt {
31424    #[inline]
31425    fn from(node: Update) -> PreparableStmt {
31426        PreparableStmt::Update(node)
31427    }
31428}
31429impl From<Values> for PreparableStmt {
31430    #[inline]
31431    fn from(node: Values) -> PreparableStmt {
31432        PreparableStmt::Values(node)
31433    }
31434}
31435impl AstNode for RefAction {
31436    #[inline]
31437    fn can_cast(kind: SyntaxKind) -> bool {
31438        matches!(
31439            kind,
31440            SyntaxKind::CASCADE
31441                | SyntaxKind::NO_ACTION
31442                | SyntaxKind::RESTRICT
31443                | SyntaxKind::SET_DEFAULT_COLUMNS
31444                | SyntaxKind::SET_NULL_COLUMNS
31445        )
31446    }
31447    #[inline]
31448    fn cast(syntax: SyntaxNode) -> Option<Self> {
31449        let res = match syntax.kind() {
31450            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
31451            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
31452            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
31453            SyntaxKind::SET_DEFAULT_COLUMNS => {
31454                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
31455            }
31456            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
31457            _ => {
31458                return None;
31459            }
31460        };
31461        Some(res)
31462    }
31463    #[inline]
31464    fn syntax(&self) -> &SyntaxNode {
31465        match self {
31466            RefAction::Cascade(it) => &it.syntax,
31467            RefAction::NoAction(it) => &it.syntax,
31468            RefAction::Restrict(it) => &it.syntax,
31469            RefAction::SetDefaultColumns(it) => &it.syntax,
31470            RefAction::SetNullColumns(it) => &it.syntax,
31471        }
31472    }
31473}
31474impl From<Cascade> for RefAction {
31475    #[inline]
31476    fn from(node: Cascade) -> RefAction {
31477        RefAction::Cascade(node)
31478    }
31479}
31480impl From<NoAction> for RefAction {
31481    #[inline]
31482    fn from(node: NoAction) -> RefAction {
31483        RefAction::NoAction(node)
31484    }
31485}
31486impl From<Restrict> for RefAction {
31487    #[inline]
31488    fn from(node: Restrict) -> RefAction {
31489        RefAction::Restrict(node)
31490    }
31491}
31492impl From<SetDefaultColumns> for RefAction {
31493    #[inline]
31494    fn from(node: SetDefaultColumns) -> RefAction {
31495        RefAction::SetDefaultColumns(node)
31496    }
31497}
31498impl From<SetNullColumns> for RefAction {
31499    #[inline]
31500    fn from(node: SetNullColumns) -> RefAction {
31501        RefAction::SetNullColumns(node)
31502    }
31503}
31504impl AstNode for SchemaElement {
31505    #[inline]
31506    fn can_cast(kind: SyntaxKind) -> bool {
31507        matches!(
31508            kind,
31509            SyntaxKind::CREATE_INDEX
31510                | SyntaxKind::CREATE_SEQUENCE
31511                | SyntaxKind::CREATE_TABLE
31512                | SyntaxKind::CREATE_TRIGGER
31513                | SyntaxKind::CREATE_VIEW
31514                | SyntaxKind::GRANT
31515        )
31516    }
31517    #[inline]
31518    fn cast(syntax: SyntaxNode) -> Option<Self> {
31519        let res = match syntax.kind() {
31520            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
31521            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
31522            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
31523            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
31524            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
31525            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
31526            _ => {
31527                return None;
31528            }
31529        };
31530        Some(res)
31531    }
31532    #[inline]
31533    fn syntax(&self) -> &SyntaxNode {
31534        match self {
31535            SchemaElement::CreateIndex(it) => &it.syntax,
31536            SchemaElement::CreateSequence(it) => &it.syntax,
31537            SchemaElement::CreateTable(it) => &it.syntax,
31538            SchemaElement::CreateTrigger(it) => &it.syntax,
31539            SchemaElement::CreateView(it) => &it.syntax,
31540            SchemaElement::Grant(it) => &it.syntax,
31541        }
31542    }
31543}
31544impl From<CreateIndex> for SchemaElement {
31545    #[inline]
31546    fn from(node: CreateIndex) -> SchemaElement {
31547        SchemaElement::CreateIndex(node)
31548    }
31549}
31550impl From<CreateSequence> for SchemaElement {
31551    #[inline]
31552    fn from(node: CreateSequence) -> SchemaElement {
31553        SchemaElement::CreateSequence(node)
31554    }
31555}
31556impl From<CreateTable> for SchemaElement {
31557    #[inline]
31558    fn from(node: CreateTable) -> SchemaElement {
31559        SchemaElement::CreateTable(node)
31560    }
31561}
31562impl From<CreateTrigger> for SchemaElement {
31563    #[inline]
31564    fn from(node: CreateTrigger) -> SchemaElement {
31565        SchemaElement::CreateTrigger(node)
31566    }
31567}
31568impl From<CreateView> for SchemaElement {
31569    #[inline]
31570    fn from(node: CreateView) -> SchemaElement {
31571        SchemaElement::CreateView(node)
31572    }
31573}
31574impl From<Grant> for SchemaElement {
31575    #[inline]
31576    fn from(node: Grant) -> SchemaElement {
31577        SchemaElement::Grant(node)
31578    }
31579}
31580impl AstNode for SelectVariant {
31581    #[inline]
31582    fn can_cast(kind: SyntaxKind) -> bool {
31583        matches!(
31584            kind,
31585            SyntaxKind::COMPOUND_SELECT
31586                | SyntaxKind::PAREN_SELECT
31587                | SyntaxKind::SELECT
31588                | SyntaxKind::SELECT_INTO
31589                | SyntaxKind::TABLE
31590                | SyntaxKind::VALUES
31591        )
31592    }
31593    #[inline]
31594    fn cast(syntax: SyntaxNode) -> Option<Self> {
31595        let res = match syntax.kind() {
31596            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
31597            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
31598            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
31599            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
31600            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
31601            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
31602            _ => {
31603                return None;
31604            }
31605        };
31606        Some(res)
31607    }
31608    #[inline]
31609    fn syntax(&self) -> &SyntaxNode {
31610        match self {
31611            SelectVariant::CompoundSelect(it) => &it.syntax,
31612            SelectVariant::ParenSelect(it) => &it.syntax,
31613            SelectVariant::Select(it) => &it.syntax,
31614            SelectVariant::SelectInto(it) => &it.syntax,
31615            SelectVariant::Table(it) => &it.syntax,
31616            SelectVariant::Values(it) => &it.syntax,
31617        }
31618    }
31619}
31620impl From<CompoundSelect> for SelectVariant {
31621    #[inline]
31622    fn from(node: CompoundSelect) -> SelectVariant {
31623        SelectVariant::CompoundSelect(node)
31624    }
31625}
31626impl From<ParenSelect> for SelectVariant {
31627    #[inline]
31628    fn from(node: ParenSelect) -> SelectVariant {
31629        SelectVariant::ParenSelect(node)
31630    }
31631}
31632impl From<Select> for SelectVariant {
31633    #[inline]
31634    fn from(node: Select) -> SelectVariant {
31635        SelectVariant::Select(node)
31636    }
31637}
31638impl From<SelectInto> for SelectVariant {
31639    #[inline]
31640    fn from(node: SelectInto) -> SelectVariant {
31641        SelectVariant::SelectInto(node)
31642    }
31643}
31644impl From<Table> for SelectVariant {
31645    #[inline]
31646    fn from(node: Table) -> SelectVariant {
31647        SelectVariant::Table(node)
31648    }
31649}
31650impl From<Values> for SelectVariant {
31651    #[inline]
31652    fn from(node: Values) -> SelectVariant {
31653        SelectVariant::Values(node)
31654    }
31655}
31656impl AstNode for SetColumn {
31657    #[inline]
31658    fn can_cast(kind: SyntaxKind) -> bool {
31659        matches!(
31660            kind,
31661            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
31662        )
31663    }
31664    #[inline]
31665    fn cast(syntax: SyntaxNode) -> Option<Self> {
31666        let res = match syntax.kind() {
31667            SyntaxKind::SET_MULTIPLE_COLUMNS => {
31668                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
31669            }
31670            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
31671            _ => {
31672                return None;
31673            }
31674        };
31675        Some(res)
31676    }
31677    #[inline]
31678    fn syntax(&self) -> &SyntaxNode {
31679        match self {
31680            SetColumn::SetMultipleColumns(it) => &it.syntax,
31681            SetColumn::SetSingleColumn(it) => &it.syntax,
31682        }
31683    }
31684}
31685impl From<SetMultipleColumns> for SetColumn {
31686    #[inline]
31687    fn from(node: SetMultipleColumns) -> SetColumn {
31688        SetColumn::SetMultipleColumns(node)
31689    }
31690}
31691impl From<SetSingleColumn> for SetColumn {
31692    #[inline]
31693    fn from(node: SetSingleColumn) -> SetColumn {
31694        SetColumn::SetSingleColumn(node)
31695    }
31696}
31697impl AstNode for Stmt {
31698    #[inline]
31699    fn can_cast(kind: SyntaxKind) -> bool {
31700        matches!(
31701            kind,
31702            SyntaxKind::ALTER_AGGREGATE
31703                | SyntaxKind::ALTER_COLLATION
31704                | SyntaxKind::ALTER_CONVERSION
31705                | SyntaxKind::ALTER_DATABASE
31706                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
31707                | SyntaxKind::ALTER_DOMAIN
31708                | SyntaxKind::ALTER_EVENT_TRIGGER
31709                | SyntaxKind::ALTER_EXTENSION
31710                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
31711                | SyntaxKind::ALTER_FOREIGN_TABLE
31712                | SyntaxKind::ALTER_FUNCTION
31713                | SyntaxKind::ALTER_GROUP
31714                | SyntaxKind::ALTER_INDEX
31715                | SyntaxKind::ALTER_LANGUAGE
31716                | SyntaxKind::ALTER_LARGE_OBJECT
31717                | SyntaxKind::ALTER_MATERIALIZED_VIEW
31718                | SyntaxKind::ALTER_OPERATOR
31719                | SyntaxKind::ALTER_OPERATOR_CLASS
31720                | SyntaxKind::ALTER_OPERATOR_FAMILY
31721                | SyntaxKind::ALTER_POLICY
31722                | SyntaxKind::ALTER_PROCEDURE
31723                | SyntaxKind::ALTER_PUBLICATION
31724                | SyntaxKind::ALTER_ROLE
31725                | SyntaxKind::ALTER_ROUTINE
31726                | SyntaxKind::ALTER_RULE
31727                | SyntaxKind::ALTER_SCHEMA
31728                | SyntaxKind::ALTER_SEQUENCE
31729                | SyntaxKind::ALTER_SERVER
31730                | SyntaxKind::ALTER_STATISTICS
31731                | SyntaxKind::ALTER_SUBSCRIPTION
31732                | SyntaxKind::ALTER_SYSTEM
31733                | SyntaxKind::ALTER_TABLE
31734                | SyntaxKind::ALTER_TABLESPACE
31735                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
31736                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
31737                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
31738                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
31739                | SyntaxKind::ALTER_TRIGGER
31740                | SyntaxKind::ALTER_TYPE
31741                | SyntaxKind::ALTER_USER
31742                | SyntaxKind::ALTER_USER_MAPPING
31743                | SyntaxKind::ALTER_VIEW
31744                | SyntaxKind::ANALYZE
31745                | SyntaxKind::BEGIN
31746                | SyntaxKind::CALL
31747                | SyntaxKind::CHECKPOINT
31748                | SyntaxKind::CLOSE
31749                | SyntaxKind::CLUSTER
31750                | SyntaxKind::COMMENT_ON
31751                | SyntaxKind::COMMIT
31752                | SyntaxKind::COPY
31753                | SyntaxKind::CREATE_ACCESS_METHOD
31754                | SyntaxKind::CREATE_AGGREGATE
31755                | SyntaxKind::CREATE_CAST
31756                | SyntaxKind::CREATE_COLLATION
31757                | SyntaxKind::CREATE_CONVERSION
31758                | SyntaxKind::CREATE_DATABASE
31759                | SyntaxKind::CREATE_DOMAIN
31760                | SyntaxKind::CREATE_EVENT_TRIGGER
31761                | SyntaxKind::CREATE_EXTENSION
31762                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
31763                | SyntaxKind::CREATE_FOREIGN_TABLE
31764                | SyntaxKind::CREATE_FUNCTION
31765                | SyntaxKind::CREATE_GROUP
31766                | SyntaxKind::CREATE_INDEX
31767                | SyntaxKind::CREATE_LANGUAGE
31768                | SyntaxKind::CREATE_MATERIALIZED_VIEW
31769                | SyntaxKind::CREATE_OPERATOR
31770                | SyntaxKind::CREATE_OPERATOR_CLASS
31771                | SyntaxKind::CREATE_OPERATOR_FAMILY
31772                | SyntaxKind::CREATE_POLICY
31773                | SyntaxKind::CREATE_PROCEDURE
31774                | SyntaxKind::CREATE_PUBLICATION
31775                | SyntaxKind::CREATE_ROLE
31776                | SyntaxKind::CREATE_RULE
31777                | SyntaxKind::CREATE_SCHEMA
31778                | SyntaxKind::CREATE_SEQUENCE
31779                | SyntaxKind::CREATE_SERVER
31780                | SyntaxKind::CREATE_STATISTICS
31781                | SyntaxKind::CREATE_SUBSCRIPTION
31782                | SyntaxKind::CREATE_TABLE
31783                | SyntaxKind::CREATE_TABLE_AS
31784                | SyntaxKind::CREATE_TABLESPACE
31785                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
31786                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
31787                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
31788                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
31789                | SyntaxKind::CREATE_TRANSFORM
31790                | SyntaxKind::CREATE_TRIGGER
31791                | SyntaxKind::CREATE_TYPE
31792                | SyntaxKind::CREATE_USER
31793                | SyntaxKind::CREATE_USER_MAPPING
31794                | SyntaxKind::CREATE_VIEW
31795                | SyntaxKind::DEALLOCATE
31796                | SyntaxKind::DECLARE
31797                | SyntaxKind::DELETE
31798                | SyntaxKind::DISCARD
31799                | SyntaxKind::DO
31800                | SyntaxKind::DROP_ACCESS_METHOD
31801                | SyntaxKind::DROP_AGGREGATE
31802                | SyntaxKind::DROP_CAST
31803                | SyntaxKind::DROP_COLLATION
31804                | SyntaxKind::DROP_CONVERSION
31805                | SyntaxKind::DROP_DATABASE
31806                | SyntaxKind::DROP_DOMAIN
31807                | SyntaxKind::DROP_EVENT_TRIGGER
31808                | SyntaxKind::DROP_EXTENSION
31809                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
31810                | SyntaxKind::DROP_FOREIGN_TABLE
31811                | SyntaxKind::DROP_FUNCTION
31812                | SyntaxKind::DROP_GROUP
31813                | SyntaxKind::DROP_INDEX
31814                | SyntaxKind::DROP_LANGUAGE
31815                | SyntaxKind::DROP_MATERIALIZED_VIEW
31816                | SyntaxKind::DROP_OPERATOR
31817                | SyntaxKind::DROP_OPERATOR_CLASS
31818                | SyntaxKind::DROP_OPERATOR_FAMILY
31819                | SyntaxKind::DROP_OWNED
31820                | SyntaxKind::DROP_POLICY
31821                | SyntaxKind::DROP_PROCEDURE
31822                | SyntaxKind::DROP_PUBLICATION
31823                | SyntaxKind::DROP_ROLE
31824                | SyntaxKind::DROP_ROUTINE
31825                | SyntaxKind::DROP_RULE
31826                | SyntaxKind::DROP_SCHEMA
31827                | SyntaxKind::DROP_SEQUENCE
31828                | SyntaxKind::DROP_SERVER
31829                | SyntaxKind::DROP_STATISTICS
31830                | SyntaxKind::DROP_SUBSCRIPTION
31831                | SyntaxKind::DROP_TABLE
31832                | SyntaxKind::DROP_TABLESPACE
31833                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
31834                | SyntaxKind::DROP_TEXT_SEARCH_DICT
31835                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
31836                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
31837                | SyntaxKind::DROP_TRANSFORM
31838                | SyntaxKind::DROP_TRIGGER
31839                | SyntaxKind::DROP_TYPE
31840                | SyntaxKind::DROP_USER
31841                | SyntaxKind::DROP_USER_MAPPING
31842                | SyntaxKind::DROP_VIEW
31843                | SyntaxKind::EXECUTE
31844                | SyntaxKind::EXPLAIN
31845                | SyntaxKind::FETCH
31846                | SyntaxKind::GRANT
31847                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
31848                | SyntaxKind::INSERT
31849                | SyntaxKind::LISTEN
31850                | SyntaxKind::LOAD
31851                | SyntaxKind::LOCK
31852                | SyntaxKind::MERGE
31853                | SyntaxKind::MOVE
31854                | SyntaxKind::NOTIFY
31855                | SyntaxKind::PAREN_SELECT
31856                | SyntaxKind::PREPARE
31857                | SyntaxKind::PREPARE_TRANSACTION
31858                | SyntaxKind::REASSIGN
31859                | SyntaxKind::REFRESH
31860                | SyntaxKind::REINDEX
31861                | SyntaxKind::RELEASE_SAVEPOINT
31862                | SyntaxKind::RESET
31863                | SyntaxKind::RESET_SESSION_AUTH
31864                | SyntaxKind::REVOKE
31865                | SyntaxKind::ROLLBACK
31866                | SyntaxKind::SAVEPOINT
31867                | SyntaxKind::SECURITY_LABEL
31868                | SyntaxKind::SELECT
31869                | SyntaxKind::SELECT_INTO
31870                | SyntaxKind::SET
31871                | SyntaxKind::SET_CONSTRAINTS
31872                | SyntaxKind::SET_ROLE
31873                | SyntaxKind::SET_SESSION_AUTH
31874                | SyntaxKind::SET_TRANSACTION
31875                | SyntaxKind::SHOW
31876                | SyntaxKind::TABLE
31877                | SyntaxKind::TRUNCATE
31878                | SyntaxKind::UNLISTEN
31879                | SyntaxKind::UPDATE
31880                | SyntaxKind::VACUUM
31881                | SyntaxKind::VALUES
31882        )
31883    }
31884    #[inline]
31885    fn cast(syntax: SyntaxNode) -> Option<Self> {
31886        let res = match syntax.kind() {
31887            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
31888            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
31889            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
31890            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
31891            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
31892                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
31893            }
31894            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
31895            SyntaxKind::ALTER_EVENT_TRIGGER => {
31896                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
31897            }
31898            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
31899            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
31900                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
31901            }
31902            SyntaxKind::ALTER_FOREIGN_TABLE => {
31903                Stmt::AlterForeignTable(AlterForeignTable { syntax })
31904            }
31905            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
31906            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
31907            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
31908            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
31909            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
31910            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
31911                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
31912            }
31913            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
31914            SyntaxKind::ALTER_OPERATOR_CLASS => {
31915                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
31916            }
31917            SyntaxKind::ALTER_OPERATOR_FAMILY => {
31918                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
31919            }
31920            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
31921            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
31922            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
31923            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
31924            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
31925            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
31926            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
31927            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
31928            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
31929            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
31930            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
31931            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
31932            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
31933            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
31934            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
31935                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
31936            }
31937            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
31938                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
31939            }
31940            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
31941                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
31942            }
31943            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
31944                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
31945            }
31946            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
31947            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
31948            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
31949            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
31950            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
31951            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
31952            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
31953            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
31954            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
31955            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
31956            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
31957            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
31958            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
31959            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
31960            SyntaxKind::CREATE_ACCESS_METHOD => {
31961                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
31962            }
31963            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
31964            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
31965            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
31966            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
31967            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
31968            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
31969            SyntaxKind::CREATE_EVENT_TRIGGER => {
31970                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
31971            }
31972            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
31973            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
31974                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
31975            }
31976            SyntaxKind::CREATE_FOREIGN_TABLE => {
31977                Stmt::CreateForeignTable(CreateForeignTable { syntax })
31978            }
31979            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
31980            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
31981            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
31982            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
31983            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
31984                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
31985            }
31986            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
31987            SyntaxKind::CREATE_OPERATOR_CLASS => {
31988                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
31989            }
31990            SyntaxKind::CREATE_OPERATOR_FAMILY => {
31991                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
31992            }
31993            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
31994            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
31995            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
31996            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
31997            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
31998            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
31999            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
32000            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
32001            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
32002            SyntaxKind::CREATE_SUBSCRIPTION => {
32003                Stmt::CreateSubscription(CreateSubscription { syntax })
32004            }
32005            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
32006            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
32007            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
32008            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
32009                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
32010            }
32011            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
32012                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
32013            }
32014            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
32015                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
32016            }
32017            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
32018                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
32019            }
32020            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
32021            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
32022            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
32023            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
32024            SyntaxKind::CREATE_USER_MAPPING => {
32025                Stmt::CreateUserMapping(CreateUserMapping { syntax })
32026            }
32027            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
32028            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
32029            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
32030            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
32031            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
32032            SyntaxKind::DO => Stmt::Do(Do { syntax }),
32033            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
32034            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
32035            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
32036            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
32037            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
32038            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
32039            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
32040            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
32041            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
32042            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
32043                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
32044            }
32045            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
32046            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
32047            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
32048            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
32049            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
32050            SyntaxKind::DROP_MATERIALIZED_VIEW => {
32051                Stmt::DropMaterializedView(DropMaterializedView { syntax })
32052            }
32053            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
32054            SyntaxKind::DROP_OPERATOR_CLASS => {
32055                Stmt::DropOperatorClass(DropOperatorClass { syntax })
32056            }
32057            SyntaxKind::DROP_OPERATOR_FAMILY => {
32058                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
32059            }
32060            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
32061            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
32062            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
32063            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
32064            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
32065            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
32066            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
32067            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
32068            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
32069            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
32070            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
32071            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
32072            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
32073            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
32074            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
32075                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
32076            }
32077            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
32078                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
32079            }
32080            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
32081                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
32082            }
32083            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
32084                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
32085            }
32086            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
32087            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
32088            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
32089            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
32090            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
32091            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
32092            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
32093            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
32094            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
32095            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
32096            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
32097                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
32098            }
32099            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
32100            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
32101            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
32102            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
32103            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
32104            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
32105            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
32106            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
32107            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
32108            SyntaxKind::PREPARE_TRANSACTION => {
32109                Stmt::PrepareTransaction(PrepareTransaction { syntax })
32110            }
32111            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
32112            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
32113            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
32114            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
32115            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
32116            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
32117            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
32118            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
32119            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
32120            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
32121            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
32122            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
32123            SyntaxKind::SET => Stmt::Set(Set { syntax }),
32124            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
32125            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
32126            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
32127            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
32128            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
32129            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
32130            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
32131            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
32132            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
32133            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
32134            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
32135            _ => {
32136                return None;
32137            }
32138        };
32139        Some(res)
32140    }
32141    #[inline]
32142    fn syntax(&self) -> &SyntaxNode {
32143        match self {
32144            Stmt::AlterAggregate(it) => &it.syntax,
32145            Stmt::AlterCollation(it) => &it.syntax,
32146            Stmt::AlterConversion(it) => &it.syntax,
32147            Stmt::AlterDatabase(it) => &it.syntax,
32148            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
32149            Stmt::AlterDomain(it) => &it.syntax,
32150            Stmt::AlterEventTrigger(it) => &it.syntax,
32151            Stmt::AlterExtension(it) => &it.syntax,
32152            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
32153            Stmt::AlterForeignTable(it) => &it.syntax,
32154            Stmt::AlterFunction(it) => &it.syntax,
32155            Stmt::AlterGroup(it) => &it.syntax,
32156            Stmt::AlterIndex(it) => &it.syntax,
32157            Stmt::AlterLanguage(it) => &it.syntax,
32158            Stmt::AlterLargeObject(it) => &it.syntax,
32159            Stmt::AlterMaterializedView(it) => &it.syntax,
32160            Stmt::AlterOperator(it) => &it.syntax,
32161            Stmt::AlterOperatorClass(it) => &it.syntax,
32162            Stmt::AlterOperatorFamily(it) => &it.syntax,
32163            Stmt::AlterPolicy(it) => &it.syntax,
32164            Stmt::AlterProcedure(it) => &it.syntax,
32165            Stmt::AlterPublication(it) => &it.syntax,
32166            Stmt::AlterRole(it) => &it.syntax,
32167            Stmt::AlterRoutine(it) => &it.syntax,
32168            Stmt::AlterRule(it) => &it.syntax,
32169            Stmt::AlterSchema(it) => &it.syntax,
32170            Stmt::AlterSequence(it) => &it.syntax,
32171            Stmt::AlterServer(it) => &it.syntax,
32172            Stmt::AlterStatistics(it) => &it.syntax,
32173            Stmt::AlterSubscription(it) => &it.syntax,
32174            Stmt::AlterSystem(it) => &it.syntax,
32175            Stmt::AlterTable(it) => &it.syntax,
32176            Stmt::AlterTablespace(it) => &it.syntax,
32177            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
32178            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
32179            Stmt::AlterTextSearchParser(it) => &it.syntax,
32180            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
32181            Stmt::AlterTrigger(it) => &it.syntax,
32182            Stmt::AlterType(it) => &it.syntax,
32183            Stmt::AlterUser(it) => &it.syntax,
32184            Stmt::AlterUserMapping(it) => &it.syntax,
32185            Stmt::AlterView(it) => &it.syntax,
32186            Stmt::Analyze(it) => &it.syntax,
32187            Stmt::Begin(it) => &it.syntax,
32188            Stmt::Call(it) => &it.syntax,
32189            Stmt::Checkpoint(it) => &it.syntax,
32190            Stmt::Close(it) => &it.syntax,
32191            Stmt::Cluster(it) => &it.syntax,
32192            Stmt::CommentOn(it) => &it.syntax,
32193            Stmt::Commit(it) => &it.syntax,
32194            Stmt::Copy(it) => &it.syntax,
32195            Stmt::CreateAccessMethod(it) => &it.syntax,
32196            Stmt::CreateAggregate(it) => &it.syntax,
32197            Stmt::CreateCast(it) => &it.syntax,
32198            Stmt::CreateCollation(it) => &it.syntax,
32199            Stmt::CreateConversion(it) => &it.syntax,
32200            Stmt::CreateDatabase(it) => &it.syntax,
32201            Stmt::CreateDomain(it) => &it.syntax,
32202            Stmt::CreateEventTrigger(it) => &it.syntax,
32203            Stmt::CreateExtension(it) => &it.syntax,
32204            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
32205            Stmt::CreateForeignTable(it) => &it.syntax,
32206            Stmt::CreateFunction(it) => &it.syntax,
32207            Stmt::CreateGroup(it) => &it.syntax,
32208            Stmt::CreateIndex(it) => &it.syntax,
32209            Stmt::CreateLanguage(it) => &it.syntax,
32210            Stmt::CreateMaterializedView(it) => &it.syntax,
32211            Stmt::CreateOperator(it) => &it.syntax,
32212            Stmt::CreateOperatorClass(it) => &it.syntax,
32213            Stmt::CreateOperatorFamily(it) => &it.syntax,
32214            Stmt::CreatePolicy(it) => &it.syntax,
32215            Stmt::CreateProcedure(it) => &it.syntax,
32216            Stmt::CreatePublication(it) => &it.syntax,
32217            Stmt::CreateRole(it) => &it.syntax,
32218            Stmt::CreateRule(it) => &it.syntax,
32219            Stmt::CreateSchema(it) => &it.syntax,
32220            Stmt::CreateSequence(it) => &it.syntax,
32221            Stmt::CreateServer(it) => &it.syntax,
32222            Stmt::CreateStatistics(it) => &it.syntax,
32223            Stmt::CreateSubscription(it) => &it.syntax,
32224            Stmt::CreateTable(it) => &it.syntax,
32225            Stmt::CreateTableAs(it) => &it.syntax,
32226            Stmt::CreateTablespace(it) => &it.syntax,
32227            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
32228            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
32229            Stmt::CreateTextSearchParser(it) => &it.syntax,
32230            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
32231            Stmt::CreateTransform(it) => &it.syntax,
32232            Stmt::CreateTrigger(it) => &it.syntax,
32233            Stmt::CreateType(it) => &it.syntax,
32234            Stmt::CreateUser(it) => &it.syntax,
32235            Stmt::CreateUserMapping(it) => &it.syntax,
32236            Stmt::CreateView(it) => &it.syntax,
32237            Stmt::Deallocate(it) => &it.syntax,
32238            Stmt::Declare(it) => &it.syntax,
32239            Stmt::Delete(it) => &it.syntax,
32240            Stmt::Discard(it) => &it.syntax,
32241            Stmt::Do(it) => &it.syntax,
32242            Stmt::DropAccessMethod(it) => &it.syntax,
32243            Stmt::DropAggregate(it) => &it.syntax,
32244            Stmt::DropCast(it) => &it.syntax,
32245            Stmt::DropCollation(it) => &it.syntax,
32246            Stmt::DropConversion(it) => &it.syntax,
32247            Stmt::DropDatabase(it) => &it.syntax,
32248            Stmt::DropDomain(it) => &it.syntax,
32249            Stmt::DropEventTrigger(it) => &it.syntax,
32250            Stmt::DropExtension(it) => &it.syntax,
32251            Stmt::DropForeignDataWrapper(it) => &it.syntax,
32252            Stmt::DropForeignTable(it) => &it.syntax,
32253            Stmt::DropFunction(it) => &it.syntax,
32254            Stmt::DropGroup(it) => &it.syntax,
32255            Stmt::DropIndex(it) => &it.syntax,
32256            Stmt::DropLanguage(it) => &it.syntax,
32257            Stmt::DropMaterializedView(it) => &it.syntax,
32258            Stmt::DropOperator(it) => &it.syntax,
32259            Stmt::DropOperatorClass(it) => &it.syntax,
32260            Stmt::DropOperatorFamily(it) => &it.syntax,
32261            Stmt::DropOwned(it) => &it.syntax,
32262            Stmt::DropPolicy(it) => &it.syntax,
32263            Stmt::DropProcedure(it) => &it.syntax,
32264            Stmt::DropPublication(it) => &it.syntax,
32265            Stmt::DropRole(it) => &it.syntax,
32266            Stmt::DropRoutine(it) => &it.syntax,
32267            Stmt::DropRule(it) => &it.syntax,
32268            Stmt::DropSchema(it) => &it.syntax,
32269            Stmt::DropSequence(it) => &it.syntax,
32270            Stmt::DropServer(it) => &it.syntax,
32271            Stmt::DropStatistics(it) => &it.syntax,
32272            Stmt::DropSubscription(it) => &it.syntax,
32273            Stmt::DropTable(it) => &it.syntax,
32274            Stmt::DropTablespace(it) => &it.syntax,
32275            Stmt::DropTextSearchConfig(it) => &it.syntax,
32276            Stmt::DropTextSearchDict(it) => &it.syntax,
32277            Stmt::DropTextSearchParser(it) => &it.syntax,
32278            Stmt::DropTextSearchTemplate(it) => &it.syntax,
32279            Stmt::DropTransform(it) => &it.syntax,
32280            Stmt::DropTrigger(it) => &it.syntax,
32281            Stmt::DropType(it) => &it.syntax,
32282            Stmt::DropUser(it) => &it.syntax,
32283            Stmt::DropUserMapping(it) => &it.syntax,
32284            Stmt::DropView(it) => &it.syntax,
32285            Stmt::Execute(it) => &it.syntax,
32286            Stmt::Explain(it) => &it.syntax,
32287            Stmt::Fetch(it) => &it.syntax,
32288            Stmt::Grant(it) => &it.syntax,
32289            Stmt::ImportForeignSchema(it) => &it.syntax,
32290            Stmt::Insert(it) => &it.syntax,
32291            Stmt::Listen(it) => &it.syntax,
32292            Stmt::Load(it) => &it.syntax,
32293            Stmt::Lock(it) => &it.syntax,
32294            Stmt::Merge(it) => &it.syntax,
32295            Stmt::Move(it) => &it.syntax,
32296            Stmt::Notify(it) => &it.syntax,
32297            Stmt::ParenSelect(it) => &it.syntax,
32298            Stmt::Prepare(it) => &it.syntax,
32299            Stmt::PrepareTransaction(it) => &it.syntax,
32300            Stmt::Reassign(it) => &it.syntax,
32301            Stmt::Refresh(it) => &it.syntax,
32302            Stmt::Reindex(it) => &it.syntax,
32303            Stmt::ReleaseSavepoint(it) => &it.syntax,
32304            Stmt::Reset(it) => &it.syntax,
32305            Stmt::ResetSessionAuth(it) => &it.syntax,
32306            Stmt::Revoke(it) => &it.syntax,
32307            Stmt::Rollback(it) => &it.syntax,
32308            Stmt::Savepoint(it) => &it.syntax,
32309            Stmt::SecurityLabel(it) => &it.syntax,
32310            Stmt::Select(it) => &it.syntax,
32311            Stmt::SelectInto(it) => &it.syntax,
32312            Stmt::Set(it) => &it.syntax,
32313            Stmt::SetConstraints(it) => &it.syntax,
32314            Stmt::SetRole(it) => &it.syntax,
32315            Stmt::SetSessionAuth(it) => &it.syntax,
32316            Stmt::SetTransaction(it) => &it.syntax,
32317            Stmt::Show(it) => &it.syntax,
32318            Stmt::Table(it) => &it.syntax,
32319            Stmt::Truncate(it) => &it.syntax,
32320            Stmt::Unlisten(it) => &it.syntax,
32321            Stmt::Update(it) => &it.syntax,
32322            Stmt::Vacuum(it) => &it.syntax,
32323            Stmt::Values(it) => &it.syntax,
32324        }
32325    }
32326}
32327impl From<AlterAggregate> for Stmt {
32328    #[inline]
32329    fn from(node: AlterAggregate) -> Stmt {
32330        Stmt::AlterAggregate(node)
32331    }
32332}
32333impl From<AlterCollation> for Stmt {
32334    #[inline]
32335    fn from(node: AlterCollation) -> Stmt {
32336        Stmt::AlterCollation(node)
32337    }
32338}
32339impl From<AlterConversion> for Stmt {
32340    #[inline]
32341    fn from(node: AlterConversion) -> Stmt {
32342        Stmt::AlterConversion(node)
32343    }
32344}
32345impl From<AlterDatabase> for Stmt {
32346    #[inline]
32347    fn from(node: AlterDatabase) -> Stmt {
32348        Stmt::AlterDatabase(node)
32349    }
32350}
32351impl From<AlterDefaultPrivileges> for Stmt {
32352    #[inline]
32353    fn from(node: AlterDefaultPrivileges) -> Stmt {
32354        Stmt::AlterDefaultPrivileges(node)
32355    }
32356}
32357impl From<AlterDomain> for Stmt {
32358    #[inline]
32359    fn from(node: AlterDomain) -> Stmt {
32360        Stmt::AlterDomain(node)
32361    }
32362}
32363impl From<AlterEventTrigger> for Stmt {
32364    #[inline]
32365    fn from(node: AlterEventTrigger) -> Stmt {
32366        Stmt::AlterEventTrigger(node)
32367    }
32368}
32369impl From<AlterExtension> for Stmt {
32370    #[inline]
32371    fn from(node: AlterExtension) -> Stmt {
32372        Stmt::AlterExtension(node)
32373    }
32374}
32375impl From<AlterForeignDataWrapper> for Stmt {
32376    #[inline]
32377    fn from(node: AlterForeignDataWrapper) -> Stmt {
32378        Stmt::AlterForeignDataWrapper(node)
32379    }
32380}
32381impl From<AlterForeignTable> for Stmt {
32382    #[inline]
32383    fn from(node: AlterForeignTable) -> Stmt {
32384        Stmt::AlterForeignTable(node)
32385    }
32386}
32387impl From<AlterFunction> for Stmt {
32388    #[inline]
32389    fn from(node: AlterFunction) -> Stmt {
32390        Stmt::AlterFunction(node)
32391    }
32392}
32393impl From<AlterGroup> for Stmt {
32394    #[inline]
32395    fn from(node: AlterGroup) -> Stmt {
32396        Stmt::AlterGroup(node)
32397    }
32398}
32399impl From<AlterIndex> for Stmt {
32400    #[inline]
32401    fn from(node: AlterIndex) -> Stmt {
32402        Stmt::AlterIndex(node)
32403    }
32404}
32405impl From<AlterLanguage> for Stmt {
32406    #[inline]
32407    fn from(node: AlterLanguage) -> Stmt {
32408        Stmt::AlterLanguage(node)
32409    }
32410}
32411impl From<AlterLargeObject> for Stmt {
32412    #[inline]
32413    fn from(node: AlterLargeObject) -> Stmt {
32414        Stmt::AlterLargeObject(node)
32415    }
32416}
32417impl From<AlterMaterializedView> for Stmt {
32418    #[inline]
32419    fn from(node: AlterMaterializedView) -> Stmt {
32420        Stmt::AlterMaterializedView(node)
32421    }
32422}
32423impl From<AlterOperator> for Stmt {
32424    #[inline]
32425    fn from(node: AlterOperator) -> Stmt {
32426        Stmt::AlterOperator(node)
32427    }
32428}
32429impl From<AlterOperatorClass> for Stmt {
32430    #[inline]
32431    fn from(node: AlterOperatorClass) -> Stmt {
32432        Stmt::AlterOperatorClass(node)
32433    }
32434}
32435impl From<AlterOperatorFamily> for Stmt {
32436    #[inline]
32437    fn from(node: AlterOperatorFamily) -> Stmt {
32438        Stmt::AlterOperatorFamily(node)
32439    }
32440}
32441impl From<AlterPolicy> for Stmt {
32442    #[inline]
32443    fn from(node: AlterPolicy) -> Stmt {
32444        Stmt::AlterPolicy(node)
32445    }
32446}
32447impl From<AlterProcedure> for Stmt {
32448    #[inline]
32449    fn from(node: AlterProcedure) -> Stmt {
32450        Stmt::AlterProcedure(node)
32451    }
32452}
32453impl From<AlterPublication> for Stmt {
32454    #[inline]
32455    fn from(node: AlterPublication) -> Stmt {
32456        Stmt::AlterPublication(node)
32457    }
32458}
32459impl From<AlterRole> for Stmt {
32460    #[inline]
32461    fn from(node: AlterRole) -> Stmt {
32462        Stmt::AlterRole(node)
32463    }
32464}
32465impl From<AlterRoutine> for Stmt {
32466    #[inline]
32467    fn from(node: AlterRoutine) -> Stmt {
32468        Stmt::AlterRoutine(node)
32469    }
32470}
32471impl From<AlterRule> for Stmt {
32472    #[inline]
32473    fn from(node: AlterRule) -> Stmt {
32474        Stmt::AlterRule(node)
32475    }
32476}
32477impl From<AlterSchema> for Stmt {
32478    #[inline]
32479    fn from(node: AlterSchema) -> Stmt {
32480        Stmt::AlterSchema(node)
32481    }
32482}
32483impl From<AlterSequence> for Stmt {
32484    #[inline]
32485    fn from(node: AlterSequence) -> Stmt {
32486        Stmt::AlterSequence(node)
32487    }
32488}
32489impl From<AlterServer> for Stmt {
32490    #[inline]
32491    fn from(node: AlterServer) -> Stmt {
32492        Stmt::AlterServer(node)
32493    }
32494}
32495impl From<AlterStatistics> for Stmt {
32496    #[inline]
32497    fn from(node: AlterStatistics) -> Stmt {
32498        Stmt::AlterStatistics(node)
32499    }
32500}
32501impl From<AlterSubscription> for Stmt {
32502    #[inline]
32503    fn from(node: AlterSubscription) -> Stmt {
32504        Stmt::AlterSubscription(node)
32505    }
32506}
32507impl From<AlterSystem> for Stmt {
32508    #[inline]
32509    fn from(node: AlterSystem) -> Stmt {
32510        Stmt::AlterSystem(node)
32511    }
32512}
32513impl From<AlterTable> for Stmt {
32514    #[inline]
32515    fn from(node: AlterTable) -> Stmt {
32516        Stmt::AlterTable(node)
32517    }
32518}
32519impl From<AlterTablespace> for Stmt {
32520    #[inline]
32521    fn from(node: AlterTablespace) -> Stmt {
32522        Stmt::AlterTablespace(node)
32523    }
32524}
32525impl From<AlterTextSearchConfiguration> for Stmt {
32526    #[inline]
32527    fn from(node: AlterTextSearchConfiguration) -> Stmt {
32528        Stmt::AlterTextSearchConfiguration(node)
32529    }
32530}
32531impl From<AlterTextSearchDictionary> for Stmt {
32532    #[inline]
32533    fn from(node: AlterTextSearchDictionary) -> Stmt {
32534        Stmt::AlterTextSearchDictionary(node)
32535    }
32536}
32537impl From<AlterTextSearchParser> for Stmt {
32538    #[inline]
32539    fn from(node: AlterTextSearchParser) -> Stmt {
32540        Stmt::AlterTextSearchParser(node)
32541    }
32542}
32543impl From<AlterTextSearchTemplate> for Stmt {
32544    #[inline]
32545    fn from(node: AlterTextSearchTemplate) -> Stmt {
32546        Stmt::AlterTextSearchTemplate(node)
32547    }
32548}
32549impl From<AlterTrigger> for Stmt {
32550    #[inline]
32551    fn from(node: AlterTrigger) -> Stmt {
32552        Stmt::AlterTrigger(node)
32553    }
32554}
32555impl From<AlterType> for Stmt {
32556    #[inline]
32557    fn from(node: AlterType) -> Stmt {
32558        Stmt::AlterType(node)
32559    }
32560}
32561impl From<AlterUser> for Stmt {
32562    #[inline]
32563    fn from(node: AlterUser) -> Stmt {
32564        Stmt::AlterUser(node)
32565    }
32566}
32567impl From<AlterUserMapping> for Stmt {
32568    #[inline]
32569    fn from(node: AlterUserMapping) -> Stmt {
32570        Stmt::AlterUserMapping(node)
32571    }
32572}
32573impl From<AlterView> for Stmt {
32574    #[inline]
32575    fn from(node: AlterView) -> Stmt {
32576        Stmt::AlterView(node)
32577    }
32578}
32579impl From<Analyze> for Stmt {
32580    #[inline]
32581    fn from(node: Analyze) -> Stmt {
32582        Stmt::Analyze(node)
32583    }
32584}
32585impl From<Begin> for Stmt {
32586    #[inline]
32587    fn from(node: Begin) -> Stmt {
32588        Stmt::Begin(node)
32589    }
32590}
32591impl From<Call> for Stmt {
32592    #[inline]
32593    fn from(node: Call) -> Stmt {
32594        Stmt::Call(node)
32595    }
32596}
32597impl From<Checkpoint> for Stmt {
32598    #[inline]
32599    fn from(node: Checkpoint) -> Stmt {
32600        Stmt::Checkpoint(node)
32601    }
32602}
32603impl From<Close> for Stmt {
32604    #[inline]
32605    fn from(node: Close) -> Stmt {
32606        Stmt::Close(node)
32607    }
32608}
32609impl From<Cluster> for Stmt {
32610    #[inline]
32611    fn from(node: Cluster) -> Stmt {
32612        Stmt::Cluster(node)
32613    }
32614}
32615impl From<CommentOn> for Stmt {
32616    #[inline]
32617    fn from(node: CommentOn) -> Stmt {
32618        Stmt::CommentOn(node)
32619    }
32620}
32621impl From<Commit> for Stmt {
32622    #[inline]
32623    fn from(node: Commit) -> Stmt {
32624        Stmt::Commit(node)
32625    }
32626}
32627impl From<Copy> for Stmt {
32628    #[inline]
32629    fn from(node: Copy) -> Stmt {
32630        Stmt::Copy(node)
32631    }
32632}
32633impl From<CreateAccessMethod> for Stmt {
32634    #[inline]
32635    fn from(node: CreateAccessMethod) -> Stmt {
32636        Stmt::CreateAccessMethod(node)
32637    }
32638}
32639impl From<CreateAggregate> for Stmt {
32640    #[inline]
32641    fn from(node: CreateAggregate) -> Stmt {
32642        Stmt::CreateAggregate(node)
32643    }
32644}
32645impl From<CreateCast> for Stmt {
32646    #[inline]
32647    fn from(node: CreateCast) -> Stmt {
32648        Stmt::CreateCast(node)
32649    }
32650}
32651impl From<CreateCollation> for Stmt {
32652    #[inline]
32653    fn from(node: CreateCollation) -> Stmt {
32654        Stmt::CreateCollation(node)
32655    }
32656}
32657impl From<CreateConversion> for Stmt {
32658    #[inline]
32659    fn from(node: CreateConversion) -> Stmt {
32660        Stmt::CreateConversion(node)
32661    }
32662}
32663impl From<CreateDatabase> for Stmt {
32664    #[inline]
32665    fn from(node: CreateDatabase) -> Stmt {
32666        Stmt::CreateDatabase(node)
32667    }
32668}
32669impl From<CreateDomain> for Stmt {
32670    #[inline]
32671    fn from(node: CreateDomain) -> Stmt {
32672        Stmt::CreateDomain(node)
32673    }
32674}
32675impl From<CreateEventTrigger> for Stmt {
32676    #[inline]
32677    fn from(node: CreateEventTrigger) -> Stmt {
32678        Stmt::CreateEventTrigger(node)
32679    }
32680}
32681impl From<CreateExtension> for Stmt {
32682    #[inline]
32683    fn from(node: CreateExtension) -> Stmt {
32684        Stmt::CreateExtension(node)
32685    }
32686}
32687impl From<CreateForeignDataWrapper> for Stmt {
32688    #[inline]
32689    fn from(node: CreateForeignDataWrapper) -> Stmt {
32690        Stmt::CreateForeignDataWrapper(node)
32691    }
32692}
32693impl From<CreateForeignTable> for Stmt {
32694    #[inline]
32695    fn from(node: CreateForeignTable) -> Stmt {
32696        Stmt::CreateForeignTable(node)
32697    }
32698}
32699impl From<CreateFunction> for Stmt {
32700    #[inline]
32701    fn from(node: CreateFunction) -> Stmt {
32702        Stmt::CreateFunction(node)
32703    }
32704}
32705impl From<CreateGroup> for Stmt {
32706    #[inline]
32707    fn from(node: CreateGroup) -> Stmt {
32708        Stmt::CreateGroup(node)
32709    }
32710}
32711impl From<CreateIndex> for Stmt {
32712    #[inline]
32713    fn from(node: CreateIndex) -> Stmt {
32714        Stmt::CreateIndex(node)
32715    }
32716}
32717impl From<CreateLanguage> for Stmt {
32718    #[inline]
32719    fn from(node: CreateLanguage) -> Stmt {
32720        Stmt::CreateLanguage(node)
32721    }
32722}
32723impl From<CreateMaterializedView> for Stmt {
32724    #[inline]
32725    fn from(node: CreateMaterializedView) -> Stmt {
32726        Stmt::CreateMaterializedView(node)
32727    }
32728}
32729impl From<CreateOperator> for Stmt {
32730    #[inline]
32731    fn from(node: CreateOperator) -> Stmt {
32732        Stmt::CreateOperator(node)
32733    }
32734}
32735impl From<CreateOperatorClass> for Stmt {
32736    #[inline]
32737    fn from(node: CreateOperatorClass) -> Stmt {
32738        Stmt::CreateOperatorClass(node)
32739    }
32740}
32741impl From<CreateOperatorFamily> for Stmt {
32742    #[inline]
32743    fn from(node: CreateOperatorFamily) -> Stmt {
32744        Stmt::CreateOperatorFamily(node)
32745    }
32746}
32747impl From<CreatePolicy> for Stmt {
32748    #[inline]
32749    fn from(node: CreatePolicy) -> Stmt {
32750        Stmt::CreatePolicy(node)
32751    }
32752}
32753impl From<CreateProcedure> for Stmt {
32754    #[inline]
32755    fn from(node: CreateProcedure) -> Stmt {
32756        Stmt::CreateProcedure(node)
32757    }
32758}
32759impl From<CreatePublication> for Stmt {
32760    #[inline]
32761    fn from(node: CreatePublication) -> Stmt {
32762        Stmt::CreatePublication(node)
32763    }
32764}
32765impl From<CreateRole> for Stmt {
32766    #[inline]
32767    fn from(node: CreateRole) -> Stmt {
32768        Stmt::CreateRole(node)
32769    }
32770}
32771impl From<CreateRule> for Stmt {
32772    #[inline]
32773    fn from(node: CreateRule) -> Stmt {
32774        Stmt::CreateRule(node)
32775    }
32776}
32777impl From<CreateSchema> for Stmt {
32778    #[inline]
32779    fn from(node: CreateSchema) -> Stmt {
32780        Stmt::CreateSchema(node)
32781    }
32782}
32783impl From<CreateSequence> for Stmt {
32784    #[inline]
32785    fn from(node: CreateSequence) -> Stmt {
32786        Stmt::CreateSequence(node)
32787    }
32788}
32789impl From<CreateServer> for Stmt {
32790    #[inline]
32791    fn from(node: CreateServer) -> Stmt {
32792        Stmt::CreateServer(node)
32793    }
32794}
32795impl From<CreateStatistics> for Stmt {
32796    #[inline]
32797    fn from(node: CreateStatistics) -> Stmt {
32798        Stmt::CreateStatistics(node)
32799    }
32800}
32801impl From<CreateSubscription> for Stmt {
32802    #[inline]
32803    fn from(node: CreateSubscription) -> Stmt {
32804        Stmt::CreateSubscription(node)
32805    }
32806}
32807impl From<CreateTable> for Stmt {
32808    #[inline]
32809    fn from(node: CreateTable) -> Stmt {
32810        Stmt::CreateTable(node)
32811    }
32812}
32813impl From<CreateTableAs> for Stmt {
32814    #[inline]
32815    fn from(node: CreateTableAs) -> Stmt {
32816        Stmt::CreateTableAs(node)
32817    }
32818}
32819impl From<CreateTablespace> for Stmt {
32820    #[inline]
32821    fn from(node: CreateTablespace) -> Stmt {
32822        Stmt::CreateTablespace(node)
32823    }
32824}
32825impl From<CreateTextSearchConfiguration> for Stmt {
32826    #[inline]
32827    fn from(node: CreateTextSearchConfiguration) -> Stmt {
32828        Stmt::CreateTextSearchConfiguration(node)
32829    }
32830}
32831impl From<CreateTextSearchDictionary> for Stmt {
32832    #[inline]
32833    fn from(node: CreateTextSearchDictionary) -> Stmt {
32834        Stmt::CreateTextSearchDictionary(node)
32835    }
32836}
32837impl From<CreateTextSearchParser> for Stmt {
32838    #[inline]
32839    fn from(node: CreateTextSearchParser) -> Stmt {
32840        Stmt::CreateTextSearchParser(node)
32841    }
32842}
32843impl From<CreateTextSearchTemplate> for Stmt {
32844    #[inline]
32845    fn from(node: CreateTextSearchTemplate) -> Stmt {
32846        Stmt::CreateTextSearchTemplate(node)
32847    }
32848}
32849impl From<CreateTransform> for Stmt {
32850    #[inline]
32851    fn from(node: CreateTransform) -> Stmt {
32852        Stmt::CreateTransform(node)
32853    }
32854}
32855impl From<CreateTrigger> for Stmt {
32856    #[inline]
32857    fn from(node: CreateTrigger) -> Stmt {
32858        Stmt::CreateTrigger(node)
32859    }
32860}
32861impl From<CreateType> for Stmt {
32862    #[inline]
32863    fn from(node: CreateType) -> Stmt {
32864        Stmt::CreateType(node)
32865    }
32866}
32867impl From<CreateUser> for Stmt {
32868    #[inline]
32869    fn from(node: CreateUser) -> Stmt {
32870        Stmt::CreateUser(node)
32871    }
32872}
32873impl From<CreateUserMapping> for Stmt {
32874    #[inline]
32875    fn from(node: CreateUserMapping) -> Stmt {
32876        Stmt::CreateUserMapping(node)
32877    }
32878}
32879impl From<CreateView> for Stmt {
32880    #[inline]
32881    fn from(node: CreateView) -> Stmt {
32882        Stmt::CreateView(node)
32883    }
32884}
32885impl From<Deallocate> for Stmt {
32886    #[inline]
32887    fn from(node: Deallocate) -> Stmt {
32888        Stmt::Deallocate(node)
32889    }
32890}
32891impl From<Declare> for Stmt {
32892    #[inline]
32893    fn from(node: Declare) -> Stmt {
32894        Stmt::Declare(node)
32895    }
32896}
32897impl From<Delete> for Stmt {
32898    #[inline]
32899    fn from(node: Delete) -> Stmt {
32900        Stmt::Delete(node)
32901    }
32902}
32903impl From<Discard> for Stmt {
32904    #[inline]
32905    fn from(node: Discard) -> Stmt {
32906        Stmt::Discard(node)
32907    }
32908}
32909impl From<Do> for Stmt {
32910    #[inline]
32911    fn from(node: Do) -> Stmt {
32912        Stmt::Do(node)
32913    }
32914}
32915impl From<DropAccessMethod> for Stmt {
32916    #[inline]
32917    fn from(node: DropAccessMethod) -> Stmt {
32918        Stmt::DropAccessMethod(node)
32919    }
32920}
32921impl From<DropAggregate> for Stmt {
32922    #[inline]
32923    fn from(node: DropAggregate) -> Stmt {
32924        Stmt::DropAggregate(node)
32925    }
32926}
32927impl From<DropCast> for Stmt {
32928    #[inline]
32929    fn from(node: DropCast) -> Stmt {
32930        Stmt::DropCast(node)
32931    }
32932}
32933impl From<DropCollation> for Stmt {
32934    #[inline]
32935    fn from(node: DropCollation) -> Stmt {
32936        Stmt::DropCollation(node)
32937    }
32938}
32939impl From<DropConversion> for Stmt {
32940    #[inline]
32941    fn from(node: DropConversion) -> Stmt {
32942        Stmt::DropConversion(node)
32943    }
32944}
32945impl From<DropDatabase> for Stmt {
32946    #[inline]
32947    fn from(node: DropDatabase) -> Stmt {
32948        Stmt::DropDatabase(node)
32949    }
32950}
32951impl From<DropDomain> for Stmt {
32952    #[inline]
32953    fn from(node: DropDomain) -> Stmt {
32954        Stmt::DropDomain(node)
32955    }
32956}
32957impl From<DropEventTrigger> for Stmt {
32958    #[inline]
32959    fn from(node: DropEventTrigger) -> Stmt {
32960        Stmt::DropEventTrigger(node)
32961    }
32962}
32963impl From<DropExtension> for Stmt {
32964    #[inline]
32965    fn from(node: DropExtension) -> Stmt {
32966        Stmt::DropExtension(node)
32967    }
32968}
32969impl From<DropForeignDataWrapper> for Stmt {
32970    #[inline]
32971    fn from(node: DropForeignDataWrapper) -> Stmt {
32972        Stmt::DropForeignDataWrapper(node)
32973    }
32974}
32975impl From<DropForeignTable> for Stmt {
32976    #[inline]
32977    fn from(node: DropForeignTable) -> Stmt {
32978        Stmt::DropForeignTable(node)
32979    }
32980}
32981impl From<DropFunction> for Stmt {
32982    #[inline]
32983    fn from(node: DropFunction) -> Stmt {
32984        Stmt::DropFunction(node)
32985    }
32986}
32987impl From<DropGroup> for Stmt {
32988    #[inline]
32989    fn from(node: DropGroup) -> Stmt {
32990        Stmt::DropGroup(node)
32991    }
32992}
32993impl From<DropIndex> for Stmt {
32994    #[inline]
32995    fn from(node: DropIndex) -> Stmt {
32996        Stmt::DropIndex(node)
32997    }
32998}
32999impl From<DropLanguage> for Stmt {
33000    #[inline]
33001    fn from(node: DropLanguage) -> Stmt {
33002        Stmt::DropLanguage(node)
33003    }
33004}
33005impl From<DropMaterializedView> for Stmt {
33006    #[inline]
33007    fn from(node: DropMaterializedView) -> Stmt {
33008        Stmt::DropMaterializedView(node)
33009    }
33010}
33011impl From<DropOperator> for Stmt {
33012    #[inline]
33013    fn from(node: DropOperator) -> Stmt {
33014        Stmt::DropOperator(node)
33015    }
33016}
33017impl From<DropOperatorClass> for Stmt {
33018    #[inline]
33019    fn from(node: DropOperatorClass) -> Stmt {
33020        Stmt::DropOperatorClass(node)
33021    }
33022}
33023impl From<DropOperatorFamily> for Stmt {
33024    #[inline]
33025    fn from(node: DropOperatorFamily) -> Stmt {
33026        Stmt::DropOperatorFamily(node)
33027    }
33028}
33029impl From<DropOwned> for Stmt {
33030    #[inline]
33031    fn from(node: DropOwned) -> Stmt {
33032        Stmt::DropOwned(node)
33033    }
33034}
33035impl From<DropPolicy> for Stmt {
33036    #[inline]
33037    fn from(node: DropPolicy) -> Stmt {
33038        Stmt::DropPolicy(node)
33039    }
33040}
33041impl From<DropProcedure> for Stmt {
33042    #[inline]
33043    fn from(node: DropProcedure) -> Stmt {
33044        Stmt::DropProcedure(node)
33045    }
33046}
33047impl From<DropPublication> for Stmt {
33048    #[inline]
33049    fn from(node: DropPublication) -> Stmt {
33050        Stmt::DropPublication(node)
33051    }
33052}
33053impl From<DropRole> for Stmt {
33054    #[inline]
33055    fn from(node: DropRole) -> Stmt {
33056        Stmt::DropRole(node)
33057    }
33058}
33059impl From<DropRoutine> for Stmt {
33060    #[inline]
33061    fn from(node: DropRoutine) -> Stmt {
33062        Stmt::DropRoutine(node)
33063    }
33064}
33065impl From<DropRule> for Stmt {
33066    #[inline]
33067    fn from(node: DropRule) -> Stmt {
33068        Stmt::DropRule(node)
33069    }
33070}
33071impl From<DropSchema> for Stmt {
33072    #[inline]
33073    fn from(node: DropSchema) -> Stmt {
33074        Stmt::DropSchema(node)
33075    }
33076}
33077impl From<DropSequence> for Stmt {
33078    #[inline]
33079    fn from(node: DropSequence) -> Stmt {
33080        Stmt::DropSequence(node)
33081    }
33082}
33083impl From<DropServer> for Stmt {
33084    #[inline]
33085    fn from(node: DropServer) -> Stmt {
33086        Stmt::DropServer(node)
33087    }
33088}
33089impl From<DropStatistics> for Stmt {
33090    #[inline]
33091    fn from(node: DropStatistics) -> Stmt {
33092        Stmt::DropStatistics(node)
33093    }
33094}
33095impl From<DropSubscription> for Stmt {
33096    #[inline]
33097    fn from(node: DropSubscription) -> Stmt {
33098        Stmt::DropSubscription(node)
33099    }
33100}
33101impl From<DropTable> for Stmt {
33102    #[inline]
33103    fn from(node: DropTable) -> Stmt {
33104        Stmt::DropTable(node)
33105    }
33106}
33107impl From<DropTablespace> for Stmt {
33108    #[inline]
33109    fn from(node: DropTablespace) -> Stmt {
33110        Stmt::DropTablespace(node)
33111    }
33112}
33113impl From<DropTextSearchConfig> for Stmt {
33114    #[inline]
33115    fn from(node: DropTextSearchConfig) -> Stmt {
33116        Stmt::DropTextSearchConfig(node)
33117    }
33118}
33119impl From<DropTextSearchDict> for Stmt {
33120    #[inline]
33121    fn from(node: DropTextSearchDict) -> Stmt {
33122        Stmt::DropTextSearchDict(node)
33123    }
33124}
33125impl From<DropTextSearchParser> for Stmt {
33126    #[inline]
33127    fn from(node: DropTextSearchParser) -> Stmt {
33128        Stmt::DropTextSearchParser(node)
33129    }
33130}
33131impl From<DropTextSearchTemplate> for Stmt {
33132    #[inline]
33133    fn from(node: DropTextSearchTemplate) -> Stmt {
33134        Stmt::DropTextSearchTemplate(node)
33135    }
33136}
33137impl From<DropTransform> for Stmt {
33138    #[inline]
33139    fn from(node: DropTransform) -> Stmt {
33140        Stmt::DropTransform(node)
33141    }
33142}
33143impl From<DropTrigger> for Stmt {
33144    #[inline]
33145    fn from(node: DropTrigger) -> Stmt {
33146        Stmt::DropTrigger(node)
33147    }
33148}
33149impl From<DropType> for Stmt {
33150    #[inline]
33151    fn from(node: DropType) -> Stmt {
33152        Stmt::DropType(node)
33153    }
33154}
33155impl From<DropUser> for Stmt {
33156    #[inline]
33157    fn from(node: DropUser) -> Stmt {
33158        Stmt::DropUser(node)
33159    }
33160}
33161impl From<DropUserMapping> for Stmt {
33162    #[inline]
33163    fn from(node: DropUserMapping) -> Stmt {
33164        Stmt::DropUserMapping(node)
33165    }
33166}
33167impl From<DropView> for Stmt {
33168    #[inline]
33169    fn from(node: DropView) -> Stmt {
33170        Stmt::DropView(node)
33171    }
33172}
33173impl From<Execute> for Stmt {
33174    #[inline]
33175    fn from(node: Execute) -> Stmt {
33176        Stmt::Execute(node)
33177    }
33178}
33179impl From<Explain> for Stmt {
33180    #[inline]
33181    fn from(node: Explain) -> Stmt {
33182        Stmt::Explain(node)
33183    }
33184}
33185impl From<Fetch> for Stmt {
33186    #[inline]
33187    fn from(node: Fetch) -> Stmt {
33188        Stmt::Fetch(node)
33189    }
33190}
33191impl From<Grant> for Stmt {
33192    #[inline]
33193    fn from(node: Grant) -> Stmt {
33194        Stmt::Grant(node)
33195    }
33196}
33197impl From<ImportForeignSchema> for Stmt {
33198    #[inline]
33199    fn from(node: ImportForeignSchema) -> Stmt {
33200        Stmt::ImportForeignSchema(node)
33201    }
33202}
33203impl From<Insert> for Stmt {
33204    #[inline]
33205    fn from(node: Insert) -> Stmt {
33206        Stmt::Insert(node)
33207    }
33208}
33209impl From<Listen> for Stmt {
33210    #[inline]
33211    fn from(node: Listen) -> Stmt {
33212        Stmt::Listen(node)
33213    }
33214}
33215impl From<Load> for Stmt {
33216    #[inline]
33217    fn from(node: Load) -> Stmt {
33218        Stmt::Load(node)
33219    }
33220}
33221impl From<Lock> for Stmt {
33222    #[inline]
33223    fn from(node: Lock) -> Stmt {
33224        Stmt::Lock(node)
33225    }
33226}
33227impl From<Merge> for Stmt {
33228    #[inline]
33229    fn from(node: Merge) -> Stmt {
33230        Stmt::Merge(node)
33231    }
33232}
33233impl From<Move> for Stmt {
33234    #[inline]
33235    fn from(node: Move) -> Stmt {
33236        Stmt::Move(node)
33237    }
33238}
33239impl From<Notify> for Stmt {
33240    #[inline]
33241    fn from(node: Notify) -> Stmt {
33242        Stmt::Notify(node)
33243    }
33244}
33245impl From<ParenSelect> for Stmt {
33246    #[inline]
33247    fn from(node: ParenSelect) -> Stmt {
33248        Stmt::ParenSelect(node)
33249    }
33250}
33251impl From<Prepare> for Stmt {
33252    #[inline]
33253    fn from(node: Prepare) -> Stmt {
33254        Stmt::Prepare(node)
33255    }
33256}
33257impl From<PrepareTransaction> for Stmt {
33258    #[inline]
33259    fn from(node: PrepareTransaction) -> Stmt {
33260        Stmt::PrepareTransaction(node)
33261    }
33262}
33263impl From<Reassign> for Stmt {
33264    #[inline]
33265    fn from(node: Reassign) -> Stmt {
33266        Stmt::Reassign(node)
33267    }
33268}
33269impl From<Refresh> for Stmt {
33270    #[inline]
33271    fn from(node: Refresh) -> Stmt {
33272        Stmt::Refresh(node)
33273    }
33274}
33275impl From<Reindex> for Stmt {
33276    #[inline]
33277    fn from(node: Reindex) -> Stmt {
33278        Stmt::Reindex(node)
33279    }
33280}
33281impl From<ReleaseSavepoint> for Stmt {
33282    #[inline]
33283    fn from(node: ReleaseSavepoint) -> Stmt {
33284        Stmt::ReleaseSavepoint(node)
33285    }
33286}
33287impl From<Reset> for Stmt {
33288    #[inline]
33289    fn from(node: Reset) -> Stmt {
33290        Stmt::Reset(node)
33291    }
33292}
33293impl From<ResetSessionAuth> for Stmt {
33294    #[inline]
33295    fn from(node: ResetSessionAuth) -> Stmt {
33296        Stmt::ResetSessionAuth(node)
33297    }
33298}
33299impl From<Revoke> for Stmt {
33300    #[inline]
33301    fn from(node: Revoke) -> Stmt {
33302        Stmt::Revoke(node)
33303    }
33304}
33305impl From<Rollback> for Stmt {
33306    #[inline]
33307    fn from(node: Rollback) -> Stmt {
33308        Stmt::Rollback(node)
33309    }
33310}
33311impl From<Savepoint> for Stmt {
33312    #[inline]
33313    fn from(node: Savepoint) -> Stmt {
33314        Stmt::Savepoint(node)
33315    }
33316}
33317impl From<SecurityLabel> for Stmt {
33318    #[inline]
33319    fn from(node: SecurityLabel) -> Stmt {
33320        Stmt::SecurityLabel(node)
33321    }
33322}
33323impl From<Select> for Stmt {
33324    #[inline]
33325    fn from(node: Select) -> Stmt {
33326        Stmt::Select(node)
33327    }
33328}
33329impl From<SelectInto> for Stmt {
33330    #[inline]
33331    fn from(node: SelectInto) -> Stmt {
33332        Stmt::SelectInto(node)
33333    }
33334}
33335impl From<Set> for Stmt {
33336    #[inline]
33337    fn from(node: Set) -> Stmt {
33338        Stmt::Set(node)
33339    }
33340}
33341impl From<SetConstraints> for Stmt {
33342    #[inline]
33343    fn from(node: SetConstraints) -> Stmt {
33344        Stmt::SetConstraints(node)
33345    }
33346}
33347impl From<SetRole> for Stmt {
33348    #[inline]
33349    fn from(node: SetRole) -> Stmt {
33350        Stmt::SetRole(node)
33351    }
33352}
33353impl From<SetSessionAuth> for Stmt {
33354    #[inline]
33355    fn from(node: SetSessionAuth) -> Stmt {
33356        Stmt::SetSessionAuth(node)
33357    }
33358}
33359impl From<SetTransaction> for Stmt {
33360    #[inline]
33361    fn from(node: SetTransaction) -> Stmt {
33362        Stmt::SetTransaction(node)
33363    }
33364}
33365impl From<Show> for Stmt {
33366    #[inline]
33367    fn from(node: Show) -> Stmt {
33368        Stmt::Show(node)
33369    }
33370}
33371impl From<Table> for Stmt {
33372    #[inline]
33373    fn from(node: Table) -> Stmt {
33374        Stmt::Table(node)
33375    }
33376}
33377impl From<Truncate> for Stmt {
33378    #[inline]
33379    fn from(node: Truncate) -> Stmt {
33380        Stmt::Truncate(node)
33381    }
33382}
33383impl From<Unlisten> for Stmt {
33384    #[inline]
33385    fn from(node: Unlisten) -> Stmt {
33386        Stmt::Unlisten(node)
33387    }
33388}
33389impl From<Update> for Stmt {
33390    #[inline]
33391    fn from(node: Update) -> Stmt {
33392        Stmt::Update(node)
33393    }
33394}
33395impl From<Vacuum> for Stmt {
33396    #[inline]
33397    fn from(node: Vacuum) -> Stmt {
33398        Stmt::Vacuum(node)
33399    }
33400}
33401impl From<Values> for Stmt {
33402    #[inline]
33403    fn from(node: Values) -> Stmt {
33404        Stmt::Values(node)
33405    }
33406}
33407impl AstNode for TableArg {
33408    #[inline]
33409    fn can_cast(kind: SyntaxKind) -> bool {
33410        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
33411    }
33412    #[inline]
33413    fn cast(syntax: SyntaxNode) -> Option<Self> {
33414        let res = match syntax.kind() {
33415            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
33416            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
33417            _ => {
33418                if let Some(result) = TableConstraint::cast(syntax) {
33419                    return Some(TableArg::TableConstraint(result));
33420                }
33421                return None;
33422            }
33423        };
33424        Some(res)
33425    }
33426    #[inline]
33427    fn syntax(&self) -> &SyntaxNode {
33428        match self {
33429            TableArg::Column(it) => &it.syntax,
33430            TableArg::LikeClause(it) => &it.syntax,
33431            TableArg::TableConstraint(it) => it.syntax(),
33432        }
33433    }
33434}
33435impl From<Column> for TableArg {
33436    #[inline]
33437    fn from(node: Column) -> TableArg {
33438        TableArg::Column(node)
33439    }
33440}
33441impl From<LikeClause> for TableArg {
33442    #[inline]
33443    fn from(node: LikeClause) -> TableArg {
33444        TableArg::LikeClause(node)
33445    }
33446}
33447impl AstNode for TableConstraint {
33448    #[inline]
33449    fn can_cast(kind: SyntaxKind) -> bool {
33450        matches!(
33451            kind,
33452            SyntaxKind::CHECK_CONSTRAINT
33453                | SyntaxKind::EXCLUDE_CONSTRAINT
33454                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
33455                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
33456                | SyntaxKind::UNIQUE_CONSTRAINT
33457        )
33458    }
33459    #[inline]
33460    fn cast(syntax: SyntaxNode) -> Option<Self> {
33461        let res = match syntax.kind() {
33462            SyntaxKind::CHECK_CONSTRAINT => {
33463                TableConstraint::CheckConstraint(CheckConstraint { syntax })
33464            }
33465            SyntaxKind::EXCLUDE_CONSTRAINT => {
33466                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
33467            }
33468            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
33469                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
33470            }
33471            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
33472                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
33473            }
33474            SyntaxKind::UNIQUE_CONSTRAINT => {
33475                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
33476            }
33477            _ => {
33478                return None;
33479            }
33480        };
33481        Some(res)
33482    }
33483    #[inline]
33484    fn syntax(&self) -> &SyntaxNode {
33485        match self {
33486            TableConstraint::CheckConstraint(it) => &it.syntax,
33487            TableConstraint::ExcludeConstraint(it) => &it.syntax,
33488            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
33489            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
33490            TableConstraint::UniqueConstraint(it) => &it.syntax,
33491        }
33492    }
33493}
33494impl From<CheckConstraint> for TableConstraint {
33495    #[inline]
33496    fn from(node: CheckConstraint) -> TableConstraint {
33497        TableConstraint::CheckConstraint(node)
33498    }
33499}
33500impl From<ExcludeConstraint> for TableConstraint {
33501    #[inline]
33502    fn from(node: ExcludeConstraint) -> TableConstraint {
33503        TableConstraint::ExcludeConstraint(node)
33504    }
33505}
33506impl From<ForeignKeyConstraint> for TableConstraint {
33507    #[inline]
33508    fn from(node: ForeignKeyConstraint) -> TableConstraint {
33509        TableConstraint::ForeignKeyConstraint(node)
33510    }
33511}
33512impl From<PrimaryKeyConstraint> for TableConstraint {
33513    #[inline]
33514    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
33515        TableConstraint::PrimaryKeyConstraint(node)
33516    }
33517}
33518impl From<UniqueConstraint> for TableConstraint {
33519    #[inline]
33520    fn from(node: UniqueConstraint) -> TableConstraint {
33521        TableConstraint::UniqueConstraint(node)
33522    }
33523}
33524impl AstNode for Timezone {
33525    #[inline]
33526    fn can_cast(kind: SyntaxKind) -> bool {
33527        matches!(
33528            kind,
33529            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
33530        )
33531    }
33532    #[inline]
33533    fn cast(syntax: SyntaxNode) -> Option<Self> {
33534        let res = match syntax.kind() {
33535            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
33536            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
33537            _ => {
33538                return None;
33539            }
33540        };
33541        Some(res)
33542    }
33543    #[inline]
33544    fn syntax(&self) -> &SyntaxNode {
33545        match self {
33546            Timezone::WithTimezone(it) => &it.syntax,
33547            Timezone::WithoutTimezone(it) => &it.syntax,
33548        }
33549    }
33550}
33551impl From<WithTimezone> for Timezone {
33552    #[inline]
33553    fn from(node: WithTimezone) -> Timezone {
33554        Timezone::WithTimezone(node)
33555    }
33556}
33557impl From<WithoutTimezone> for Timezone {
33558    #[inline]
33559    fn from(node: WithoutTimezone) -> Timezone {
33560        Timezone::WithoutTimezone(node)
33561    }
33562}
33563impl AstNode for TransactionMode {
33564    #[inline]
33565    fn can_cast(kind: SyntaxKind) -> bool {
33566        matches!(
33567            kind,
33568            SyntaxKind::DEFERRABLE
33569                | SyntaxKind::NOT_DEFERRABLE
33570                | SyntaxKind::READ_COMMITTED
33571                | SyntaxKind::READ_ONLY
33572                | SyntaxKind::READ_UNCOMMITTED
33573                | SyntaxKind::READ_WRITE
33574                | SyntaxKind::REPEATABLE_READ
33575                | SyntaxKind::SERIALIZABLE
33576        )
33577    }
33578    #[inline]
33579    fn cast(syntax: SyntaxNode) -> Option<Self> {
33580        let res = match syntax.kind() {
33581            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
33582            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
33583            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
33584            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
33585            SyntaxKind::READ_UNCOMMITTED => {
33586                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
33587            }
33588            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
33589            SyntaxKind::REPEATABLE_READ => {
33590                TransactionMode::RepeatableRead(RepeatableRead { syntax })
33591            }
33592            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
33593            _ => {
33594                return None;
33595            }
33596        };
33597        Some(res)
33598    }
33599    #[inline]
33600    fn syntax(&self) -> &SyntaxNode {
33601        match self {
33602            TransactionMode::Deferrable(it) => &it.syntax,
33603            TransactionMode::NotDeferrable(it) => &it.syntax,
33604            TransactionMode::ReadCommitted(it) => &it.syntax,
33605            TransactionMode::ReadOnly(it) => &it.syntax,
33606            TransactionMode::ReadUncommitted(it) => &it.syntax,
33607            TransactionMode::ReadWrite(it) => &it.syntax,
33608            TransactionMode::RepeatableRead(it) => &it.syntax,
33609            TransactionMode::Serializable(it) => &it.syntax,
33610        }
33611    }
33612}
33613impl From<Deferrable> for TransactionMode {
33614    #[inline]
33615    fn from(node: Deferrable) -> TransactionMode {
33616        TransactionMode::Deferrable(node)
33617    }
33618}
33619impl From<NotDeferrable> for TransactionMode {
33620    #[inline]
33621    fn from(node: NotDeferrable) -> TransactionMode {
33622        TransactionMode::NotDeferrable(node)
33623    }
33624}
33625impl From<ReadCommitted> for TransactionMode {
33626    #[inline]
33627    fn from(node: ReadCommitted) -> TransactionMode {
33628        TransactionMode::ReadCommitted(node)
33629    }
33630}
33631impl From<ReadOnly> for TransactionMode {
33632    #[inline]
33633    fn from(node: ReadOnly) -> TransactionMode {
33634        TransactionMode::ReadOnly(node)
33635    }
33636}
33637impl From<ReadUncommitted> for TransactionMode {
33638    #[inline]
33639    fn from(node: ReadUncommitted) -> TransactionMode {
33640        TransactionMode::ReadUncommitted(node)
33641    }
33642}
33643impl From<ReadWrite> for TransactionMode {
33644    #[inline]
33645    fn from(node: ReadWrite) -> TransactionMode {
33646        TransactionMode::ReadWrite(node)
33647    }
33648}
33649impl From<RepeatableRead> for TransactionMode {
33650    #[inline]
33651    fn from(node: RepeatableRead) -> TransactionMode {
33652        TransactionMode::RepeatableRead(node)
33653    }
33654}
33655impl From<Serializable> for TransactionMode {
33656    #[inline]
33657    fn from(node: Serializable) -> TransactionMode {
33658        TransactionMode::Serializable(node)
33659    }
33660}
33661impl AstNode for Type {
33662    #[inline]
33663    fn can_cast(kind: SyntaxKind) -> bool {
33664        matches!(
33665            kind,
33666            SyntaxKind::ARRAY_TYPE
33667                | SyntaxKind::BIT_TYPE
33668                | SyntaxKind::CHAR_TYPE
33669                | SyntaxKind::DOUBLE_TYPE
33670                | SyntaxKind::EXPR_TYPE
33671                | SyntaxKind::INTERVAL_TYPE
33672                | SyntaxKind::PATH_TYPE
33673                | SyntaxKind::PERCENT_TYPE
33674                | SyntaxKind::TIME_TYPE
33675        )
33676    }
33677    #[inline]
33678    fn cast(syntax: SyntaxNode) -> Option<Self> {
33679        let res = match syntax.kind() {
33680            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
33681            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
33682            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
33683            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
33684            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
33685            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
33686            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
33687            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
33688            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
33689            _ => {
33690                return None;
33691            }
33692        };
33693        Some(res)
33694    }
33695    #[inline]
33696    fn syntax(&self) -> &SyntaxNode {
33697        match self {
33698            Type::ArrayType(it) => &it.syntax,
33699            Type::BitType(it) => &it.syntax,
33700            Type::CharType(it) => &it.syntax,
33701            Type::DoubleType(it) => &it.syntax,
33702            Type::ExprType(it) => &it.syntax,
33703            Type::IntervalType(it) => &it.syntax,
33704            Type::PathType(it) => &it.syntax,
33705            Type::PercentType(it) => &it.syntax,
33706            Type::TimeType(it) => &it.syntax,
33707        }
33708    }
33709}
33710impl From<ArrayType> for Type {
33711    #[inline]
33712    fn from(node: ArrayType) -> Type {
33713        Type::ArrayType(node)
33714    }
33715}
33716impl From<BitType> for Type {
33717    #[inline]
33718    fn from(node: BitType) -> Type {
33719        Type::BitType(node)
33720    }
33721}
33722impl From<CharType> for Type {
33723    #[inline]
33724    fn from(node: CharType) -> Type {
33725        Type::CharType(node)
33726    }
33727}
33728impl From<DoubleType> for Type {
33729    #[inline]
33730    fn from(node: DoubleType) -> Type {
33731        Type::DoubleType(node)
33732    }
33733}
33734impl From<ExprType> for Type {
33735    #[inline]
33736    fn from(node: ExprType) -> Type {
33737        Type::ExprType(node)
33738    }
33739}
33740impl From<IntervalType> for Type {
33741    #[inline]
33742    fn from(node: IntervalType) -> Type {
33743        Type::IntervalType(node)
33744    }
33745}
33746impl From<PathType> for Type {
33747    #[inline]
33748    fn from(node: PathType) -> Type {
33749        Type::PathType(node)
33750    }
33751}
33752impl From<PercentType> for Type {
33753    #[inline]
33754    fn from(node: PercentType) -> Type {
33755        Type::PercentType(node)
33756    }
33757}
33758impl From<TimeType> for Type {
33759    #[inline]
33760    fn from(node: TimeType) -> Type {
33761        Type::TimeType(node)
33762    }
33763}
33764impl AstNode for WithQuery {
33765    #[inline]
33766    fn can_cast(kind: SyntaxKind) -> bool {
33767        matches!(
33768            kind,
33769            SyntaxKind::COMPOUND_SELECT
33770                | SyntaxKind::DELETE
33771                | SyntaxKind::INSERT
33772                | SyntaxKind::MERGE
33773                | SyntaxKind::PAREN_SELECT
33774                | SyntaxKind::SELECT
33775                | SyntaxKind::TABLE
33776                | SyntaxKind::UPDATE
33777                | SyntaxKind::VALUES
33778        )
33779    }
33780    #[inline]
33781    fn cast(syntax: SyntaxNode) -> Option<Self> {
33782        let res = match syntax.kind() {
33783            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
33784            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
33785            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
33786            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
33787            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
33788            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
33789            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
33790            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
33791            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
33792            _ => {
33793                return None;
33794            }
33795        };
33796        Some(res)
33797    }
33798    #[inline]
33799    fn syntax(&self) -> &SyntaxNode {
33800        match self {
33801            WithQuery::CompoundSelect(it) => &it.syntax,
33802            WithQuery::Delete(it) => &it.syntax,
33803            WithQuery::Insert(it) => &it.syntax,
33804            WithQuery::Merge(it) => &it.syntax,
33805            WithQuery::ParenSelect(it) => &it.syntax,
33806            WithQuery::Select(it) => &it.syntax,
33807            WithQuery::Table(it) => &it.syntax,
33808            WithQuery::Update(it) => &it.syntax,
33809            WithQuery::Values(it) => &it.syntax,
33810        }
33811    }
33812}
33813impl From<CompoundSelect> for WithQuery {
33814    #[inline]
33815    fn from(node: CompoundSelect) -> WithQuery {
33816        WithQuery::CompoundSelect(node)
33817    }
33818}
33819impl From<Delete> for WithQuery {
33820    #[inline]
33821    fn from(node: Delete) -> WithQuery {
33822        WithQuery::Delete(node)
33823    }
33824}
33825impl From<Insert> for WithQuery {
33826    #[inline]
33827    fn from(node: Insert) -> WithQuery {
33828        WithQuery::Insert(node)
33829    }
33830}
33831impl From<Merge> for WithQuery {
33832    #[inline]
33833    fn from(node: Merge) -> WithQuery {
33834        WithQuery::Merge(node)
33835    }
33836}
33837impl From<ParenSelect> for WithQuery {
33838    #[inline]
33839    fn from(node: ParenSelect) -> WithQuery {
33840        WithQuery::ParenSelect(node)
33841    }
33842}
33843impl From<Select> for WithQuery {
33844    #[inline]
33845    fn from(node: Select) -> WithQuery {
33846        WithQuery::Select(node)
33847    }
33848}
33849impl From<Table> for WithQuery {
33850    #[inline]
33851    fn from(node: Table) -> WithQuery {
33852        WithQuery::Table(node)
33853    }
33854}
33855impl From<Update> for WithQuery {
33856    #[inline]
33857    fn from(node: Update) -> WithQuery {
33858        WithQuery::Update(node)
33859    }
33860}
33861impl From<Values> for WithQuery {
33862    #[inline]
33863    fn from(node: Values) -> WithQuery {
33864        WithQuery::Values(node)
33865    }
33866}