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    #[inline]
2125    pub fn not_token(&self) -> Option<SyntaxToken> {
2126        support::token(&self.syntax, SyntaxKind::NOT_KW)
2127    }
2128    #[inline]
2129    pub fn symmetric_token(&self) -> Option<SyntaxToken> {
2130        support::token(&self.syntax, SyntaxKind::SYMMETRIC_KW)
2131    }
2132}
2133
2134#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2135pub struct BinExpr {
2136    pub(crate) syntax: SyntaxNode,
2137}
2138impl BinExpr {}
2139
2140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2141pub struct BitType {
2142    pub(crate) syntax: SyntaxNode,
2143}
2144impl BitType {
2145    #[inline]
2146    pub fn arg_list(&self) -> Option<ArgList> {
2147        support::child(&self.syntax)
2148    }
2149    #[inline]
2150    pub fn bit_token(&self) -> Option<SyntaxToken> {
2151        support::token(&self.syntax, SyntaxKind::BIT_KW)
2152    }
2153    #[inline]
2154    pub fn varying_token(&self) -> Option<SyntaxToken> {
2155        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2156    }
2157}
2158
2159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2160pub struct Call {
2161    pub(crate) syntax: SyntaxNode,
2162}
2163impl Call {
2164    #[inline]
2165    pub fn arg_list(&self) -> Option<ArgList> {
2166        support::child(&self.syntax)
2167    }
2168    #[inline]
2169    pub fn path(&self) -> Option<Path> {
2170        support::child(&self.syntax)
2171    }
2172    #[inline]
2173    pub fn call_token(&self) -> Option<SyntaxToken> {
2174        support::token(&self.syntax, SyntaxKind::CALL_KW)
2175    }
2176}
2177
2178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2179pub struct CallExpr {
2180    pub(crate) syntax: SyntaxNode,
2181}
2182impl CallExpr {
2183    #[inline]
2184    pub fn all_fn(&self) -> Option<AllFn> {
2185        support::child(&self.syntax)
2186    }
2187    #[inline]
2188    pub fn any_fn(&self) -> Option<AnyFn> {
2189        support::child(&self.syntax)
2190    }
2191    #[inline]
2192    pub fn arg_list(&self) -> Option<ArgList> {
2193        support::child(&self.syntax)
2194    }
2195    #[inline]
2196    pub fn collation_for_fn(&self) -> Option<CollationForFn> {
2197        support::child(&self.syntax)
2198    }
2199    #[inline]
2200    pub fn exists_fn(&self) -> Option<ExistsFn> {
2201        support::child(&self.syntax)
2202    }
2203    #[inline]
2204    pub fn expr(&self) -> Option<Expr> {
2205        support::child(&self.syntax)
2206    }
2207    #[inline]
2208    pub fn extract_fn(&self) -> Option<ExtractFn> {
2209        support::child(&self.syntax)
2210    }
2211    #[inline]
2212    pub fn filter_clause(&self) -> Option<FilterClause> {
2213        support::child(&self.syntax)
2214    }
2215    #[inline]
2216    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
2217        support::child(&self.syntax)
2218    }
2219    #[inline]
2220    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
2221        support::child(&self.syntax)
2222    }
2223    #[inline]
2224    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
2225        support::child(&self.syntax)
2226    }
2227    #[inline]
2228    pub fn json_fn(&self) -> Option<JsonFn> {
2229        support::child(&self.syntax)
2230    }
2231    #[inline]
2232    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
2233        support::child(&self.syntax)
2234    }
2235    #[inline]
2236    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
2237        support::child(&self.syntax)
2238    }
2239    #[inline]
2240    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
2241        support::child(&self.syntax)
2242    }
2243    #[inline]
2244    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
2245        support::child(&self.syntax)
2246    }
2247    #[inline]
2248    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
2249        support::child(&self.syntax)
2250    }
2251    #[inline]
2252    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
2253        support::child(&self.syntax)
2254    }
2255    #[inline]
2256    pub fn over_clause(&self) -> Option<OverClause> {
2257        support::child(&self.syntax)
2258    }
2259    #[inline]
2260    pub fn overlay_fn(&self) -> Option<OverlayFn> {
2261        support::child(&self.syntax)
2262    }
2263    #[inline]
2264    pub fn position_fn(&self) -> Option<PositionFn> {
2265        support::child(&self.syntax)
2266    }
2267    #[inline]
2268    pub fn some_fn(&self) -> Option<SomeFn> {
2269        support::child(&self.syntax)
2270    }
2271    #[inline]
2272    pub fn substring_fn(&self) -> Option<SubstringFn> {
2273        support::child(&self.syntax)
2274    }
2275    #[inline]
2276    pub fn trim_fn(&self) -> Option<TrimFn> {
2277        support::child(&self.syntax)
2278    }
2279    #[inline]
2280    pub fn within_clause(&self) -> Option<WithinClause> {
2281        support::child(&self.syntax)
2282    }
2283    #[inline]
2284    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
2285        support::child(&self.syntax)
2286    }
2287    #[inline]
2288    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
2289        support::child(&self.syntax)
2290    }
2291    #[inline]
2292    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
2293        support::child(&self.syntax)
2294    }
2295    #[inline]
2296    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
2297        support::child(&self.syntax)
2298    }
2299    #[inline]
2300    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
2301        support::child(&self.syntax)
2302    }
2303    #[inline]
2304    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
2305        support::child(&self.syntax)
2306    }
2307    #[inline]
2308    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
2309        support::child(&self.syntax)
2310    }
2311}
2312
2313#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2314pub struct Cascade {
2315    pub(crate) syntax: SyntaxNode,
2316}
2317impl Cascade {
2318    #[inline]
2319    pub fn cascade_token(&self) -> Option<SyntaxToken> {
2320        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
2321    }
2322}
2323
2324#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2325pub struct CaseExpr {
2326    pub(crate) syntax: SyntaxNode,
2327}
2328impl CaseExpr {
2329    #[inline]
2330    pub fn else_clause(&self) -> Option<ElseClause> {
2331        support::child(&self.syntax)
2332    }
2333    #[inline]
2334    pub fn expr(&self) -> Option<Expr> {
2335        support::child(&self.syntax)
2336    }
2337    #[inline]
2338    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
2339        support::child(&self.syntax)
2340    }
2341    #[inline]
2342    pub fn case_token(&self) -> Option<SyntaxToken> {
2343        support::token(&self.syntax, SyntaxKind::CASE_KW)
2344    }
2345}
2346
2347#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2348pub struct CastExpr {
2349    pub(crate) syntax: SyntaxNode,
2350}
2351impl CastExpr {
2352    #[inline]
2353    pub fn colon_colon(&self) -> Option<ColonColon> {
2354        support::child(&self.syntax)
2355    }
2356    #[inline]
2357    pub fn expr(&self) -> Option<Expr> {
2358        support::child(&self.syntax)
2359    }
2360    #[inline]
2361    pub fn literal(&self) -> Option<Literal> {
2362        support::child(&self.syntax)
2363    }
2364    #[inline]
2365    pub fn ty(&self) -> Option<Type> {
2366        support::child(&self.syntax)
2367    }
2368    #[inline]
2369    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2370        support::token(&self.syntax, SyntaxKind::L_PAREN)
2371    }
2372    #[inline]
2373    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2374        support::token(&self.syntax, SyntaxKind::R_PAREN)
2375    }
2376    #[inline]
2377    pub fn as_token(&self) -> Option<SyntaxToken> {
2378        support::token(&self.syntax, SyntaxKind::AS_KW)
2379    }
2380    #[inline]
2381    pub fn cast_token(&self) -> Option<SyntaxToken> {
2382        support::token(&self.syntax, SyntaxKind::CAST_KW)
2383    }
2384    #[inline]
2385    pub fn treat_token(&self) -> Option<SyntaxToken> {
2386        support::token(&self.syntax, SyntaxKind::TREAT_KW)
2387    }
2388}
2389
2390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2391pub struct CastSig {
2392    pub(crate) syntax: SyntaxNode,
2393}
2394impl CastSig {
2395    #[inline]
2396    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2397        support::token(&self.syntax, SyntaxKind::L_PAREN)
2398    }
2399    #[inline]
2400    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2401        support::token(&self.syntax, SyntaxKind::R_PAREN)
2402    }
2403    #[inline]
2404    pub fn as_token(&self) -> Option<SyntaxToken> {
2405        support::token(&self.syntax, SyntaxKind::AS_KW)
2406    }
2407}
2408
2409#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2410pub struct CharType {
2411    pub(crate) syntax: SyntaxNode,
2412}
2413impl CharType {
2414    #[inline]
2415    pub fn arg_list(&self) -> Option<ArgList> {
2416        support::child(&self.syntax)
2417    }
2418    #[inline]
2419    pub fn char_token(&self) -> Option<SyntaxToken> {
2420        support::token(&self.syntax, SyntaxKind::CHAR_KW)
2421    }
2422    #[inline]
2423    pub fn character_token(&self) -> Option<SyntaxToken> {
2424        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
2425    }
2426    #[inline]
2427    pub fn nchar_token(&self) -> Option<SyntaxToken> {
2428        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2429    }
2430    #[inline]
2431    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2432        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2433    }
2434    #[inline]
2435    pub fn varying_token(&self) -> Option<SyntaxToken> {
2436        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2437    }
2438}
2439
2440#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2441pub struct CheckConstraint {
2442    pub(crate) syntax: SyntaxNode,
2443}
2444impl CheckConstraint {
2445    #[inline]
2446    pub fn constraint_name(&self) -> Option<ConstraintName> {
2447        support::child(&self.syntax)
2448    }
2449    #[inline]
2450    pub fn expr(&self) -> Option<Expr> {
2451        support::child(&self.syntax)
2452    }
2453    #[inline]
2454    pub fn no_inherit(&self) -> Option<NoInherit> {
2455        support::child(&self.syntax)
2456    }
2457    #[inline]
2458    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2459        support::token(&self.syntax, SyntaxKind::L_PAREN)
2460    }
2461    #[inline]
2462    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2463        support::token(&self.syntax, SyntaxKind::R_PAREN)
2464    }
2465    #[inline]
2466    pub fn check_token(&self) -> Option<SyntaxToken> {
2467        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2468    }
2469}
2470
2471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2472pub struct Checkpoint {
2473    pub(crate) syntax: SyntaxNode,
2474}
2475impl Checkpoint {
2476    #[inline]
2477    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
2478        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
2479    }
2480}
2481
2482#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2483pub struct Close {
2484    pub(crate) syntax: SyntaxNode,
2485}
2486impl Close {
2487    #[inline]
2488    pub fn name_ref(&self) -> Option<NameRef> {
2489        support::child(&self.syntax)
2490    }
2491    #[inline]
2492    pub fn close_token(&self) -> Option<SyntaxToken> {
2493        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
2494    }
2495}
2496
2497#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2498pub struct Cluster {
2499    pub(crate) syntax: SyntaxNode,
2500}
2501impl Cluster {
2502    #[inline]
2503    pub fn option_item_list(&self) -> Option<OptionItemList> {
2504        support::child(&self.syntax)
2505    }
2506    #[inline]
2507    pub fn path(&self) -> Option<Path> {
2508        support::child(&self.syntax)
2509    }
2510    #[inline]
2511    pub fn using_method(&self) -> Option<UsingMethod> {
2512        support::child(&self.syntax)
2513    }
2514    #[inline]
2515    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2516        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2517    }
2518    #[inline]
2519    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2520        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2521    }
2522}
2523
2524#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2525pub struct ClusterOn {
2526    pub(crate) syntax: SyntaxNode,
2527}
2528impl ClusterOn {
2529    #[inline]
2530    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2531        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2532    }
2533    #[inline]
2534    pub fn on_token(&self) -> Option<SyntaxToken> {
2535        support::token(&self.syntax, SyntaxKind::ON_KW)
2536    }
2537}
2538
2539#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2540pub struct Collate {
2541    pub(crate) syntax: SyntaxNode,
2542}
2543impl Collate {
2544    #[inline]
2545    pub fn path(&self) -> Option<Path> {
2546        support::child(&self.syntax)
2547    }
2548    #[inline]
2549    pub fn collate_token(&self) -> Option<SyntaxToken> {
2550        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
2551    }
2552}
2553
2554#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2555pub struct CollationForFn {
2556    pub(crate) syntax: SyntaxNode,
2557}
2558impl CollationForFn {
2559    #[inline]
2560    pub fn expr(&self) -> Option<Expr> {
2561        support::child(&self.syntax)
2562    }
2563    #[inline]
2564    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2565        support::token(&self.syntax, SyntaxKind::L_PAREN)
2566    }
2567    #[inline]
2568    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2569        support::token(&self.syntax, SyntaxKind::R_PAREN)
2570    }
2571    #[inline]
2572    pub fn collation_token(&self) -> Option<SyntaxToken> {
2573        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
2574    }
2575    #[inline]
2576    pub fn for_token(&self) -> Option<SyntaxToken> {
2577        support::token(&self.syntax, SyntaxKind::FOR_KW)
2578    }
2579}
2580
2581#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2582pub struct ColonColon {
2583    pub(crate) syntax: SyntaxNode,
2584}
2585impl ColonColon {
2586    #[inline]
2587    pub fn colon_token(&self) -> Option<SyntaxToken> {
2588        support::token(&self.syntax, SyntaxKind::COLON)
2589    }
2590}
2591
2592#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2593pub struct ColonEq {
2594    pub(crate) syntax: SyntaxNode,
2595}
2596impl ColonEq {
2597    #[inline]
2598    pub fn colon_token(&self) -> Option<SyntaxToken> {
2599        support::token(&self.syntax, SyntaxKind::COLON)
2600    }
2601    #[inline]
2602    pub fn eq_token(&self) -> Option<SyntaxToken> {
2603        support::token(&self.syntax, SyntaxKind::EQ)
2604    }
2605}
2606
2607#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2608pub struct Column {
2609    pub(crate) syntax: SyntaxNode,
2610}
2611impl Column {
2612    #[inline]
2613    pub fn collate(&self) -> Option<Collate> {
2614        support::child(&self.syntax)
2615    }
2616    #[inline]
2617    pub fn compression_method(&self) -> Option<CompressionMethod> {
2618        support::child(&self.syntax)
2619    }
2620    #[inline]
2621    pub fn constraints(&self) -> AstChildren<ColumnConstraint> {
2622        support::children(&self.syntax)
2623    }
2624    #[inline]
2625    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
2626        support::child(&self.syntax)
2627    }
2628    #[inline]
2629    pub fn enforced(&self) -> Option<Enforced> {
2630        support::child(&self.syntax)
2631    }
2632    #[inline]
2633    pub fn index_expr(&self) -> Option<IndexExpr> {
2634        support::child(&self.syntax)
2635    }
2636    #[inline]
2637    pub fn initially_deferred_constraint_option(
2638        &self,
2639    ) -> Option<InitiallyDeferredConstraintOption> {
2640        support::child(&self.syntax)
2641    }
2642    #[inline]
2643    pub fn initially_immediate_constraint_option(
2644        &self,
2645    ) -> Option<InitiallyImmediateConstraintOption> {
2646        support::child(&self.syntax)
2647    }
2648    #[inline]
2649    pub fn name(&self) -> Option<Name> {
2650        support::child(&self.syntax)
2651    }
2652    #[inline]
2653    pub fn name_ref(&self) -> Option<NameRef> {
2654        support::child(&self.syntax)
2655    }
2656    #[inline]
2657    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
2658        support::child(&self.syntax)
2659    }
2660    #[inline]
2661    pub fn not_enforced(&self) -> Option<NotEnforced> {
2662        support::child(&self.syntax)
2663    }
2664    #[inline]
2665    pub fn storage(&self) -> Option<Storage> {
2666        support::child(&self.syntax)
2667    }
2668    #[inline]
2669    pub fn ty(&self) -> Option<Type> {
2670        support::child(&self.syntax)
2671    }
2672    #[inline]
2673    pub fn with_options(&self) -> Option<WithOptions> {
2674        support::child(&self.syntax)
2675    }
2676    #[inline]
2677    pub fn period_token(&self) -> Option<SyntaxToken> {
2678        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
2679    }
2680}
2681
2682#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2683pub struct ColumnList {
2684    pub(crate) syntax: SyntaxNode,
2685}
2686impl ColumnList {
2687    #[inline]
2688    pub fn columns(&self) -> AstChildren<Column> {
2689        support::children(&self.syntax)
2690    }
2691    #[inline]
2692    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2693        support::token(&self.syntax, SyntaxKind::L_PAREN)
2694    }
2695    #[inline]
2696    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2697        support::token(&self.syntax, SyntaxKind::R_PAREN)
2698    }
2699}
2700
2701#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2702pub struct CommentOn {
2703    pub(crate) syntax: SyntaxNode,
2704}
2705impl CommentOn {
2706    #[inline]
2707    pub fn aggregate(&self) -> Option<Aggregate> {
2708        support::child(&self.syntax)
2709    }
2710    #[inline]
2711    pub fn cast_sig(&self) -> Option<CastSig> {
2712        support::child(&self.syntax)
2713    }
2714    #[inline]
2715    pub fn function_sig(&self) -> Option<FunctionSig> {
2716        support::child(&self.syntax)
2717    }
2718    #[inline]
2719    pub fn literal(&self) -> Option<Literal> {
2720        support::child(&self.syntax)
2721    }
2722    #[inline]
2723    pub fn name_ref(&self) -> Option<NameRef> {
2724        support::child(&self.syntax)
2725    }
2726    #[inline]
2727    pub fn op(&self) -> Option<Op> {
2728        support::child(&self.syntax)
2729    }
2730    #[inline]
2731    pub fn path(&self) -> Option<Path> {
2732        support::child(&self.syntax)
2733    }
2734    #[inline]
2735    pub fn ty(&self) -> Option<Type> {
2736        support::child(&self.syntax)
2737    }
2738    #[inline]
2739    pub fn using_method(&self) -> Option<UsingMethod> {
2740        support::child(&self.syntax)
2741    }
2742    #[inline]
2743    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2744        support::token(&self.syntax, SyntaxKind::L_PAREN)
2745    }
2746    #[inline]
2747    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2748        support::token(&self.syntax, SyntaxKind::R_PAREN)
2749    }
2750    #[inline]
2751    pub fn comma_token(&self) -> Option<SyntaxToken> {
2752        support::token(&self.syntax, SyntaxKind::COMMA)
2753    }
2754    #[inline]
2755    pub fn access_token(&self) -> Option<SyntaxToken> {
2756        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
2757    }
2758    #[inline]
2759    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
2760        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
2761    }
2762    #[inline]
2763    pub fn cast_token(&self) -> Option<SyntaxToken> {
2764        support::token(&self.syntax, SyntaxKind::CAST_KW)
2765    }
2766    #[inline]
2767    pub fn class_token(&self) -> Option<SyntaxToken> {
2768        support::token(&self.syntax, SyntaxKind::CLASS_KW)
2769    }
2770    #[inline]
2771    pub fn collation_token(&self) -> Option<SyntaxToken> {
2772        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
2773    }
2774    #[inline]
2775    pub fn column_token(&self) -> Option<SyntaxToken> {
2776        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
2777    }
2778    #[inline]
2779    pub fn comment_token(&self) -> Option<SyntaxToken> {
2780        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
2781    }
2782    #[inline]
2783    pub fn configuration_token(&self) -> Option<SyntaxToken> {
2784        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
2785    }
2786    #[inline]
2787    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2788        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2789    }
2790    #[inline]
2791    pub fn conversion_token(&self) -> Option<SyntaxToken> {
2792        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
2793    }
2794    #[inline]
2795    pub fn data_token(&self) -> Option<SyntaxToken> {
2796        support::token(&self.syntax, SyntaxKind::DATA_KW)
2797    }
2798    #[inline]
2799    pub fn database_token(&self) -> Option<SyntaxToken> {
2800        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
2801    }
2802    #[inline]
2803    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
2804        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
2805    }
2806    #[inline]
2807    pub fn domain_token(&self) -> Option<SyntaxToken> {
2808        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
2809    }
2810    #[inline]
2811    pub fn event_token(&self) -> Option<SyntaxToken> {
2812        support::token(&self.syntax, SyntaxKind::EVENT_KW)
2813    }
2814    #[inline]
2815    pub fn extension_token(&self) -> Option<SyntaxToken> {
2816        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
2817    }
2818    #[inline]
2819    pub fn family_token(&self) -> Option<SyntaxToken> {
2820        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
2821    }
2822    #[inline]
2823    pub fn for_token(&self) -> Option<SyntaxToken> {
2824        support::token(&self.syntax, SyntaxKind::FOR_KW)
2825    }
2826    #[inline]
2827    pub fn foreign_token(&self) -> Option<SyntaxToken> {
2828        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
2829    }
2830    #[inline]
2831    pub fn function_token(&self) -> Option<SyntaxToken> {
2832        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
2833    }
2834    #[inline]
2835    pub fn index_token(&self) -> Option<SyntaxToken> {
2836        support::token(&self.syntax, SyntaxKind::INDEX_KW)
2837    }
2838    #[inline]
2839    pub fn is_token(&self) -> Option<SyntaxToken> {
2840        support::token(&self.syntax, SyntaxKind::IS_KW)
2841    }
2842    #[inline]
2843    pub fn language_token(&self) -> Option<SyntaxToken> {
2844        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
2845    }
2846    #[inline]
2847    pub fn large_token(&self) -> Option<SyntaxToken> {
2848        support::token(&self.syntax, SyntaxKind::LARGE_KW)
2849    }
2850    #[inline]
2851    pub fn materialized_token(&self) -> Option<SyntaxToken> {
2852        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
2853    }
2854    #[inline]
2855    pub fn method_token(&self) -> Option<SyntaxToken> {
2856        support::token(&self.syntax, SyntaxKind::METHOD_KW)
2857    }
2858    #[inline]
2859    pub fn null_token(&self) -> Option<SyntaxToken> {
2860        support::token(&self.syntax, SyntaxKind::NULL_KW)
2861    }
2862    #[inline]
2863    pub fn object_token(&self) -> Option<SyntaxToken> {
2864        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
2865    }
2866    #[inline]
2867    pub fn on_token(&self) -> Option<SyntaxToken> {
2868        support::token(&self.syntax, SyntaxKind::ON_KW)
2869    }
2870    #[inline]
2871    pub fn operator_token(&self) -> Option<SyntaxToken> {
2872        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2873    }
2874    #[inline]
2875    pub fn parser_token(&self) -> Option<SyntaxToken> {
2876        support::token(&self.syntax, SyntaxKind::PARSER_KW)
2877    }
2878    #[inline]
2879    pub fn policy_token(&self) -> Option<SyntaxToken> {
2880        support::token(&self.syntax, SyntaxKind::POLICY_KW)
2881    }
2882    #[inline]
2883    pub fn procedural_token(&self) -> Option<SyntaxToken> {
2884        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
2885    }
2886    #[inline]
2887    pub fn procedure_token(&self) -> Option<SyntaxToken> {
2888        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
2889    }
2890    #[inline]
2891    pub fn publication_token(&self) -> Option<SyntaxToken> {
2892        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
2893    }
2894    #[inline]
2895    pub fn role_token(&self) -> Option<SyntaxToken> {
2896        support::token(&self.syntax, SyntaxKind::ROLE_KW)
2897    }
2898    #[inline]
2899    pub fn routine_token(&self) -> Option<SyntaxToken> {
2900        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
2901    }
2902    #[inline]
2903    pub fn rule_token(&self) -> Option<SyntaxToken> {
2904        support::token(&self.syntax, SyntaxKind::RULE_KW)
2905    }
2906    #[inline]
2907    pub fn schema_token(&self) -> Option<SyntaxToken> {
2908        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
2909    }
2910    #[inline]
2911    pub fn search_token(&self) -> Option<SyntaxToken> {
2912        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2913    }
2914    #[inline]
2915    pub fn sequence_token(&self) -> Option<SyntaxToken> {
2916        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
2917    }
2918    #[inline]
2919    pub fn server_token(&self) -> Option<SyntaxToken> {
2920        support::token(&self.syntax, SyntaxKind::SERVER_KW)
2921    }
2922    #[inline]
2923    pub fn statistics_token(&self) -> Option<SyntaxToken> {
2924        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
2925    }
2926    #[inline]
2927    pub fn subscription_token(&self) -> Option<SyntaxToken> {
2928        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
2929    }
2930    #[inline]
2931    pub fn table_token(&self) -> Option<SyntaxToken> {
2932        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2933    }
2934    #[inline]
2935    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
2936        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
2937    }
2938    #[inline]
2939    pub fn template_token(&self) -> Option<SyntaxToken> {
2940        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
2941    }
2942    #[inline]
2943    pub fn text_token(&self) -> Option<SyntaxToken> {
2944        support::token(&self.syntax, SyntaxKind::TEXT_KW)
2945    }
2946    #[inline]
2947    pub fn transform_token(&self) -> Option<SyntaxToken> {
2948        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
2949    }
2950    #[inline]
2951    pub fn trigger_token(&self) -> Option<SyntaxToken> {
2952        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
2953    }
2954    #[inline]
2955    pub fn type_token(&self) -> Option<SyntaxToken> {
2956        support::token(&self.syntax, SyntaxKind::TYPE_KW)
2957    }
2958    #[inline]
2959    pub fn view_token(&self) -> Option<SyntaxToken> {
2960        support::token(&self.syntax, SyntaxKind::VIEW_KW)
2961    }
2962    #[inline]
2963    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
2964        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
2965    }
2966}
2967
2968#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2969pub struct Commit {
2970    pub(crate) syntax: SyntaxNode,
2971}
2972impl Commit {
2973    #[inline]
2974    pub fn literal(&self) -> Option<Literal> {
2975        support::child(&self.syntax)
2976    }
2977    #[inline]
2978    pub fn and_token(&self) -> Option<SyntaxToken> {
2979        support::token(&self.syntax, SyntaxKind::AND_KW)
2980    }
2981    #[inline]
2982    pub fn chain_token(&self) -> Option<SyntaxToken> {
2983        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
2984    }
2985    #[inline]
2986    pub fn commit_token(&self) -> Option<SyntaxToken> {
2987        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
2988    }
2989    #[inline]
2990    pub fn no_token(&self) -> Option<SyntaxToken> {
2991        support::token(&self.syntax, SyntaxKind::NO_KW)
2992    }
2993    #[inline]
2994    pub fn prepared_token(&self) -> Option<SyntaxToken> {
2995        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
2996    }
2997    #[inline]
2998    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2999        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
3000    }
3001    #[inline]
3002    pub fn work_token(&self) -> Option<SyntaxToken> {
3003        support::token(&self.syntax, SyntaxKind::WORK_KW)
3004    }
3005}
3006
3007#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3008pub struct CompoundSelect {
3009    pub(crate) syntax: SyntaxNode,
3010}
3011impl CompoundSelect {
3012    #[inline]
3013    pub fn all_token(&self) -> Option<SyntaxToken> {
3014        support::token(&self.syntax, SyntaxKind::ALL_KW)
3015    }
3016    #[inline]
3017    pub fn except_token(&self) -> Option<SyntaxToken> {
3018        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
3019    }
3020    #[inline]
3021    pub fn intersect_token(&self) -> Option<SyntaxToken> {
3022        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
3023    }
3024    #[inline]
3025    pub fn union_token(&self) -> Option<SyntaxToken> {
3026        support::token(&self.syntax, SyntaxKind::UNION_KW)
3027    }
3028}
3029
3030#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3031pub struct CompressionMethod {
3032    pub(crate) syntax: SyntaxNode,
3033}
3034impl CompressionMethod {
3035    #[inline]
3036    pub fn compression_token(&self) -> Option<SyntaxToken> {
3037        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
3038    }
3039    #[inline]
3040    pub fn default_token(&self) -> Option<SyntaxToken> {
3041        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3042    }
3043    #[inline]
3044    pub fn ident_token(&self) -> Option<SyntaxToken> {
3045        support::token(&self.syntax, SyntaxKind::IDENT)
3046    }
3047}
3048
3049#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3050pub struct ConflictDoNothing {
3051    pub(crate) syntax: SyntaxNode,
3052}
3053impl ConflictDoNothing {
3054    #[inline]
3055    pub fn do_token(&self) -> Option<SyntaxToken> {
3056        support::token(&self.syntax, SyntaxKind::DO_KW)
3057    }
3058    #[inline]
3059    pub fn nothing_token(&self) -> Option<SyntaxToken> {
3060        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
3061    }
3062}
3063
3064#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3065pub struct ConflictDoSelect {
3066    pub(crate) syntax: SyntaxNode,
3067}
3068impl ConflictDoSelect {
3069    #[inline]
3070    pub fn locking_clause(&self) -> Option<LockingClause> {
3071        support::child(&self.syntax)
3072    }
3073    #[inline]
3074    pub fn where_clause(&self) -> Option<WhereClause> {
3075        support::child(&self.syntax)
3076    }
3077    #[inline]
3078    pub fn do_token(&self) -> Option<SyntaxToken> {
3079        support::token(&self.syntax, SyntaxKind::DO_KW)
3080    }
3081    #[inline]
3082    pub fn select_token(&self) -> Option<SyntaxToken> {
3083        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3084    }
3085}
3086
3087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3088pub struct ConflictDoUpdateSet {
3089    pub(crate) syntax: SyntaxNode,
3090}
3091impl ConflictDoUpdateSet {
3092    #[inline]
3093    pub fn set_clause(&self) -> Option<SetClause> {
3094        support::child(&self.syntax)
3095    }
3096    #[inline]
3097    pub fn where_clause(&self) -> Option<WhereClause> {
3098        support::child(&self.syntax)
3099    }
3100    #[inline]
3101    pub fn do_token(&self) -> Option<SyntaxToken> {
3102        support::token(&self.syntax, SyntaxKind::DO_KW)
3103    }
3104    #[inline]
3105    pub fn update_token(&self) -> Option<SyntaxToken> {
3106        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3107    }
3108}
3109
3110#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3111pub struct ConflictIndexItem {
3112    pub(crate) syntax: SyntaxNode,
3113}
3114impl ConflictIndexItem {
3115    #[inline]
3116    pub fn collate(&self) -> Option<Collate> {
3117        support::child(&self.syntax)
3118    }
3119    #[inline]
3120    pub fn expr(&self) -> Option<Expr> {
3121        support::child(&self.syntax)
3122    }
3123    #[inline]
3124    pub fn ident_token(&self) -> Option<SyntaxToken> {
3125        support::token(&self.syntax, SyntaxKind::IDENT)
3126    }
3127}
3128
3129#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3130pub struct ConflictIndexItemList {
3131    pub(crate) syntax: SyntaxNode,
3132}
3133impl ConflictIndexItemList {
3134    #[inline]
3135    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
3136        support::children(&self.syntax)
3137    }
3138    #[inline]
3139    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3140        support::token(&self.syntax, SyntaxKind::L_PAREN)
3141    }
3142    #[inline]
3143    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3144        support::token(&self.syntax, SyntaxKind::R_PAREN)
3145    }
3146}
3147
3148#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3149pub struct ConflictOnConstraint {
3150    pub(crate) syntax: SyntaxNode,
3151}
3152impl ConflictOnConstraint {
3153    #[inline]
3154    pub fn name_ref(&self) -> Option<NameRef> {
3155        support::child(&self.syntax)
3156    }
3157    #[inline]
3158    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3159        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3160    }
3161    #[inline]
3162    pub fn on_token(&self) -> Option<SyntaxToken> {
3163        support::token(&self.syntax, SyntaxKind::ON_KW)
3164    }
3165}
3166
3167#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3168pub struct ConflictOnIndex {
3169    pub(crate) syntax: SyntaxNode,
3170}
3171impl ConflictOnIndex {
3172    #[inline]
3173    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
3174        support::child(&self.syntax)
3175    }
3176    #[inline]
3177    pub fn where_clause(&self) -> Option<WhereClause> {
3178        support::child(&self.syntax)
3179    }
3180}
3181
3182#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3183pub struct ConstraintExclusion {
3184    pub(crate) syntax: SyntaxNode,
3185}
3186impl ConstraintExclusion {
3187    #[inline]
3188    pub fn expr(&self) -> Option<Expr> {
3189        support::child(&self.syntax)
3190    }
3191    #[inline]
3192    pub fn op(&self) -> Option<Op> {
3193        support::child(&self.syntax)
3194    }
3195    #[inline]
3196    pub fn with_token(&self) -> Option<SyntaxToken> {
3197        support::token(&self.syntax, SyntaxKind::WITH_KW)
3198    }
3199}
3200
3201#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3202pub struct ConstraintExclusionList {
3203    pub(crate) syntax: SyntaxNode,
3204}
3205impl ConstraintExclusionList {
3206    #[inline]
3207    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
3208        support::children(&self.syntax)
3209    }
3210    #[inline]
3211    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3212        support::token(&self.syntax, SyntaxKind::L_PAREN)
3213    }
3214    #[inline]
3215    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3216        support::token(&self.syntax, SyntaxKind::R_PAREN)
3217    }
3218}
3219
3220#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3221pub struct ConstraintIncludeClause {
3222    pub(crate) syntax: SyntaxNode,
3223}
3224impl ConstraintIncludeClause {
3225    #[inline]
3226    pub fn include_token(&self) -> Option<SyntaxToken> {
3227        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
3228    }
3229}
3230
3231#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3232pub struct ConstraintIndexMethod {
3233    pub(crate) syntax: SyntaxNode,
3234}
3235impl ConstraintIndexMethod {
3236    #[inline]
3237    pub fn using_token(&self) -> Option<SyntaxToken> {
3238        support::token(&self.syntax, SyntaxKind::USING_KW)
3239    }
3240}
3241
3242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3243pub struct ConstraintIndexTablespace {
3244    pub(crate) syntax: SyntaxNode,
3245}
3246impl ConstraintIndexTablespace {
3247    #[inline]
3248    pub fn name_ref(&self) -> Option<NameRef> {
3249        support::child(&self.syntax)
3250    }
3251    #[inline]
3252    pub fn index_token(&self) -> Option<SyntaxToken> {
3253        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3254    }
3255    #[inline]
3256    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3257        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3258    }
3259    #[inline]
3260    pub fn using_token(&self) -> Option<SyntaxToken> {
3261        support::token(&self.syntax, SyntaxKind::USING_KW)
3262    }
3263}
3264
3265#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3266pub struct ConstraintName {
3267    pub(crate) syntax: SyntaxNode,
3268}
3269impl ConstraintName {
3270    #[inline]
3271    pub fn name(&self) -> Option<Name> {
3272        support::child(&self.syntax)
3273    }
3274    #[inline]
3275    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3276        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3277    }
3278}
3279
3280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3281pub struct Copy {
3282    pub(crate) syntax: SyntaxNode,
3283}
3284impl Copy {
3285    #[inline]
3286    pub fn column_list(&self) -> Option<ColumnList> {
3287        support::child(&self.syntax)
3288    }
3289    #[inline]
3290    pub fn literal(&self) -> Option<Literal> {
3291        support::child(&self.syntax)
3292    }
3293    #[inline]
3294    pub fn path(&self) -> Option<Path> {
3295        support::child(&self.syntax)
3296    }
3297    #[inline]
3298    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
3299        support::child(&self.syntax)
3300    }
3301    #[inline]
3302    pub fn where_clause(&self) -> Option<WhereClause> {
3303        support::child(&self.syntax)
3304    }
3305    #[inline]
3306    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3307        support::token(&self.syntax, SyntaxKind::L_PAREN)
3308    }
3309    #[inline]
3310    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3311        support::token(&self.syntax, SyntaxKind::R_PAREN)
3312    }
3313    #[inline]
3314    pub fn binary_token(&self) -> Option<SyntaxToken> {
3315        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3316    }
3317    #[inline]
3318    pub fn copy_token(&self) -> Option<SyntaxToken> {
3319        support::token(&self.syntax, SyntaxKind::COPY_KW)
3320    }
3321    #[inline]
3322    pub fn from_token(&self) -> Option<SyntaxToken> {
3323        support::token(&self.syntax, SyntaxKind::FROM_KW)
3324    }
3325    #[inline]
3326    pub fn program_token(&self) -> Option<SyntaxToken> {
3327        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3328    }
3329    #[inline]
3330    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3331        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3332    }
3333    #[inline]
3334    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3335        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3336    }
3337    #[inline]
3338    pub fn to_token(&self) -> Option<SyntaxToken> {
3339        support::token(&self.syntax, SyntaxKind::TO_KW)
3340    }
3341    #[inline]
3342    pub fn with_token(&self) -> Option<SyntaxToken> {
3343        support::token(&self.syntax, SyntaxKind::WITH_KW)
3344    }
3345}
3346
3347#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3348pub struct CopyOption {
3349    pub(crate) syntax: SyntaxNode,
3350}
3351impl CopyOption {
3352    #[inline]
3353    pub fn name(&self) -> Option<Name> {
3354        support::child(&self.syntax)
3355    }
3356}
3357
3358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3359pub struct CopyOptionList {
3360    pub(crate) syntax: SyntaxNode,
3361}
3362impl CopyOptionList {
3363    #[inline]
3364    pub fn copy_options(&self) -> AstChildren<CopyOption> {
3365        support::children(&self.syntax)
3366    }
3367    #[inline]
3368    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3369        support::token(&self.syntax, SyntaxKind::L_PAREN)
3370    }
3371    #[inline]
3372    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3373        support::token(&self.syntax, SyntaxKind::R_PAREN)
3374    }
3375}
3376
3377#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3378pub struct CostFuncOption {
3379    pub(crate) syntax: SyntaxNode,
3380}
3381impl CostFuncOption {
3382    #[inline]
3383    pub fn cost_token(&self) -> Option<SyntaxToken> {
3384        support::token(&self.syntax, SyntaxKind::COST_KW)
3385    }
3386}
3387
3388#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3389pub struct CreateAccessMethod {
3390    pub(crate) syntax: SyntaxNode,
3391}
3392impl CreateAccessMethod {
3393    #[inline]
3394    pub fn handler_clause(&self) -> Option<HandlerClause> {
3395        support::child(&self.syntax)
3396    }
3397    #[inline]
3398    pub fn name(&self) -> Option<Path> {
3399        support::child(&self.syntax)
3400    }
3401    #[inline]
3402    pub fn access_token(&self) -> Option<SyntaxToken> {
3403        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3404    }
3405    #[inline]
3406    pub fn create_token(&self) -> Option<SyntaxToken> {
3407        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3408    }
3409    #[inline]
3410    pub fn index_token(&self) -> Option<SyntaxToken> {
3411        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3412    }
3413    #[inline]
3414    pub fn method_token(&self) -> Option<SyntaxToken> {
3415        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3416    }
3417    #[inline]
3418    pub fn table_token(&self) -> Option<SyntaxToken> {
3419        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3420    }
3421    #[inline]
3422    pub fn type_token(&self) -> Option<SyntaxToken> {
3423        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3424    }
3425}
3426
3427#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3428pub struct CreateAggregate {
3429    pub(crate) syntax: SyntaxNode,
3430}
3431impl CreateAggregate {
3432    #[inline]
3433    pub fn or_replace(&self) -> Option<OrReplace> {
3434        support::child(&self.syntax)
3435    }
3436    #[inline]
3437    pub fn param_list(&self) -> Option<ParamList> {
3438        support::child(&self.syntax)
3439    }
3440    #[inline]
3441    pub fn path(&self) -> Option<Path> {
3442        support::child(&self.syntax)
3443    }
3444    #[inline]
3445    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3446        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3447    }
3448    #[inline]
3449    pub fn create_token(&self) -> Option<SyntaxToken> {
3450        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3451    }
3452}
3453
3454#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3455pub struct CreateCast {
3456    pub(crate) syntax: SyntaxNode,
3457}
3458impl CreateCast {
3459    #[inline]
3460    pub fn cast_sig(&self) -> Option<CastSig> {
3461        support::child(&self.syntax)
3462    }
3463    #[inline]
3464    pub fn function_sig(&self) -> Option<FunctionSig> {
3465        support::child(&self.syntax)
3466    }
3467    #[inline]
3468    pub fn as_token(&self) -> Option<SyntaxToken> {
3469        support::token(&self.syntax, SyntaxKind::AS_KW)
3470    }
3471    #[inline]
3472    pub fn assignment_token(&self) -> Option<SyntaxToken> {
3473        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
3474    }
3475    #[inline]
3476    pub fn cast_token(&self) -> Option<SyntaxToken> {
3477        support::token(&self.syntax, SyntaxKind::CAST_KW)
3478    }
3479    #[inline]
3480    pub fn create_token(&self) -> Option<SyntaxToken> {
3481        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3482    }
3483    #[inline]
3484    pub fn function_token(&self) -> Option<SyntaxToken> {
3485        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3486    }
3487    #[inline]
3488    pub fn implicit_token(&self) -> Option<SyntaxToken> {
3489        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
3490    }
3491    #[inline]
3492    pub fn inout_token(&self) -> Option<SyntaxToken> {
3493        support::token(&self.syntax, SyntaxKind::INOUT_KW)
3494    }
3495    #[inline]
3496    pub fn with_token(&self) -> Option<SyntaxToken> {
3497        support::token(&self.syntax, SyntaxKind::WITH_KW)
3498    }
3499    #[inline]
3500    pub fn without_token(&self) -> Option<SyntaxToken> {
3501        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
3502    }
3503}
3504
3505#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3506pub struct CreateCollation {
3507    pub(crate) syntax: SyntaxNode,
3508}
3509impl CreateCollation {
3510    #[inline]
3511    pub fn path(&self) -> Option<Path> {
3512        support::child(&self.syntax)
3513    }
3514    #[inline]
3515    pub fn collation_token(&self) -> Option<SyntaxToken> {
3516        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3517    }
3518    #[inline]
3519    pub fn create_token(&self) -> Option<SyntaxToken> {
3520        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3521    }
3522}
3523
3524#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3525pub struct CreateConversion {
3526    pub(crate) syntax: SyntaxNode,
3527}
3528impl CreateConversion {
3529    #[inline]
3530    pub fn literal(&self) -> Option<Literal> {
3531        support::child(&self.syntax)
3532    }
3533    #[inline]
3534    pub fn path(&self) -> Option<Path> {
3535        support::child(&self.syntax)
3536    }
3537    #[inline]
3538    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3539        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3540    }
3541    #[inline]
3542    pub fn create_token(&self) -> Option<SyntaxToken> {
3543        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3544    }
3545    #[inline]
3546    pub fn default_token(&self) -> Option<SyntaxToken> {
3547        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3548    }
3549    #[inline]
3550    pub fn for_token(&self) -> Option<SyntaxToken> {
3551        support::token(&self.syntax, SyntaxKind::FOR_KW)
3552    }
3553    #[inline]
3554    pub fn from_token(&self) -> Option<SyntaxToken> {
3555        support::token(&self.syntax, SyntaxKind::FROM_KW)
3556    }
3557    #[inline]
3558    pub fn to_token(&self) -> Option<SyntaxToken> {
3559        support::token(&self.syntax, SyntaxKind::TO_KW)
3560    }
3561}
3562
3563#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3564pub struct CreateDatabase {
3565    pub(crate) syntax: SyntaxNode,
3566}
3567impl CreateDatabase {
3568    #[inline]
3569    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
3570        support::child(&self.syntax)
3571    }
3572    #[inline]
3573    pub fn name(&self) -> Option<Name> {
3574        support::child(&self.syntax)
3575    }
3576    #[inline]
3577    pub fn create_token(&self) -> Option<SyntaxToken> {
3578        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3579    }
3580    #[inline]
3581    pub fn database_token(&self) -> Option<SyntaxToken> {
3582        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3583    }
3584}
3585
3586#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3587pub struct CreateDatabaseOption {
3588    pub(crate) syntax: SyntaxNode,
3589}
3590impl CreateDatabaseOption {
3591    #[inline]
3592    pub fn literal(&self) -> Option<Literal> {
3593        support::child(&self.syntax)
3594    }
3595    #[inline]
3596    pub fn eq_token(&self) -> Option<SyntaxToken> {
3597        support::token(&self.syntax, SyntaxKind::EQ)
3598    }
3599    #[inline]
3600    pub fn connection_token(&self) -> Option<SyntaxToken> {
3601        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
3602    }
3603    #[inline]
3604    pub fn default_token(&self) -> Option<SyntaxToken> {
3605        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3606    }
3607    #[inline]
3608    pub fn encoding_token(&self) -> Option<SyntaxToken> {
3609        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
3610    }
3611    #[inline]
3612    pub fn ident_token(&self) -> Option<SyntaxToken> {
3613        support::token(&self.syntax, SyntaxKind::IDENT)
3614    }
3615    #[inline]
3616    pub fn limit_token(&self) -> Option<SyntaxToken> {
3617        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
3618    }
3619    #[inline]
3620    pub fn owner_token(&self) -> Option<SyntaxToken> {
3621        support::token(&self.syntax, SyntaxKind::OWNER_KW)
3622    }
3623    #[inline]
3624    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3625        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3626    }
3627    #[inline]
3628    pub fn template_token(&self) -> Option<SyntaxToken> {
3629        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3630    }
3631}
3632
3633#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3634pub struct CreateDatabaseOptionList {
3635    pub(crate) syntax: SyntaxNode,
3636}
3637impl CreateDatabaseOptionList {
3638    #[inline]
3639    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
3640        support::children(&self.syntax)
3641    }
3642    #[inline]
3643    pub fn with_token(&self) -> Option<SyntaxToken> {
3644        support::token(&self.syntax, SyntaxKind::WITH_KW)
3645    }
3646}
3647
3648#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3649pub struct CreateDomain {
3650    pub(crate) syntax: SyntaxNode,
3651}
3652impl CreateDomain {
3653    #[inline]
3654    pub fn collate(&self) -> Option<Collate> {
3655        support::child(&self.syntax)
3656    }
3657    #[inline]
3658    pub fn constraints(&self) -> AstChildren<Constraint> {
3659        support::children(&self.syntax)
3660    }
3661    #[inline]
3662    pub fn path(&self) -> Option<Path> {
3663        support::child(&self.syntax)
3664    }
3665    #[inline]
3666    pub fn ty(&self) -> Option<Type> {
3667        support::child(&self.syntax)
3668    }
3669    #[inline]
3670    pub fn as_token(&self) -> Option<SyntaxToken> {
3671        support::token(&self.syntax, SyntaxKind::AS_KW)
3672    }
3673    #[inline]
3674    pub fn create_token(&self) -> Option<SyntaxToken> {
3675        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3676    }
3677    #[inline]
3678    pub fn domain_token(&self) -> Option<SyntaxToken> {
3679        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3680    }
3681}
3682
3683#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3684pub struct CreateEventTrigger {
3685    pub(crate) syntax: SyntaxNode,
3686}
3687impl CreateEventTrigger {
3688    #[inline]
3689    pub fn call_expr(&self) -> Option<CallExpr> {
3690        support::child(&self.syntax)
3691    }
3692    #[inline]
3693    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
3694        support::child(&self.syntax)
3695    }
3696    #[inline]
3697    pub fn name(&self) -> Option<Name> {
3698        support::child(&self.syntax)
3699    }
3700    #[inline]
3701    pub fn name_ref(&self) -> Option<NameRef> {
3702        support::child(&self.syntax)
3703    }
3704    #[inline]
3705    pub fn create_token(&self) -> Option<SyntaxToken> {
3706        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3707    }
3708    #[inline]
3709    pub fn event_token(&self) -> Option<SyntaxToken> {
3710        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3711    }
3712    #[inline]
3713    pub fn execute_token(&self) -> Option<SyntaxToken> {
3714        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
3715    }
3716    #[inline]
3717    pub fn function_token(&self) -> Option<SyntaxToken> {
3718        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3719    }
3720    #[inline]
3721    pub fn on_token(&self) -> Option<SyntaxToken> {
3722        support::token(&self.syntax, SyntaxKind::ON_KW)
3723    }
3724    #[inline]
3725    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3726        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3727    }
3728    #[inline]
3729    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3730        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3731    }
3732}
3733
3734#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3735pub struct CreateExtension {
3736    pub(crate) syntax: SyntaxNode,
3737}
3738impl CreateExtension {
3739    #[inline]
3740    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3741        support::child(&self.syntax)
3742    }
3743    #[inline]
3744    pub fn name(&self) -> Option<Name> {
3745        support::child(&self.syntax)
3746    }
3747    #[inline]
3748    pub fn create_token(&self) -> Option<SyntaxToken> {
3749        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3750    }
3751    #[inline]
3752    pub fn extension_token(&self) -> Option<SyntaxToken> {
3753        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3754    }
3755}
3756
3757#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3758pub struct CreateForeignDataWrapper {
3759    pub(crate) syntax: SyntaxNode,
3760}
3761impl CreateForeignDataWrapper {
3762    #[inline]
3763    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3764        support::child(&self.syntax)
3765    }
3766    #[inline]
3767    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
3768        support::child(&self.syntax)
3769    }
3770    #[inline]
3771    pub fn name(&self) -> Option<Name> {
3772        support::child(&self.syntax)
3773    }
3774    #[inline]
3775    pub fn create_token(&self) -> Option<SyntaxToken> {
3776        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3777    }
3778    #[inline]
3779    pub fn data_token(&self) -> Option<SyntaxToken> {
3780        support::token(&self.syntax, SyntaxKind::DATA_KW)
3781    }
3782    #[inline]
3783    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3784        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3785    }
3786    #[inline]
3787    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3788        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3789    }
3790}
3791
3792#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3793pub struct CreateForeignTable {
3794    pub(crate) syntax: SyntaxNode,
3795}
3796impl CreateForeignTable {
3797    #[inline]
3798    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3799        support::child(&self.syntax)
3800    }
3801    #[inline]
3802    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3803        support::child(&self.syntax)
3804    }
3805    #[inline]
3806    pub fn inherits(&self) -> Option<Inherits> {
3807        support::child(&self.syntax)
3808    }
3809    #[inline]
3810    pub fn partition_of(&self) -> Option<PartitionOf> {
3811        support::child(&self.syntax)
3812    }
3813    #[inline]
3814    pub fn partition_type(&self) -> Option<PartitionType> {
3815        support::child(&self.syntax)
3816    }
3817    #[inline]
3818    pub fn path(&self) -> Option<Path> {
3819        support::child(&self.syntax)
3820    }
3821    #[inline]
3822    pub fn server_name(&self) -> Option<ServerName> {
3823        support::child(&self.syntax)
3824    }
3825    #[inline]
3826    pub fn table_arg_list(&self) -> Option<TableArgList> {
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 foreign_token(&self) -> Option<SyntaxToken> {
3835        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3836    }
3837    #[inline]
3838    pub fn table_token(&self) -> Option<SyntaxToken> {
3839        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3840    }
3841}
3842
3843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3844pub struct CreateFunction {
3845    pub(crate) syntax: SyntaxNode,
3846}
3847impl CreateFunction {
3848    #[inline]
3849    pub fn option_list(&self) -> Option<FuncOptionList> {
3850        support::child(&self.syntax)
3851    }
3852    #[inline]
3853    pub fn or_replace(&self) -> Option<OrReplace> {
3854        support::child(&self.syntax)
3855    }
3856    #[inline]
3857    pub fn param_list(&self) -> Option<ParamList> {
3858        support::child(&self.syntax)
3859    }
3860    #[inline]
3861    pub fn path(&self) -> Option<Path> {
3862        support::child(&self.syntax)
3863    }
3864    #[inline]
3865    pub fn ret_type(&self) -> Option<RetType> {
3866        support::child(&self.syntax)
3867    }
3868    #[inline]
3869    pub fn create_token(&self) -> Option<SyntaxToken> {
3870        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3871    }
3872    #[inline]
3873    pub fn function_token(&self) -> Option<SyntaxToken> {
3874        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3875    }
3876}
3877
3878#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3879pub struct CreateGroup {
3880    pub(crate) syntax: SyntaxNode,
3881}
3882impl CreateGroup {
3883    #[inline]
3884    pub fn name(&self) -> Option<Name> {
3885        support::child(&self.syntax)
3886    }
3887    #[inline]
3888    pub fn role_option_list(&self) -> Option<RoleOptionList> {
3889        support::child(&self.syntax)
3890    }
3891    #[inline]
3892    pub fn create_token(&self) -> Option<SyntaxToken> {
3893        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3894    }
3895    #[inline]
3896    pub fn group_token(&self) -> Option<SyntaxToken> {
3897        support::token(&self.syntax, SyntaxKind::GROUP_KW)
3898    }
3899}
3900
3901#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3902pub struct CreateIndex {
3903    pub(crate) syntax: SyntaxNode,
3904}
3905impl CreateIndex {
3906    #[inline]
3907    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
3908        support::child(&self.syntax)
3909    }
3910    #[inline]
3911    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3912        support::child(&self.syntax)
3913    }
3914    #[inline]
3915    pub fn name(&self) -> Option<Name> {
3916        support::child(&self.syntax)
3917    }
3918    #[inline]
3919    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
3920        support::child(&self.syntax)
3921    }
3922    #[inline]
3923    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
3924        support::child(&self.syntax)
3925    }
3926    #[inline]
3927    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
3928        support::child(&self.syntax)
3929    }
3930    #[inline]
3931    pub fn relation_name(&self) -> Option<RelationName> {
3932        support::child(&self.syntax)
3933    }
3934    #[inline]
3935    pub fn tablespace(&self) -> Option<Tablespace> {
3936        support::child(&self.syntax)
3937    }
3938    #[inline]
3939    pub fn using_method(&self) -> Option<UsingMethod> {
3940        support::child(&self.syntax)
3941    }
3942    #[inline]
3943    pub fn where_clause(&self) -> Option<WhereClause> {
3944        support::child(&self.syntax)
3945    }
3946    #[inline]
3947    pub fn with_params(&self) -> Option<WithParams> {
3948        support::child(&self.syntax)
3949    }
3950    #[inline]
3951    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
3952        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
3953    }
3954    #[inline]
3955    pub fn create_token(&self) -> Option<SyntaxToken> {
3956        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3957    }
3958    #[inline]
3959    pub fn index_token(&self) -> Option<SyntaxToken> {
3960        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3961    }
3962    #[inline]
3963    pub fn on_token(&self) -> Option<SyntaxToken> {
3964        support::token(&self.syntax, SyntaxKind::ON_KW)
3965    }
3966    #[inline]
3967    pub fn unique_token(&self) -> Option<SyntaxToken> {
3968        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
3969    }
3970}
3971
3972#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3973pub struct CreateLanguage {
3974    pub(crate) syntax: SyntaxNode,
3975}
3976impl CreateLanguage {
3977    #[inline]
3978    pub fn name(&self) -> Option<Name> {
3979        support::child(&self.syntax)
3980    }
3981    #[inline]
3982    pub fn or_replace(&self) -> Option<OrReplace> {
3983        support::child(&self.syntax)
3984    }
3985    #[inline]
3986    pub fn path(&self) -> Option<Path> {
3987        support::child(&self.syntax)
3988    }
3989    #[inline]
3990    pub fn create_token(&self) -> Option<SyntaxToken> {
3991        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3992    }
3993    #[inline]
3994    pub fn handler_token(&self) -> Option<SyntaxToken> {
3995        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
3996    }
3997    #[inline]
3998    pub fn inline_token(&self) -> Option<SyntaxToken> {
3999        support::token(&self.syntax, SyntaxKind::INLINE_KW)
4000    }
4001    #[inline]
4002    pub fn language_token(&self) -> Option<SyntaxToken> {
4003        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4004    }
4005    #[inline]
4006    pub fn procedural_token(&self) -> Option<SyntaxToken> {
4007        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
4008    }
4009    #[inline]
4010    pub fn trusted_token(&self) -> Option<SyntaxToken> {
4011        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
4012    }
4013    #[inline]
4014    pub fn validator_token(&self) -> Option<SyntaxToken> {
4015        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
4016    }
4017}
4018
4019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4020pub struct CreateMaterializedView {
4021    pub(crate) syntax: SyntaxNode,
4022}
4023impl CreateMaterializedView {
4024    #[inline]
4025    pub fn column_list(&self) -> Option<ColumnList> {
4026        support::child(&self.syntax)
4027    }
4028    #[inline]
4029    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4030        support::child(&self.syntax)
4031    }
4032    #[inline]
4033    pub fn path(&self) -> Option<Path> {
4034        support::child(&self.syntax)
4035    }
4036    #[inline]
4037    pub fn query(&self) -> Option<SelectVariant> {
4038        support::child(&self.syntax)
4039    }
4040    #[inline]
4041    pub fn tablespace(&self) -> Option<Tablespace> {
4042        support::child(&self.syntax)
4043    }
4044    #[inline]
4045    pub fn using_method(&self) -> Option<UsingMethod> {
4046        support::child(&self.syntax)
4047    }
4048    #[inline]
4049    pub fn with_data(&self) -> Option<WithData> {
4050        support::child(&self.syntax)
4051    }
4052    #[inline]
4053    pub fn with_no_data(&self) -> Option<WithNoData> {
4054        support::child(&self.syntax)
4055    }
4056    #[inline]
4057    pub fn with_params(&self) -> Option<WithParams> {
4058        support::child(&self.syntax)
4059    }
4060    #[inline]
4061    pub fn as_token(&self) -> Option<SyntaxToken> {
4062        support::token(&self.syntax, SyntaxKind::AS_KW)
4063    }
4064    #[inline]
4065    pub fn create_token(&self) -> Option<SyntaxToken> {
4066        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4067    }
4068    #[inline]
4069    pub fn materialized_token(&self) -> Option<SyntaxToken> {
4070        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
4071    }
4072    #[inline]
4073    pub fn view_token(&self) -> Option<SyntaxToken> {
4074        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4075    }
4076}
4077
4078#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4079pub struct CreateOperator {
4080    pub(crate) syntax: SyntaxNode,
4081}
4082impl CreateOperator {
4083    #[inline]
4084    pub fn attribute_list(&self) -> Option<AttributeList> {
4085        support::child(&self.syntax)
4086    }
4087    #[inline]
4088    pub fn op(&self) -> Option<Op> {
4089        support::child(&self.syntax)
4090    }
4091    #[inline]
4092    pub fn path(&self) -> Option<Path> {
4093        support::child(&self.syntax)
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 operator_token(&self) -> Option<SyntaxToken> {
4101        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4102    }
4103}
4104
4105#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4106pub struct CreateOperatorClass {
4107    pub(crate) syntax: SyntaxNode,
4108}
4109impl CreateOperatorClass {
4110    #[inline]
4111    pub fn name_ref(&self) -> Option<NameRef> {
4112        support::child(&self.syntax)
4113    }
4114    #[inline]
4115    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
4116        support::child(&self.syntax)
4117    }
4118    #[inline]
4119    pub fn path(&self) -> Option<Path> {
4120        support::child(&self.syntax)
4121    }
4122    #[inline]
4123    pub fn ty(&self) -> Option<Type> {
4124        support::child(&self.syntax)
4125    }
4126    #[inline]
4127    pub fn as_token(&self) -> Option<SyntaxToken> {
4128        support::token(&self.syntax, SyntaxKind::AS_KW)
4129    }
4130    #[inline]
4131    pub fn class_token(&self) -> Option<SyntaxToken> {
4132        support::token(&self.syntax, SyntaxKind::CLASS_KW)
4133    }
4134    #[inline]
4135    pub fn create_token(&self) -> Option<SyntaxToken> {
4136        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4137    }
4138    #[inline]
4139    pub fn default_token(&self) -> Option<SyntaxToken> {
4140        support::token(&self.syntax, SyntaxKind::DEFAULT_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 for_token(&self) -> Option<SyntaxToken> {
4148        support::token(&self.syntax, SyntaxKind::FOR_KW)
4149    }
4150    #[inline]
4151    pub fn operator_token(&self) -> Option<SyntaxToken> {
4152        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4153    }
4154    #[inline]
4155    pub fn type_token(&self) -> Option<SyntaxToken> {
4156        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4157    }
4158    #[inline]
4159    pub fn using_token(&self) -> Option<SyntaxToken> {
4160        support::token(&self.syntax, SyntaxKind::USING_KW)
4161    }
4162}
4163
4164#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4165pub struct CreateOperatorFamily {
4166    pub(crate) syntax: SyntaxNode,
4167}
4168impl CreateOperatorFamily {
4169    #[inline]
4170    pub fn name_ref(&self) -> Option<NameRef> {
4171        support::child(&self.syntax)
4172    }
4173    #[inline]
4174    pub fn path(&self) -> Option<Path> {
4175        support::child(&self.syntax)
4176    }
4177    #[inline]
4178    pub fn create_token(&self) -> Option<SyntaxToken> {
4179        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4180    }
4181    #[inline]
4182    pub fn family_token(&self) -> Option<SyntaxToken> {
4183        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4184    }
4185    #[inline]
4186    pub fn operator_token(&self) -> Option<SyntaxToken> {
4187        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4188    }
4189    #[inline]
4190    pub fn using_token(&self) -> Option<SyntaxToken> {
4191        support::token(&self.syntax, SyntaxKind::USING_KW)
4192    }
4193}
4194
4195#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4196pub struct CreatePolicy {
4197    pub(crate) syntax: SyntaxNode,
4198}
4199impl CreatePolicy {
4200    #[inline]
4201    pub fn as_policy_type(&self) -> Option<AsPolicyType> {
4202        support::child(&self.syntax)
4203    }
4204    #[inline]
4205    pub fn name(&self) -> Option<Name> {
4206        support::child(&self.syntax)
4207    }
4208    #[inline]
4209    pub fn on_table(&self) -> Option<OnTable> {
4210        support::child(&self.syntax)
4211    }
4212    #[inline]
4213    pub fn role_ref_list(&self) -> Option<RoleRefList> {
4214        support::child(&self.syntax)
4215    }
4216    #[inline]
4217    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
4218        support::child(&self.syntax)
4219    }
4220    #[inline]
4221    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
4222        support::child(&self.syntax)
4223    }
4224    #[inline]
4225    pub fn all_token(&self) -> Option<SyntaxToken> {
4226        support::token(&self.syntax, SyntaxKind::ALL_KW)
4227    }
4228    #[inline]
4229    pub fn create_token(&self) -> Option<SyntaxToken> {
4230        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4231    }
4232    #[inline]
4233    pub fn delete_token(&self) -> Option<SyntaxToken> {
4234        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4235    }
4236    #[inline]
4237    pub fn for_token(&self) -> Option<SyntaxToken> {
4238        support::token(&self.syntax, SyntaxKind::FOR_KW)
4239    }
4240    #[inline]
4241    pub fn insert_token(&self) -> Option<SyntaxToken> {
4242        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4243    }
4244    #[inline]
4245    pub fn policy_token(&self) -> Option<SyntaxToken> {
4246        support::token(&self.syntax, SyntaxKind::POLICY_KW)
4247    }
4248    #[inline]
4249    pub fn select_token(&self) -> Option<SyntaxToken> {
4250        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4251    }
4252    #[inline]
4253    pub fn to_token(&self) -> Option<SyntaxToken> {
4254        support::token(&self.syntax, SyntaxKind::TO_KW)
4255    }
4256    #[inline]
4257    pub fn update_token(&self) -> Option<SyntaxToken> {
4258        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4259    }
4260}
4261
4262#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4263pub struct CreateProcedure {
4264    pub(crate) syntax: SyntaxNode,
4265}
4266impl CreateProcedure {
4267    #[inline]
4268    pub fn option_list(&self) -> Option<FuncOptionList> {
4269        support::child(&self.syntax)
4270    }
4271    #[inline]
4272    pub fn or_replace(&self) -> Option<OrReplace> {
4273        support::child(&self.syntax)
4274    }
4275    #[inline]
4276    pub fn param_list(&self) -> Option<ParamList> {
4277        support::child(&self.syntax)
4278    }
4279    #[inline]
4280    pub fn path(&self) -> Option<Path> {
4281        support::child(&self.syntax)
4282    }
4283    #[inline]
4284    pub fn create_token(&self) -> Option<SyntaxToken> {
4285        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4286    }
4287    #[inline]
4288    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4289        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4290    }
4291}
4292
4293#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4294pub struct CreatePublication {
4295    pub(crate) syntax: SyntaxNode,
4296}
4297impl CreatePublication {
4298    #[inline]
4299    pub fn name(&self) -> Option<Name> {
4300        support::child(&self.syntax)
4301    }
4302    #[inline]
4303    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
4304        support::children(&self.syntax)
4305    }
4306    #[inline]
4307    pub fn with_params(&self) -> Option<WithParams> {
4308        support::child(&self.syntax)
4309    }
4310    #[inline]
4311    pub fn all_token(&self) -> Option<SyntaxToken> {
4312        support::token(&self.syntax, SyntaxKind::ALL_KW)
4313    }
4314    #[inline]
4315    pub fn create_token(&self) -> Option<SyntaxToken> {
4316        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4317    }
4318    #[inline]
4319    pub fn for_token(&self) -> Option<SyntaxToken> {
4320        support::token(&self.syntax, SyntaxKind::FOR_KW)
4321    }
4322    #[inline]
4323    pub fn publication_token(&self) -> Option<SyntaxToken> {
4324        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4325    }
4326    #[inline]
4327    pub fn tables_token(&self) -> Option<SyntaxToken> {
4328        support::token(&self.syntax, SyntaxKind::TABLES_KW)
4329    }
4330}
4331
4332#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4333pub struct CreateRole {
4334    pub(crate) syntax: SyntaxNode,
4335}
4336impl CreateRole {
4337    #[inline]
4338    pub fn name(&self) -> Option<Name> {
4339        support::child(&self.syntax)
4340    }
4341    #[inline]
4342    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4343        support::child(&self.syntax)
4344    }
4345    #[inline]
4346    pub fn create_token(&self) -> Option<SyntaxToken> {
4347        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4348    }
4349    #[inline]
4350    pub fn role_token(&self) -> Option<SyntaxToken> {
4351        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4352    }
4353}
4354
4355#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4356pub struct CreateRule {
4357    pub(crate) syntax: SyntaxNode,
4358}
4359impl CreateRule {
4360    #[inline]
4361    pub fn name(&self) -> Option<Name> {
4362        support::child(&self.syntax)
4363    }
4364    #[inline]
4365    pub fn or_replace(&self) -> Option<OrReplace> {
4366        support::child(&self.syntax)
4367    }
4368    #[inline]
4369    pub fn path(&self) -> Option<Path> {
4370        support::child(&self.syntax)
4371    }
4372    #[inline]
4373    pub fn stmt(&self) -> Option<Stmt> {
4374        support::child(&self.syntax)
4375    }
4376    #[inline]
4377    pub fn stmts(&self) -> AstChildren<Stmt> {
4378        support::children(&self.syntax)
4379    }
4380    #[inline]
4381    pub fn where_clause(&self) -> Option<WhereClause> {
4382        support::child(&self.syntax)
4383    }
4384    #[inline]
4385    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4386        support::token(&self.syntax, SyntaxKind::L_PAREN)
4387    }
4388    #[inline]
4389    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4390        support::token(&self.syntax, SyntaxKind::R_PAREN)
4391    }
4392    #[inline]
4393    pub fn also_token(&self) -> Option<SyntaxToken> {
4394        support::token(&self.syntax, SyntaxKind::ALSO_KW)
4395    }
4396    #[inline]
4397    pub fn as_token(&self) -> Option<SyntaxToken> {
4398        support::token(&self.syntax, SyntaxKind::AS_KW)
4399    }
4400    #[inline]
4401    pub fn create_token(&self) -> Option<SyntaxToken> {
4402        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4403    }
4404    #[inline]
4405    pub fn delete_token(&self) -> Option<SyntaxToken> {
4406        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4407    }
4408    #[inline]
4409    pub fn do_token(&self) -> Option<SyntaxToken> {
4410        support::token(&self.syntax, SyntaxKind::DO_KW)
4411    }
4412    #[inline]
4413    pub fn ident_token(&self) -> Option<SyntaxToken> {
4414        support::token(&self.syntax, SyntaxKind::IDENT)
4415    }
4416    #[inline]
4417    pub fn insert_token(&self) -> Option<SyntaxToken> {
4418        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4419    }
4420    #[inline]
4421    pub fn instead_token(&self) -> Option<SyntaxToken> {
4422        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
4423    }
4424    #[inline]
4425    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4426        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4427    }
4428    #[inline]
4429    pub fn on_token(&self) -> Option<SyntaxToken> {
4430        support::token(&self.syntax, SyntaxKind::ON_KW)
4431    }
4432    #[inline]
4433    pub fn rule_token(&self) -> Option<SyntaxToken> {
4434        support::token(&self.syntax, SyntaxKind::RULE_KW)
4435    }
4436    #[inline]
4437    pub fn select_token(&self) -> Option<SyntaxToken> {
4438        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4439    }
4440    #[inline]
4441    pub fn to_token(&self) -> Option<SyntaxToken> {
4442        support::token(&self.syntax, SyntaxKind::TO_KW)
4443    }
4444    #[inline]
4445    pub fn update_token(&self) -> Option<SyntaxToken> {
4446        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4447    }
4448}
4449
4450#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4451pub struct CreateSchema {
4452    pub(crate) syntax: SyntaxNode,
4453}
4454impl CreateSchema {
4455    #[inline]
4456    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4457        support::child(&self.syntax)
4458    }
4459    #[inline]
4460    pub fn name(&self) -> Option<Name> {
4461        support::child(&self.syntax)
4462    }
4463    #[inline]
4464    pub fn role(&self) -> Option<Role> {
4465        support::child(&self.syntax)
4466    }
4467    #[inline]
4468    pub fn role_ref(&self) -> Option<RoleRef> {
4469        support::child(&self.syntax)
4470    }
4471    #[inline]
4472    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
4473        support::children(&self.syntax)
4474    }
4475    #[inline]
4476    pub fn authorization_token(&self) -> Option<SyntaxToken> {
4477        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
4478    }
4479    #[inline]
4480    pub fn create_token(&self) -> Option<SyntaxToken> {
4481        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4482    }
4483    #[inline]
4484    pub fn schema_token(&self) -> Option<SyntaxToken> {
4485        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4486    }
4487}
4488
4489#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4490pub struct CreateSequence {
4491    pub(crate) syntax: SyntaxNode,
4492}
4493impl CreateSequence {
4494    #[inline]
4495    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4496        support::child(&self.syntax)
4497    }
4498    #[inline]
4499    pub fn path(&self) -> Option<Path> {
4500        support::child(&self.syntax)
4501    }
4502    #[inline]
4503    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
4504        support::children(&self.syntax)
4505    }
4506    #[inline]
4507    pub fn create_token(&self) -> Option<SyntaxToken> {
4508        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4509    }
4510    #[inline]
4511    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4512        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4513    }
4514    #[inline]
4515    pub fn temp_token(&self) -> Option<SyntaxToken> {
4516        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4517    }
4518    #[inline]
4519    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4520        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4521    }
4522    #[inline]
4523    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4524        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4525    }
4526}
4527
4528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4529pub struct CreateServer {
4530    pub(crate) syntax: SyntaxNode,
4531}
4532impl CreateServer {
4533    #[inline]
4534    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4535        support::child(&self.syntax)
4536    }
4537    #[inline]
4538    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4539        support::child(&self.syntax)
4540    }
4541    #[inline]
4542    pub fn literal(&self) -> Option<Literal> {
4543        support::child(&self.syntax)
4544    }
4545    #[inline]
4546    pub fn name(&self) -> Option<Name> {
4547        support::child(&self.syntax)
4548    }
4549    #[inline]
4550    pub fn name_ref(&self) -> Option<NameRef> {
4551        support::child(&self.syntax)
4552    }
4553    #[inline]
4554    pub fn create_token(&self) -> Option<SyntaxToken> {
4555        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4556    }
4557    #[inline]
4558    pub fn data_token(&self) -> Option<SyntaxToken> {
4559        support::token(&self.syntax, SyntaxKind::DATA_KW)
4560    }
4561    #[inline]
4562    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4563        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4564    }
4565    #[inline]
4566    pub fn server_token(&self) -> Option<SyntaxToken> {
4567        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4568    }
4569    #[inline]
4570    pub fn type_token(&self) -> Option<SyntaxToken> {
4571        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4572    }
4573    #[inline]
4574    pub fn version_token(&self) -> Option<SyntaxToken> {
4575        support::token(&self.syntax, SyntaxKind::VERSION_KW)
4576    }
4577    #[inline]
4578    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4579        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4580    }
4581}
4582
4583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4584pub struct CreateStatistics {
4585    pub(crate) syntax: SyntaxNode,
4586}
4587impl CreateStatistics {
4588    #[inline]
4589    pub fn from_table(&self) -> Option<FromTable> {
4590        support::child(&self.syntax)
4591    }
4592    #[inline]
4593    pub fn name_refs(&self) -> AstChildren<NameRef> {
4594        support::children(&self.syntax)
4595    }
4596    #[inline]
4597    pub fn path(&self) -> Option<Path> {
4598        support::child(&self.syntax)
4599    }
4600    #[inline]
4601    pub fn create_token(&self) -> Option<SyntaxToken> {
4602        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4603    }
4604    #[inline]
4605    pub fn on_token(&self) -> Option<SyntaxToken> {
4606        support::token(&self.syntax, SyntaxKind::ON_KW)
4607    }
4608    #[inline]
4609    pub fn statistics_token(&self) -> Option<SyntaxToken> {
4610        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
4611    }
4612}
4613
4614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4615pub struct CreateSubscription {
4616    pub(crate) syntax: SyntaxNode,
4617}
4618impl CreateSubscription {
4619    #[inline]
4620    pub fn literal(&self) -> Option<Literal> {
4621        support::child(&self.syntax)
4622    }
4623    #[inline]
4624    pub fn name(&self) -> Option<Name> {
4625        support::child(&self.syntax)
4626    }
4627    #[inline]
4628    pub fn name_refs(&self) -> AstChildren<NameRef> {
4629        support::children(&self.syntax)
4630    }
4631    #[inline]
4632    pub fn with_params(&self) -> Option<WithParams> {
4633        support::child(&self.syntax)
4634    }
4635    #[inline]
4636    pub fn connection_token(&self) -> Option<SyntaxToken> {
4637        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
4638    }
4639    #[inline]
4640    pub fn create_token(&self) -> Option<SyntaxToken> {
4641        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4642    }
4643    #[inline]
4644    pub fn publication_token(&self) -> Option<SyntaxToken> {
4645        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4646    }
4647    #[inline]
4648    pub fn subscription_token(&self) -> Option<SyntaxToken> {
4649        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
4650    }
4651}
4652
4653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4654pub struct CreateTable {
4655    pub(crate) syntax: SyntaxNode,
4656}
4657impl CreateTable {
4658    #[inline]
4659    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4660        support::child(&self.syntax)
4661    }
4662    #[inline]
4663    pub fn inherits(&self) -> Option<Inherits> {
4664        support::child(&self.syntax)
4665    }
4666    #[inline]
4667    pub fn of_type(&self) -> Option<OfType> {
4668        support::child(&self.syntax)
4669    }
4670    #[inline]
4671    pub fn on_commit(&self) -> Option<OnCommit> {
4672        support::child(&self.syntax)
4673    }
4674    #[inline]
4675    pub fn partition_by(&self) -> Option<PartitionBy> {
4676        support::child(&self.syntax)
4677    }
4678    #[inline]
4679    pub fn partition_of(&self) -> Option<PartitionOf> {
4680        support::child(&self.syntax)
4681    }
4682    #[inline]
4683    pub fn path(&self) -> Option<Path> {
4684        support::child(&self.syntax)
4685    }
4686    #[inline]
4687    pub fn table_arg_list(&self) -> Option<TableArgList> {
4688        support::child(&self.syntax)
4689    }
4690    #[inline]
4691    pub fn tablespace(&self) -> Option<Tablespace> {
4692        support::child(&self.syntax)
4693    }
4694    #[inline]
4695    pub fn using_method(&self) -> Option<UsingMethod> {
4696        support::child(&self.syntax)
4697    }
4698    #[inline]
4699    pub fn with_params(&self) -> Option<WithParams> {
4700        support::child(&self.syntax)
4701    }
4702    #[inline]
4703    pub fn without_oids(&self) -> Option<WithoutOids> {
4704        support::child(&self.syntax)
4705    }
4706    #[inline]
4707    pub fn create_token(&self) -> Option<SyntaxToken> {
4708        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4709    }
4710    #[inline]
4711    pub fn global_token(&self) -> Option<SyntaxToken> {
4712        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4713    }
4714    #[inline]
4715    pub fn local_token(&self) -> Option<SyntaxToken> {
4716        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4717    }
4718    #[inline]
4719    pub fn table_token(&self) -> Option<SyntaxToken> {
4720        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4721    }
4722    #[inline]
4723    pub fn temp_token(&self) -> Option<SyntaxToken> {
4724        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4725    }
4726    #[inline]
4727    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4728        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4729    }
4730    #[inline]
4731    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4732        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4733    }
4734}
4735
4736#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4737pub struct CreateTableAs {
4738    pub(crate) syntax: SyntaxNode,
4739}
4740impl CreateTableAs {
4741    #[inline]
4742    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4743        support::child(&self.syntax)
4744    }
4745    #[inline]
4746    pub fn on_commit(&self) -> Option<OnCommit> {
4747        support::child(&self.syntax)
4748    }
4749    #[inline]
4750    pub fn path(&self) -> Option<Path> {
4751        support::child(&self.syntax)
4752    }
4753    #[inline]
4754    pub fn query(&self) -> Option<SelectVariant> {
4755        support::child(&self.syntax)
4756    }
4757    #[inline]
4758    pub fn tablespace(&self) -> Option<Tablespace> {
4759        support::child(&self.syntax)
4760    }
4761    #[inline]
4762    pub fn using_method(&self) -> Option<UsingMethod> {
4763        support::child(&self.syntax)
4764    }
4765    #[inline]
4766    pub fn with_data(&self) -> Option<WithData> {
4767        support::child(&self.syntax)
4768    }
4769    #[inline]
4770    pub fn with_no_data(&self) -> Option<WithNoData> {
4771        support::child(&self.syntax)
4772    }
4773    #[inline]
4774    pub fn with_params(&self) -> Option<WithParams> {
4775        support::child(&self.syntax)
4776    }
4777    #[inline]
4778    pub fn without_oids(&self) -> Option<WithoutOids> {
4779        support::child(&self.syntax)
4780    }
4781    #[inline]
4782    pub fn as_token(&self) -> Option<SyntaxToken> {
4783        support::token(&self.syntax, SyntaxKind::AS_KW)
4784    }
4785    #[inline]
4786    pub fn create_token(&self) -> Option<SyntaxToken> {
4787        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4788    }
4789    #[inline]
4790    pub fn global_token(&self) -> Option<SyntaxToken> {
4791        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4792    }
4793    #[inline]
4794    pub fn local_token(&self) -> Option<SyntaxToken> {
4795        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4796    }
4797    #[inline]
4798    pub fn table_token(&self) -> Option<SyntaxToken> {
4799        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4800    }
4801    #[inline]
4802    pub fn temp_token(&self) -> Option<SyntaxToken> {
4803        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4804    }
4805    #[inline]
4806    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4807        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4808    }
4809    #[inline]
4810    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4811        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4812    }
4813}
4814
4815#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4816pub struct CreateTablespace {
4817    pub(crate) syntax: SyntaxNode,
4818}
4819impl CreateTablespace {
4820    #[inline]
4821    pub fn literal(&self) -> Option<Literal> {
4822        support::child(&self.syntax)
4823    }
4824    #[inline]
4825    pub fn name(&self) -> Option<Name> {
4826        support::child(&self.syntax)
4827    }
4828    #[inline]
4829    pub fn role_ref(&self) -> Option<RoleRef> {
4830        support::child(&self.syntax)
4831    }
4832    #[inline]
4833    pub fn with_params(&self) -> Option<WithParams> {
4834        support::child(&self.syntax)
4835    }
4836    #[inline]
4837    pub fn create_token(&self) -> Option<SyntaxToken> {
4838        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4839    }
4840    #[inline]
4841    pub fn location_token(&self) -> Option<SyntaxToken> {
4842        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
4843    }
4844    #[inline]
4845    pub fn owner_token(&self) -> Option<SyntaxToken> {
4846        support::token(&self.syntax, SyntaxKind::OWNER_KW)
4847    }
4848    #[inline]
4849    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4850        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4851    }
4852}
4853
4854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4855pub struct CreateTextSearchConfiguration {
4856    pub(crate) syntax: SyntaxNode,
4857}
4858impl CreateTextSearchConfiguration {
4859    #[inline]
4860    pub fn attribute_list(&self) -> Option<AttributeList> {
4861        support::child(&self.syntax)
4862    }
4863    #[inline]
4864    pub fn path(&self) -> Option<Path> {
4865        support::child(&self.syntax)
4866    }
4867    #[inline]
4868    pub fn configuration_token(&self) -> Option<SyntaxToken> {
4869        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
4870    }
4871    #[inline]
4872    pub fn create_token(&self) -> Option<SyntaxToken> {
4873        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4874    }
4875    #[inline]
4876    pub fn search_token(&self) -> Option<SyntaxToken> {
4877        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4878    }
4879    #[inline]
4880    pub fn text_token(&self) -> Option<SyntaxToken> {
4881        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4882    }
4883}
4884
4885#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4886pub struct CreateTextSearchDictionary {
4887    pub(crate) syntax: SyntaxNode,
4888}
4889impl CreateTextSearchDictionary {
4890    #[inline]
4891    pub fn attribute_list(&self) -> Option<AttributeList> {
4892        support::child(&self.syntax)
4893    }
4894    #[inline]
4895    pub fn path(&self) -> Option<Path> {
4896        support::child(&self.syntax)
4897    }
4898    #[inline]
4899    pub fn create_token(&self) -> Option<SyntaxToken> {
4900        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4901    }
4902    #[inline]
4903    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
4904        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
4905    }
4906    #[inline]
4907    pub fn search_token(&self) -> Option<SyntaxToken> {
4908        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4909    }
4910    #[inline]
4911    pub fn text_token(&self) -> Option<SyntaxToken> {
4912        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4913    }
4914}
4915
4916#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4917pub struct CreateTextSearchParser {
4918    pub(crate) syntax: SyntaxNode,
4919}
4920impl CreateTextSearchParser {
4921    #[inline]
4922    pub fn attribute_list(&self) -> Option<AttributeList> {
4923        support::child(&self.syntax)
4924    }
4925    #[inline]
4926    pub fn path(&self) -> Option<Path> {
4927        support::child(&self.syntax)
4928    }
4929    #[inline]
4930    pub fn create_token(&self) -> Option<SyntaxToken> {
4931        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4932    }
4933    #[inline]
4934    pub fn parser_token(&self) -> Option<SyntaxToken> {
4935        support::token(&self.syntax, SyntaxKind::PARSER_KW)
4936    }
4937    #[inline]
4938    pub fn search_token(&self) -> Option<SyntaxToken> {
4939        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4940    }
4941    #[inline]
4942    pub fn text_token(&self) -> Option<SyntaxToken> {
4943        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4944    }
4945}
4946
4947#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4948pub struct CreateTextSearchTemplate {
4949    pub(crate) syntax: SyntaxNode,
4950}
4951impl CreateTextSearchTemplate {
4952    #[inline]
4953    pub fn attribute_list(&self) -> Option<AttributeList> {
4954        support::child(&self.syntax)
4955    }
4956    #[inline]
4957    pub fn path(&self) -> Option<Path> {
4958        support::child(&self.syntax)
4959    }
4960    #[inline]
4961    pub fn create_token(&self) -> Option<SyntaxToken> {
4962        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4963    }
4964    #[inline]
4965    pub fn search_token(&self) -> Option<SyntaxToken> {
4966        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4967    }
4968    #[inline]
4969    pub fn template_token(&self) -> Option<SyntaxToken> {
4970        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4971    }
4972    #[inline]
4973    pub fn text_token(&self) -> Option<SyntaxToken> {
4974        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4975    }
4976}
4977
4978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4979pub struct CreateTransform {
4980    pub(crate) syntax: SyntaxNode,
4981}
4982impl CreateTransform {
4983    #[inline]
4984    pub fn from_func(&self) -> Option<TransformFromFunc> {
4985        support::child(&self.syntax)
4986    }
4987    #[inline]
4988    pub fn language(&self) -> Option<NameRef> {
4989        support::child(&self.syntax)
4990    }
4991    #[inline]
4992    pub fn or_replace(&self) -> Option<OrReplace> {
4993        support::child(&self.syntax)
4994    }
4995    #[inline]
4996    pub fn to_func(&self) -> Option<TransformToFunc> {
4997        support::child(&self.syntax)
4998    }
4999    #[inline]
5000    pub fn ty(&self) -> Option<Type> {
5001        support::child(&self.syntax)
5002    }
5003    #[inline]
5004    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5005        support::token(&self.syntax, SyntaxKind::L_PAREN)
5006    }
5007    #[inline]
5008    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5009        support::token(&self.syntax, SyntaxKind::R_PAREN)
5010    }
5011    #[inline]
5012    pub fn comma_token(&self) -> Option<SyntaxToken> {
5013        support::token(&self.syntax, SyntaxKind::COMMA)
5014    }
5015    #[inline]
5016    pub fn create_token(&self) -> Option<SyntaxToken> {
5017        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5018    }
5019    #[inline]
5020    pub fn for_token(&self) -> Option<SyntaxToken> {
5021        support::token(&self.syntax, SyntaxKind::FOR_KW)
5022    }
5023    #[inline]
5024    pub fn language_token(&self) -> Option<SyntaxToken> {
5025        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
5026    }
5027    #[inline]
5028    pub fn transform_token(&self) -> Option<SyntaxToken> {
5029        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
5030    }
5031}
5032
5033#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5034pub struct CreateTrigger {
5035    pub(crate) syntax: SyntaxNode,
5036}
5037impl CreateTrigger {
5038    #[inline]
5039    pub fn call_expr(&self) -> Option<CallExpr> {
5040        support::child(&self.syntax)
5041    }
5042    #[inline]
5043    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
5044        support::child(&self.syntax)
5045    }
5046    #[inline]
5047    pub fn from_table(&self) -> Option<FromTable> {
5048        support::child(&self.syntax)
5049    }
5050    #[inline]
5051    pub fn initially_deferred_constraint_option(
5052        &self,
5053    ) -> Option<InitiallyDeferredConstraintOption> {
5054        support::child(&self.syntax)
5055    }
5056    #[inline]
5057    pub fn initially_immediate_constraint_option(
5058        &self,
5059    ) -> Option<InitiallyImmediateConstraintOption> {
5060        support::child(&self.syntax)
5061    }
5062    #[inline]
5063    pub fn name(&self) -> Option<Name> {
5064        support::child(&self.syntax)
5065    }
5066    #[inline]
5067    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
5068        support::child(&self.syntax)
5069    }
5070    #[inline]
5071    pub fn on_table(&self) -> Option<OnTable> {
5072        support::child(&self.syntax)
5073    }
5074    #[inline]
5075    pub fn or_replace(&self) -> Option<OrReplace> {
5076        support::child(&self.syntax)
5077    }
5078    #[inline]
5079    pub fn referencing(&self) -> Option<Referencing> {
5080        support::child(&self.syntax)
5081    }
5082    #[inline]
5083    pub fn timing(&self) -> Option<Timing> {
5084        support::child(&self.syntax)
5085    }
5086    #[inline]
5087    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
5088        support::child(&self.syntax)
5089    }
5090    #[inline]
5091    pub fn when_condition(&self) -> Option<WhenCondition> {
5092        support::child(&self.syntax)
5093    }
5094    #[inline]
5095    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5096        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5097    }
5098    #[inline]
5099    pub fn create_token(&self) -> Option<SyntaxToken> {
5100        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5101    }
5102    #[inline]
5103    pub fn each_token(&self) -> Option<SyntaxToken> {
5104        support::token(&self.syntax, SyntaxKind::EACH_KW)
5105    }
5106    #[inline]
5107    pub fn execute_token(&self) -> Option<SyntaxToken> {
5108        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
5109    }
5110    #[inline]
5111    pub fn for_token(&self) -> Option<SyntaxToken> {
5112        support::token(&self.syntax, SyntaxKind::FOR_KW)
5113    }
5114    #[inline]
5115    pub fn function_token(&self) -> Option<SyntaxToken> {
5116        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5117    }
5118    #[inline]
5119    pub fn procedure_token(&self) -> Option<SyntaxToken> {
5120        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
5121    }
5122    #[inline]
5123    pub fn row_token(&self) -> Option<SyntaxToken> {
5124        support::token(&self.syntax, SyntaxKind::ROW_KW)
5125    }
5126    #[inline]
5127    pub fn statement_token(&self) -> Option<SyntaxToken> {
5128        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
5129    }
5130    #[inline]
5131    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5132        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5133    }
5134}
5135
5136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5137pub struct CreateType {
5138    pub(crate) syntax: SyntaxNode,
5139}
5140impl CreateType {
5141    #[inline]
5142    pub fn attribute_list(&self) -> Option<AttributeList> {
5143        support::child(&self.syntax)
5144    }
5145    #[inline]
5146    pub fn column_list(&self) -> Option<ColumnList> {
5147        support::child(&self.syntax)
5148    }
5149    #[inline]
5150    pub fn path(&self) -> Option<Path> {
5151        support::child(&self.syntax)
5152    }
5153    #[inline]
5154    pub fn variant_list(&self) -> Option<VariantList> {
5155        support::child(&self.syntax)
5156    }
5157    #[inline]
5158    pub fn as_token(&self) -> Option<SyntaxToken> {
5159        support::token(&self.syntax, SyntaxKind::AS_KW)
5160    }
5161    #[inline]
5162    pub fn create_token(&self) -> Option<SyntaxToken> {
5163        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5164    }
5165    #[inline]
5166    pub fn enum_token(&self) -> Option<SyntaxToken> {
5167        support::token(&self.syntax, SyntaxKind::ENUM_KW)
5168    }
5169    #[inline]
5170    pub fn range_token(&self) -> Option<SyntaxToken> {
5171        support::token(&self.syntax, SyntaxKind::RANGE_KW)
5172    }
5173    #[inline]
5174    pub fn type_token(&self) -> Option<SyntaxToken> {
5175        support::token(&self.syntax, SyntaxKind::TYPE_KW)
5176    }
5177}
5178
5179#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5180pub struct CreateUser {
5181    pub(crate) syntax: SyntaxNode,
5182}
5183impl CreateUser {
5184    #[inline]
5185    pub fn name(&self) -> Option<Name> {
5186        support::child(&self.syntax)
5187    }
5188    #[inline]
5189    pub fn role_option_list(&self) -> Option<RoleOptionList> {
5190        support::child(&self.syntax)
5191    }
5192    #[inline]
5193    pub fn create_token(&self) -> Option<SyntaxToken> {
5194        support::token(&self.syntax, SyntaxKind::CREATE_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 CreateUserMapping {
5204    pub(crate) syntax: SyntaxNode,
5205}
5206impl CreateUserMapping {
5207    #[inline]
5208    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
5209        support::child(&self.syntax)
5210    }
5211    #[inline]
5212    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5213        support::child(&self.syntax)
5214    }
5215    #[inline]
5216    pub fn role_ref(&self) -> Option<RoleRef> {
5217        support::child(&self.syntax)
5218    }
5219    #[inline]
5220    pub fn server_name(&self) -> Option<ServerName> {
5221        support::child(&self.syntax)
5222    }
5223    #[inline]
5224    pub fn create_token(&self) -> Option<SyntaxToken> {
5225        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5226    }
5227    #[inline]
5228    pub fn for_token(&self) -> Option<SyntaxToken> {
5229        support::token(&self.syntax, SyntaxKind::FOR_KW)
5230    }
5231    #[inline]
5232    pub fn mapping_token(&self) -> Option<SyntaxToken> {
5233        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
5234    }
5235    #[inline]
5236    pub fn user_token(&self) -> Option<SyntaxToken> {
5237        support::token(&self.syntax, SyntaxKind::USER_KW)
5238    }
5239}
5240
5241#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5242pub struct CreateView {
5243    pub(crate) syntax: SyntaxNode,
5244}
5245impl CreateView {
5246    #[inline]
5247    pub fn column_list(&self) -> Option<ColumnList> {
5248        support::child(&self.syntax)
5249    }
5250    #[inline]
5251    pub fn or_replace(&self) -> Option<OrReplace> {
5252        support::child(&self.syntax)
5253    }
5254    #[inline]
5255    pub fn path(&self) -> Option<Path> {
5256        support::child(&self.syntax)
5257    }
5258    #[inline]
5259    pub fn query(&self) -> Option<SelectVariant> {
5260        support::child(&self.syntax)
5261    }
5262    #[inline]
5263    pub fn with_params(&self) -> Option<WithParams> {
5264        support::child(&self.syntax)
5265    }
5266    #[inline]
5267    pub fn as_token(&self) -> Option<SyntaxToken> {
5268        support::token(&self.syntax, SyntaxKind::AS_KW)
5269    }
5270    #[inline]
5271    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
5272        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
5273    }
5274    #[inline]
5275    pub fn check_token(&self) -> Option<SyntaxToken> {
5276        support::token(&self.syntax, SyntaxKind::CHECK_KW)
5277    }
5278    #[inline]
5279    pub fn create_token(&self) -> Option<SyntaxToken> {
5280        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5281    }
5282    #[inline]
5283    pub fn local_token(&self) -> Option<SyntaxToken> {
5284        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
5285    }
5286    #[inline]
5287    pub fn option_token(&self) -> Option<SyntaxToken> {
5288        support::token(&self.syntax, SyntaxKind::OPTION_KW)
5289    }
5290    #[inline]
5291    pub fn recursive_token(&self) -> Option<SyntaxToken> {
5292        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
5293    }
5294    #[inline]
5295    pub fn temp_token(&self) -> Option<SyntaxToken> {
5296        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5297    }
5298    #[inline]
5299    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5300        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5301    }
5302    #[inline]
5303    pub fn view_token(&self) -> Option<SyntaxToken> {
5304        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5305    }
5306    #[inline]
5307    pub fn with_token(&self) -> Option<SyntaxToken> {
5308        support::token(&self.syntax, SyntaxKind::WITH_KW)
5309    }
5310}
5311
5312#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5313pub struct CustomOp {
5314    pub(crate) syntax: SyntaxNode,
5315}
5316impl CustomOp {
5317    #[inline]
5318    pub fn bang_token(&self) -> Option<SyntaxToken> {
5319        support::token(&self.syntax, SyntaxKind::BANG)
5320    }
5321    #[inline]
5322    pub fn pound_token(&self) -> Option<SyntaxToken> {
5323        support::token(&self.syntax, SyntaxKind::POUND)
5324    }
5325    #[inline]
5326    pub fn percent_token(&self) -> Option<SyntaxToken> {
5327        support::token(&self.syntax, SyntaxKind::PERCENT)
5328    }
5329    #[inline]
5330    pub fn amp_token(&self) -> Option<SyntaxToken> {
5331        support::token(&self.syntax, SyntaxKind::AMP)
5332    }
5333    #[inline]
5334    pub fn star_token(&self) -> Option<SyntaxToken> {
5335        support::token(&self.syntax, SyntaxKind::STAR)
5336    }
5337    #[inline]
5338    pub fn plus_token(&self) -> Option<SyntaxToken> {
5339        support::token(&self.syntax, SyntaxKind::PLUS)
5340    }
5341    #[inline]
5342    pub fn minus_token(&self) -> Option<SyntaxToken> {
5343        support::token(&self.syntax, SyntaxKind::MINUS)
5344    }
5345    #[inline]
5346    pub fn slash_token(&self) -> Option<SyntaxToken> {
5347        support::token(&self.syntax, SyntaxKind::SLASH)
5348    }
5349    #[inline]
5350    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
5351        support::token(&self.syntax, SyntaxKind::L_ANGLE)
5352    }
5353    #[inline]
5354    pub fn eq_token(&self) -> Option<SyntaxToken> {
5355        support::token(&self.syntax, SyntaxKind::EQ)
5356    }
5357    #[inline]
5358    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5359        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5360    }
5361    #[inline]
5362    pub fn question_token(&self) -> Option<SyntaxToken> {
5363        support::token(&self.syntax, SyntaxKind::QUESTION)
5364    }
5365    #[inline]
5366    pub fn at_token(&self) -> Option<SyntaxToken> {
5367        support::token(&self.syntax, SyntaxKind::AT)
5368    }
5369    #[inline]
5370    pub fn caret_token(&self) -> Option<SyntaxToken> {
5371        support::token(&self.syntax, SyntaxKind::CARET)
5372    }
5373    #[inline]
5374    pub fn backtick_token(&self) -> Option<SyntaxToken> {
5375        support::token(&self.syntax, SyntaxKind::BACKTICK)
5376    }
5377    #[inline]
5378    pub fn pipe_token(&self) -> Option<SyntaxToken> {
5379        support::token(&self.syntax, SyntaxKind::PIPE)
5380    }
5381    #[inline]
5382    pub fn tilde_token(&self) -> Option<SyntaxToken> {
5383        support::token(&self.syntax, SyntaxKind::TILDE)
5384    }
5385}
5386
5387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5388pub struct Deallocate {
5389    pub(crate) syntax: SyntaxNode,
5390}
5391impl Deallocate {
5392    #[inline]
5393    pub fn name_ref(&self) -> Option<NameRef> {
5394        support::child(&self.syntax)
5395    }
5396    #[inline]
5397    pub fn all_token(&self) -> Option<SyntaxToken> {
5398        support::token(&self.syntax, SyntaxKind::ALL_KW)
5399    }
5400    #[inline]
5401    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
5402        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
5403    }
5404    #[inline]
5405    pub fn prepare_token(&self) -> Option<SyntaxToken> {
5406        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
5407    }
5408}
5409
5410#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5411pub struct Declare {
5412    pub(crate) syntax: SyntaxNode,
5413}
5414impl Declare {
5415    #[inline]
5416    pub fn name(&self) -> Option<Name> {
5417        support::child(&self.syntax)
5418    }
5419    #[inline]
5420    pub fn query(&self) -> Option<SelectVariant> {
5421        support::child(&self.syntax)
5422    }
5423    #[inline]
5424    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
5425        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
5426    }
5427    #[inline]
5428    pub fn binary_token(&self) -> Option<SyntaxToken> {
5429        support::token(&self.syntax, SyntaxKind::BINARY_KW)
5430    }
5431    #[inline]
5432    pub fn cursor_token(&self) -> Option<SyntaxToken> {
5433        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
5434    }
5435    #[inline]
5436    pub fn declare_token(&self) -> Option<SyntaxToken> {
5437        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
5438    }
5439    #[inline]
5440    pub fn for_token(&self) -> Option<SyntaxToken> {
5441        support::token(&self.syntax, SyntaxKind::FOR_KW)
5442    }
5443    #[inline]
5444    pub fn hold_token(&self) -> Option<SyntaxToken> {
5445        support::token(&self.syntax, SyntaxKind::HOLD_KW)
5446    }
5447    #[inline]
5448    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
5449        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
5450    }
5451    #[inline]
5452    pub fn no_token(&self) -> Option<SyntaxToken> {
5453        support::token(&self.syntax, SyntaxKind::NO_KW)
5454    }
5455    #[inline]
5456    pub fn scroll_token(&self) -> Option<SyntaxToken> {
5457        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
5458    }
5459    #[inline]
5460    pub fn with_token(&self) -> Option<SyntaxToken> {
5461        support::token(&self.syntax, SyntaxKind::WITH_KW)
5462    }
5463    #[inline]
5464    pub fn without_token(&self) -> Option<SyntaxToken> {
5465        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5466    }
5467}
5468
5469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5470pub struct DefaultConstraint {
5471    pub(crate) syntax: SyntaxNode,
5472}
5473impl DefaultConstraint {
5474    #[inline]
5475    pub fn expr(&self) -> Option<Expr> {
5476        support::child(&self.syntax)
5477    }
5478    #[inline]
5479    pub fn name_ref(&self) -> Option<NameRef> {
5480        support::child(&self.syntax)
5481    }
5482    #[inline]
5483    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5484        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5485    }
5486    #[inline]
5487    pub fn default_token(&self) -> Option<SyntaxToken> {
5488        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5489    }
5490}
5491
5492#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5493pub struct Deferrable {
5494    pub(crate) syntax: SyntaxNode,
5495}
5496impl Deferrable {
5497    #[inline]
5498    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5499        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5500    }
5501}
5502
5503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5504pub struct DeferrableConstraintOption {
5505    pub(crate) syntax: SyntaxNode,
5506}
5507impl DeferrableConstraintOption {
5508    #[inline]
5509    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5510        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5511    }
5512}
5513
5514#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5515pub struct Delete {
5516    pub(crate) syntax: SyntaxNode,
5517}
5518impl Delete {
5519    #[inline]
5520    pub fn alias(&self) -> Option<Alias> {
5521        support::child(&self.syntax)
5522    }
5523    #[inline]
5524    pub fn relation_name(&self) -> Option<RelationName> {
5525        support::child(&self.syntax)
5526    }
5527    #[inline]
5528    pub fn returning_clause(&self) -> Option<ReturningClause> {
5529        support::child(&self.syntax)
5530    }
5531    #[inline]
5532    pub fn using_clause(&self) -> Option<UsingClause> {
5533        support::child(&self.syntax)
5534    }
5535    #[inline]
5536    pub fn where_clause(&self) -> Option<WhereClause> {
5537        support::child(&self.syntax)
5538    }
5539    #[inline]
5540    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
5541        support::child(&self.syntax)
5542    }
5543    #[inline]
5544    pub fn with_clause(&self) -> Option<WithClause> {
5545        support::child(&self.syntax)
5546    }
5547    #[inline]
5548    pub fn delete_token(&self) -> Option<SyntaxToken> {
5549        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5550    }
5551    #[inline]
5552    pub fn from_token(&self) -> Option<SyntaxToken> {
5553        support::token(&self.syntax, SyntaxKind::FROM_KW)
5554    }
5555}
5556
5557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5558pub struct DeleteRows {
5559    pub(crate) syntax: SyntaxNode,
5560}
5561impl DeleteRows {
5562    #[inline]
5563    pub fn delete_token(&self) -> Option<SyntaxToken> {
5564        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5565    }
5566    #[inline]
5567    pub fn rows_token(&self) -> Option<SyntaxToken> {
5568        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5569    }
5570}
5571
5572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5573pub struct DependsOnExtension {
5574    pub(crate) syntax: SyntaxNode,
5575}
5576impl DependsOnExtension {
5577    #[inline]
5578    pub fn name_ref(&self) -> Option<NameRef> {
5579        support::child(&self.syntax)
5580    }
5581    #[inline]
5582    pub fn depends_token(&self) -> Option<SyntaxToken> {
5583        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
5584    }
5585    #[inline]
5586    pub fn extension_token(&self) -> Option<SyntaxToken> {
5587        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5588    }
5589    #[inline]
5590    pub fn on_token(&self) -> Option<SyntaxToken> {
5591        support::token(&self.syntax, SyntaxKind::ON_KW)
5592    }
5593}
5594
5595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5596pub struct DetachPartition {
5597    pub(crate) syntax: SyntaxNode,
5598}
5599impl DetachPartition {
5600    #[inline]
5601    pub fn path(&self) -> Option<Path> {
5602        support::child(&self.syntax)
5603    }
5604    #[inline]
5605    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
5606        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
5607    }
5608    #[inline]
5609    pub fn detach_token(&self) -> Option<SyntaxToken> {
5610        support::token(&self.syntax, SyntaxKind::DETACH_KW)
5611    }
5612    #[inline]
5613    pub fn finalize_token(&self) -> Option<SyntaxToken> {
5614        support::token(&self.syntax, SyntaxKind::FINALIZE_KW)
5615    }
5616    #[inline]
5617    pub fn partition_token(&self) -> Option<SyntaxToken> {
5618        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
5619    }
5620}
5621
5622#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5623pub struct DisableRls {
5624    pub(crate) syntax: SyntaxNode,
5625}
5626impl DisableRls {
5627    #[inline]
5628    pub fn disable_token(&self) -> Option<SyntaxToken> {
5629        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5630    }
5631    #[inline]
5632    pub fn level_token(&self) -> Option<SyntaxToken> {
5633        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
5634    }
5635    #[inline]
5636    pub fn row_token(&self) -> Option<SyntaxToken> {
5637        support::token(&self.syntax, SyntaxKind::ROW_KW)
5638    }
5639    #[inline]
5640    pub fn security_token(&self) -> Option<SyntaxToken> {
5641        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
5642    }
5643}
5644
5645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5646pub struct DisableRule {
5647    pub(crate) syntax: SyntaxNode,
5648}
5649impl DisableRule {
5650    #[inline]
5651    pub fn disable_token(&self) -> Option<SyntaxToken> {
5652        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5653    }
5654    #[inline]
5655    pub fn rule_token(&self) -> Option<SyntaxToken> {
5656        support::token(&self.syntax, SyntaxKind::RULE_KW)
5657    }
5658}
5659
5660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5661pub struct DisableTrigger {
5662    pub(crate) syntax: SyntaxNode,
5663}
5664impl DisableTrigger {
5665    #[inline]
5666    pub fn disable_token(&self) -> Option<SyntaxToken> {
5667        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5668    }
5669    #[inline]
5670    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5671        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5672    }
5673}
5674
5675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5676pub struct Discard {
5677    pub(crate) syntax: SyntaxNode,
5678}
5679impl Discard {
5680    #[inline]
5681    pub fn all_token(&self) -> Option<SyntaxToken> {
5682        support::token(&self.syntax, SyntaxKind::ALL_KW)
5683    }
5684    #[inline]
5685    pub fn discard_token(&self) -> Option<SyntaxToken> {
5686        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
5687    }
5688    #[inline]
5689    pub fn plans_token(&self) -> Option<SyntaxToken> {
5690        support::token(&self.syntax, SyntaxKind::PLANS_KW)
5691    }
5692    #[inline]
5693    pub fn sequences_token(&self) -> Option<SyntaxToken> {
5694        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
5695    }
5696    #[inline]
5697    pub fn temp_token(&self) -> Option<SyntaxToken> {
5698        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5699    }
5700    #[inline]
5701    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5702        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5703    }
5704}
5705
5706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5707pub struct DistinctClause {
5708    pub(crate) syntax: SyntaxNode,
5709}
5710impl DistinctClause {
5711    #[inline]
5712    pub fn exprs(&self) -> AstChildren<Expr> {
5713        support::children(&self.syntax)
5714    }
5715    #[inline]
5716    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5717        support::token(&self.syntax, SyntaxKind::L_PAREN)
5718    }
5719    #[inline]
5720    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5721        support::token(&self.syntax, SyntaxKind::R_PAREN)
5722    }
5723    #[inline]
5724    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5725        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5726    }
5727    #[inline]
5728    pub fn on_token(&self) -> Option<SyntaxToken> {
5729        support::token(&self.syntax, SyntaxKind::ON_KW)
5730    }
5731}
5732
5733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5734pub struct Do {
5735    pub(crate) syntax: SyntaxNode,
5736}
5737impl Do {
5738    #[inline]
5739    pub fn do_token(&self) -> Option<SyntaxToken> {
5740        support::token(&self.syntax, SyntaxKind::DO_KW)
5741    }
5742}
5743
5744#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5745pub struct DoubleType {
5746    pub(crate) syntax: SyntaxNode,
5747}
5748impl DoubleType {
5749    #[inline]
5750    pub fn double_token(&self) -> Option<SyntaxToken> {
5751        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
5752    }
5753    #[inline]
5754    pub fn precision_token(&self) -> Option<SyntaxToken> {
5755        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
5756    }
5757}
5758
5759#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5760pub struct Drop {
5761    pub(crate) syntax: SyntaxNode,
5762}
5763impl Drop {
5764    #[inline]
5765    pub fn drop_token(&self) -> Option<SyntaxToken> {
5766        support::token(&self.syntax, SyntaxKind::DROP_KW)
5767    }
5768}
5769
5770#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5771pub struct DropAccessMethod {
5772    pub(crate) syntax: SyntaxNode,
5773}
5774impl DropAccessMethod {
5775    #[inline]
5776    pub fn if_exists(&self) -> Option<IfExists> {
5777        support::child(&self.syntax)
5778    }
5779    #[inline]
5780    pub fn name_ref(&self) -> Option<NameRef> {
5781        support::child(&self.syntax)
5782    }
5783    #[inline]
5784    pub fn access_token(&self) -> Option<SyntaxToken> {
5785        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
5786    }
5787    #[inline]
5788    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5789        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5790    }
5791    #[inline]
5792    pub fn drop_token(&self) -> Option<SyntaxToken> {
5793        support::token(&self.syntax, SyntaxKind::DROP_KW)
5794    }
5795    #[inline]
5796    pub fn method_token(&self) -> Option<SyntaxToken> {
5797        support::token(&self.syntax, SyntaxKind::METHOD_KW)
5798    }
5799    #[inline]
5800    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5801        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5802    }
5803}
5804
5805#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5806pub struct DropAggregate {
5807    pub(crate) syntax: SyntaxNode,
5808}
5809impl DropAggregate {
5810    #[inline]
5811    pub fn aggregates(&self) -> AstChildren<Aggregate> {
5812        support::children(&self.syntax)
5813    }
5814    #[inline]
5815    pub fn if_exists(&self) -> Option<IfExists> {
5816        support::child(&self.syntax)
5817    }
5818    #[inline]
5819    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
5820        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
5821    }
5822    #[inline]
5823    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5824        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5825    }
5826    #[inline]
5827    pub fn drop_token(&self) -> Option<SyntaxToken> {
5828        support::token(&self.syntax, SyntaxKind::DROP_KW)
5829    }
5830    #[inline]
5831    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5832        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5833    }
5834}
5835
5836#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5837pub struct DropCast {
5838    pub(crate) syntax: SyntaxNode,
5839}
5840impl DropCast {
5841    #[inline]
5842    pub fn cast_sig(&self) -> Option<CastSig> {
5843        support::child(&self.syntax)
5844    }
5845    #[inline]
5846    pub fn if_exists(&self) -> Option<IfExists> {
5847        support::child(&self.syntax)
5848    }
5849    #[inline]
5850    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5851        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5852    }
5853    #[inline]
5854    pub fn cast_token(&self) -> Option<SyntaxToken> {
5855        support::token(&self.syntax, SyntaxKind::CAST_KW)
5856    }
5857    #[inline]
5858    pub fn drop_token(&self) -> Option<SyntaxToken> {
5859        support::token(&self.syntax, SyntaxKind::DROP_KW)
5860    }
5861    #[inline]
5862    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5863        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5864    }
5865}
5866
5867#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5868pub struct DropCollation {
5869    pub(crate) syntax: SyntaxNode,
5870}
5871impl DropCollation {
5872    #[inline]
5873    pub fn if_exists(&self) -> Option<IfExists> {
5874        support::child(&self.syntax)
5875    }
5876    #[inline]
5877    pub fn paths(&self) -> AstChildren<Path> {
5878        support::children(&self.syntax)
5879    }
5880    #[inline]
5881    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5882        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5883    }
5884    #[inline]
5885    pub fn collation_token(&self) -> Option<SyntaxToken> {
5886        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
5887    }
5888    #[inline]
5889    pub fn drop_token(&self) -> Option<SyntaxToken> {
5890        support::token(&self.syntax, SyntaxKind::DROP_KW)
5891    }
5892    #[inline]
5893    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5894        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5895    }
5896}
5897
5898#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5899pub struct DropColumn {
5900    pub(crate) syntax: SyntaxNode,
5901}
5902impl DropColumn {
5903    #[inline]
5904    pub fn if_exists(&self) -> Option<IfExists> {
5905        support::child(&self.syntax)
5906    }
5907    #[inline]
5908    pub fn name_ref(&self) -> Option<NameRef> {
5909        support::child(&self.syntax)
5910    }
5911    #[inline]
5912    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5913        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5914    }
5915    #[inline]
5916    pub fn column_token(&self) -> Option<SyntaxToken> {
5917        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
5918    }
5919    #[inline]
5920    pub fn drop_token(&self) -> Option<SyntaxToken> {
5921        support::token(&self.syntax, SyntaxKind::DROP_KW)
5922    }
5923    #[inline]
5924    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5925        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5926    }
5927}
5928
5929#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5930pub struct DropConstraint {
5931    pub(crate) syntax: SyntaxNode,
5932}
5933impl DropConstraint {
5934    #[inline]
5935    pub fn if_exists(&self) -> Option<IfExists> {
5936        support::child(&self.syntax)
5937    }
5938    #[inline]
5939    pub fn name_ref(&self) -> Option<NameRef> {
5940        support::child(&self.syntax)
5941    }
5942    #[inline]
5943    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5944        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5945    }
5946    #[inline]
5947    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5948        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5949    }
5950    #[inline]
5951    pub fn drop_token(&self) -> Option<SyntaxToken> {
5952        support::token(&self.syntax, SyntaxKind::DROP_KW)
5953    }
5954    #[inline]
5955    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5956        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5957    }
5958}
5959
5960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5961pub struct DropConversion {
5962    pub(crate) syntax: SyntaxNode,
5963}
5964impl DropConversion {
5965    #[inline]
5966    pub fn if_exists(&self) -> Option<IfExists> {
5967        support::child(&self.syntax)
5968    }
5969    #[inline]
5970    pub fn path(&self) -> Option<Path> {
5971        support::child(&self.syntax)
5972    }
5973    #[inline]
5974    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5975        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5976    }
5977    #[inline]
5978    pub fn conversion_token(&self) -> Option<SyntaxToken> {
5979        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
5980    }
5981    #[inline]
5982    pub fn drop_token(&self) -> Option<SyntaxToken> {
5983        support::token(&self.syntax, SyntaxKind::DROP_KW)
5984    }
5985    #[inline]
5986    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5987        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5988    }
5989}
5990
5991#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5992pub struct DropDatabase {
5993    pub(crate) syntax: SyntaxNode,
5994}
5995impl DropDatabase {
5996    #[inline]
5997    pub fn if_exists(&self) -> Option<IfExists> {
5998        support::child(&self.syntax)
5999    }
6000    #[inline]
6001    pub fn name_ref(&self) -> Option<NameRef> {
6002        support::child(&self.syntax)
6003    }
6004    #[inline]
6005    pub fn database_token(&self) -> Option<SyntaxToken> {
6006        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
6007    }
6008    #[inline]
6009    pub fn drop_token(&self) -> Option<SyntaxToken> {
6010        support::token(&self.syntax, SyntaxKind::DROP_KW)
6011    }
6012}
6013
6014#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6015pub struct DropDefault {
6016    pub(crate) syntax: SyntaxNode,
6017}
6018impl DropDefault {
6019    #[inline]
6020    pub fn default_token(&self) -> Option<SyntaxToken> {
6021        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
6022    }
6023    #[inline]
6024    pub fn drop_token(&self) -> Option<SyntaxToken> {
6025        support::token(&self.syntax, SyntaxKind::DROP_KW)
6026    }
6027}
6028
6029#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6030pub struct DropDomain {
6031    pub(crate) syntax: SyntaxNode,
6032}
6033impl DropDomain {
6034    #[inline]
6035    pub fn if_exists(&self) -> Option<IfExists> {
6036        support::child(&self.syntax)
6037    }
6038    #[inline]
6039    pub fn paths(&self) -> AstChildren<Path> {
6040        support::children(&self.syntax)
6041    }
6042    #[inline]
6043    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6044        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6045    }
6046    #[inline]
6047    pub fn domain_token(&self) -> Option<SyntaxToken> {
6048        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
6049    }
6050    #[inline]
6051    pub fn drop_token(&self) -> Option<SyntaxToken> {
6052        support::token(&self.syntax, SyntaxKind::DROP_KW)
6053    }
6054    #[inline]
6055    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6056        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6057    }
6058}
6059
6060#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6061pub struct DropEventTrigger {
6062    pub(crate) syntax: SyntaxNode,
6063}
6064impl DropEventTrigger {
6065    #[inline]
6066    pub fn if_exists(&self) -> Option<IfExists> {
6067        support::child(&self.syntax)
6068    }
6069    #[inline]
6070    pub fn name_ref(&self) -> Option<NameRef> {
6071        support::child(&self.syntax)
6072    }
6073    #[inline]
6074    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6075        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6076    }
6077    #[inline]
6078    pub fn drop_token(&self) -> Option<SyntaxToken> {
6079        support::token(&self.syntax, SyntaxKind::DROP_KW)
6080    }
6081    #[inline]
6082    pub fn event_token(&self) -> Option<SyntaxToken> {
6083        support::token(&self.syntax, SyntaxKind::EVENT_KW)
6084    }
6085    #[inline]
6086    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6087        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6088    }
6089    #[inline]
6090    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6091        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6092    }
6093}
6094
6095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6096pub struct DropExpression {
6097    pub(crate) syntax: SyntaxNode,
6098}
6099impl DropExpression {
6100    #[inline]
6101    pub fn if_exists(&self) -> Option<IfExists> {
6102        support::child(&self.syntax)
6103    }
6104    #[inline]
6105    pub fn drop_token(&self) -> Option<SyntaxToken> {
6106        support::token(&self.syntax, SyntaxKind::DROP_KW)
6107    }
6108    #[inline]
6109    pub fn expression_token(&self) -> Option<SyntaxToken> {
6110        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
6111    }
6112}
6113
6114#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6115pub struct DropExtension {
6116    pub(crate) syntax: SyntaxNode,
6117}
6118impl DropExtension {
6119    #[inline]
6120    pub fn if_exists(&self) -> Option<IfExists> {
6121        support::child(&self.syntax)
6122    }
6123    #[inline]
6124    pub fn name_refs(&self) -> AstChildren<NameRef> {
6125        support::children(&self.syntax)
6126    }
6127    #[inline]
6128    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6129        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6130    }
6131    #[inline]
6132    pub fn drop_token(&self) -> Option<SyntaxToken> {
6133        support::token(&self.syntax, SyntaxKind::DROP_KW)
6134    }
6135    #[inline]
6136    pub fn extension_token(&self) -> Option<SyntaxToken> {
6137        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
6138    }
6139    #[inline]
6140    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6141        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6142    }
6143}
6144
6145#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6146pub struct DropForeignDataWrapper {
6147    pub(crate) syntax: SyntaxNode,
6148}
6149impl DropForeignDataWrapper {
6150    #[inline]
6151    pub fn if_exists(&self) -> Option<IfExists> {
6152        support::child(&self.syntax)
6153    }
6154    #[inline]
6155    pub fn name_refs(&self) -> AstChildren<NameRef> {
6156        support::children(&self.syntax)
6157    }
6158    #[inline]
6159    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6160        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6161    }
6162    #[inline]
6163    pub fn data_token(&self) -> Option<SyntaxToken> {
6164        support::token(&self.syntax, SyntaxKind::DATA_KW)
6165    }
6166    #[inline]
6167    pub fn drop_token(&self) -> Option<SyntaxToken> {
6168        support::token(&self.syntax, SyntaxKind::DROP_KW)
6169    }
6170    #[inline]
6171    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6172        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6173    }
6174    #[inline]
6175    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6176        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6177    }
6178    #[inline]
6179    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
6180        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
6181    }
6182}
6183
6184#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6185pub struct DropForeignTable {
6186    pub(crate) syntax: SyntaxNode,
6187}
6188impl DropForeignTable {
6189    #[inline]
6190    pub fn if_exists(&self) -> Option<IfExists> {
6191        support::child(&self.syntax)
6192    }
6193    #[inline]
6194    pub fn path(&self) -> Option<Path> {
6195        support::child(&self.syntax)
6196    }
6197    #[inline]
6198    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6199        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6200    }
6201    #[inline]
6202    pub fn drop_token(&self) -> Option<SyntaxToken> {
6203        support::token(&self.syntax, SyntaxKind::DROP_KW)
6204    }
6205    #[inline]
6206    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6207        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6208    }
6209    #[inline]
6210    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6211        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6212    }
6213    #[inline]
6214    pub fn table_token(&self) -> Option<SyntaxToken> {
6215        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6216    }
6217}
6218
6219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6220pub struct DropFunction {
6221    pub(crate) syntax: SyntaxNode,
6222}
6223impl DropFunction {
6224    #[inline]
6225    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6226        support::child(&self.syntax)
6227    }
6228    #[inline]
6229    pub fn if_exists(&self) -> Option<IfExists> {
6230        support::child(&self.syntax)
6231    }
6232    #[inline]
6233    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6234        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6235    }
6236    #[inline]
6237    pub fn drop_token(&self) -> Option<SyntaxToken> {
6238        support::token(&self.syntax, SyntaxKind::DROP_KW)
6239    }
6240    #[inline]
6241    pub fn function_token(&self) -> Option<SyntaxToken> {
6242        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6243    }
6244    #[inline]
6245    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6246        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6247    }
6248}
6249
6250#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6251pub struct DropGroup {
6252    pub(crate) syntax: SyntaxNode,
6253}
6254impl DropGroup {
6255    #[inline]
6256    pub fn if_exists(&self) -> Option<IfExists> {
6257        support::child(&self.syntax)
6258    }
6259    #[inline]
6260    pub fn name_refs(&self) -> AstChildren<NameRef> {
6261        support::children(&self.syntax)
6262    }
6263    #[inline]
6264    pub fn drop_token(&self) -> Option<SyntaxToken> {
6265        support::token(&self.syntax, SyntaxKind::DROP_KW)
6266    }
6267    #[inline]
6268    pub fn group_token(&self) -> Option<SyntaxToken> {
6269        support::token(&self.syntax, SyntaxKind::GROUP_KW)
6270    }
6271}
6272
6273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6274pub struct DropIdentity {
6275    pub(crate) syntax: SyntaxNode,
6276}
6277impl DropIdentity {
6278    #[inline]
6279    pub fn if_exists(&self) -> Option<IfExists> {
6280        support::child(&self.syntax)
6281    }
6282    #[inline]
6283    pub fn drop_token(&self) -> Option<SyntaxToken> {
6284        support::token(&self.syntax, SyntaxKind::DROP_KW)
6285    }
6286    #[inline]
6287    pub fn identity_token(&self) -> Option<SyntaxToken> {
6288        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
6289    }
6290}
6291
6292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6293pub struct DropIndex {
6294    pub(crate) syntax: SyntaxNode,
6295}
6296impl DropIndex {
6297    #[inline]
6298    pub fn if_exists(&self) -> Option<IfExists> {
6299        support::child(&self.syntax)
6300    }
6301    #[inline]
6302    pub fn paths(&self) -> AstChildren<Path> {
6303        support::children(&self.syntax)
6304    }
6305    #[inline]
6306    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6307        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6308    }
6309    #[inline]
6310    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6311        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6312    }
6313    #[inline]
6314    pub fn drop_token(&self) -> Option<SyntaxToken> {
6315        support::token(&self.syntax, SyntaxKind::DROP_KW)
6316    }
6317    #[inline]
6318    pub fn index_token(&self) -> Option<SyntaxToken> {
6319        support::token(&self.syntax, SyntaxKind::INDEX_KW)
6320    }
6321    #[inline]
6322    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6323        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6324    }
6325}
6326
6327#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6328pub struct DropLanguage {
6329    pub(crate) syntax: SyntaxNode,
6330}
6331impl DropLanguage {
6332    #[inline]
6333    pub fn if_exists(&self) -> Option<IfExists> {
6334        support::child(&self.syntax)
6335    }
6336    #[inline]
6337    pub fn name_ref(&self) -> Option<NameRef> {
6338        support::child(&self.syntax)
6339    }
6340    #[inline]
6341    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6342        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6343    }
6344    #[inline]
6345    pub fn drop_token(&self) -> Option<SyntaxToken> {
6346        support::token(&self.syntax, SyntaxKind::DROP_KW)
6347    }
6348    #[inline]
6349    pub fn language_token(&self) -> Option<SyntaxToken> {
6350        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6351    }
6352    #[inline]
6353    pub fn procedural_token(&self) -> Option<SyntaxToken> {
6354        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
6355    }
6356    #[inline]
6357    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6358        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6359    }
6360}
6361
6362#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6363pub struct DropMaterializedView {
6364    pub(crate) syntax: SyntaxNode,
6365}
6366impl DropMaterializedView {
6367    #[inline]
6368    pub fn if_exists(&self) -> Option<IfExists> {
6369        support::child(&self.syntax)
6370    }
6371    #[inline]
6372    pub fn paths(&self) -> AstChildren<Path> {
6373        support::children(&self.syntax)
6374    }
6375    #[inline]
6376    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6377        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6378    }
6379    #[inline]
6380    pub fn drop_token(&self) -> Option<SyntaxToken> {
6381        support::token(&self.syntax, SyntaxKind::DROP_KW)
6382    }
6383    #[inline]
6384    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6385        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6386    }
6387    #[inline]
6388    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6389        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6390    }
6391    #[inline]
6392    pub fn view_token(&self) -> Option<SyntaxToken> {
6393        support::token(&self.syntax, SyntaxKind::VIEW_KW)
6394    }
6395}
6396
6397#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6398pub struct DropNotNull {
6399    pub(crate) syntax: SyntaxNode,
6400}
6401impl DropNotNull {
6402    #[inline]
6403    pub fn drop_token(&self) -> Option<SyntaxToken> {
6404        support::token(&self.syntax, SyntaxKind::DROP_KW)
6405    }
6406    #[inline]
6407    pub fn not_token(&self) -> Option<SyntaxToken> {
6408        support::token(&self.syntax, SyntaxKind::NOT_KW)
6409    }
6410    #[inline]
6411    pub fn null_token(&self) -> Option<SyntaxToken> {
6412        support::token(&self.syntax, SyntaxKind::NULL_KW)
6413    }
6414}
6415
6416#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6417pub struct DropOpClassOption {
6418    pub(crate) syntax: SyntaxNode,
6419}
6420impl DropOpClassOption {
6421    #[inline]
6422    pub fn literal(&self) -> Option<Literal> {
6423        support::child(&self.syntax)
6424    }
6425    #[inline]
6426    pub fn param_list(&self) -> Option<ParamList> {
6427        support::child(&self.syntax)
6428    }
6429    #[inline]
6430    pub fn function_token(&self) -> Option<SyntaxToken> {
6431        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6432    }
6433    #[inline]
6434    pub fn operator_token(&self) -> Option<SyntaxToken> {
6435        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6436    }
6437}
6438
6439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6440pub struct DropOpClassOptionList {
6441    pub(crate) syntax: SyntaxNode,
6442}
6443impl DropOpClassOptionList {
6444    #[inline]
6445    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
6446        support::children(&self.syntax)
6447    }
6448}
6449
6450#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6451pub struct DropOpClassOptions {
6452    pub(crate) syntax: SyntaxNode,
6453}
6454impl DropOpClassOptions {
6455    #[inline]
6456    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
6457        support::child(&self.syntax)
6458    }
6459    #[inline]
6460    pub fn drop_token(&self) -> Option<SyntaxToken> {
6461        support::token(&self.syntax, SyntaxKind::DROP_KW)
6462    }
6463}
6464
6465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6466pub struct DropOperator {
6467    pub(crate) syntax: SyntaxNode,
6468}
6469impl DropOperator {
6470    #[inline]
6471    pub fn if_exists(&self) -> Option<IfExists> {
6472        support::child(&self.syntax)
6473    }
6474    #[inline]
6475    pub fn op_sig_list(&self) -> Option<OpSigList> {
6476        support::child(&self.syntax)
6477    }
6478    #[inline]
6479    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6480        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6481    }
6482    #[inline]
6483    pub fn drop_token(&self) -> Option<SyntaxToken> {
6484        support::token(&self.syntax, SyntaxKind::DROP_KW)
6485    }
6486    #[inline]
6487    pub fn operator_token(&self) -> Option<SyntaxToken> {
6488        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6489    }
6490    #[inline]
6491    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6492        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6493    }
6494}
6495
6496#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6497pub struct DropOperatorClass {
6498    pub(crate) syntax: SyntaxNode,
6499}
6500impl DropOperatorClass {
6501    #[inline]
6502    pub fn if_exists(&self) -> Option<IfExists> {
6503        support::child(&self.syntax)
6504    }
6505    #[inline]
6506    pub fn name_ref(&self) -> Option<NameRef> {
6507        support::child(&self.syntax)
6508    }
6509    #[inline]
6510    pub fn path(&self) -> Option<Path> {
6511        support::child(&self.syntax)
6512    }
6513    #[inline]
6514    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6515        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6516    }
6517    #[inline]
6518    pub fn class_token(&self) -> Option<SyntaxToken> {
6519        support::token(&self.syntax, SyntaxKind::CLASS_KW)
6520    }
6521    #[inline]
6522    pub fn drop_token(&self) -> Option<SyntaxToken> {
6523        support::token(&self.syntax, SyntaxKind::DROP_KW)
6524    }
6525    #[inline]
6526    pub fn operator_token(&self) -> Option<SyntaxToken> {
6527        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6528    }
6529    #[inline]
6530    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6531        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6532    }
6533    #[inline]
6534    pub fn using_token(&self) -> Option<SyntaxToken> {
6535        support::token(&self.syntax, SyntaxKind::USING_KW)
6536    }
6537}
6538
6539#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6540pub struct DropOperatorFamily {
6541    pub(crate) syntax: SyntaxNode,
6542}
6543impl DropOperatorFamily {
6544    #[inline]
6545    pub fn if_exists(&self) -> Option<IfExists> {
6546        support::child(&self.syntax)
6547    }
6548    #[inline]
6549    pub fn name_ref(&self) -> Option<NameRef> {
6550        support::child(&self.syntax)
6551    }
6552    #[inline]
6553    pub fn path(&self) -> Option<Path> {
6554        support::child(&self.syntax)
6555    }
6556    #[inline]
6557    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6558        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6559    }
6560    #[inline]
6561    pub fn drop_token(&self) -> Option<SyntaxToken> {
6562        support::token(&self.syntax, SyntaxKind::DROP_KW)
6563    }
6564    #[inline]
6565    pub fn family_token(&self) -> Option<SyntaxToken> {
6566        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
6567    }
6568    #[inline]
6569    pub fn operator_token(&self) -> Option<SyntaxToken> {
6570        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6571    }
6572    #[inline]
6573    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6574        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6575    }
6576    #[inline]
6577    pub fn using_token(&self) -> Option<SyntaxToken> {
6578        support::token(&self.syntax, SyntaxKind::USING_KW)
6579    }
6580}
6581
6582#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6583pub struct DropOwned {
6584    pub(crate) syntax: SyntaxNode,
6585}
6586impl DropOwned {
6587    #[inline]
6588    pub fn role_ref_list(&self) -> Option<RoleRefList> {
6589        support::child(&self.syntax)
6590    }
6591    #[inline]
6592    pub fn by_token(&self) -> Option<SyntaxToken> {
6593        support::token(&self.syntax, SyntaxKind::BY_KW)
6594    }
6595    #[inline]
6596    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6597        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6598    }
6599    #[inline]
6600    pub fn drop_token(&self) -> Option<SyntaxToken> {
6601        support::token(&self.syntax, SyntaxKind::DROP_KW)
6602    }
6603    #[inline]
6604    pub fn owned_token(&self) -> Option<SyntaxToken> {
6605        support::token(&self.syntax, SyntaxKind::OWNED_KW)
6606    }
6607    #[inline]
6608    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6609        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6610    }
6611}
6612
6613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6614pub struct DropPolicy {
6615    pub(crate) syntax: SyntaxNode,
6616}
6617impl DropPolicy {
6618    #[inline]
6619    pub fn if_exists(&self) -> Option<IfExists> {
6620        support::child(&self.syntax)
6621    }
6622    #[inline]
6623    pub fn name_ref(&self) -> Option<NameRef> {
6624        support::child(&self.syntax)
6625    }
6626    #[inline]
6627    pub fn on_table(&self) -> Option<OnTable> {
6628        support::child(&self.syntax)
6629    }
6630    #[inline]
6631    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6632        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6633    }
6634    #[inline]
6635    pub fn drop_token(&self) -> Option<SyntaxToken> {
6636        support::token(&self.syntax, SyntaxKind::DROP_KW)
6637    }
6638    #[inline]
6639    pub fn policy_token(&self) -> Option<SyntaxToken> {
6640        support::token(&self.syntax, SyntaxKind::POLICY_KW)
6641    }
6642    #[inline]
6643    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6644        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6645    }
6646}
6647
6648#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6649pub struct DropProcedure {
6650    pub(crate) syntax: SyntaxNode,
6651}
6652impl DropProcedure {
6653    #[inline]
6654    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6655        support::child(&self.syntax)
6656    }
6657    #[inline]
6658    pub fn if_exists(&self) -> Option<IfExists> {
6659        support::child(&self.syntax)
6660    }
6661    #[inline]
6662    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6663        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6664    }
6665    #[inline]
6666    pub fn drop_token(&self) -> Option<SyntaxToken> {
6667        support::token(&self.syntax, SyntaxKind::DROP_KW)
6668    }
6669    #[inline]
6670    pub fn procedure_token(&self) -> Option<SyntaxToken> {
6671        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
6672    }
6673    #[inline]
6674    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6675        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6676    }
6677}
6678
6679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6680pub struct DropPublication {
6681    pub(crate) syntax: SyntaxNode,
6682}
6683impl DropPublication {
6684    #[inline]
6685    pub fn if_exists(&self) -> Option<IfExists> {
6686        support::child(&self.syntax)
6687    }
6688    #[inline]
6689    pub fn name_refs(&self) -> AstChildren<NameRef> {
6690        support::children(&self.syntax)
6691    }
6692    #[inline]
6693    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6694        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6695    }
6696    #[inline]
6697    pub fn drop_token(&self) -> Option<SyntaxToken> {
6698        support::token(&self.syntax, SyntaxKind::DROP_KW)
6699    }
6700    #[inline]
6701    pub fn publication_token(&self) -> Option<SyntaxToken> {
6702        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
6703    }
6704    #[inline]
6705    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6706        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6707    }
6708}
6709
6710#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6711pub struct DropRole {
6712    pub(crate) syntax: SyntaxNode,
6713}
6714impl DropRole {
6715    #[inline]
6716    pub fn if_exists(&self) -> Option<IfExists> {
6717        support::child(&self.syntax)
6718    }
6719    #[inline]
6720    pub fn name_refs(&self) -> AstChildren<NameRef> {
6721        support::children(&self.syntax)
6722    }
6723    #[inline]
6724    pub fn drop_token(&self) -> Option<SyntaxToken> {
6725        support::token(&self.syntax, SyntaxKind::DROP_KW)
6726    }
6727    #[inline]
6728    pub fn role_token(&self) -> Option<SyntaxToken> {
6729        support::token(&self.syntax, SyntaxKind::ROLE_KW)
6730    }
6731}
6732
6733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6734pub struct DropRoutine {
6735    pub(crate) syntax: SyntaxNode,
6736}
6737impl DropRoutine {
6738    #[inline]
6739    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6740        support::child(&self.syntax)
6741    }
6742    #[inline]
6743    pub fn if_exists(&self) -> Option<IfExists> {
6744        support::child(&self.syntax)
6745    }
6746    #[inline]
6747    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6748        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6749    }
6750    #[inline]
6751    pub fn drop_token(&self) -> Option<SyntaxToken> {
6752        support::token(&self.syntax, SyntaxKind::DROP_KW)
6753    }
6754    #[inline]
6755    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6756        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6757    }
6758    #[inline]
6759    pub fn routine_token(&self) -> Option<SyntaxToken> {
6760        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
6761    }
6762}
6763
6764#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6765pub struct DropRule {
6766    pub(crate) syntax: SyntaxNode,
6767}
6768impl DropRule {
6769    #[inline]
6770    pub fn if_exists(&self) -> Option<IfExists> {
6771        support::child(&self.syntax)
6772    }
6773    #[inline]
6774    pub fn name_ref(&self) -> Option<NameRef> {
6775        support::child(&self.syntax)
6776    }
6777    #[inline]
6778    pub fn on_table(&self) -> Option<OnTable> {
6779        support::child(&self.syntax)
6780    }
6781    #[inline]
6782    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6783        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6784    }
6785    #[inline]
6786    pub fn drop_token(&self) -> Option<SyntaxToken> {
6787        support::token(&self.syntax, SyntaxKind::DROP_KW)
6788    }
6789    #[inline]
6790    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6791        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6792    }
6793    #[inline]
6794    pub fn rule_token(&self) -> Option<SyntaxToken> {
6795        support::token(&self.syntax, SyntaxKind::RULE_KW)
6796    }
6797}
6798
6799#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6800pub struct DropSchema {
6801    pub(crate) syntax: SyntaxNode,
6802}
6803impl DropSchema {
6804    #[inline]
6805    pub fn if_exists(&self) -> Option<IfExists> {
6806        support::child(&self.syntax)
6807    }
6808    #[inline]
6809    pub fn name_refs(&self) -> AstChildren<NameRef> {
6810        support::children(&self.syntax)
6811    }
6812    #[inline]
6813    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6814        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6815    }
6816    #[inline]
6817    pub fn drop_token(&self) -> Option<SyntaxToken> {
6818        support::token(&self.syntax, SyntaxKind::DROP_KW)
6819    }
6820    #[inline]
6821    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6822        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6823    }
6824    #[inline]
6825    pub fn schema_token(&self) -> Option<SyntaxToken> {
6826        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
6827    }
6828}
6829
6830#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6831pub struct DropSequence {
6832    pub(crate) syntax: SyntaxNode,
6833}
6834impl DropSequence {
6835    #[inline]
6836    pub fn if_exists(&self) -> Option<IfExists> {
6837        support::child(&self.syntax)
6838    }
6839    #[inline]
6840    pub fn paths(&self) -> AstChildren<Path> {
6841        support::children(&self.syntax)
6842    }
6843    #[inline]
6844    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6845        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6846    }
6847    #[inline]
6848    pub fn drop_token(&self) -> Option<SyntaxToken> {
6849        support::token(&self.syntax, SyntaxKind::DROP_KW)
6850    }
6851    #[inline]
6852    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6853        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6854    }
6855    #[inline]
6856    pub fn sequence_token(&self) -> Option<SyntaxToken> {
6857        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
6858    }
6859}
6860
6861#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6862pub struct DropServer {
6863    pub(crate) syntax: SyntaxNode,
6864}
6865impl DropServer {
6866    #[inline]
6867    pub fn if_exists(&self) -> Option<IfExists> {
6868        support::child(&self.syntax)
6869    }
6870    #[inline]
6871    pub fn name_ref(&self) -> Option<NameRef> {
6872        support::child(&self.syntax)
6873    }
6874    #[inline]
6875    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6876        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6877    }
6878    #[inline]
6879    pub fn drop_token(&self) -> Option<SyntaxToken> {
6880        support::token(&self.syntax, SyntaxKind::DROP_KW)
6881    }
6882    #[inline]
6883    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6884        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6885    }
6886    #[inline]
6887    pub fn server_token(&self) -> Option<SyntaxToken> {
6888        support::token(&self.syntax, SyntaxKind::SERVER_KW)
6889    }
6890}
6891
6892#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6893pub struct DropStatistics {
6894    pub(crate) syntax: SyntaxNode,
6895}
6896impl DropStatistics {
6897    #[inline]
6898    pub fn if_exists(&self) -> Option<IfExists> {
6899        support::child(&self.syntax)
6900    }
6901    #[inline]
6902    pub fn paths(&self) -> AstChildren<Path> {
6903        support::children(&self.syntax)
6904    }
6905    #[inline]
6906    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6907        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6908    }
6909    #[inline]
6910    pub fn drop_token(&self) -> Option<SyntaxToken> {
6911        support::token(&self.syntax, SyntaxKind::DROP_KW)
6912    }
6913    #[inline]
6914    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6915        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6916    }
6917    #[inline]
6918    pub fn statistics_token(&self) -> Option<SyntaxToken> {
6919        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
6920    }
6921}
6922
6923#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6924pub struct DropSubscription {
6925    pub(crate) syntax: SyntaxNode,
6926}
6927impl DropSubscription {
6928    #[inline]
6929    pub fn if_exists(&self) -> Option<IfExists> {
6930        support::child(&self.syntax)
6931    }
6932    #[inline]
6933    pub fn name_ref(&self) -> Option<NameRef> {
6934        support::child(&self.syntax)
6935    }
6936    #[inline]
6937    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6938        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6939    }
6940    #[inline]
6941    pub fn drop_token(&self) -> Option<SyntaxToken> {
6942        support::token(&self.syntax, SyntaxKind::DROP_KW)
6943    }
6944    #[inline]
6945    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6946        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6947    }
6948    #[inline]
6949    pub fn subscription_token(&self) -> Option<SyntaxToken> {
6950        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
6951    }
6952}
6953
6954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6955pub struct DropTable {
6956    pub(crate) syntax: SyntaxNode,
6957}
6958impl DropTable {
6959    #[inline]
6960    pub fn if_exists(&self) -> Option<IfExists> {
6961        support::child(&self.syntax)
6962    }
6963    #[inline]
6964    pub fn path(&self) -> Option<Path> {
6965        support::child(&self.syntax)
6966    }
6967    #[inline]
6968    pub fn comma_token(&self) -> Option<SyntaxToken> {
6969        support::token(&self.syntax, SyntaxKind::COMMA)
6970    }
6971    #[inline]
6972    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6973        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6974    }
6975    #[inline]
6976    pub fn drop_token(&self) -> Option<SyntaxToken> {
6977        support::token(&self.syntax, SyntaxKind::DROP_KW)
6978    }
6979    #[inline]
6980    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6981        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6982    }
6983    #[inline]
6984    pub fn table_token(&self) -> Option<SyntaxToken> {
6985        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6986    }
6987}
6988
6989#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6990pub struct DropTablespace {
6991    pub(crate) syntax: SyntaxNode,
6992}
6993impl DropTablespace {
6994    #[inline]
6995    pub fn if_exists(&self) -> Option<IfExists> {
6996        support::child(&self.syntax)
6997    }
6998    #[inline]
6999    pub fn name_ref(&self) -> Option<NameRef> {
7000        support::child(&self.syntax)
7001    }
7002    #[inline]
7003    pub fn drop_token(&self) -> Option<SyntaxToken> {
7004        support::token(&self.syntax, SyntaxKind::DROP_KW)
7005    }
7006    #[inline]
7007    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
7008        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
7009    }
7010}
7011
7012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7013pub struct DropTextSearchConfig {
7014    pub(crate) syntax: SyntaxNode,
7015}
7016impl DropTextSearchConfig {
7017    #[inline]
7018    pub fn if_exists(&self) -> Option<IfExists> {
7019        support::child(&self.syntax)
7020    }
7021    #[inline]
7022    pub fn path(&self) -> Option<Path> {
7023        support::child(&self.syntax)
7024    }
7025    #[inline]
7026    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7027        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7028    }
7029    #[inline]
7030    pub fn configuration_token(&self) -> Option<SyntaxToken> {
7031        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
7032    }
7033    #[inline]
7034    pub fn drop_token(&self) -> Option<SyntaxToken> {
7035        support::token(&self.syntax, SyntaxKind::DROP_KW)
7036    }
7037    #[inline]
7038    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7039        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7040    }
7041    #[inline]
7042    pub fn search_token(&self) -> Option<SyntaxToken> {
7043        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7044    }
7045    #[inline]
7046    pub fn text_token(&self) -> Option<SyntaxToken> {
7047        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7048    }
7049}
7050
7051#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7052pub struct DropTextSearchDict {
7053    pub(crate) syntax: SyntaxNode,
7054}
7055impl DropTextSearchDict {
7056    #[inline]
7057    pub fn if_exists(&self) -> Option<IfExists> {
7058        support::child(&self.syntax)
7059    }
7060    #[inline]
7061    pub fn path(&self) -> Option<Path> {
7062        support::child(&self.syntax)
7063    }
7064    #[inline]
7065    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7066        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7067    }
7068    #[inline]
7069    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
7070        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
7071    }
7072    #[inline]
7073    pub fn drop_token(&self) -> Option<SyntaxToken> {
7074        support::token(&self.syntax, SyntaxKind::DROP_KW)
7075    }
7076    #[inline]
7077    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7078        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7079    }
7080    #[inline]
7081    pub fn search_token(&self) -> Option<SyntaxToken> {
7082        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7083    }
7084    #[inline]
7085    pub fn text_token(&self) -> Option<SyntaxToken> {
7086        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7087    }
7088}
7089
7090#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7091pub struct DropTextSearchParser {
7092    pub(crate) syntax: SyntaxNode,
7093}
7094impl DropTextSearchParser {
7095    #[inline]
7096    pub fn if_exists(&self) -> Option<IfExists> {
7097        support::child(&self.syntax)
7098    }
7099    #[inline]
7100    pub fn path(&self) -> Option<Path> {
7101        support::child(&self.syntax)
7102    }
7103    #[inline]
7104    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7105        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7106    }
7107    #[inline]
7108    pub fn drop_token(&self) -> Option<SyntaxToken> {
7109        support::token(&self.syntax, SyntaxKind::DROP_KW)
7110    }
7111    #[inline]
7112    pub fn parser_token(&self) -> Option<SyntaxToken> {
7113        support::token(&self.syntax, SyntaxKind::PARSER_KW)
7114    }
7115    #[inline]
7116    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7117        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7118    }
7119    #[inline]
7120    pub fn search_token(&self) -> Option<SyntaxToken> {
7121        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7122    }
7123    #[inline]
7124    pub fn text_token(&self) -> Option<SyntaxToken> {
7125        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7126    }
7127}
7128
7129#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7130pub struct DropTextSearchTemplate {
7131    pub(crate) syntax: SyntaxNode,
7132}
7133impl DropTextSearchTemplate {
7134    #[inline]
7135    pub fn if_exists(&self) -> Option<IfExists> {
7136        support::child(&self.syntax)
7137    }
7138    #[inline]
7139    pub fn path(&self) -> Option<Path> {
7140        support::child(&self.syntax)
7141    }
7142    #[inline]
7143    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7144        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7145    }
7146    #[inline]
7147    pub fn drop_token(&self) -> Option<SyntaxToken> {
7148        support::token(&self.syntax, SyntaxKind::DROP_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 search_token(&self) -> Option<SyntaxToken> {
7156        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7157    }
7158    #[inline]
7159    pub fn template_token(&self) -> Option<SyntaxToken> {
7160        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
7161    }
7162    #[inline]
7163    pub fn text_token(&self) -> Option<SyntaxToken> {
7164        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7165    }
7166}
7167
7168#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7169pub struct DropTransform {
7170    pub(crate) syntax: SyntaxNode,
7171}
7172impl DropTransform {
7173    #[inline]
7174    pub fn if_exists(&self) -> Option<IfExists> {
7175        support::child(&self.syntax)
7176    }
7177    #[inline]
7178    pub fn language(&self) -> Option<NameRef> {
7179        support::child(&self.syntax)
7180    }
7181    #[inline]
7182    pub fn ty(&self) -> Option<Type> {
7183        support::child(&self.syntax)
7184    }
7185    #[inline]
7186    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7187        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7188    }
7189    #[inline]
7190    pub fn drop_token(&self) -> Option<SyntaxToken> {
7191        support::token(&self.syntax, SyntaxKind::DROP_KW)
7192    }
7193    #[inline]
7194    pub fn for_token(&self) -> Option<SyntaxToken> {
7195        support::token(&self.syntax, SyntaxKind::FOR_KW)
7196    }
7197    #[inline]
7198    pub fn language_token(&self) -> Option<SyntaxToken> {
7199        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
7200    }
7201    #[inline]
7202    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7203        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7204    }
7205    #[inline]
7206    pub fn transform_token(&self) -> Option<SyntaxToken> {
7207        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
7208    }
7209}
7210
7211#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7212pub struct DropTrigger {
7213    pub(crate) syntax: SyntaxNode,
7214}
7215impl DropTrigger {
7216    #[inline]
7217    pub fn if_exists(&self) -> Option<IfExists> {
7218        support::child(&self.syntax)
7219    }
7220    #[inline]
7221    pub fn on_table(&self) -> Option<OnTable> {
7222        support::child(&self.syntax)
7223    }
7224    #[inline]
7225    pub fn path(&self) -> Option<Path> {
7226        support::child(&self.syntax)
7227    }
7228    #[inline]
7229    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7230        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7231    }
7232    #[inline]
7233    pub fn drop_token(&self) -> Option<SyntaxToken> {
7234        support::token(&self.syntax, SyntaxKind::DROP_KW)
7235    }
7236    #[inline]
7237    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7238        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7239    }
7240    #[inline]
7241    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7242        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7243    }
7244}
7245
7246#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7247pub struct DropType {
7248    pub(crate) syntax: SyntaxNode,
7249}
7250impl DropType {
7251    #[inline]
7252    pub fn if_exists(&self) -> Option<IfExists> {
7253        support::child(&self.syntax)
7254    }
7255    #[inline]
7256    pub fn paths(&self) -> AstChildren<Path> {
7257        support::children(&self.syntax)
7258    }
7259    #[inline]
7260    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7261        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7262    }
7263    #[inline]
7264    pub fn drop_token(&self) -> Option<SyntaxToken> {
7265        support::token(&self.syntax, SyntaxKind::DROP_KW)
7266    }
7267    #[inline]
7268    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7269        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7270    }
7271    #[inline]
7272    pub fn type_token(&self) -> Option<SyntaxToken> {
7273        support::token(&self.syntax, SyntaxKind::TYPE_KW)
7274    }
7275}
7276
7277#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7278pub struct DropUser {
7279    pub(crate) syntax: SyntaxNode,
7280}
7281impl DropUser {
7282    #[inline]
7283    pub fn if_exists(&self) -> Option<IfExists> {
7284        support::child(&self.syntax)
7285    }
7286    #[inline]
7287    pub fn name_refs(&self) -> AstChildren<NameRef> {
7288        support::children(&self.syntax)
7289    }
7290    #[inline]
7291    pub fn drop_token(&self) -> Option<SyntaxToken> {
7292        support::token(&self.syntax, SyntaxKind::DROP_KW)
7293    }
7294    #[inline]
7295    pub fn user_token(&self) -> Option<SyntaxToken> {
7296        support::token(&self.syntax, SyntaxKind::USER_KW)
7297    }
7298}
7299
7300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7301pub struct DropUserMapping {
7302    pub(crate) syntax: SyntaxNode,
7303}
7304impl DropUserMapping {
7305    #[inline]
7306    pub fn if_exists(&self) -> Option<IfExists> {
7307        support::child(&self.syntax)
7308    }
7309    #[inline]
7310    pub fn role_ref(&self) -> Option<RoleRef> {
7311        support::child(&self.syntax)
7312    }
7313    #[inline]
7314    pub fn server_name(&self) -> Option<ServerName> {
7315        support::child(&self.syntax)
7316    }
7317    #[inline]
7318    pub fn drop_token(&self) -> Option<SyntaxToken> {
7319        support::token(&self.syntax, SyntaxKind::DROP_KW)
7320    }
7321    #[inline]
7322    pub fn for_token(&self) -> Option<SyntaxToken> {
7323        support::token(&self.syntax, SyntaxKind::FOR_KW)
7324    }
7325    #[inline]
7326    pub fn mapping_token(&self) -> Option<SyntaxToken> {
7327        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
7328    }
7329    #[inline]
7330    pub fn user_token(&self) -> Option<SyntaxToken> {
7331        support::token(&self.syntax, SyntaxKind::USER_KW)
7332    }
7333}
7334
7335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7336pub struct DropView {
7337    pub(crate) syntax: SyntaxNode,
7338}
7339impl DropView {
7340    #[inline]
7341    pub fn if_exists(&self) -> Option<IfExists> {
7342        support::child(&self.syntax)
7343    }
7344    #[inline]
7345    pub fn path(&self) -> Option<Path> {
7346        support::child(&self.syntax)
7347    }
7348    #[inline]
7349    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7350        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7351    }
7352    #[inline]
7353    pub fn drop_token(&self) -> Option<SyntaxToken> {
7354        support::token(&self.syntax, SyntaxKind::DROP_KW)
7355    }
7356    #[inline]
7357    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7358        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7359    }
7360    #[inline]
7361    pub fn view_token(&self) -> Option<SyntaxToken> {
7362        support::token(&self.syntax, SyntaxKind::VIEW_KW)
7363    }
7364}
7365
7366#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7367pub struct ElseClause {
7368    pub(crate) syntax: SyntaxNode,
7369}
7370impl ElseClause {
7371    #[inline]
7372    pub fn expr(&self) -> Option<Expr> {
7373        support::child(&self.syntax)
7374    }
7375    #[inline]
7376    pub fn else_token(&self) -> Option<SyntaxToken> {
7377        support::token(&self.syntax, SyntaxKind::ELSE_KW)
7378    }
7379}
7380
7381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7382pub struct EnableAlwaysRule {
7383    pub(crate) syntax: SyntaxNode,
7384}
7385impl EnableAlwaysRule {
7386    #[inline]
7387    pub fn always_token(&self) -> Option<SyntaxToken> {
7388        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7389    }
7390    #[inline]
7391    pub fn enable_token(&self) -> Option<SyntaxToken> {
7392        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7393    }
7394    #[inline]
7395    pub fn rule_token(&self) -> Option<SyntaxToken> {
7396        support::token(&self.syntax, SyntaxKind::RULE_KW)
7397    }
7398}
7399
7400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7401pub struct EnableAlwaysTrigger {
7402    pub(crate) syntax: SyntaxNode,
7403}
7404impl EnableAlwaysTrigger {
7405    #[inline]
7406    pub fn always_token(&self) -> Option<SyntaxToken> {
7407        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7408    }
7409    #[inline]
7410    pub fn enable_token(&self) -> Option<SyntaxToken> {
7411        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7412    }
7413    #[inline]
7414    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7415        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7416    }
7417}
7418
7419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7420pub struct EnableReplicaRule {
7421    pub(crate) syntax: SyntaxNode,
7422}
7423impl EnableReplicaRule {
7424    #[inline]
7425    pub fn enable_token(&self) -> Option<SyntaxToken> {
7426        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7427    }
7428    #[inline]
7429    pub fn replica_token(&self) -> Option<SyntaxToken> {
7430        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7431    }
7432    #[inline]
7433    pub fn rule_token(&self) -> Option<SyntaxToken> {
7434        support::token(&self.syntax, SyntaxKind::RULE_KW)
7435    }
7436}
7437
7438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7439pub struct EnableReplicaTrigger {
7440    pub(crate) syntax: SyntaxNode,
7441}
7442impl EnableReplicaTrigger {
7443    #[inline]
7444    pub fn enable_token(&self) -> Option<SyntaxToken> {
7445        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7446    }
7447    #[inline]
7448    pub fn replica_token(&self) -> Option<SyntaxToken> {
7449        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7450    }
7451    #[inline]
7452    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7453        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7454    }
7455}
7456
7457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7458pub struct EnableRls {
7459    pub(crate) syntax: SyntaxNode,
7460}
7461impl EnableRls {
7462    #[inline]
7463    pub fn enable_token(&self) -> Option<SyntaxToken> {
7464        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7465    }
7466    #[inline]
7467    pub fn level_token(&self) -> Option<SyntaxToken> {
7468        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7469    }
7470    #[inline]
7471    pub fn row_token(&self) -> Option<SyntaxToken> {
7472        support::token(&self.syntax, SyntaxKind::ROW_KW)
7473    }
7474    #[inline]
7475    pub fn security_token(&self) -> Option<SyntaxToken> {
7476        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7477    }
7478}
7479
7480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7481pub struct EnableRule {
7482    pub(crate) syntax: SyntaxNode,
7483}
7484impl EnableRule {
7485    #[inline]
7486    pub fn enable_token(&self) -> Option<SyntaxToken> {
7487        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7488    }
7489    #[inline]
7490    pub fn rule_token(&self) -> Option<SyntaxToken> {
7491        support::token(&self.syntax, SyntaxKind::RULE_KW)
7492    }
7493}
7494
7495#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7496pub struct EnableTrigger {
7497    pub(crate) syntax: SyntaxNode,
7498}
7499impl EnableTrigger {
7500    #[inline]
7501    pub fn enable_token(&self) -> Option<SyntaxToken> {
7502        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7503    }
7504    #[inline]
7505    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7506        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7507    }
7508}
7509
7510#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7511pub struct Enforced {
7512    pub(crate) syntax: SyntaxNode,
7513}
7514impl Enforced {
7515    #[inline]
7516    pub fn enforced_token(&self) -> Option<SyntaxToken> {
7517        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
7518    }
7519}
7520
7521#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7522pub struct EventTriggerWhen {
7523    pub(crate) syntax: SyntaxNode,
7524}
7525impl EventTriggerWhen {
7526    #[inline]
7527    pub fn literals(&self) -> AstChildren<Literal> {
7528        support::children(&self.syntax)
7529    }
7530    #[inline]
7531    pub fn name_ref(&self) -> Option<NameRef> {
7532        support::child(&self.syntax)
7533    }
7534    #[inline]
7535    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7536        support::token(&self.syntax, SyntaxKind::L_PAREN)
7537    }
7538    #[inline]
7539    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7540        support::token(&self.syntax, SyntaxKind::R_PAREN)
7541    }
7542    #[inline]
7543    pub fn in_token(&self) -> Option<SyntaxToken> {
7544        support::token(&self.syntax, SyntaxKind::IN_KW)
7545    }
7546}
7547
7548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7549pub struct EventTriggerWhenClause {
7550    pub(crate) syntax: SyntaxNode,
7551}
7552impl EventTriggerWhenClause {
7553    #[inline]
7554    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
7555        support::children(&self.syntax)
7556    }
7557    #[inline]
7558    pub fn when_token(&self) -> Option<SyntaxToken> {
7559        support::token(&self.syntax, SyntaxKind::WHEN_KW)
7560    }
7561}
7562
7563#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7564pub struct ExceptTables {
7565    pub(crate) syntax: SyntaxNode,
7566}
7567impl ExceptTables {
7568    #[inline]
7569    pub fn name_refs(&self) -> AstChildren<NameRef> {
7570        support::children(&self.syntax)
7571    }
7572    #[inline]
7573    pub fn except_token(&self) -> Option<SyntaxToken> {
7574        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
7575    }
7576}
7577
7578#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7579pub struct ExcludeConstraint {
7580    pub(crate) syntax: SyntaxNode,
7581}
7582impl ExcludeConstraint {
7583    #[inline]
7584    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
7585        support::child(&self.syntax)
7586    }
7587    #[inline]
7588    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
7589        support::child(&self.syntax)
7590    }
7591    #[inline]
7592    pub fn constraint_name(&self) -> Option<ConstraintName> {
7593        support::child(&self.syntax)
7594    }
7595    #[inline]
7596    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
7597        support::child(&self.syntax)
7598    }
7599    #[inline]
7600    pub fn exclude_token(&self) -> Option<SyntaxToken> {
7601        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
7602    }
7603}
7604
7605#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7606pub struct Execute {
7607    pub(crate) syntax: SyntaxNode,
7608}
7609impl Execute {
7610    #[inline]
7611    pub fn arg_list(&self) -> Option<ArgList> {
7612        support::child(&self.syntax)
7613    }
7614    #[inline]
7615    pub fn name_ref(&self) -> Option<NameRef> {
7616        support::child(&self.syntax)
7617    }
7618    #[inline]
7619    pub fn execute_token(&self) -> Option<SyntaxToken> {
7620        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
7621    }
7622}
7623
7624#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7625pub struct ExistsFn {
7626    pub(crate) syntax: SyntaxNode,
7627}
7628impl ExistsFn {
7629    #[inline]
7630    pub fn select_variant(&self) -> Option<SelectVariant> {
7631        support::child(&self.syntax)
7632    }
7633    #[inline]
7634    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7635        support::token(&self.syntax, SyntaxKind::L_PAREN)
7636    }
7637    #[inline]
7638    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7639        support::token(&self.syntax, SyntaxKind::R_PAREN)
7640    }
7641    #[inline]
7642    pub fn exists_token(&self) -> Option<SyntaxToken> {
7643        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
7644    }
7645}
7646
7647#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7648pub struct Explain {
7649    pub(crate) syntax: SyntaxNode,
7650}
7651impl Explain {
7652    #[inline]
7653    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
7654        support::child(&self.syntax)
7655    }
7656    #[inline]
7657    pub fn analyse_token(&self) -> Option<SyntaxToken> {
7658        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
7659    }
7660    #[inline]
7661    pub fn analyze_token(&self) -> Option<SyntaxToken> {
7662        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
7663    }
7664    #[inline]
7665    pub fn explain_token(&self) -> Option<SyntaxToken> {
7666        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
7667    }
7668    #[inline]
7669    pub fn verbose_token(&self) -> Option<SyntaxToken> {
7670        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
7671    }
7672}
7673
7674#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7675pub struct ExprAsName {
7676    pub(crate) syntax: SyntaxNode,
7677}
7678impl ExprAsName {
7679    #[inline]
7680    pub fn as_name(&self) -> Option<AsName> {
7681        support::child(&self.syntax)
7682    }
7683    #[inline]
7684    pub fn expr(&self) -> Option<Expr> {
7685        support::child(&self.syntax)
7686    }
7687}
7688
7689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7690pub struct ExprType {
7691    pub(crate) syntax: SyntaxNode,
7692}
7693impl ExprType {
7694    #[inline]
7695    pub fn expr(&self) -> Option<Expr> {
7696        support::child(&self.syntax)
7697    }
7698}
7699
7700#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7701pub struct ExtractFn {
7702    pub(crate) syntax: SyntaxNode,
7703}
7704impl ExtractFn {
7705    #[inline]
7706    pub fn expr(&self) -> Option<Expr> {
7707        support::child(&self.syntax)
7708    }
7709    #[inline]
7710    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7711        support::token(&self.syntax, SyntaxKind::L_PAREN)
7712    }
7713    #[inline]
7714    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7715        support::token(&self.syntax, SyntaxKind::R_PAREN)
7716    }
7717    #[inline]
7718    pub fn day_token(&self) -> Option<SyntaxToken> {
7719        support::token(&self.syntax, SyntaxKind::DAY_KW)
7720    }
7721    #[inline]
7722    pub fn extract_token(&self) -> Option<SyntaxToken> {
7723        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
7724    }
7725    #[inline]
7726    pub fn from_token(&self) -> Option<SyntaxToken> {
7727        support::token(&self.syntax, SyntaxKind::FROM_KW)
7728    }
7729    #[inline]
7730    pub fn hour_token(&self) -> Option<SyntaxToken> {
7731        support::token(&self.syntax, SyntaxKind::HOUR_KW)
7732    }
7733    #[inline]
7734    pub fn ident_token(&self) -> Option<SyntaxToken> {
7735        support::token(&self.syntax, SyntaxKind::IDENT)
7736    }
7737    #[inline]
7738    pub fn minute_token(&self) -> Option<SyntaxToken> {
7739        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
7740    }
7741    #[inline]
7742    pub fn month_token(&self) -> Option<SyntaxToken> {
7743        support::token(&self.syntax, SyntaxKind::MONTH_KW)
7744    }
7745    #[inline]
7746    pub fn second_token(&self) -> Option<SyntaxToken> {
7747        support::token(&self.syntax, SyntaxKind::SECOND_KW)
7748    }
7749    #[inline]
7750    pub fn string_token(&self) -> Option<SyntaxToken> {
7751        support::token(&self.syntax, SyntaxKind::STRING_KW)
7752    }
7753    #[inline]
7754    pub fn year_token(&self) -> Option<SyntaxToken> {
7755        support::token(&self.syntax, SyntaxKind::YEAR_KW)
7756    }
7757}
7758
7759#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7760pub struct FatArrow {
7761    pub(crate) syntax: SyntaxNode,
7762}
7763impl FatArrow {
7764    #[inline]
7765    pub fn eq_token(&self) -> Option<SyntaxToken> {
7766        support::token(&self.syntax, SyntaxKind::EQ)
7767    }
7768    #[inline]
7769    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7770        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7771    }
7772}
7773
7774#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7775pub struct FdwOption {
7776    pub(crate) syntax: SyntaxNode,
7777}
7778impl FdwOption {
7779    #[inline]
7780    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
7781        support::child(&self.syntax)
7782    }
7783    #[inline]
7784    pub fn path(&self) -> Option<Path> {
7785        support::child(&self.syntax)
7786    }
7787    #[inline]
7788    pub fn handler_token(&self) -> Option<SyntaxToken> {
7789        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
7790    }
7791    #[inline]
7792    pub fn no_token(&self) -> Option<SyntaxToken> {
7793        support::token(&self.syntax, SyntaxKind::NO_KW)
7794    }
7795    #[inline]
7796    pub fn options_token(&self) -> Option<SyntaxToken> {
7797        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
7798    }
7799    #[inline]
7800    pub fn validator_token(&self) -> Option<SyntaxToken> {
7801        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
7802    }
7803}
7804
7805#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7806pub struct FdwOptionList {
7807    pub(crate) syntax: SyntaxNode,
7808}
7809impl FdwOptionList {
7810    #[inline]
7811    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
7812        support::children(&self.syntax)
7813    }
7814}
7815
7816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7817pub struct Fetch {
7818    pub(crate) syntax: SyntaxNode,
7819}
7820impl Fetch {
7821    #[inline]
7822    pub fn name_ref(&self) -> Option<NameRef> {
7823        support::child(&self.syntax)
7824    }
7825    #[inline]
7826    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7827        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7828    }
7829    #[inline]
7830    pub fn from_token(&self) -> Option<SyntaxToken> {
7831        support::token(&self.syntax, SyntaxKind::FROM_KW)
7832    }
7833    #[inline]
7834    pub fn in_token(&self) -> Option<SyntaxToken> {
7835        support::token(&self.syntax, SyntaxKind::IN_KW)
7836    }
7837}
7838
7839#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7840pub struct FetchClause {
7841    pub(crate) syntax: SyntaxNode,
7842}
7843impl FetchClause {
7844    #[inline]
7845    pub fn expr(&self) -> Option<Expr> {
7846        support::child(&self.syntax)
7847    }
7848    #[inline]
7849    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7850        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7851    }
7852    #[inline]
7853    pub fn first_token(&self) -> Option<SyntaxToken> {
7854        support::token(&self.syntax, SyntaxKind::FIRST_KW)
7855    }
7856    #[inline]
7857    pub fn next_token(&self) -> Option<SyntaxToken> {
7858        support::token(&self.syntax, SyntaxKind::NEXT_KW)
7859    }
7860    #[inline]
7861    pub fn only_token(&self) -> Option<SyntaxToken> {
7862        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7863    }
7864    #[inline]
7865    pub fn row_token(&self) -> Option<SyntaxToken> {
7866        support::token(&self.syntax, SyntaxKind::ROW_KW)
7867    }
7868    #[inline]
7869    pub fn rows_token(&self) -> Option<SyntaxToken> {
7870        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7871    }
7872    #[inline]
7873    pub fn ties_token(&self) -> Option<SyntaxToken> {
7874        support::token(&self.syntax, SyntaxKind::TIES_KW)
7875    }
7876    #[inline]
7877    pub fn with_token(&self) -> Option<SyntaxToken> {
7878        support::token(&self.syntax, SyntaxKind::WITH_KW)
7879    }
7880}
7881
7882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7883pub struct FieldExpr {
7884    pub(crate) syntax: SyntaxNode,
7885}
7886impl FieldExpr {
7887    #[inline]
7888    pub fn star_token(&self) -> Option<SyntaxToken> {
7889        support::token(&self.syntax, SyntaxKind::STAR)
7890    }
7891    #[inline]
7892    pub fn dot_token(&self) -> Option<SyntaxToken> {
7893        support::token(&self.syntax, SyntaxKind::DOT)
7894    }
7895}
7896
7897#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7898pub struct FilterClause {
7899    pub(crate) syntax: SyntaxNode,
7900}
7901impl FilterClause {
7902    #[inline]
7903    pub fn expr(&self) -> Option<Expr> {
7904        support::child(&self.syntax)
7905    }
7906    #[inline]
7907    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7908        support::token(&self.syntax, SyntaxKind::L_PAREN)
7909    }
7910    #[inline]
7911    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7912        support::token(&self.syntax, SyntaxKind::R_PAREN)
7913    }
7914    #[inline]
7915    pub fn filter_token(&self) -> Option<SyntaxToken> {
7916        support::token(&self.syntax, SyntaxKind::FILTER_KW)
7917    }
7918    #[inline]
7919    pub fn where_token(&self) -> Option<SyntaxToken> {
7920        support::token(&self.syntax, SyntaxKind::WHERE_KW)
7921    }
7922}
7923
7924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7925pub struct ForProvider {
7926    pub(crate) syntax: SyntaxNode,
7927}
7928impl ForProvider {
7929    #[inline]
7930    pub fn literal(&self) -> Option<Literal> {
7931        support::child(&self.syntax)
7932    }
7933    #[inline]
7934    pub fn name_ref(&self) -> Option<NameRef> {
7935        support::child(&self.syntax)
7936    }
7937    #[inline]
7938    pub fn for_token(&self) -> Option<SyntaxToken> {
7939        support::token(&self.syntax, SyntaxKind::FOR_KW)
7940    }
7941}
7942
7943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7944pub struct ForceRls {
7945    pub(crate) syntax: SyntaxNode,
7946}
7947impl ForceRls {
7948    #[inline]
7949    pub fn force_token(&self) -> Option<SyntaxToken> {
7950        support::token(&self.syntax, SyntaxKind::FORCE_KW)
7951    }
7952    #[inline]
7953    pub fn level_token(&self) -> Option<SyntaxToken> {
7954        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7955    }
7956    #[inline]
7957    pub fn row_token(&self) -> Option<SyntaxToken> {
7958        support::token(&self.syntax, SyntaxKind::ROW_KW)
7959    }
7960    #[inline]
7961    pub fn security_token(&self) -> Option<SyntaxToken> {
7962        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7963    }
7964}
7965
7966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7967pub struct ForeignKeyConstraint {
7968    pub(crate) syntax: SyntaxNode,
7969}
7970impl ForeignKeyConstraint {
7971    #[inline]
7972    pub fn constraint_name(&self) -> Option<ConstraintName> {
7973        support::child(&self.syntax)
7974    }
7975    #[inline]
7976    pub fn match_type(&self) -> Option<MatchType> {
7977        support::child(&self.syntax)
7978    }
7979    #[inline]
7980    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
7981        support::child(&self.syntax)
7982    }
7983    #[inline]
7984    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
7985        support::child(&self.syntax)
7986    }
7987    #[inline]
7988    pub fn path(&self) -> Option<Path> {
7989        support::child(&self.syntax)
7990    }
7991    #[inline]
7992    pub fn foreign_token(&self) -> Option<SyntaxToken> {
7993        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
7994    }
7995    #[inline]
7996    pub fn key_token(&self) -> Option<SyntaxToken> {
7997        support::token(&self.syntax, SyntaxKind::KEY_KW)
7998    }
7999    #[inline]
8000    pub fn references_token(&self) -> Option<SyntaxToken> {
8001        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
8002    }
8003}
8004
8005#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8006pub struct FrameClause {
8007    pub(crate) syntax: SyntaxNode,
8008}
8009impl FrameClause {
8010    #[inline]
8011    pub fn groups_token(&self) -> Option<SyntaxToken> {
8012        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
8013    }
8014    #[inline]
8015    pub fn range_token(&self) -> Option<SyntaxToken> {
8016        support::token(&self.syntax, SyntaxKind::RANGE_KW)
8017    }
8018    #[inline]
8019    pub fn rows_token(&self) -> Option<SyntaxToken> {
8020        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8021    }
8022}
8023
8024#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8025pub struct FromClause {
8026    pub(crate) syntax: SyntaxNode,
8027}
8028impl FromClause {
8029    #[inline]
8030    pub fn from_items(&self) -> AstChildren<FromItem> {
8031        support::children(&self.syntax)
8032    }
8033    #[inline]
8034    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
8035        support::children(&self.syntax)
8036    }
8037    #[inline]
8038    pub fn from_token(&self) -> Option<SyntaxToken> {
8039        support::token(&self.syntax, SyntaxKind::FROM_KW)
8040    }
8041}
8042
8043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8044pub struct FromItem {
8045    pub(crate) syntax: SyntaxNode,
8046}
8047impl FromItem {
8048    #[inline]
8049    pub fn alias(&self) -> Option<Alias> {
8050        support::child(&self.syntax)
8051    }
8052    #[inline]
8053    pub fn call_expr(&self) -> Option<CallExpr> {
8054        support::child(&self.syntax)
8055    }
8056    #[inline]
8057    pub fn cast_expr(&self) -> Option<CastExpr> {
8058        support::child(&self.syntax)
8059    }
8060    #[inline]
8061    pub fn field_expr(&self) -> Option<FieldExpr> {
8062        support::child(&self.syntax)
8063    }
8064    #[inline]
8065    pub fn json_table(&self) -> Option<JsonTable> {
8066        support::child(&self.syntax)
8067    }
8068    #[inline]
8069    pub fn name_ref(&self) -> Option<NameRef> {
8070        support::child(&self.syntax)
8071    }
8072    #[inline]
8073    pub fn paren_expr(&self) -> Option<ParenExpr> {
8074        support::child(&self.syntax)
8075    }
8076    #[inline]
8077    pub fn paren_select(&self) -> Option<ParenSelect> {
8078        support::child(&self.syntax)
8079    }
8080    #[inline]
8081    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
8082        support::child(&self.syntax)
8083    }
8084    #[inline]
8085    pub fn xml_table(&self) -> Option<XmlTable> {
8086        support::child(&self.syntax)
8087    }
8088    #[inline]
8089    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8090        support::token(&self.syntax, SyntaxKind::L_PAREN)
8091    }
8092    #[inline]
8093    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8094        support::token(&self.syntax, SyntaxKind::R_PAREN)
8095    }
8096    #[inline]
8097    pub fn star_token(&self) -> Option<SyntaxToken> {
8098        support::token(&self.syntax, SyntaxKind::STAR)
8099    }
8100    #[inline]
8101    pub fn from_token(&self) -> Option<SyntaxToken> {
8102        support::token(&self.syntax, SyntaxKind::FROM_KW)
8103    }
8104    #[inline]
8105    pub fn lateral_token(&self) -> Option<SyntaxToken> {
8106        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
8107    }
8108    #[inline]
8109    pub fn only_token(&self) -> Option<SyntaxToken> {
8110        support::token(&self.syntax, SyntaxKind::ONLY_KW)
8111    }
8112    #[inline]
8113    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
8114        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
8115    }
8116    #[inline]
8117    pub fn rows_token(&self) -> Option<SyntaxToken> {
8118        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8119    }
8120    #[inline]
8121    pub fn with_token(&self) -> Option<SyntaxToken> {
8122        support::token(&self.syntax, SyntaxKind::WITH_KW)
8123    }
8124}
8125
8126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8127pub struct FromTable {
8128    pub(crate) syntax: SyntaxNode,
8129}
8130impl FromTable {
8131    #[inline]
8132    pub fn path(&self) -> Option<Path> {
8133        support::child(&self.syntax)
8134    }
8135    #[inline]
8136    pub fn from_token(&self) -> Option<SyntaxToken> {
8137        support::token(&self.syntax, SyntaxKind::FROM_KW)
8138    }
8139}
8140
8141#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8142pub struct FuncOptionList {
8143    pub(crate) syntax: SyntaxNode,
8144}
8145impl FuncOptionList {
8146    #[inline]
8147    pub fn options(&self) -> AstChildren<FuncOption> {
8148        support::children(&self.syntax)
8149    }
8150}
8151
8152#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8153pub struct FunctionSig {
8154    pub(crate) syntax: SyntaxNode,
8155}
8156impl FunctionSig {
8157    #[inline]
8158    pub fn param_list(&self) -> Option<ParamList> {
8159        support::child(&self.syntax)
8160    }
8161    #[inline]
8162    pub fn path(&self) -> Option<Path> {
8163        support::child(&self.syntax)
8164    }
8165}
8166
8167#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8168pub struct FunctionSigList {
8169    pub(crate) syntax: SyntaxNode,
8170}
8171impl FunctionSigList {
8172    #[inline]
8173    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
8174        support::children(&self.syntax)
8175    }
8176}
8177
8178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8179pub struct GeneratedConstraint {
8180    pub(crate) syntax: SyntaxNode,
8181}
8182impl GeneratedConstraint {
8183    #[inline]
8184    pub fn expr(&self) -> Option<Expr> {
8185        support::child(&self.syntax)
8186    }
8187    #[inline]
8188    pub fn name_ref(&self) -> Option<NameRef> {
8189        support::child(&self.syntax)
8190    }
8191    #[inline]
8192    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
8193        support::child(&self.syntax)
8194    }
8195    #[inline]
8196    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8197        support::token(&self.syntax, SyntaxKind::L_PAREN)
8198    }
8199    #[inline]
8200    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8201        support::token(&self.syntax, SyntaxKind::R_PAREN)
8202    }
8203    #[inline]
8204    pub fn always_token(&self) -> Option<SyntaxToken> {
8205        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8206    }
8207    #[inline]
8208    pub fn as_token(&self) -> Option<SyntaxToken> {
8209        support::token(&self.syntax, SyntaxKind::AS_KW)
8210    }
8211    #[inline]
8212    pub fn by_token(&self) -> Option<SyntaxToken> {
8213        support::token(&self.syntax, SyntaxKind::BY_KW)
8214    }
8215    #[inline]
8216    pub fn constraint_token(&self) -> Option<SyntaxToken> {
8217        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
8218    }
8219    #[inline]
8220    pub fn default_token(&self) -> Option<SyntaxToken> {
8221        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8222    }
8223    #[inline]
8224    pub fn generated_token(&self) -> Option<SyntaxToken> {
8225        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
8226    }
8227    #[inline]
8228    pub fn identity_token(&self) -> Option<SyntaxToken> {
8229        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
8230    }
8231    #[inline]
8232    pub fn stored_token(&self) -> Option<SyntaxToken> {
8233        support::token(&self.syntax, SyntaxKind::STORED_KW)
8234    }
8235}
8236
8237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8238pub struct Grant {
8239    pub(crate) syntax: SyntaxNode,
8240}
8241impl Grant {
8242    #[inline]
8243    pub fn name_refs(&self) -> AstChildren<NameRef> {
8244        support::children(&self.syntax)
8245    }
8246    #[inline]
8247    pub fn paths(&self) -> AstChildren<Path> {
8248        support::children(&self.syntax)
8249    }
8250    #[inline]
8251    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
8252        support::child(&self.syntax)
8253    }
8254    #[inline]
8255    pub fn role_ref(&self) -> Option<RoleRef> {
8256        support::child(&self.syntax)
8257    }
8258    #[inline]
8259    pub fn role_ref_list(&self) -> Option<RoleRefList> {
8260        support::child(&self.syntax)
8261    }
8262    #[inline]
8263    pub fn all_token(&self) -> Option<SyntaxToken> {
8264        support::token(&self.syntax, SyntaxKind::ALL_KW)
8265    }
8266    #[inline]
8267    pub fn by_token(&self) -> Option<SyntaxToken> {
8268        support::token(&self.syntax, SyntaxKind::BY_KW)
8269    }
8270    #[inline]
8271    pub fn grant_token(&self) -> Option<SyntaxToken> {
8272        support::token(&self.syntax, SyntaxKind::GRANT_KW)
8273    }
8274    #[inline]
8275    pub fn granted_token(&self) -> Option<SyntaxToken> {
8276        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
8277    }
8278    #[inline]
8279    pub fn in_token(&self) -> Option<SyntaxToken> {
8280        support::token(&self.syntax, SyntaxKind::IN_KW)
8281    }
8282    #[inline]
8283    pub fn on_token(&self) -> Option<SyntaxToken> {
8284        support::token(&self.syntax, SyntaxKind::ON_KW)
8285    }
8286    #[inline]
8287    pub fn option_token(&self) -> Option<SyntaxToken> {
8288        support::token(&self.syntax, SyntaxKind::OPTION_KW)
8289    }
8290    #[inline]
8291    pub fn privileges_token(&self) -> Option<SyntaxToken> {
8292        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
8293    }
8294    #[inline]
8295    pub fn schema_token(&self) -> Option<SyntaxToken> {
8296        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8297    }
8298    #[inline]
8299    pub fn table_token(&self) -> Option<SyntaxToken> {
8300        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8301    }
8302    #[inline]
8303    pub fn tables_token(&self) -> Option<SyntaxToken> {
8304        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8305    }
8306    #[inline]
8307    pub fn to_token(&self) -> Option<SyntaxToken> {
8308        support::token(&self.syntax, SyntaxKind::TO_KW)
8309    }
8310    #[inline]
8311    pub fn with_token(&self) -> Option<SyntaxToken> {
8312        support::token(&self.syntax, SyntaxKind::WITH_KW)
8313    }
8314}
8315
8316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8317pub struct GrantDefaultPrivileges {
8318    pub(crate) syntax: SyntaxNode,
8319}
8320impl GrantDefaultPrivileges {
8321    #[inline]
8322    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
8323        support::child(&self.syntax)
8324    }
8325    #[inline]
8326    pub fn privileges(&self) -> Option<Privileges> {
8327        support::child(&self.syntax)
8328    }
8329    #[inline]
8330    pub fn role_ref_list(&self) -> Option<RoleRefList> {
8331        support::child(&self.syntax)
8332    }
8333    #[inline]
8334    pub fn grant_token(&self) -> Option<SyntaxToken> {
8335        support::token(&self.syntax, SyntaxKind::GRANT_KW)
8336    }
8337    #[inline]
8338    pub fn on_token(&self) -> Option<SyntaxToken> {
8339        support::token(&self.syntax, SyntaxKind::ON_KW)
8340    }
8341    #[inline]
8342    pub fn option_token(&self) -> Option<SyntaxToken> {
8343        support::token(&self.syntax, SyntaxKind::OPTION_KW)
8344    }
8345    #[inline]
8346    pub fn to_token(&self) -> Option<SyntaxToken> {
8347        support::token(&self.syntax, SyntaxKind::TO_KW)
8348    }
8349    #[inline]
8350    pub fn with_token(&self) -> Option<SyntaxToken> {
8351        support::token(&self.syntax, SyntaxKind::WITH_KW)
8352    }
8353}
8354
8355#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8356pub struct GroupByClause {
8357    pub(crate) syntax: SyntaxNode,
8358}
8359impl GroupByClause {
8360    #[inline]
8361    pub fn group_by_list(&self) -> Option<GroupByList> {
8362        support::child(&self.syntax)
8363    }
8364    #[inline]
8365    pub fn all_token(&self) -> Option<SyntaxToken> {
8366        support::token(&self.syntax, SyntaxKind::ALL_KW)
8367    }
8368    #[inline]
8369    pub fn by_token(&self) -> Option<SyntaxToken> {
8370        support::token(&self.syntax, SyntaxKind::BY_KW)
8371    }
8372    #[inline]
8373    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8374        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8375    }
8376    #[inline]
8377    pub fn group_token(&self) -> Option<SyntaxToken> {
8378        support::token(&self.syntax, SyntaxKind::GROUP_KW)
8379    }
8380}
8381
8382#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8383pub struct GroupByList {
8384    pub(crate) syntax: SyntaxNode,
8385}
8386impl GroupByList {
8387    #[inline]
8388    pub fn group_bys(&self) -> AstChildren<GroupBy> {
8389        support::children(&self.syntax)
8390    }
8391}
8392
8393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8394pub struct GroupingCube {
8395    pub(crate) syntax: SyntaxNode,
8396}
8397impl GroupingCube {
8398    #[inline]
8399    pub fn expr(&self) -> Option<Expr> {
8400        support::child(&self.syntax)
8401    }
8402    #[inline]
8403    pub fn cube_token(&self) -> Option<SyntaxToken> {
8404        support::token(&self.syntax, SyntaxKind::CUBE_KW)
8405    }
8406}
8407
8408#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8409pub struct GroupingExpr {
8410    pub(crate) syntax: SyntaxNode,
8411}
8412impl GroupingExpr {
8413    #[inline]
8414    pub fn expr(&self) -> Option<Expr> {
8415        support::child(&self.syntax)
8416    }
8417}
8418
8419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8420pub struct GroupingRollup {
8421    pub(crate) syntax: SyntaxNode,
8422}
8423impl GroupingRollup {
8424    #[inline]
8425    pub fn expr(&self) -> Option<Expr> {
8426        support::child(&self.syntax)
8427    }
8428    #[inline]
8429    pub fn rollup_token(&self) -> Option<SyntaxToken> {
8430        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
8431    }
8432}
8433
8434#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8435pub struct GroupingSets {
8436    pub(crate) syntax: SyntaxNode,
8437}
8438impl GroupingSets {
8439    #[inline]
8440    pub fn expr(&self) -> Option<Expr> {
8441        support::child(&self.syntax)
8442    }
8443    #[inline]
8444    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8445        support::token(&self.syntax, SyntaxKind::L_PAREN)
8446    }
8447    #[inline]
8448    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8449        support::token(&self.syntax, SyntaxKind::R_PAREN)
8450    }
8451    #[inline]
8452    pub fn grouping_token(&self) -> Option<SyntaxToken> {
8453        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
8454    }
8455    #[inline]
8456    pub fn sets_token(&self) -> Option<SyntaxToken> {
8457        support::token(&self.syntax, SyntaxKind::SETS_KW)
8458    }
8459}
8460
8461#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8462pub struct Gteq {
8463    pub(crate) syntax: SyntaxNode,
8464}
8465impl Gteq {
8466    #[inline]
8467    pub fn eq_token(&self) -> Option<SyntaxToken> {
8468        support::token(&self.syntax, SyntaxKind::EQ)
8469    }
8470    #[inline]
8471    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8472        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8473    }
8474}
8475
8476#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8477pub struct HandlerClause {
8478    pub(crate) syntax: SyntaxNode,
8479}
8480impl HandlerClause {
8481    #[inline]
8482    pub fn path(&self) -> Option<Path> {
8483        support::child(&self.syntax)
8484    }
8485    #[inline]
8486    pub fn handler_token(&self) -> Option<SyntaxToken> {
8487        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
8488    }
8489}
8490
8491#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8492pub struct HavingClause {
8493    pub(crate) syntax: SyntaxNode,
8494}
8495impl HavingClause {
8496    #[inline]
8497    pub fn expr(&self) -> Option<Expr> {
8498        support::child(&self.syntax)
8499    }
8500    #[inline]
8501    pub fn having_token(&self) -> Option<SyntaxToken> {
8502        support::token(&self.syntax, SyntaxKind::HAVING_KW)
8503    }
8504}
8505
8506#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8507pub struct IfExists {
8508    pub(crate) syntax: SyntaxNode,
8509}
8510impl IfExists {
8511    #[inline]
8512    pub fn exists_token(&self) -> Option<SyntaxToken> {
8513        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8514    }
8515    #[inline]
8516    pub fn if_token(&self) -> Option<SyntaxToken> {
8517        support::token(&self.syntax, SyntaxKind::IF_KW)
8518    }
8519}
8520
8521#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8522pub struct IfNotExists {
8523    pub(crate) syntax: SyntaxNode,
8524}
8525impl IfNotExists {
8526    #[inline]
8527    pub fn exists_token(&self) -> Option<SyntaxToken> {
8528        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8529    }
8530    #[inline]
8531    pub fn if_token(&self) -> Option<SyntaxToken> {
8532        support::token(&self.syntax, SyntaxKind::IF_KW)
8533    }
8534    #[inline]
8535    pub fn not_token(&self) -> Option<SyntaxToken> {
8536        support::token(&self.syntax, SyntaxKind::NOT_KW)
8537    }
8538}
8539
8540#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8541pub struct ImportForeignSchema {
8542    pub(crate) syntax: SyntaxNode,
8543}
8544impl ImportForeignSchema {
8545    #[inline]
8546    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
8547        support::child(&self.syntax)
8548    }
8549    #[inline]
8550    pub fn except_tables(&self) -> Option<ExceptTables> {
8551        support::child(&self.syntax)
8552    }
8553    #[inline]
8554    pub fn into_schema(&self) -> Option<IntoSchema> {
8555        support::child(&self.syntax)
8556    }
8557    #[inline]
8558    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
8559        support::child(&self.syntax)
8560    }
8561    #[inline]
8562    pub fn name_ref(&self) -> Option<NameRef> {
8563        support::child(&self.syntax)
8564    }
8565    #[inline]
8566    pub fn server_name(&self) -> Option<ServerName> {
8567        support::child(&self.syntax)
8568    }
8569    #[inline]
8570    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8571        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8572    }
8573    #[inline]
8574    pub fn from_token(&self) -> Option<SyntaxToken> {
8575        support::token(&self.syntax, SyntaxKind::FROM_KW)
8576    }
8577    #[inline]
8578    pub fn import_token(&self) -> Option<SyntaxToken> {
8579        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
8580    }
8581    #[inline]
8582    pub fn schema_token(&self) -> Option<SyntaxToken> {
8583        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8584    }
8585}
8586
8587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8588pub struct IndexExpr {
8589    pub(crate) syntax: SyntaxNode,
8590}
8591impl IndexExpr {
8592    #[inline]
8593    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8594        support::token(&self.syntax, SyntaxKind::L_BRACK)
8595    }
8596    #[inline]
8597    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8598        support::token(&self.syntax, SyntaxKind::R_BRACK)
8599    }
8600}
8601
8602#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8603pub struct Inherit {
8604    pub(crate) syntax: SyntaxNode,
8605}
8606impl Inherit {
8607    #[inline]
8608    pub fn path(&self) -> Option<Path> {
8609        support::child(&self.syntax)
8610    }
8611    #[inline]
8612    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8613        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8614    }
8615}
8616
8617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8618pub struct InheritTable {
8619    pub(crate) syntax: SyntaxNode,
8620}
8621impl InheritTable {
8622    #[inline]
8623    pub fn path(&self) -> Option<Path> {
8624        support::child(&self.syntax)
8625    }
8626    #[inline]
8627    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8628        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8629    }
8630}
8631
8632#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8633pub struct Inherits {
8634    pub(crate) syntax: SyntaxNode,
8635}
8636impl Inherits {
8637    #[inline]
8638    pub fn paths(&self) -> AstChildren<Path> {
8639        support::children(&self.syntax)
8640    }
8641    #[inline]
8642    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8643        support::token(&self.syntax, SyntaxKind::L_PAREN)
8644    }
8645    #[inline]
8646    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8647        support::token(&self.syntax, SyntaxKind::R_PAREN)
8648    }
8649    #[inline]
8650    pub fn inherits_token(&self) -> Option<SyntaxToken> {
8651        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
8652    }
8653}
8654
8655#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8656pub struct InitiallyDeferredConstraintOption {
8657    pub(crate) syntax: SyntaxNode,
8658}
8659impl InitiallyDeferredConstraintOption {
8660    #[inline]
8661    pub fn deferred_token(&self) -> Option<SyntaxToken> {
8662        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
8663    }
8664    #[inline]
8665    pub fn initially_token(&self) -> Option<SyntaxToken> {
8666        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8667    }
8668}
8669
8670#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8671pub struct InitiallyImmediateConstraintOption {
8672    pub(crate) syntax: SyntaxNode,
8673}
8674impl InitiallyImmediateConstraintOption {
8675    #[inline]
8676    pub fn immediate_token(&self) -> Option<SyntaxToken> {
8677        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
8678    }
8679    #[inline]
8680    pub fn initially_token(&self) -> Option<SyntaxToken> {
8681        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8682    }
8683}
8684
8685#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8686pub struct Insert {
8687    pub(crate) syntax: SyntaxNode,
8688}
8689impl Insert {
8690    #[inline]
8691    pub fn alias(&self) -> Option<Alias> {
8692        support::child(&self.syntax)
8693    }
8694    #[inline]
8695    pub fn column_list(&self) -> Option<ColumnList> {
8696        support::child(&self.syntax)
8697    }
8698    #[inline]
8699    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
8700        support::child(&self.syntax)
8701    }
8702    #[inline]
8703    pub fn path(&self) -> Option<Path> {
8704        support::child(&self.syntax)
8705    }
8706    #[inline]
8707    pub fn returning_clause(&self) -> Option<ReturningClause> {
8708        support::child(&self.syntax)
8709    }
8710    #[inline]
8711    pub fn stmt(&self) -> Option<Stmt> {
8712        support::child(&self.syntax)
8713    }
8714    #[inline]
8715    pub fn values(&self) -> Option<Values> {
8716        support::child(&self.syntax)
8717    }
8718    #[inline]
8719    pub fn with_clause(&self) -> Option<WithClause> {
8720        support::child(&self.syntax)
8721    }
8722    #[inline]
8723    pub fn default_token(&self) -> Option<SyntaxToken> {
8724        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8725    }
8726    #[inline]
8727    pub fn insert_token(&self) -> Option<SyntaxToken> {
8728        support::token(&self.syntax, SyntaxKind::INSERT_KW)
8729    }
8730    #[inline]
8731    pub fn into_token(&self) -> Option<SyntaxToken> {
8732        support::token(&self.syntax, SyntaxKind::INTO_KW)
8733    }
8734    #[inline]
8735    pub fn overriding_token(&self) -> Option<SyntaxToken> {
8736        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
8737    }
8738    #[inline]
8739    pub fn system_token(&self) -> Option<SyntaxToken> {
8740        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
8741    }
8742    #[inline]
8743    pub fn user_token(&self) -> Option<SyntaxToken> {
8744        support::token(&self.syntax, SyntaxKind::USER_KW)
8745    }
8746    #[inline]
8747    pub fn value_token(&self) -> Option<SyntaxToken> {
8748        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8749    }
8750    #[inline]
8751    pub fn values_token(&self) -> Option<SyntaxToken> {
8752        support::token(&self.syntax, SyntaxKind::VALUES_KW)
8753    }
8754}
8755
8756#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8757pub struct IntervalType {
8758    pub(crate) syntax: SyntaxNode,
8759}
8760impl IntervalType {
8761    #[inline]
8762    pub fn literal(&self) -> Option<Literal> {
8763        support::child(&self.syntax)
8764    }
8765    #[inline]
8766    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8767        support::token(&self.syntax, SyntaxKind::L_PAREN)
8768    }
8769    #[inline]
8770    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8771        support::token(&self.syntax, SyntaxKind::R_PAREN)
8772    }
8773    #[inline]
8774    pub fn day_token(&self) -> Option<SyntaxToken> {
8775        support::token(&self.syntax, SyntaxKind::DAY_KW)
8776    }
8777    #[inline]
8778    pub fn hour_token(&self) -> Option<SyntaxToken> {
8779        support::token(&self.syntax, SyntaxKind::HOUR_KW)
8780    }
8781    #[inline]
8782    pub fn interval_token(&self) -> Option<SyntaxToken> {
8783        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
8784    }
8785    #[inline]
8786    pub fn minute_token(&self) -> Option<SyntaxToken> {
8787        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
8788    }
8789    #[inline]
8790    pub fn month_token(&self) -> Option<SyntaxToken> {
8791        support::token(&self.syntax, SyntaxKind::MONTH_KW)
8792    }
8793    #[inline]
8794    pub fn second_token(&self) -> Option<SyntaxToken> {
8795        support::token(&self.syntax, SyntaxKind::SECOND_KW)
8796    }
8797    #[inline]
8798    pub fn to_token(&self) -> Option<SyntaxToken> {
8799        support::token(&self.syntax, SyntaxKind::TO_KW)
8800    }
8801    #[inline]
8802    pub fn year_token(&self) -> Option<SyntaxToken> {
8803        support::token(&self.syntax, SyntaxKind::YEAR_KW)
8804    }
8805}
8806
8807#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8808pub struct IntoClause {
8809    pub(crate) syntax: SyntaxNode,
8810}
8811impl IntoClause {
8812    #[inline]
8813    pub fn path(&self) -> Option<Path> {
8814        support::child(&self.syntax)
8815    }
8816    #[inline]
8817    pub fn into_token(&self) -> Option<SyntaxToken> {
8818        support::token(&self.syntax, SyntaxKind::INTO_KW)
8819    }
8820}
8821
8822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8823pub struct IntoSchema {
8824    pub(crate) syntax: SyntaxNode,
8825}
8826impl IntoSchema {
8827    #[inline]
8828    pub fn name_ref(&self) -> Option<NameRef> {
8829        support::child(&self.syntax)
8830    }
8831    #[inline]
8832    pub fn into_token(&self) -> Option<SyntaxToken> {
8833        support::token(&self.syntax, SyntaxKind::INTO_KW)
8834    }
8835}
8836
8837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8838pub struct IsDistinctFrom {
8839    pub(crate) syntax: SyntaxNode,
8840}
8841impl IsDistinctFrom {
8842    #[inline]
8843    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8844        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8845    }
8846    #[inline]
8847    pub fn from_token(&self) -> Option<SyntaxToken> {
8848        support::token(&self.syntax, SyntaxKind::FROM_KW)
8849    }
8850    #[inline]
8851    pub fn is_token(&self) -> Option<SyntaxToken> {
8852        support::token(&self.syntax, SyntaxKind::IS_KW)
8853    }
8854}
8855
8856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8857pub struct IsJson {
8858    pub(crate) syntax: SyntaxNode,
8859}
8860impl IsJson {
8861    #[inline]
8862    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8863        support::child(&self.syntax)
8864    }
8865    #[inline]
8866    pub fn is_token(&self) -> Option<SyntaxToken> {
8867        support::token(&self.syntax, SyntaxKind::IS_KW)
8868    }
8869    #[inline]
8870    pub fn json_token(&self) -> Option<SyntaxToken> {
8871        support::token(&self.syntax, SyntaxKind::JSON_KW)
8872    }
8873}
8874
8875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8876pub struct IsJsonArray {
8877    pub(crate) syntax: SyntaxNode,
8878}
8879impl IsJsonArray {
8880    #[inline]
8881    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8882        support::child(&self.syntax)
8883    }
8884    #[inline]
8885    pub fn array_token(&self) -> Option<SyntaxToken> {
8886        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8887    }
8888    #[inline]
8889    pub fn is_token(&self) -> Option<SyntaxToken> {
8890        support::token(&self.syntax, SyntaxKind::IS_KW)
8891    }
8892    #[inline]
8893    pub fn json_token(&self) -> Option<SyntaxToken> {
8894        support::token(&self.syntax, SyntaxKind::JSON_KW)
8895    }
8896}
8897
8898#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8899pub struct IsJsonObject {
8900    pub(crate) syntax: SyntaxNode,
8901}
8902impl IsJsonObject {
8903    #[inline]
8904    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8905        support::child(&self.syntax)
8906    }
8907    #[inline]
8908    pub fn is_token(&self) -> Option<SyntaxToken> {
8909        support::token(&self.syntax, SyntaxKind::IS_KW)
8910    }
8911    #[inline]
8912    pub fn json_token(&self) -> Option<SyntaxToken> {
8913        support::token(&self.syntax, SyntaxKind::JSON_KW)
8914    }
8915    #[inline]
8916    pub fn object_token(&self) -> Option<SyntaxToken> {
8917        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8918    }
8919}
8920
8921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8922pub struct IsJsonScalar {
8923    pub(crate) syntax: SyntaxNode,
8924}
8925impl IsJsonScalar {
8926    #[inline]
8927    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8928        support::child(&self.syntax)
8929    }
8930    #[inline]
8931    pub fn is_token(&self) -> Option<SyntaxToken> {
8932        support::token(&self.syntax, SyntaxKind::IS_KW)
8933    }
8934    #[inline]
8935    pub fn json_token(&self) -> Option<SyntaxToken> {
8936        support::token(&self.syntax, SyntaxKind::JSON_KW)
8937    }
8938    #[inline]
8939    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8940        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8941    }
8942}
8943
8944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8945pub struct IsJsonValue {
8946    pub(crate) syntax: SyntaxNode,
8947}
8948impl IsJsonValue {
8949    #[inline]
8950    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8951        support::child(&self.syntax)
8952    }
8953    #[inline]
8954    pub fn is_token(&self) -> Option<SyntaxToken> {
8955        support::token(&self.syntax, SyntaxKind::IS_KW)
8956    }
8957    #[inline]
8958    pub fn json_token(&self) -> Option<SyntaxToken> {
8959        support::token(&self.syntax, SyntaxKind::JSON_KW)
8960    }
8961    #[inline]
8962    pub fn value_token(&self) -> Option<SyntaxToken> {
8963        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8964    }
8965}
8966
8967#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8968pub struct IsNormalized {
8969    pub(crate) syntax: SyntaxNode,
8970}
8971impl IsNormalized {
8972    #[inline]
8973    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8974        support::child(&self.syntax)
8975    }
8976    #[inline]
8977    pub fn is_token(&self) -> Option<SyntaxToken> {
8978        support::token(&self.syntax, SyntaxKind::IS_KW)
8979    }
8980    #[inline]
8981    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8982        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8983    }
8984}
8985
8986#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8987pub struct IsNot {
8988    pub(crate) syntax: SyntaxNode,
8989}
8990impl IsNot {
8991    #[inline]
8992    pub fn is_token(&self) -> Option<SyntaxToken> {
8993        support::token(&self.syntax, SyntaxKind::IS_KW)
8994    }
8995    #[inline]
8996    pub fn not_token(&self) -> Option<SyntaxToken> {
8997        support::token(&self.syntax, SyntaxKind::NOT_KW)
8998    }
8999}
9000
9001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9002pub struct IsNotDistinctFrom {
9003    pub(crate) syntax: SyntaxNode,
9004}
9005impl IsNotDistinctFrom {
9006    #[inline]
9007    pub fn distinct_token(&self) -> Option<SyntaxToken> {
9008        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
9009    }
9010    #[inline]
9011    pub fn from_token(&self) -> Option<SyntaxToken> {
9012        support::token(&self.syntax, SyntaxKind::FROM_KW)
9013    }
9014    #[inline]
9015    pub fn is_token(&self) -> Option<SyntaxToken> {
9016        support::token(&self.syntax, SyntaxKind::IS_KW)
9017    }
9018    #[inline]
9019    pub fn not_token(&self) -> Option<SyntaxToken> {
9020        support::token(&self.syntax, SyntaxKind::NOT_KW)
9021    }
9022}
9023
9024#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9025pub struct IsNotJson {
9026    pub(crate) syntax: SyntaxNode,
9027}
9028impl IsNotJson {
9029    #[inline]
9030    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9031        support::child(&self.syntax)
9032    }
9033    #[inline]
9034    pub fn is_token(&self) -> Option<SyntaxToken> {
9035        support::token(&self.syntax, SyntaxKind::IS_KW)
9036    }
9037    #[inline]
9038    pub fn json_token(&self) -> Option<SyntaxToken> {
9039        support::token(&self.syntax, SyntaxKind::JSON_KW)
9040    }
9041    #[inline]
9042    pub fn not_token(&self) -> Option<SyntaxToken> {
9043        support::token(&self.syntax, SyntaxKind::NOT_KW)
9044    }
9045}
9046
9047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9048pub struct IsNotJsonArray {
9049    pub(crate) syntax: SyntaxNode,
9050}
9051impl IsNotJsonArray {
9052    #[inline]
9053    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9054        support::child(&self.syntax)
9055    }
9056    #[inline]
9057    pub fn array_token(&self) -> Option<SyntaxToken> {
9058        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9059    }
9060    #[inline]
9061    pub fn is_token(&self) -> Option<SyntaxToken> {
9062        support::token(&self.syntax, SyntaxKind::IS_KW)
9063    }
9064    #[inline]
9065    pub fn json_token(&self) -> Option<SyntaxToken> {
9066        support::token(&self.syntax, SyntaxKind::JSON_KW)
9067    }
9068    #[inline]
9069    pub fn not_token(&self) -> Option<SyntaxToken> {
9070        support::token(&self.syntax, SyntaxKind::NOT_KW)
9071    }
9072}
9073
9074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9075pub struct IsNotJsonObject {
9076    pub(crate) syntax: SyntaxNode,
9077}
9078impl IsNotJsonObject {
9079    #[inline]
9080    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9081        support::child(&self.syntax)
9082    }
9083    #[inline]
9084    pub fn is_token(&self) -> Option<SyntaxToken> {
9085        support::token(&self.syntax, SyntaxKind::IS_KW)
9086    }
9087    #[inline]
9088    pub fn json_token(&self) -> Option<SyntaxToken> {
9089        support::token(&self.syntax, SyntaxKind::JSON_KW)
9090    }
9091    #[inline]
9092    pub fn not_token(&self) -> Option<SyntaxToken> {
9093        support::token(&self.syntax, SyntaxKind::NOT_KW)
9094    }
9095    #[inline]
9096    pub fn object_token(&self) -> Option<SyntaxToken> {
9097        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9098    }
9099}
9100
9101#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9102pub struct IsNotJsonScalar {
9103    pub(crate) syntax: SyntaxNode,
9104}
9105impl IsNotJsonScalar {
9106    #[inline]
9107    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9108        support::child(&self.syntax)
9109    }
9110    #[inline]
9111    pub fn is_token(&self) -> Option<SyntaxToken> {
9112        support::token(&self.syntax, SyntaxKind::IS_KW)
9113    }
9114    #[inline]
9115    pub fn json_token(&self) -> Option<SyntaxToken> {
9116        support::token(&self.syntax, SyntaxKind::JSON_KW)
9117    }
9118    #[inline]
9119    pub fn not_token(&self) -> Option<SyntaxToken> {
9120        support::token(&self.syntax, SyntaxKind::NOT_KW)
9121    }
9122    #[inline]
9123    pub fn scalar_token(&self) -> Option<SyntaxToken> {
9124        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
9125    }
9126}
9127
9128#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9129pub struct IsNotJsonValue {
9130    pub(crate) syntax: SyntaxNode,
9131}
9132impl IsNotJsonValue {
9133    #[inline]
9134    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9135        support::child(&self.syntax)
9136    }
9137    #[inline]
9138    pub fn is_token(&self) -> Option<SyntaxToken> {
9139        support::token(&self.syntax, SyntaxKind::IS_KW)
9140    }
9141    #[inline]
9142    pub fn json_token(&self) -> Option<SyntaxToken> {
9143        support::token(&self.syntax, SyntaxKind::JSON_KW)
9144    }
9145    #[inline]
9146    pub fn not_token(&self) -> Option<SyntaxToken> {
9147        support::token(&self.syntax, SyntaxKind::NOT_KW)
9148    }
9149    #[inline]
9150    pub fn value_token(&self) -> Option<SyntaxToken> {
9151        support::token(&self.syntax, SyntaxKind::VALUE_KW)
9152    }
9153}
9154
9155#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9156pub struct IsNotNormalized {
9157    pub(crate) syntax: SyntaxNode,
9158}
9159impl IsNotNormalized {
9160    #[inline]
9161    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
9162        support::child(&self.syntax)
9163    }
9164    #[inline]
9165    pub fn is_token(&self) -> Option<SyntaxToken> {
9166        support::token(&self.syntax, SyntaxKind::IS_KW)
9167    }
9168    #[inline]
9169    pub fn normalized_token(&self) -> Option<SyntaxToken> {
9170        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
9171    }
9172    #[inline]
9173    pub fn not_token(&self) -> Option<SyntaxToken> {
9174        support::token(&self.syntax, SyntaxKind::NOT_KW)
9175    }
9176}
9177
9178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9179pub struct Join {
9180    pub(crate) syntax: SyntaxNode,
9181}
9182impl Join {
9183    #[inline]
9184    pub fn from_item(&self) -> Option<FromItem> {
9185        support::child(&self.syntax)
9186    }
9187    #[inline]
9188    pub fn join_type(&self) -> Option<JoinType> {
9189        support::child(&self.syntax)
9190    }
9191    #[inline]
9192    pub fn on_clause(&self) -> Option<OnClause> {
9193        support::child(&self.syntax)
9194    }
9195    #[inline]
9196    pub fn using_clause(&self) -> Option<JoinUsingClause> {
9197        support::child(&self.syntax)
9198    }
9199    #[inline]
9200    pub fn natural_token(&self) -> Option<SyntaxToken> {
9201        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
9202    }
9203}
9204
9205#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9206pub struct JoinCross {
9207    pub(crate) syntax: SyntaxNode,
9208}
9209impl JoinCross {
9210    #[inline]
9211    pub fn cross_token(&self) -> Option<SyntaxToken> {
9212        support::token(&self.syntax, SyntaxKind::CROSS_KW)
9213    }
9214    #[inline]
9215    pub fn join_token(&self) -> Option<SyntaxToken> {
9216        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9217    }
9218}
9219
9220#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9221pub struct JoinExpr {
9222    pub(crate) syntax: SyntaxNode,
9223}
9224impl JoinExpr {
9225    #[inline]
9226    pub fn from_item(&self) -> Option<FromItem> {
9227        support::child(&self.syntax)
9228    }
9229    #[inline]
9230    pub fn join(&self) -> Option<Join> {
9231        support::child(&self.syntax)
9232    }
9233    #[inline]
9234    pub fn join_expr(&self) -> Option<JoinExpr> {
9235        support::child(&self.syntax)
9236    }
9237}
9238
9239#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9240pub struct JoinFull {
9241    pub(crate) syntax: SyntaxNode,
9242}
9243impl JoinFull {
9244    #[inline]
9245    pub fn full_token(&self) -> Option<SyntaxToken> {
9246        support::token(&self.syntax, SyntaxKind::FULL_KW)
9247    }
9248    #[inline]
9249    pub fn join_token(&self) -> Option<SyntaxToken> {
9250        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9251    }
9252    #[inline]
9253    pub fn outer_token(&self) -> Option<SyntaxToken> {
9254        support::token(&self.syntax, SyntaxKind::OUTER_KW)
9255    }
9256}
9257
9258#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9259pub struct JoinInner {
9260    pub(crate) syntax: SyntaxNode,
9261}
9262impl JoinInner {
9263    #[inline]
9264    pub fn inner_token(&self) -> Option<SyntaxToken> {
9265        support::token(&self.syntax, SyntaxKind::INNER_KW)
9266    }
9267    #[inline]
9268    pub fn join_token(&self) -> Option<SyntaxToken> {
9269        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9270    }
9271}
9272
9273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9274pub struct JoinLeft {
9275    pub(crate) syntax: SyntaxNode,
9276}
9277impl JoinLeft {
9278    #[inline]
9279    pub fn join_token(&self) -> Option<SyntaxToken> {
9280        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9281    }
9282    #[inline]
9283    pub fn left_token(&self) -> Option<SyntaxToken> {
9284        support::token(&self.syntax, SyntaxKind::LEFT_KW)
9285    }
9286    #[inline]
9287    pub fn outer_token(&self) -> Option<SyntaxToken> {
9288        support::token(&self.syntax, SyntaxKind::OUTER_KW)
9289    }
9290}
9291
9292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9293pub struct JoinRight {
9294    pub(crate) syntax: SyntaxNode,
9295}
9296impl JoinRight {
9297    #[inline]
9298    pub fn join_token(&self) -> Option<SyntaxToken> {
9299        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9300    }
9301    #[inline]
9302    pub fn outer_token(&self) -> Option<SyntaxToken> {
9303        support::token(&self.syntax, SyntaxKind::OUTER_KW)
9304    }
9305    #[inline]
9306    pub fn right_token(&self) -> Option<SyntaxToken> {
9307        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
9308    }
9309}
9310
9311#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9312pub struct JoinUsingClause {
9313    pub(crate) syntax: SyntaxNode,
9314}
9315impl JoinUsingClause {
9316    #[inline]
9317    pub fn alias(&self) -> Option<Alias> {
9318        support::child(&self.syntax)
9319    }
9320    #[inline]
9321    pub fn column_list(&self) -> Option<ColumnList> {
9322        support::child(&self.syntax)
9323    }
9324    #[inline]
9325    pub fn using_token(&self) -> Option<SyntaxToken> {
9326        support::token(&self.syntax, SyntaxKind::USING_KW)
9327    }
9328}
9329
9330#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9331pub struct JsonArrayAggFn {
9332    pub(crate) syntax: SyntaxNode,
9333}
9334impl JsonArrayAggFn {
9335    #[inline]
9336    pub fn expr(&self) -> Option<Expr> {
9337        support::child(&self.syntax)
9338    }
9339    #[inline]
9340    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9341        support::child(&self.syntax)
9342    }
9343    #[inline]
9344    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9345        support::child(&self.syntax)
9346    }
9347    #[inline]
9348    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9349        support::children(&self.syntax)
9350    }
9351    #[inline]
9352    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9353        support::token(&self.syntax, SyntaxKind::L_PAREN)
9354    }
9355    #[inline]
9356    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9357        support::token(&self.syntax, SyntaxKind::R_PAREN)
9358    }
9359    #[inline]
9360    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
9361        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
9362    }
9363}
9364
9365#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9366pub struct JsonArrayFn {
9367    pub(crate) syntax: SyntaxNode,
9368}
9369impl JsonArrayFn {
9370    #[inline]
9371    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
9372        support::children(&self.syntax)
9373    }
9374    #[inline]
9375    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9376        support::child(&self.syntax)
9377    }
9378    #[inline]
9379    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9380        support::child(&self.syntax)
9381    }
9382    #[inline]
9383    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9384        support::children(&self.syntax)
9385    }
9386    #[inline]
9387    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9388        support::token(&self.syntax, SyntaxKind::L_PAREN)
9389    }
9390    #[inline]
9391    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9392        support::token(&self.syntax, SyntaxKind::R_PAREN)
9393    }
9394    #[inline]
9395    pub fn json_array_token(&self) -> Option<SyntaxToken> {
9396        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
9397    }
9398}
9399
9400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9401pub struct JsonBehaviorClause {
9402    pub(crate) syntax: SyntaxNode,
9403}
9404impl JsonBehaviorClause {
9405    #[inline]
9406    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9407        support::child(&self.syntax)
9408    }
9409}
9410
9411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9412pub struct JsonBehaviorDefault {
9413    pub(crate) syntax: SyntaxNode,
9414}
9415impl JsonBehaviorDefault {
9416    #[inline]
9417    pub fn expr(&self) -> Option<Expr> {
9418        support::child(&self.syntax)
9419    }
9420    #[inline]
9421    pub fn default_token(&self) -> Option<SyntaxToken> {
9422        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9423    }
9424}
9425
9426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9427pub struct JsonBehaviorEmptyArray {
9428    pub(crate) syntax: SyntaxNode,
9429}
9430impl JsonBehaviorEmptyArray {
9431    #[inline]
9432    pub fn array_token(&self) -> Option<SyntaxToken> {
9433        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9434    }
9435    #[inline]
9436    pub fn empty_token(&self) -> Option<SyntaxToken> {
9437        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9438    }
9439}
9440
9441#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9442pub struct JsonBehaviorEmptyObject {
9443    pub(crate) syntax: SyntaxNode,
9444}
9445impl JsonBehaviorEmptyObject {
9446    #[inline]
9447    pub fn empty_token(&self) -> Option<SyntaxToken> {
9448        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9449    }
9450    #[inline]
9451    pub fn object_token(&self) -> Option<SyntaxToken> {
9452        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9453    }
9454}
9455
9456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9457pub struct JsonBehaviorError {
9458    pub(crate) syntax: SyntaxNode,
9459}
9460impl JsonBehaviorError {
9461    #[inline]
9462    pub fn error_token(&self) -> Option<SyntaxToken> {
9463        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9464    }
9465}
9466
9467#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9468pub struct JsonBehaviorFalse {
9469    pub(crate) syntax: SyntaxNode,
9470}
9471impl JsonBehaviorFalse {
9472    #[inline]
9473    pub fn false_token(&self) -> Option<SyntaxToken> {
9474        support::token(&self.syntax, SyntaxKind::FALSE_KW)
9475    }
9476}
9477
9478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9479pub struct JsonBehaviorNull {
9480    pub(crate) syntax: SyntaxNode,
9481}
9482impl JsonBehaviorNull {
9483    #[inline]
9484    pub fn null_token(&self) -> Option<SyntaxToken> {
9485        support::token(&self.syntax, SyntaxKind::NULL_KW)
9486    }
9487}
9488
9489#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9490pub struct JsonBehaviorTrue {
9491    pub(crate) syntax: SyntaxNode,
9492}
9493impl JsonBehaviorTrue {
9494    #[inline]
9495    pub fn true_token(&self) -> Option<SyntaxToken> {
9496        support::token(&self.syntax, SyntaxKind::TRUE_KW)
9497    }
9498}
9499
9500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9501pub struct JsonBehaviorUnknown {
9502    pub(crate) syntax: SyntaxNode,
9503}
9504impl JsonBehaviorUnknown {
9505    #[inline]
9506    pub fn unknown_token(&self) -> Option<SyntaxToken> {
9507        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
9508    }
9509}
9510
9511#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9512pub struct JsonEncodingClause {
9513    pub(crate) syntax: SyntaxNode,
9514}
9515impl JsonEncodingClause {
9516    #[inline]
9517    pub fn name_ref(&self) -> Option<NameRef> {
9518        support::child(&self.syntax)
9519    }
9520    #[inline]
9521    pub fn encoding_token(&self) -> Option<SyntaxToken> {
9522        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
9523    }
9524}
9525
9526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9527pub struct JsonExistsFn {
9528    pub(crate) syntax: SyntaxNode,
9529}
9530impl JsonExistsFn {
9531    #[inline]
9532    pub fn expr(&self) -> Option<Expr> {
9533        support::child(&self.syntax)
9534    }
9535    #[inline]
9536    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9537        support::child(&self.syntax)
9538    }
9539    #[inline]
9540    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9541        support::child(&self.syntax)
9542    }
9543    #[inline]
9544    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9545        support::child(&self.syntax)
9546    }
9547    #[inline]
9548    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9549        support::token(&self.syntax, SyntaxKind::L_PAREN)
9550    }
9551    #[inline]
9552    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9553        support::token(&self.syntax, SyntaxKind::R_PAREN)
9554    }
9555    #[inline]
9556    pub fn comma_token(&self) -> Option<SyntaxToken> {
9557        support::token(&self.syntax, SyntaxKind::COMMA)
9558    }
9559    #[inline]
9560    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
9561        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
9562    }
9563}
9564
9565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9566pub struct JsonExprFormat {
9567    pub(crate) syntax: SyntaxNode,
9568}
9569impl JsonExprFormat {
9570    #[inline]
9571    pub fn expr(&self) -> Option<Expr> {
9572        support::child(&self.syntax)
9573    }
9574    #[inline]
9575    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9576        support::child(&self.syntax)
9577    }
9578}
9579
9580#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9581pub struct JsonFn {
9582    pub(crate) syntax: SyntaxNode,
9583}
9584impl JsonFn {
9585    #[inline]
9586    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
9587        support::child(&self.syntax)
9588    }
9589    #[inline]
9590    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9591        support::child(&self.syntax)
9592    }
9593    #[inline]
9594    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9595        support::token(&self.syntax, SyntaxKind::L_PAREN)
9596    }
9597    #[inline]
9598    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9599        support::token(&self.syntax, SyntaxKind::R_PAREN)
9600    }
9601    #[inline]
9602    pub fn json_token(&self) -> Option<SyntaxToken> {
9603        support::token(&self.syntax, SyntaxKind::JSON_KW)
9604    }
9605}
9606
9607#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9608pub struct JsonFormatClause {
9609    pub(crate) syntax: SyntaxNode,
9610}
9611impl JsonFormatClause {
9612    #[inline]
9613    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
9614        support::child(&self.syntax)
9615    }
9616    #[inline]
9617    pub fn format_token(&self) -> Option<SyntaxToken> {
9618        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
9619    }
9620    #[inline]
9621    pub fn json_token(&self) -> Option<SyntaxToken> {
9622        support::token(&self.syntax, SyntaxKind::JSON_KW)
9623    }
9624}
9625
9626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9627pub struct JsonKeyValue {
9628    pub(crate) syntax: SyntaxNode,
9629}
9630impl JsonKeyValue {
9631    #[inline]
9632    pub fn expr(&self) -> Option<Expr> {
9633        support::child(&self.syntax)
9634    }
9635    #[inline]
9636    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
9637        support::child(&self.syntax)
9638    }
9639    #[inline]
9640    pub fn colon_token(&self) -> Option<SyntaxToken> {
9641        support::token(&self.syntax, SyntaxKind::COLON)
9642    }
9643    #[inline]
9644    pub fn value_token(&self) -> Option<SyntaxToken> {
9645        support::token(&self.syntax, SyntaxKind::VALUE_KW)
9646    }
9647}
9648
9649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9650pub struct JsonKeysUniqueClause {
9651    pub(crate) syntax: SyntaxNode,
9652}
9653impl JsonKeysUniqueClause {
9654    #[inline]
9655    pub fn keys_token(&self) -> Option<SyntaxToken> {
9656        support::token(&self.syntax, SyntaxKind::KEYS_KW)
9657    }
9658    #[inline]
9659    pub fn unique_token(&self) -> Option<SyntaxToken> {
9660        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
9661    }
9662    #[inline]
9663    pub fn with_token(&self) -> Option<SyntaxToken> {
9664        support::token(&self.syntax, SyntaxKind::WITH_KW)
9665    }
9666    #[inline]
9667    pub fn without_token(&self) -> Option<SyntaxToken> {
9668        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9669    }
9670}
9671
9672#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9673pub struct JsonNullClause {
9674    pub(crate) syntax: SyntaxNode,
9675}
9676impl JsonNullClause {
9677    #[inline]
9678    pub fn absent_token(&self) -> Option<SyntaxToken> {
9679        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
9680    }
9681    #[inline]
9682    pub fn null_token(&self) -> Option<SyntaxToken> {
9683        support::token(&self.syntax, SyntaxKind::NULL_KW)
9684    }
9685    #[inline]
9686    pub fn on_token(&self) -> Option<SyntaxToken> {
9687        support::token(&self.syntax, SyntaxKind::ON_KW)
9688    }
9689}
9690
9691#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9692pub struct JsonObjectAggFn {
9693    pub(crate) syntax: SyntaxNode,
9694}
9695impl JsonObjectAggFn {
9696    #[inline]
9697    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
9698        support::child(&self.syntax)
9699    }
9700    #[inline]
9701    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9702        support::child(&self.syntax)
9703    }
9704    #[inline]
9705    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9706        support::child(&self.syntax)
9707    }
9708    #[inline]
9709    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9710        support::child(&self.syntax)
9711    }
9712    #[inline]
9713    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9714        support::token(&self.syntax, SyntaxKind::L_PAREN)
9715    }
9716    #[inline]
9717    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9718        support::token(&self.syntax, SyntaxKind::R_PAREN)
9719    }
9720    #[inline]
9721    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
9722        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
9723    }
9724}
9725
9726#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9727pub struct JsonObjectFn {
9728    pub(crate) syntax: SyntaxNode,
9729}
9730impl JsonObjectFn {
9731    #[inline]
9732    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
9733        support::children(&self.syntax)
9734    }
9735    #[inline]
9736    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9737        support::child(&self.syntax)
9738    }
9739    #[inline]
9740    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9741        support::child(&self.syntax)
9742    }
9743    #[inline]
9744    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9745        support::child(&self.syntax)
9746    }
9747    #[inline]
9748    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9749        support::token(&self.syntax, SyntaxKind::L_PAREN)
9750    }
9751    #[inline]
9752    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9753        support::token(&self.syntax, SyntaxKind::R_PAREN)
9754    }
9755    #[inline]
9756    pub fn json_object_token(&self) -> Option<SyntaxToken> {
9757        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
9758    }
9759}
9760
9761#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9762pub struct JsonOnEmptyClause {
9763    pub(crate) syntax: SyntaxNode,
9764}
9765impl JsonOnEmptyClause {
9766    #[inline]
9767    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9768        support::child(&self.syntax)
9769    }
9770    #[inline]
9771    pub fn empty_token(&self) -> Option<SyntaxToken> {
9772        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9773    }
9774    #[inline]
9775    pub fn on_token(&self) -> Option<SyntaxToken> {
9776        support::token(&self.syntax, SyntaxKind::ON_KW)
9777    }
9778}
9779
9780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9781pub struct JsonOnErrorClause {
9782    pub(crate) syntax: SyntaxNode,
9783}
9784impl JsonOnErrorClause {
9785    #[inline]
9786    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9787        support::child(&self.syntax)
9788    }
9789    #[inline]
9790    pub fn error_token(&self) -> Option<SyntaxToken> {
9791        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9792    }
9793    #[inline]
9794    pub fn on_token(&self) -> Option<SyntaxToken> {
9795        support::token(&self.syntax, SyntaxKind::ON_KW)
9796    }
9797}
9798
9799#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9800pub struct JsonPassingArg {
9801    pub(crate) syntax: SyntaxNode,
9802}
9803impl JsonPassingArg {
9804    #[inline]
9805    pub fn expr(&self) -> Option<Expr> {
9806        support::child(&self.syntax)
9807    }
9808    #[inline]
9809    pub fn name(&self) -> Option<Name> {
9810        support::child(&self.syntax)
9811    }
9812    #[inline]
9813    pub fn as_token(&self) -> Option<SyntaxToken> {
9814        support::token(&self.syntax, SyntaxKind::AS_KW)
9815    }
9816}
9817
9818#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9819pub struct JsonPassingClause {
9820    pub(crate) syntax: SyntaxNode,
9821}
9822impl JsonPassingClause {
9823    #[inline]
9824    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
9825        support::children(&self.syntax)
9826    }
9827    #[inline]
9828    pub fn passing_token(&self) -> Option<SyntaxToken> {
9829        support::token(&self.syntax, SyntaxKind::PASSING_KW)
9830    }
9831}
9832
9833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9834pub struct JsonPathClause {
9835    pub(crate) syntax: SyntaxNode,
9836}
9837impl JsonPathClause {
9838    #[inline]
9839    pub fn expr(&self) -> Option<Expr> {
9840        support::child(&self.syntax)
9841    }
9842    #[inline]
9843    pub fn path_token(&self) -> Option<SyntaxToken> {
9844        support::token(&self.syntax, SyntaxKind::PATH_KW)
9845    }
9846}
9847
9848#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9849pub struct JsonQueryFn {
9850    pub(crate) syntax: SyntaxNode,
9851}
9852impl JsonQueryFn {
9853    #[inline]
9854    pub fn expr(&self) -> Option<Expr> {
9855        support::child(&self.syntax)
9856    }
9857    #[inline]
9858    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9859        support::child(&self.syntax)
9860    }
9861    #[inline]
9862    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9863        support::child(&self.syntax)
9864    }
9865    #[inline]
9866    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9867        support::child(&self.syntax)
9868    }
9869    #[inline]
9870    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9871        support::child(&self.syntax)
9872    }
9873    #[inline]
9874    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9875        support::child(&self.syntax)
9876    }
9877    #[inline]
9878    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
9879        support::child(&self.syntax)
9880    }
9881    #[inline]
9882    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9883        support::token(&self.syntax, SyntaxKind::L_PAREN)
9884    }
9885    #[inline]
9886    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9887        support::token(&self.syntax, SyntaxKind::R_PAREN)
9888    }
9889    #[inline]
9890    pub fn comma_token(&self) -> Option<SyntaxToken> {
9891        support::token(&self.syntax, SyntaxKind::COMMA)
9892    }
9893    #[inline]
9894    pub fn json_query_token(&self) -> Option<SyntaxToken> {
9895        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
9896    }
9897}
9898
9899#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9900pub struct JsonQuotesClause {
9901    pub(crate) syntax: SyntaxNode,
9902}
9903impl JsonQuotesClause {
9904    #[inline]
9905    pub fn keep_token(&self) -> Option<SyntaxToken> {
9906        support::token(&self.syntax, SyntaxKind::KEEP_KW)
9907    }
9908    #[inline]
9909    pub fn omit_token(&self) -> Option<SyntaxToken> {
9910        support::token(&self.syntax, SyntaxKind::OMIT_KW)
9911    }
9912    #[inline]
9913    pub fn on_token(&self) -> Option<SyntaxToken> {
9914        support::token(&self.syntax, SyntaxKind::ON_KW)
9915    }
9916    #[inline]
9917    pub fn quotes_token(&self) -> Option<SyntaxToken> {
9918        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
9919    }
9920    #[inline]
9921    pub fn scalar_token(&self) -> Option<SyntaxToken> {
9922        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
9923    }
9924    #[inline]
9925    pub fn string_token(&self) -> Option<SyntaxToken> {
9926        support::token(&self.syntax, SyntaxKind::STRING_KW)
9927    }
9928}
9929
9930#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9931pub struct JsonReturningClause {
9932    pub(crate) syntax: SyntaxNode,
9933}
9934impl JsonReturningClause {
9935    #[inline]
9936    pub fn ty(&self) -> Option<Type> {
9937        support::child(&self.syntax)
9938    }
9939    #[inline]
9940    pub fn returning_token(&self) -> Option<SyntaxToken> {
9941        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
9942    }
9943}
9944
9945#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9946pub struct JsonScalarFn {
9947    pub(crate) syntax: SyntaxNode,
9948}
9949impl JsonScalarFn {
9950    #[inline]
9951    pub fn expr(&self) -> Option<Expr> {
9952        support::child(&self.syntax)
9953    }
9954    #[inline]
9955    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9956        support::token(&self.syntax, SyntaxKind::L_PAREN)
9957    }
9958    #[inline]
9959    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9960        support::token(&self.syntax, SyntaxKind::R_PAREN)
9961    }
9962    #[inline]
9963    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
9964        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
9965    }
9966}
9967
9968#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9969pub struct JsonSelectFormat {
9970    pub(crate) syntax: SyntaxNode,
9971}
9972impl JsonSelectFormat {
9973    #[inline]
9974    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9975        support::child(&self.syntax)
9976    }
9977    #[inline]
9978    pub fn select_variant(&self) -> Option<SelectVariant> {
9979        support::child(&self.syntax)
9980    }
9981}
9982
9983#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9984pub struct JsonSerializeFn {
9985    pub(crate) syntax: SyntaxNode,
9986}
9987impl JsonSerializeFn {
9988    #[inline]
9989    pub fn expr(&self) -> Option<Expr> {
9990        support::child(&self.syntax)
9991    }
9992    #[inline]
9993    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9994        support::child(&self.syntax)
9995    }
9996    #[inline]
9997    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9998        support::child(&self.syntax)
9999    }
10000    #[inline]
10001    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10002        support::token(&self.syntax, SyntaxKind::L_PAREN)
10003    }
10004    #[inline]
10005    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10006        support::token(&self.syntax, SyntaxKind::R_PAREN)
10007    }
10008    #[inline]
10009    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
10010        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
10011    }
10012}
10013
10014#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10015pub struct JsonTable {
10016    pub(crate) syntax: SyntaxNode,
10017}
10018impl JsonTable {
10019    #[inline]
10020    pub fn expr(&self) -> Option<Expr> {
10021        support::child(&self.syntax)
10022    }
10023    #[inline]
10024    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10025        support::child(&self.syntax)
10026    }
10027    #[inline]
10028    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
10029        support::child(&self.syntax)
10030    }
10031    #[inline]
10032    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
10033        support::child(&self.syntax)
10034    }
10035    #[inline]
10036    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
10037        support::child(&self.syntax)
10038    }
10039    #[inline]
10040    pub fn name(&self) -> Option<Name> {
10041        support::child(&self.syntax)
10042    }
10043    #[inline]
10044    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10045        support::token(&self.syntax, SyntaxKind::L_PAREN)
10046    }
10047    #[inline]
10048    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10049        support::token(&self.syntax, SyntaxKind::R_PAREN)
10050    }
10051    #[inline]
10052    pub fn comma_token(&self) -> Option<SyntaxToken> {
10053        support::token(&self.syntax, SyntaxKind::COMMA)
10054    }
10055    #[inline]
10056    pub fn as_token(&self) -> Option<SyntaxToken> {
10057        support::token(&self.syntax, SyntaxKind::AS_KW)
10058    }
10059    #[inline]
10060    pub fn json_table_token(&self) -> Option<SyntaxToken> {
10061        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
10062    }
10063}
10064
10065#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10066pub struct JsonTableColumn {
10067    pub(crate) syntax: SyntaxNode,
10068}
10069impl JsonTableColumn {
10070    #[inline]
10071    pub fn expr(&self) -> Option<Expr> {
10072        support::child(&self.syntax)
10073    }
10074    #[inline]
10075    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10076        support::child(&self.syntax)
10077    }
10078    #[inline]
10079    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
10080        support::child(&self.syntax)
10081    }
10082    #[inline]
10083    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
10084        support::child(&self.syntax)
10085    }
10086    #[inline]
10087    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
10088        support::child(&self.syntax)
10089    }
10090    #[inline]
10091    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
10092        support::child(&self.syntax)
10093    }
10094    #[inline]
10095    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
10096        support::child(&self.syntax)
10097    }
10098    #[inline]
10099    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
10100        support::child(&self.syntax)
10101    }
10102    #[inline]
10103    pub fn name(&self) -> Option<Name> {
10104        support::child(&self.syntax)
10105    }
10106    #[inline]
10107    pub fn ty(&self) -> Option<Type> {
10108        support::child(&self.syntax)
10109    }
10110    #[inline]
10111    pub fn as_token(&self) -> Option<SyntaxToken> {
10112        support::token(&self.syntax, SyntaxKind::AS_KW)
10113    }
10114    #[inline]
10115    pub fn exists_token(&self) -> Option<SyntaxToken> {
10116        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
10117    }
10118    #[inline]
10119    pub fn for_token(&self) -> Option<SyntaxToken> {
10120        support::token(&self.syntax, SyntaxKind::FOR_KW)
10121    }
10122    #[inline]
10123    pub fn nested_token(&self) -> Option<SyntaxToken> {
10124        support::token(&self.syntax, SyntaxKind::NESTED_KW)
10125    }
10126    #[inline]
10127    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
10128        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
10129    }
10130    #[inline]
10131    pub fn path_token(&self) -> Option<SyntaxToken> {
10132        support::token(&self.syntax, SyntaxKind::PATH_KW)
10133    }
10134}
10135
10136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10137pub struct JsonTableColumnList {
10138    pub(crate) syntax: SyntaxNode,
10139}
10140impl JsonTableColumnList {
10141    #[inline]
10142    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
10143        support::children(&self.syntax)
10144    }
10145    #[inline]
10146    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10147        support::token(&self.syntax, SyntaxKind::L_PAREN)
10148    }
10149    #[inline]
10150    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10151        support::token(&self.syntax, SyntaxKind::R_PAREN)
10152    }
10153    #[inline]
10154    pub fn columns_token(&self) -> Option<SyntaxToken> {
10155        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
10156    }
10157}
10158
10159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10160pub struct JsonValueExpr {
10161    pub(crate) syntax: SyntaxNode,
10162}
10163impl JsonValueExpr {
10164    #[inline]
10165    pub fn expr(&self) -> Option<Expr> {
10166        support::child(&self.syntax)
10167    }
10168    #[inline]
10169    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10170        support::child(&self.syntax)
10171    }
10172}
10173
10174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10175pub struct JsonValueFn {
10176    pub(crate) syntax: SyntaxNode,
10177}
10178impl JsonValueFn {
10179    #[inline]
10180    pub fn expr(&self) -> Option<Expr> {
10181        support::child(&self.syntax)
10182    }
10183    #[inline]
10184    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
10185        support::child(&self.syntax)
10186    }
10187    #[inline]
10188    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10189        support::child(&self.syntax)
10190    }
10191    #[inline]
10192    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
10193        support::child(&self.syntax)
10194    }
10195    #[inline]
10196    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10197        support::child(&self.syntax)
10198    }
10199    #[inline]
10200    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10201        support::token(&self.syntax, SyntaxKind::L_PAREN)
10202    }
10203    #[inline]
10204    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10205        support::token(&self.syntax, SyntaxKind::R_PAREN)
10206    }
10207    #[inline]
10208    pub fn comma_token(&self) -> Option<SyntaxToken> {
10209        support::token(&self.syntax, SyntaxKind::COMMA)
10210    }
10211    #[inline]
10212    pub fn json_value_token(&self) -> Option<SyntaxToken> {
10213        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
10214    }
10215}
10216
10217#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10218pub struct JsonWrapperBehaviorClause {
10219    pub(crate) syntax: SyntaxNode,
10220}
10221impl JsonWrapperBehaviorClause {
10222    #[inline]
10223    pub fn array_token(&self) -> Option<SyntaxToken> {
10224        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10225    }
10226    #[inline]
10227    pub fn conditional_token(&self) -> Option<SyntaxToken> {
10228        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
10229    }
10230    #[inline]
10231    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
10232        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
10233    }
10234    #[inline]
10235    pub fn with_token(&self) -> Option<SyntaxToken> {
10236        support::token(&self.syntax, SyntaxKind::WITH_KW)
10237    }
10238    #[inline]
10239    pub fn without_token(&self) -> Option<SyntaxToken> {
10240        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
10241    }
10242    #[inline]
10243    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
10244        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
10245    }
10246}
10247
10248#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10249pub struct LanguageFuncOption {
10250    pub(crate) syntax: SyntaxNode,
10251}
10252impl LanguageFuncOption {
10253    #[inline]
10254    pub fn name_ref(&self) -> Option<NameRef> {
10255        support::child(&self.syntax)
10256    }
10257    #[inline]
10258    pub fn language_token(&self) -> Option<SyntaxToken> {
10259        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
10260    }
10261}
10262
10263#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10264pub struct LeakproofFuncOption {
10265    pub(crate) syntax: SyntaxNode,
10266}
10267impl LeakproofFuncOption {
10268    #[inline]
10269    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
10270        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
10271    }
10272    #[inline]
10273    pub fn not_token(&self) -> Option<SyntaxToken> {
10274        support::token(&self.syntax, SyntaxKind::NOT_KW)
10275    }
10276}
10277
10278#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10279pub struct LikeClause {
10280    pub(crate) syntax: SyntaxNode,
10281}
10282impl LikeClause {
10283    #[inline]
10284    pub fn like_options(&self) -> AstChildren<LikeOption> {
10285        support::children(&self.syntax)
10286    }
10287    #[inline]
10288    pub fn path(&self) -> Option<Path> {
10289        support::child(&self.syntax)
10290    }
10291    #[inline]
10292    pub fn like_token(&self) -> Option<SyntaxToken> {
10293        support::token(&self.syntax, SyntaxKind::LIKE_KW)
10294    }
10295}
10296
10297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10298pub struct LikeOption {
10299    pub(crate) syntax: SyntaxNode,
10300}
10301impl LikeOption {
10302    #[inline]
10303    pub fn all_token(&self) -> Option<SyntaxToken> {
10304        support::token(&self.syntax, SyntaxKind::ALL_KW)
10305    }
10306    #[inline]
10307    pub fn comments_token(&self) -> Option<SyntaxToken> {
10308        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
10309    }
10310    #[inline]
10311    pub fn compression_token(&self) -> Option<SyntaxToken> {
10312        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
10313    }
10314    #[inline]
10315    pub fn constraints_token(&self) -> Option<SyntaxToken> {
10316        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
10317    }
10318    #[inline]
10319    pub fn defaults_token(&self) -> Option<SyntaxToken> {
10320        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
10321    }
10322    #[inline]
10323    pub fn excluding_token(&self) -> Option<SyntaxToken> {
10324        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
10325    }
10326    #[inline]
10327    pub fn generated_token(&self) -> Option<SyntaxToken> {
10328        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
10329    }
10330    #[inline]
10331    pub fn identity_token(&self) -> Option<SyntaxToken> {
10332        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
10333    }
10334    #[inline]
10335    pub fn including_token(&self) -> Option<SyntaxToken> {
10336        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
10337    }
10338    #[inline]
10339    pub fn indexes_token(&self) -> Option<SyntaxToken> {
10340        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
10341    }
10342    #[inline]
10343    pub fn statistics_token(&self) -> Option<SyntaxToken> {
10344        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
10345    }
10346    #[inline]
10347    pub fn storage_token(&self) -> Option<SyntaxToken> {
10348        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
10349    }
10350}
10351
10352#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10353pub struct LimitClause {
10354    pub(crate) syntax: SyntaxNode,
10355}
10356impl LimitClause {
10357    #[inline]
10358    pub fn expr(&self) -> Option<Expr> {
10359        support::child(&self.syntax)
10360    }
10361    #[inline]
10362    pub fn all_token(&self) -> Option<SyntaxToken> {
10363        support::token(&self.syntax, SyntaxKind::ALL_KW)
10364    }
10365    #[inline]
10366    pub fn limit_token(&self) -> Option<SyntaxToken> {
10367        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10368    }
10369}
10370
10371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10372pub struct LimitToTables {
10373    pub(crate) syntax: SyntaxNode,
10374}
10375impl LimitToTables {
10376    #[inline]
10377    pub fn name_refs(&self) -> AstChildren<NameRef> {
10378        support::children(&self.syntax)
10379    }
10380    #[inline]
10381    pub fn limit_token(&self) -> Option<SyntaxToken> {
10382        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10383    }
10384    #[inline]
10385    pub fn to_token(&self) -> Option<SyntaxToken> {
10386        support::token(&self.syntax, SyntaxKind::TO_KW)
10387    }
10388}
10389
10390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10391pub struct Listen {
10392    pub(crate) syntax: SyntaxNode,
10393}
10394impl Listen {
10395    #[inline]
10396    pub fn name(&self) -> Option<Name> {
10397        support::child(&self.syntax)
10398    }
10399    #[inline]
10400    pub fn listen_token(&self) -> Option<SyntaxToken> {
10401        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
10402    }
10403}
10404
10405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10406pub struct Literal {
10407    pub(crate) syntax: SyntaxNode,
10408}
10409impl Literal {}
10410
10411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10412pub struct Load {
10413    pub(crate) syntax: SyntaxNode,
10414}
10415impl Load {
10416    #[inline]
10417    pub fn literal(&self) -> Option<Literal> {
10418        support::child(&self.syntax)
10419    }
10420    #[inline]
10421    pub fn load_token(&self) -> Option<SyntaxToken> {
10422        support::token(&self.syntax, SyntaxKind::LOAD_KW)
10423    }
10424}
10425
10426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10427pub struct Lock {
10428    pub(crate) syntax: SyntaxNode,
10429}
10430impl Lock {
10431    #[inline]
10432    pub fn table_list(&self) -> Option<TableList> {
10433        support::child(&self.syntax)
10434    }
10435    #[inline]
10436    pub fn lock_token(&self) -> Option<SyntaxToken> {
10437        support::token(&self.syntax, SyntaxKind::LOCK_KW)
10438    }
10439    #[inline]
10440    pub fn table_token(&self) -> Option<SyntaxToken> {
10441        support::token(&self.syntax, SyntaxKind::TABLE_KW)
10442    }
10443}
10444
10445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10446pub struct LockingClause {
10447    pub(crate) syntax: SyntaxNode,
10448}
10449impl LockingClause {
10450    #[inline]
10451    pub fn for_token(&self) -> Option<SyntaxToken> {
10452        support::token(&self.syntax, SyntaxKind::FOR_KW)
10453    }
10454}
10455
10456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10457pub struct Lteq {
10458    pub(crate) syntax: SyntaxNode,
10459}
10460impl Lteq {
10461    #[inline]
10462    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10463        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10464    }
10465    #[inline]
10466    pub fn eq_token(&self) -> Option<SyntaxToken> {
10467        support::token(&self.syntax, SyntaxKind::EQ)
10468    }
10469}
10470
10471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10472pub struct MatchFull {
10473    pub(crate) syntax: SyntaxNode,
10474}
10475impl MatchFull {
10476    #[inline]
10477    pub fn full_token(&self) -> Option<SyntaxToken> {
10478        support::token(&self.syntax, SyntaxKind::FULL_KW)
10479    }
10480    #[inline]
10481    pub fn match_token(&self) -> Option<SyntaxToken> {
10482        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10483    }
10484}
10485
10486#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10487pub struct MatchPartial {
10488    pub(crate) syntax: SyntaxNode,
10489}
10490impl MatchPartial {
10491    #[inline]
10492    pub fn match_token(&self) -> Option<SyntaxToken> {
10493        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10494    }
10495    #[inline]
10496    pub fn partial_token(&self) -> Option<SyntaxToken> {
10497        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
10498    }
10499}
10500
10501#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10502pub struct MatchSimple {
10503    pub(crate) syntax: SyntaxNode,
10504}
10505impl MatchSimple {
10506    #[inline]
10507    pub fn match_token(&self) -> Option<SyntaxToken> {
10508        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10509    }
10510    #[inline]
10511    pub fn simple_token(&self) -> Option<SyntaxToken> {
10512        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
10513    }
10514}
10515
10516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10517pub struct Materialized {
10518    pub(crate) syntax: SyntaxNode,
10519}
10520impl Materialized {
10521    #[inline]
10522    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10523        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10524    }
10525}
10526
10527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10528pub struct Merge {
10529    pub(crate) syntax: SyntaxNode,
10530}
10531impl Merge {
10532    #[inline]
10533    pub fn alias(&self) -> Option<Alias> {
10534        support::child(&self.syntax)
10535    }
10536    #[inline]
10537    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
10538        support::children(&self.syntax)
10539    }
10540    #[inline]
10541    pub fn relation_name(&self) -> Option<RelationName> {
10542        support::child(&self.syntax)
10543    }
10544    #[inline]
10545    pub fn returning_clause(&self) -> Option<ReturningClause> {
10546        support::child(&self.syntax)
10547    }
10548    #[inline]
10549    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
10550        support::child(&self.syntax)
10551    }
10552    #[inline]
10553    pub fn with_clause(&self) -> Option<WithClause> {
10554        support::child(&self.syntax)
10555    }
10556    #[inline]
10557    pub fn into_token(&self) -> Option<SyntaxToken> {
10558        support::token(&self.syntax, SyntaxKind::INTO_KW)
10559    }
10560    #[inline]
10561    pub fn merge_token(&self) -> Option<SyntaxToken> {
10562        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10563    }
10564}
10565
10566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10567pub struct MergeDelete {
10568    pub(crate) syntax: SyntaxNode,
10569}
10570impl MergeDelete {
10571    #[inline]
10572    pub fn delete_token(&self) -> Option<SyntaxToken> {
10573        support::token(&self.syntax, SyntaxKind::DELETE_KW)
10574    }
10575}
10576
10577#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10578pub struct MergeDoNothing {
10579    pub(crate) syntax: SyntaxNode,
10580}
10581impl MergeDoNothing {
10582    #[inline]
10583    pub fn do_token(&self) -> Option<SyntaxToken> {
10584        support::token(&self.syntax, SyntaxKind::DO_KW)
10585    }
10586    #[inline]
10587    pub fn nothing_token(&self) -> Option<SyntaxToken> {
10588        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
10589    }
10590}
10591
10592#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10593pub struct MergeInsert {
10594    pub(crate) syntax: SyntaxNode,
10595}
10596impl MergeInsert {
10597    #[inline]
10598    pub fn column_list(&self) -> Option<ColumnList> {
10599        support::child(&self.syntax)
10600    }
10601    #[inline]
10602    pub fn values(&self) -> Option<Values> {
10603        support::child(&self.syntax)
10604    }
10605    #[inline]
10606    pub fn default_token(&self) -> Option<SyntaxToken> {
10607        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10608    }
10609    #[inline]
10610    pub fn insert_token(&self) -> Option<SyntaxToken> {
10611        support::token(&self.syntax, SyntaxKind::INSERT_KW)
10612    }
10613    #[inline]
10614    pub fn overriding_token(&self) -> Option<SyntaxToken> {
10615        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
10616    }
10617    #[inline]
10618    pub fn system_token(&self) -> Option<SyntaxToken> {
10619        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
10620    }
10621    #[inline]
10622    pub fn user_token(&self) -> Option<SyntaxToken> {
10623        support::token(&self.syntax, SyntaxKind::USER_KW)
10624    }
10625    #[inline]
10626    pub fn values_token(&self) -> Option<SyntaxToken> {
10627        support::token(&self.syntax, SyntaxKind::VALUES_KW)
10628    }
10629}
10630
10631#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10632pub struct MergePartitions {
10633    pub(crate) syntax: SyntaxNode,
10634}
10635impl MergePartitions {
10636    #[inline]
10637    pub fn path(&self) -> Option<Path> {
10638        support::child(&self.syntax)
10639    }
10640    #[inline]
10641    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10642        support::token(&self.syntax, SyntaxKind::L_PAREN)
10643    }
10644    #[inline]
10645    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10646        support::token(&self.syntax, SyntaxKind::R_PAREN)
10647    }
10648    #[inline]
10649    pub fn into_token(&self) -> Option<SyntaxToken> {
10650        support::token(&self.syntax, SyntaxKind::INTO_KW)
10651    }
10652    #[inline]
10653    pub fn merge_token(&self) -> Option<SyntaxToken> {
10654        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10655    }
10656    #[inline]
10657    pub fn partitions_token(&self) -> Option<SyntaxToken> {
10658        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
10659    }
10660}
10661
10662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10663pub struct MergeUpdate {
10664    pub(crate) syntax: SyntaxNode,
10665}
10666impl MergeUpdate {
10667    #[inline]
10668    pub fn set_clause(&self) -> Option<SetClause> {
10669        support::child(&self.syntax)
10670    }
10671    #[inline]
10672    pub fn set_token(&self) -> Option<SyntaxToken> {
10673        support::token(&self.syntax, SyntaxKind::SET_KW)
10674    }
10675    #[inline]
10676    pub fn update_token(&self) -> Option<SyntaxToken> {
10677        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
10678    }
10679}
10680
10681#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10682pub struct MergeWhenMatched {
10683    pub(crate) syntax: SyntaxNode,
10684}
10685impl MergeWhenMatched {
10686    #[inline]
10687    pub fn expr(&self) -> Option<Expr> {
10688        support::child(&self.syntax)
10689    }
10690    #[inline]
10691    pub fn merge_action(&self) -> Option<MergeAction> {
10692        support::child(&self.syntax)
10693    }
10694    #[inline]
10695    pub fn and_token(&self) -> Option<SyntaxToken> {
10696        support::token(&self.syntax, SyntaxKind::AND_KW)
10697    }
10698    #[inline]
10699    pub fn matched_token(&self) -> Option<SyntaxToken> {
10700        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10701    }
10702    #[inline]
10703    pub fn then_token(&self) -> Option<SyntaxToken> {
10704        support::token(&self.syntax, SyntaxKind::THEN_KW)
10705    }
10706    #[inline]
10707    pub fn when_token(&self) -> Option<SyntaxToken> {
10708        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10709    }
10710}
10711
10712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10713pub struct MergeWhenNotMatchedSource {
10714    pub(crate) syntax: SyntaxNode,
10715}
10716impl MergeWhenNotMatchedSource {
10717    #[inline]
10718    pub fn expr(&self) -> Option<Expr> {
10719        support::child(&self.syntax)
10720    }
10721    #[inline]
10722    pub fn merge_action(&self) -> Option<MergeAction> {
10723        support::child(&self.syntax)
10724    }
10725    #[inline]
10726    pub fn and_token(&self) -> Option<SyntaxToken> {
10727        support::token(&self.syntax, SyntaxKind::AND_KW)
10728    }
10729    #[inline]
10730    pub fn by_token(&self) -> Option<SyntaxToken> {
10731        support::token(&self.syntax, SyntaxKind::BY_KW)
10732    }
10733    #[inline]
10734    pub fn matched_token(&self) -> Option<SyntaxToken> {
10735        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10736    }
10737    #[inline]
10738    pub fn not_token(&self) -> Option<SyntaxToken> {
10739        support::token(&self.syntax, SyntaxKind::NOT_KW)
10740    }
10741    #[inline]
10742    pub fn source_token(&self) -> Option<SyntaxToken> {
10743        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
10744    }
10745    #[inline]
10746    pub fn then_token(&self) -> Option<SyntaxToken> {
10747        support::token(&self.syntax, SyntaxKind::THEN_KW)
10748    }
10749    #[inline]
10750    pub fn when_token(&self) -> Option<SyntaxToken> {
10751        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10752    }
10753}
10754
10755#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10756pub struct MergeWhenNotMatchedTarget {
10757    pub(crate) syntax: SyntaxNode,
10758}
10759impl MergeWhenNotMatchedTarget {
10760    #[inline]
10761    pub fn expr(&self) -> Option<Expr> {
10762        support::child(&self.syntax)
10763    }
10764    #[inline]
10765    pub fn merge_action(&self) -> Option<MergeAction> {
10766        support::child(&self.syntax)
10767    }
10768    #[inline]
10769    pub fn and_token(&self) -> Option<SyntaxToken> {
10770        support::token(&self.syntax, SyntaxKind::AND_KW)
10771    }
10772    #[inline]
10773    pub fn by_token(&self) -> Option<SyntaxToken> {
10774        support::token(&self.syntax, SyntaxKind::BY_KW)
10775    }
10776    #[inline]
10777    pub fn matched_token(&self) -> Option<SyntaxToken> {
10778        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10779    }
10780    #[inline]
10781    pub fn not_token(&self) -> Option<SyntaxToken> {
10782        support::token(&self.syntax, SyntaxKind::NOT_KW)
10783    }
10784    #[inline]
10785    pub fn target_token(&self) -> Option<SyntaxToken> {
10786        support::token(&self.syntax, SyntaxKind::TARGET_KW)
10787    }
10788    #[inline]
10789    pub fn then_token(&self) -> Option<SyntaxToken> {
10790        support::token(&self.syntax, SyntaxKind::THEN_KW)
10791    }
10792    #[inline]
10793    pub fn when_token(&self) -> Option<SyntaxToken> {
10794        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10795    }
10796}
10797
10798#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10799pub struct Move {
10800    pub(crate) syntax: SyntaxNode,
10801}
10802impl Move {
10803    #[inline]
10804    pub fn name_ref(&self) -> Option<NameRef> {
10805        support::child(&self.syntax)
10806    }
10807    #[inline]
10808    pub fn from_token(&self) -> Option<SyntaxToken> {
10809        support::token(&self.syntax, SyntaxKind::FROM_KW)
10810    }
10811    #[inline]
10812    pub fn in_token(&self) -> Option<SyntaxToken> {
10813        support::token(&self.syntax, SyntaxKind::IN_KW)
10814    }
10815    #[inline]
10816    pub fn move_token(&self) -> Option<SyntaxToken> {
10817        support::token(&self.syntax, SyntaxKind::MOVE_KW)
10818    }
10819}
10820
10821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10822pub struct Name {
10823    pub(crate) syntax: SyntaxNode,
10824}
10825impl Name {
10826    #[inline]
10827    pub fn ident_token(&self) -> Option<SyntaxToken> {
10828        support::token(&self.syntax, SyntaxKind::IDENT)
10829    }
10830}
10831
10832#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10833pub struct NameRef {
10834    pub(crate) syntax: SyntaxNode,
10835}
10836impl NameRef {
10837    #[inline]
10838    pub fn ident_token(&self) -> Option<SyntaxToken> {
10839        support::token(&self.syntax, SyntaxKind::IDENT)
10840    }
10841}
10842
10843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10844pub struct NamedArg {
10845    pub(crate) syntax: SyntaxNode,
10846}
10847impl NamedArg {
10848    #[inline]
10849    pub fn expr(&self) -> Option<Expr> {
10850        support::child(&self.syntax)
10851    }
10852    #[inline]
10853    pub fn fat_arrow(&self) -> Option<FatArrow> {
10854        support::child(&self.syntax)
10855    }
10856    #[inline]
10857    pub fn name_ref(&self) -> Option<NameRef> {
10858        support::child(&self.syntax)
10859    }
10860}
10861
10862#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10863pub struct Neq {
10864    pub(crate) syntax: SyntaxNode,
10865}
10866impl Neq {
10867    #[inline]
10868    pub fn bang_token(&self) -> Option<SyntaxToken> {
10869        support::token(&self.syntax, SyntaxKind::BANG)
10870    }
10871    #[inline]
10872    pub fn eq_token(&self) -> Option<SyntaxToken> {
10873        support::token(&self.syntax, SyntaxKind::EQ)
10874    }
10875}
10876
10877#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10878pub struct Neqb {
10879    pub(crate) syntax: SyntaxNode,
10880}
10881impl Neqb {
10882    #[inline]
10883    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10884        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10885    }
10886    #[inline]
10887    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
10888        support::token(&self.syntax, SyntaxKind::R_ANGLE)
10889    }
10890}
10891
10892#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10893pub struct NoAction {
10894    pub(crate) syntax: SyntaxNode,
10895}
10896impl NoAction {
10897    #[inline]
10898    pub fn action_token(&self) -> Option<SyntaxToken> {
10899        support::token(&self.syntax, SyntaxKind::ACTION_KW)
10900    }
10901    #[inline]
10902    pub fn no_token(&self) -> Option<SyntaxToken> {
10903        support::token(&self.syntax, SyntaxKind::NO_KW)
10904    }
10905}
10906
10907#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10908pub struct NoDependsOnExtension {
10909    pub(crate) syntax: SyntaxNode,
10910}
10911impl NoDependsOnExtension {
10912    #[inline]
10913    pub fn name_ref(&self) -> Option<NameRef> {
10914        support::child(&self.syntax)
10915    }
10916    #[inline]
10917    pub fn depends_token(&self) -> Option<SyntaxToken> {
10918        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
10919    }
10920    #[inline]
10921    pub fn extension_token(&self) -> Option<SyntaxToken> {
10922        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
10923    }
10924    #[inline]
10925    pub fn no_token(&self) -> Option<SyntaxToken> {
10926        support::token(&self.syntax, SyntaxKind::NO_KW)
10927    }
10928    #[inline]
10929    pub fn on_token(&self) -> Option<SyntaxToken> {
10930        support::token(&self.syntax, SyntaxKind::ON_KW)
10931    }
10932}
10933
10934#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10935pub struct NoForceRls {
10936    pub(crate) syntax: SyntaxNode,
10937}
10938impl NoForceRls {
10939    #[inline]
10940    pub fn force_token(&self) -> Option<SyntaxToken> {
10941        support::token(&self.syntax, SyntaxKind::FORCE_KW)
10942    }
10943    #[inline]
10944    pub fn level_token(&self) -> Option<SyntaxToken> {
10945        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
10946    }
10947    #[inline]
10948    pub fn no_token(&self) -> Option<SyntaxToken> {
10949        support::token(&self.syntax, SyntaxKind::NO_KW)
10950    }
10951    #[inline]
10952    pub fn row_token(&self) -> Option<SyntaxToken> {
10953        support::token(&self.syntax, SyntaxKind::ROW_KW)
10954    }
10955    #[inline]
10956    pub fn security_token(&self) -> Option<SyntaxToken> {
10957        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
10958    }
10959}
10960
10961#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10962pub struct NoInherit {
10963    pub(crate) syntax: SyntaxNode,
10964}
10965impl NoInherit {
10966    #[inline]
10967    pub fn path(&self) -> Option<Path> {
10968        support::child(&self.syntax)
10969    }
10970    #[inline]
10971    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10972        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10973    }
10974    #[inline]
10975    pub fn no_token(&self) -> Option<SyntaxToken> {
10976        support::token(&self.syntax, SyntaxKind::NO_KW)
10977    }
10978}
10979
10980#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10981pub struct NoInheritTable {
10982    pub(crate) syntax: SyntaxNode,
10983}
10984impl NoInheritTable {
10985    #[inline]
10986    pub fn path(&self) -> Option<Path> {
10987        support::child(&self.syntax)
10988    }
10989    #[inline]
10990    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10991        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10992    }
10993    #[inline]
10994    pub fn no_token(&self) -> Option<SyntaxToken> {
10995        support::token(&self.syntax, SyntaxKind::NO_KW)
10996    }
10997}
10998
10999#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11000pub struct NonStandardParam {
11001    pub(crate) syntax: SyntaxNode,
11002}
11003impl NonStandardParam {
11004    #[inline]
11005    pub fn name_ref(&self) -> Option<NameRef> {
11006        support::child(&self.syntax)
11007    }
11008    #[inline]
11009    pub fn colon_token(&self) -> Option<SyntaxToken> {
11010        support::token(&self.syntax, SyntaxKind::COLON)
11011    }
11012}
11013
11014#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11015pub struct NotDeferrable {
11016    pub(crate) syntax: SyntaxNode,
11017}
11018impl NotDeferrable {
11019    #[inline]
11020    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
11021        support::token(&self.syntax, SyntaxKind::DEFERRABLE_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 NotDeferrableConstraintOption {
11031    pub(crate) syntax: SyntaxNode,
11032}
11033impl NotDeferrableConstraintOption {
11034    #[inline]
11035    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
11036        support::token(&self.syntax, SyntaxKind::DEFERRABLE_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 NotEnforced {
11046    pub(crate) syntax: SyntaxNode,
11047}
11048impl NotEnforced {
11049    #[inline]
11050    pub fn enforced_token(&self) -> Option<SyntaxToken> {
11051        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
11052    }
11053    #[inline]
11054    pub fn not_token(&self) -> Option<SyntaxToken> {
11055        support::token(&self.syntax, SyntaxKind::NOT_KW)
11056    }
11057}
11058
11059#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11060pub struct NotIlike {
11061    pub(crate) syntax: SyntaxNode,
11062}
11063impl NotIlike {
11064    #[inline]
11065    pub fn ilike_token(&self) -> Option<SyntaxToken> {
11066        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
11067    }
11068    #[inline]
11069    pub fn not_token(&self) -> Option<SyntaxToken> {
11070        support::token(&self.syntax, SyntaxKind::NOT_KW)
11071    }
11072}
11073
11074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11075pub struct NotIn {
11076    pub(crate) syntax: SyntaxNode,
11077}
11078impl NotIn {
11079    #[inline]
11080    pub fn in_token(&self) -> Option<SyntaxToken> {
11081        support::token(&self.syntax, SyntaxKind::IN_KW)
11082    }
11083    #[inline]
11084    pub fn not_token(&self) -> Option<SyntaxToken> {
11085        support::token(&self.syntax, SyntaxKind::NOT_KW)
11086    }
11087}
11088
11089#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11090pub struct NotLike {
11091    pub(crate) syntax: SyntaxNode,
11092}
11093impl NotLike {
11094    #[inline]
11095    pub fn like_token(&self) -> Option<SyntaxToken> {
11096        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11097    }
11098    #[inline]
11099    pub fn not_token(&self) -> Option<SyntaxToken> {
11100        support::token(&self.syntax, SyntaxKind::NOT_KW)
11101    }
11102}
11103
11104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11105pub struct NotMaterialized {
11106    pub(crate) syntax: SyntaxNode,
11107}
11108impl NotMaterialized {
11109    #[inline]
11110    pub fn materialized_token(&self) -> Option<SyntaxToken> {
11111        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
11112    }
11113    #[inline]
11114    pub fn not_token(&self) -> Option<SyntaxToken> {
11115        support::token(&self.syntax, SyntaxKind::NOT_KW)
11116    }
11117}
11118
11119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11120pub struct NotNullConstraint {
11121    pub(crate) syntax: SyntaxNode,
11122}
11123impl NotNullConstraint {
11124    #[inline]
11125    pub fn name_ref(&self) -> Option<NameRef> {
11126        support::child(&self.syntax)
11127    }
11128    #[inline]
11129    pub fn no_inherit(&self) -> Option<NoInherit> {
11130        support::child(&self.syntax)
11131    }
11132    #[inline]
11133    pub fn constraint_token(&self) -> Option<SyntaxToken> {
11134        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
11135    }
11136    #[inline]
11137    pub fn not_token(&self) -> Option<SyntaxToken> {
11138        support::token(&self.syntax, SyntaxKind::NOT_KW)
11139    }
11140    #[inline]
11141    pub fn null_token(&self) -> Option<SyntaxToken> {
11142        support::token(&self.syntax, SyntaxKind::NULL_KW)
11143    }
11144}
11145
11146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11147pub struct NotOf {
11148    pub(crate) syntax: SyntaxNode,
11149}
11150impl NotOf {
11151    #[inline]
11152    pub fn not_token(&self) -> Option<SyntaxToken> {
11153        support::token(&self.syntax, SyntaxKind::NOT_KW)
11154    }
11155    #[inline]
11156    pub fn of_token(&self) -> Option<SyntaxToken> {
11157        support::token(&self.syntax, SyntaxKind::OF_KW)
11158    }
11159}
11160
11161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11162pub struct NotSimilarTo {
11163    pub(crate) syntax: SyntaxNode,
11164}
11165impl NotSimilarTo {
11166    #[inline]
11167    pub fn not_token(&self) -> Option<SyntaxToken> {
11168        support::token(&self.syntax, SyntaxKind::NOT_KW)
11169    }
11170    #[inline]
11171    pub fn similar_token(&self) -> Option<SyntaxToken> {
11172        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
11173    }
11174    #[inline]
11175    pub fn to_token(&self) -> Option<SyntaxToken> {
11176        support::token(&self.syntax, SyntaxKind::TO_KW)
11177    }
11178}
11179
11180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11181pub struct NotValid {
11182    pub(crate) syntax: SyntaxNode,
11183}
11184impl NotValid {
11185    #[inline]
11186    pub fn not_token(&self) -> Option<SyntaxToken> {
11187        support::token(&self.syntax, SyntaxKind::NOT_KW)
11188    }
11189    #[inline]
11190    pub fn valid_token(&self) -> Option<SyntaxToken> {
11191        support::token(&self.syntax, SyntaxKind::VALID_KW)
11192    }
11193}
11194
11195#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11196pub struct Notify {
11197    pub(crate) syntax: SyntaxNode,
11198}
11199impl Notify {
11200    #[inline]
11201    pub fn literal(&self) -> Option<Literal> {
11202        support::child(&self.syntax)
11203    }
11204    #[inline]
11205    pub fn name_ref(&self) -> Option<NameRef> {
11206        support::child(&self.syntax)
11207    }
11208    #[inline]
11209    pub fn comma_token(&self) -> Option<SyntaxToken> {
11210        support::token(&self.syntax, SyntaxKind::COMMA)
11211    }
11212    #[inline]
11213    pub fn notify_token(&self) -> Option<SyntaxToken> {
11214        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
11215    }
11216}
11217
11218#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11219pub struct NullConstraint {
11220    pub(crate) syntax: SyntaxNode,
11221}
11222impl NullConstraint {
11223    #[inline]
11224    pub fn name_ref(&self) -> Option<NameRef> {
11225        support::child(&self.syntax)
11226    }
11227    #[inline]
11228    pub fn constraint_token(&self) -> Option<SyntaxToken> {
11229        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
11230    }
11231    #[inline]
11232    pub fn null_token(&self) -> Option<SyntaxToken> {
11233        support::token(&self.syntax, SyntaxKind::NULL_KW)
11234    }
11235}
11236
11237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11238pub struct NullsDistinct {
11239    pub(crate) syntax: SyntaxNode,
11240}
11241impl NullsDistinct {
11242    #[inline]
11243    pub fn distinct_token(&self) -> Option<SyntaxToken> {
11244        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
11245    }
11246    #[inline]
11247    pub fn nulls_token(&self) -> Option<SyntaxToken> {
11248        support::token(&self.syntax, SyntaxKind::NULLS_KW)
11249    }
11250}
11251
11252#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11253pub struct NullsFirst {
11254    pub(crate) syntax: SyntaxNode,
11255}
11256impl NullsFirst {
11257    #[inline]
11258    pub fn first_token(&self) -> Option<SyntaxToken> {
11259        support::token(&self.syntax, SyntaxKind::FIRST_KW)
11260    }
11261    #[inline]
11262    pub fn nulls_token(&self) -> Option<SyntaxToken> {
11263        support::token(&self.syntax, SyntaxKind::NULLS_KW)
11264    }
11265}
11266
11267#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11268pub struct NullsLast {
11269    pub(crate) syntax: SyntaxNode,
11270}
11271impl NullsLast {
11272    #[inline]
11273    pub fn last_token(&self) -> Option<SyntaxToken> {
11274        support::token(&self.syntax, SyntaxKind::LAST_KW)
11275    }
11276    #[inline]
11277    pub fn nulls_token(&self) -> Option<SyntaxToken> {
11278        support::token(&self.syntax, SyntaxKind::NULLS_KW)
11279    }
11280}
11281
11282#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11283pub struct NullsNotDistinct {
11284    pub(crate) syntax: SyntaxNode,
11285}
11286impl NullsNotDistinct {
11287    #[inline]
11288    pub fn distinct_token(&self) -> Option<SyntaxToken> {
11289        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
11290    }
11291    #[inline]
11292    pub fn not_token(&self) -> Option<SyntaxToken> {
11293        support::token(&self.syntax, SyntaxKind::NOT_KW)
11294    }
11295    #[inline]
11296    pub fn nulls_token(&self) -> Option<SyntaxToken> {
11297        support::token(&self.syntax, SyntaxKind::NULLS_KW)
11298    }
11299}
11300
11301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11302pub struct OfType {
11303    pub(crate) syntax: SyntaxNode,
11304}
11305impl OfType {
11306    #[inline]
11307    pub fn ty(&self) -> Option<Type> {
11308        support::child(&self.syntax)
11309    }
11310    #[inline]
11311    pub fn of_token(&self) -> Option<SyntaxToken> {
11312        support::token(&self.syntax, SyntaxKind::OF_KW)
11313    }
11314}
11315
11316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11317pub struct OffsetClause {
11318    pub(crate) syntax: SyntaxNode,
11319}
11320impl OffsetClause {
11321    #[inline]
11322    pub fn expr(&self) -> Option<Expr> {
11323        support::child(&self.syntax)
11324    }
11325    #[inline]
11326    pub fn offset_token(&self) -> Option<SyntaxToken> {
11327        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
11328    }
11329    #[inline]
11330    pub fn row_token(&self) -> Option<SyntaxToken> {
11331        support::token(&self.syntax, SyntaxKind::ROW_KW)
11332    }
11333    #[inline]
11334    pub fn rows_token(&self) -> Option<SyntaxToken> {
11335        support::token(&self.syntax, SyntaxKind::ROWS_KW)
11336    }
11337}
11338
11339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11340pub struct OnClause {
11341    pub(crate) syntax: SyntaxNode,
11342}
11343impl OnClause {
11344    #[inline]
11345    pub fn expr(&self) -> Option<Expr> {
11346        support::child(&self.syntax)
11347    }
11348    #[inline]
11349    pub fn on_token(&self) -> Option<SyntaxToken> {
11350        support::token(&self.syntax, SyntaxKind::ON_KW)
11351    }
11352}
11353
11354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11355pub struct OnCommit {
11356    pub(crate) syntax: SyntaxNode,
11357}
11358impl OnCommit {
11359    #[inline]
11360    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
11361        support::child(&self.syntax)
11362    }
11363    #[inline]
11364    pub fn commit_token(&self) -> Option<SyntaxToken> {
11365        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
11366    }
11367    #[inline]
11368    pub fn on_token(&self) -> Option<SyntaxToken> {
11369        support::token(&self.syntax, SyntaxKind::ON_KW)
11370    }
11371}
11372
11373#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11374pub struct OnConflictClause {
11375    pub(crate) syntax: SyntaxNode,
11376}
11377impl OnConflictClause {
11378    #[inline]
11379    pub fn conflict_action(&self) -> Option<ConflictAction> {
11380        support::child(&self.syntax)
11381    }
11382    #[inline]
11383    pub fn conflict_target(&self) -> Option<ConflictTarget> {
11384        support::child(&self.syntax)
11385    }
11386    #[inline]
11387    pub fn conflict_token(&self) -> Option<SyntaxToken> {
11388        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
11389    }
11390    #[inline]
11391    pub fn on_token(&self) -> Option<SyntaxToken> {
11392        support::token(&self.syntax, SyntaxKind::ON_KW)
11393    }
11394}
11395
11396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11397pub struct OnDeleteAction {
11398    pub(crate) syntax: SyntaxNode,
11399}
11400impl OnDeleteAction {
11401    #[inline]
11402    pub fn ref_action(&self) -> Option<RefAction> {
11403        support::child(&self.syntax)
11404    }
11405    #[inline]
11406    pub fn delete_token(&self) -> Option<SyntaxToken> {
11407        support::token(&self.syntax, SyntaxKind::DELETE_KW)
11408    }
11409    #[inline]
11410    pub fn on_token(&self) -> Option<SyntaxToken> {
11411        support::token(&self.syntax, SyntaxKind::ON_KW)
11412    }
11413}
11414
11415#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11416pub struct OnTable {
11417    pub(crate) syntax: SyntaxNode,
11418}
11419impl OnTable {
11420    #[inline]
11421    pub fn path(&self) -> Option<Path> {
11422        support::child(&self.syntax)
11423    }
11424    #[inline]
11425    pub fn on_token(&self) -> Option<SyntaxToken> {
11426        support::token(&self.syntax, SyntaxKind::ON_KW)
11427    }
11428}
11429
11430#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11431pub struct OnUpdateAction {
11432    pub(crate) syntax: SyntaxNode,
11433}
11434impl OnUpdateAction {
11435    #[inline]
11436    pub fn ref_action(&self) -> Option<RefAction> {
11437        support::child(&self.syntax)
11438    }
11439    #[inline]
11440    pub fn on_token(&self) -> Option<SyntaxToken> {
11441        support::token(&self.syntax, SyntaxKind::ON_KW)
11442    }
11443    #[inline]
11444    pub fn update_token(&self) -> Option<SyntaxToken> {
11445        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
11446    }
11447}
11448
11449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11450pub struct Op {
11451    pub(crate) syntax: SyntaxNode,
11452}
11453impl Op {
11454    #[inline]
11455    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
11456        support::child(&self.syntax)
11457    }
11458    #[inline]
11459    pub fn colon_colon(&self) -> Option<ColonColon> {
11460        support::child(&self.syntax)
11461    }
11462    #[inline]
11463    pub fn colon_eq(&self) -> Option<ColonEq> {
11464        support::child(&self.syntax)
11465    }
11466    #[inline]
11467    pub fn custom_op(&self) -> Option<CustomOp> {
11468        support::child(&self.syntax)
11469    }
11470    #[inline]
11471    pub fn fat_arrow(&self) -> Option<FatArrow> {
11472        support::child(&self.syntax)
11473    }
11474    #[inline]
11475    pub fn gteq(&self) -> Option<Gteq> {
11476        support::child(&self.syntax)
11477    }
11478    #[inline]
11479    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
11480        support::child(&self.syntax)
11481    }
11482    #[inline]
11483    pub fn is_json(&self) -> Option<IsJson> {
11484        support::child(&self.syntax)
11485    }
11486    #[inline]
11487    pub fn is_json_array(&self) -> Option<IsJsonArray> {
11488        support::child(&self.syntax)
11489    }
11490    #[inline]
11491    pub fn is_json_object(&self) -> Option<IsJsonObject> {
11492        support::child(&self.syntax)
11493    }
11494    #[inline]
11495    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
11496        support::child(&self.syntax)
11497    }
11498    #[inline]
11499    pub fn is_json_value(&self) -> Option<IsJsonValue> {
11500        support::child(&self.syntax)
11501    }
11502    #[inline]
11503    pub fn is_not(&self) -> Option<IsNot> {
11504        support::child(&self.syntax)
11505    }
11506    #[inline]
11507    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
11508        support::child(&self.syntax)
11509    }
11510    #[inline]
11511    pub fn is_not_json(&self) -> Option<IsNotJson> {
11512        support::child(&self.syntax)
11513    }
11514    #[inline]
11515    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
11516        support::child(&self.syntax)
11517    }
11518    #[inline]
11519    pub fn is_not_json_object(&self) -> Option<IsNotJsonObject> {
11520        support::child(&self.syntax)
11521    }
11522    #[inline]
11523    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
11524        support::child(&self.syntax)
11525    }
11526    #[inline]
11527    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
11528        support::child(&self.syntax)
11529    }
11530    #[inline]
11531    pub fn lteq(&self) -> Option<Lteq> {
11532        support::child(&self.syntax)
11533    }
11534    #[inline]
11535    pub fn neq(&self) -> Option<Neq> {
11536        support::child(&self.syntax)
11537    }
11538    #[inline]
11539    pub fn neqb(&self) -> Option<Neqb> {
11540        support::child(&self.syntax)
11541    }
11542    #[inline]
11543    pub fn not_ilike(&self) -> Option<NotIlike> {
11544        support::child(&self.syntax)
11545    }
11546    #[inline]
11547    pub fn not_in(&self) -> Option<NotIn> {
11548        support::child(&self.syntax)
11549    }
11550    #[inline]
11551    pub fn not_like(&self) -> Option<NotLike> {
11552        support::child(&self.syntax)
11553    }
11554    #[inline]
11555    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
11556        support::child(&self.syntax)
11557    }
11558    #[inline]
11559    pub fn operator_call(&self) -> Option<OperatorCall> {
11560        support::child(&self.syntax)
11561    }
11562    #[inline]
11563    pub fn similar_to(&self) -> Option<SimilarTo> {
11564        support::child(&self.syntax)
11565    }
11566    #[inline]
11567    pub fn percent_token(&self) -> Option<SyntaxToken> {
11568        support::token(&self.syntax, SyntaxKind::PERCENT)
11569    }
11570    #[inline]
11571    pub fn plus_token(&self) -> Option<SyntaxToken> {
11572        support::token(&self.syntax, SyntaxKind::PLUS)
11573    }
11574    #[inline]
11575    pub fn minus_token(&self) -> Option<SyntaxToken> {
11576        support::token(&self.syntax, SyntaxKind::MINUS)
11577    }
11578    #[inline]
11579    pub fn slash_token(&self) -> Option<SyntaxToken> {
11580        support::token(&self.syntax, SyntaxKind::SLASH)
11581    }
11582    #[inline]
11583    pub fn colon_token(&self) -> Option<SyntaxToken> {
11584        support::token(&self.syntax, SyntaxKind::COLON)
11585    }
11586    #[inline]
11587    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11588        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11589    }
11590    #[inline]
11591    pub fn eq_token(&self) -> Option<SyntaxToken> {
11592        support::token(&self.syntax, SyntaxKind::EQ)
11593    }
11594    #[inline]
11595    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11596        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11597    }
11598    #[inline]
11599    pub fn caret_token(&self) -> Option<SyntaxToken> {
11600        support::token(&self.syntax, SyntaxKind::CARET)
11601    }
11602    #[inline]
11603    pub fn and_token(&self) -> Option<SyntaxToken> {
11604        support::token(&self.syntax, SyntaxKind::AND_KW)
11605    }
11606    #[inline]
11607    pub fn collate_token(&self) -> Option<SyntaxToken> {
11608        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
11609    }
11610    #[inline]
11611    pub fn ilike_token(&self) -> Option<SyntaxToken> {
11612        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
11613    }
11614    #[inline]
11615    pub fn in_token(&self) -> Option<SyntaxToken> {
11616        support::token(&self.syntax, SyntaxKind::IN_KW)
11617    }
11618    #[inline]
11619    pub fn is_token(&self) -> Option<SyntaxToken> {
11620        support::token(&self.syntax, SyntaxKind::IS_KW)
11621    }
11622    #[inline]
11623    pub fn like_token(&self) -> Option<SyntaxToken> {
11624        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11625    }
11626    #[inline]
11627    pub fn or_token(&self) -> Option<SyntaxToken> {
11628        support::token(&self.syntax, SyntaxKind::OR_KW)
11629    }
11630    #[inline]
11631    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
11632        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
11633    }
11634    #[inline]
11635    pub fn value_token(&self) -> Option<SyntaxToken> {
11636        support::token(&self.syntax, SyntaxKind::VALUE_KW)
11637    }
11638}
11639
11640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11641pub struct OpClassOption {
11642    pub(crate) syntax: SyntaxNode,
11643}
11644impl OpClassOption {
11645    #[inline]
11646    pub fn function_sig(&self) -> Option<FunctionSig> {
11647        support::child(&self.syntax)
11648    }
11649    #[inline]
11650    pub fn literal(&self) -> Option<Literal> {
11651        support::child(&self.syntax)
11652    }
11653    #[inline]
11654    pub fn op(&self) -> Option<Op> {
11655        support::child(&self.syntax)
11656    }
11657    #[inline]
11658    pub fn param_list(&self) -> Option<ParamList> {
11659        support::child(&self.syntax)
11660    }
11661    #[inline]
11662    pub fn path(&self) -> Option<Path> {
11663        support::child(&self.syntax)
11664    }
11665    #[inline]
11666    pub fn ty(&self) -> Option<Type> {
11667        support::child(&self.syntax)
11668    }
11669    #[inline]
11670    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11671        support::token(&self.syntax, SyntaxKind::L_PAREN)
11672    }
11673    #[inline]
11674    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11675        support::token(&self.syntax, SyntaxKind::R_PAREN)
11676    }
11677    #[inline]
11678    pub fn comma_token(&self) -> Option<SyntaxToken> {
11679        support::token(&self.syntax, SyntaxKind::COMMA)
11680    }
11681    #[inline]
11682    pub fn by_token(&self) -> Option<SyntaxToken> {
11683        support::token(&self.syntax, SyntaxKind::BY_KW)
11684    }
11685    #[inline]
11686    pub fn for_token(&self) -> Option<SyntaxToken> {
11687        support::token(&self.syntax, SyntaxKind::FOR_KW)
11688    }
11689    #[inline]
11690    pub fn function_token(&self) -> Option<SyntaxToken> {
11691        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
11692    }
11693    #[inline]
11694    pub fn operator_token(&self) -> Option<SyntaxToken> {
11695        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11696    }
11697    #[inline]
11698    pub fn order_token(&self) -> Option<SyntaxToken> {
11699        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11700    }
11701    #[inline]
11702    pub fn search_token(&self) -> Option<SyntaxToken> {
11703        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
11704    }
11705    #[inline]
11706    pub fn storage_token(&self) -> Option<SyntaxToken> {
11707        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11708    }
11709}
11710
11711#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11712pub struct OpSig {
11713    pub(crate) syntax: SyntaxNode,
11714}
11715impl OpSig {
11716    #[inline]
11717    pub fn op(&self) -> Option<Op> {
11718        support::child(&self.syntax)
11719    }
11720    #[inline]
11721    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11722        support::token(&self.syntax, SyntaxKind::L_PAREN)
11723    }
11724    #[inline]
11725    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11726        support::token(&self.syntax, SyntaxKind::R_PAREN)
11727    }
11728    #[inline]
11729    pub fn comma_token(&self) -> Option<SyntaxToken> {
11730        support::token(&self.syntax, SyntaxKind::COMMA)
11731    }
11732    #[inline]
11733    pub fn none_token(&self) -> Option<SyntaxToken> {
11734        support::token(&self.syntax, SyntaxKind::NONE_KW)
11735    }
11736}
11737
11738#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11739pub struct OpSigList {
11740    pub(crate) syntax: SyntaxNode,
11741}
11742impl OpSigList {
11743    #[inline]
11744    pub fn op_sigs(&self) -> AstChildren<OpSig> {
11745        support::children(&self.syntax)
11746    }
11747}
11748
11749#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11750pub struct OperatorCall {
11751    pub(crate) syntax: SyntaxNode,
11752}
11753impl OperatorCall {
11754    #[inline]
11755    pub fn op(&self) -> Option<Op> {
11756        support::child(&self.syntax)
11757    }
11758    #[inline]
11759    pub fn path(&self) -> Option<Path> {
11760        support::child(&self.syntax)
11761    }
11762    #[inline]
11763    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11764        support::token(&self.syntax, SyntaxKind::L_PAREN)
11765    }
11766    #[inline]
11767    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11768        support::token(&self.syntax, SyntaxKind::R_PAREN)
11769    }
11770    #[inline]
11771    pub fn dot_token(&self) -> Option<SyntaxToken> {
11772        support::token(&self.syntax, SyntaxKind::DOT)
11773    }
11774    #[inline]
11775    pub fn operator_token(&self) -> Option<SyntaxToken> {
11776        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11777    }
11778}
11779
11780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11781pub struct OperatorClassOptionList {
11782    pub(crate) syntax: SyntaxNode,
11783}
11784impl OperatorClassOptionList {
11785    #[inline]
11786    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
11787        support::children(&self.syntax)
11788    }
11789}
11790
11791#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11792pub struct OptionItem {
11793    pub(crate) syntax: SyntaxNode,
11794}
11795impl OptionItem {
11796    #[inline]
11797    pub fn expr(&self) -> Option<Expr> {
11798        support::child(&self.syntax)
11799    }
11800    #[inline]
11801    pub fn default_token(&self) -> Option<SyntaxToken> {
11802        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11803    }
11804}
11805
11806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11807pub struct OptionItemList {
11808    pub(crate) syntax: SyntaxNode,
11809}
11810impl OptionItemList {
11811    #[inline]
11812    pub fn option_items(&self) -> AstChildren<OptionItem> {
11813        support::children(&self.syntax)
11814    }
11815    #[inline]
11816    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11817        support::token(&self.syntax, SyntaxKind::L_PAREN)
11818    }
11819    #[inline]
11820    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11821        support::token(&self.syntax, SyntaxKind::R_PAREN)
11822    }
11823}
11824
11825#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11826pub struct OrReplace {
11827    pub(crate) syntax: SyntaxNode,
11828}
11829impl OrReplace {
11830    #[inline]
11831    pub fn or_token(&self) -> Option<SyntaxToken> {
11832        support::token(&self.syntax, SyntaxKind::OR_KW)
11833    }
11834    #[inline]
11835    pub fn replace_token(&self) -> Option<SyntaxToken> {
11836        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
11837    }
11838}
11839
11840#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11841pub struct OrderByClause {
11842    pub(crate) syntax: SyntaxNode,
11843}
11844impl OrderByClause {
11845    #[inline]
11846    pub fn sort_by_list(&self) -> Option<SortByList> {
11847        support::child(&self.syntax)
11848    }
11849    #[inline]
11850    pub fn by_token(&self) -> Option<SyntaxToken> {
11851        support::token(&self.syntax, SyntaxKind::BY_KW)
11852    }
11853    #[inline]
11854    pub fn order_token(&self) -> Option<SyntaxToken> {
11855        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11856    }
11857}
11858
11859#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11860pub struct OverClause {
11861    pub(crate) syntax: SyntaxNode,
11862}
11863impl OverClause {
11864    #[inline]
11865    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11866        support::token(&self.syntax, SyntaxKind::L_PAREN)
11867    }
11868    #[inline]
11869    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11870        support::token(&self.syntax, SyntaxKind::R_PAREN)
11871    }
11872    #[inline]
11873    pub fn over_token(&self) -> Option<SyntaxToken> {
11874        support::token(&self.syntax, SyntaxKind::OVER_KW)
11875    }
11876}
11877
11878#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11879pub struct OverlayFn {
11880    pub(crate) syntax: SyntaxNode,
11881}
11882impl OverlayFn {
11883    #[inline]
11884    pub fn expr(&self) -> Option<Expr> {
11885        support::child(&self.syntax)
11886    }
11887    #[inline]
11888    pub fn exprs(&self) -> AstChildren<Expr> {
11889        support::children(&self.syntax)
11890    }
11891    #[inline]
11892    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11893        support::token(&self.syntax, SyntaxKind::L_PAREN)
11894    }
11895    #[inline]
11896    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11897        support::token(&self.syntax, SyntaxKind::R_PAREN)
11898    }
11899    #[inline]
11900    pub fn for_token(&self) -> Option<SyntaxToken> {
11901        support::token(&self.syntax, SyntaxKind::FOR_KW)
11902    }
11903    #[inline]
11904    pub fn from_token(&self) -> Option<SyntaxToken> {
11905        support::token(&self.syntax, SyntaxKind::FROM_KW)
11906    }
11907    #[inline]
11908    pub fn overlay_token(&self) -> Option<SyntaxToken> {
11909        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
11910    }
11911    #[inline]
11912    pub fn placing_token(&self) -> Option<SyntaxToken> {
11913        support::token(&self.syntax, SyntaxKind::PLACING_KW)
11914    }
11915}
11916
11917#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11918pub struct OwnedByRoles {
11919    pub(crate) syntax: SyntaxNode,
11920}
11921impl OwnedByRoles {
11922    #[inline]
11923    pub fn role_ref_list(&self) -> Option<RoleRefList> {
11924        support::child(&self.syntax)
11925    }
11926    #[inline]
11927    pub fn by_token(&self) -> Option<SyntaxToken> {
11928        support::token(&self.syntax, SyntaxKind::BY_KW)
11929    }
11930    #[inline]
11931    pub fn owned_token(&self) -> Option<SyntaxToken> {
11932        support::token(&self.syntax, SyntaxKind::OWNED_KW)
11933    }
11934}
11935
11936#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11937pub struct OwnerTo {
11938    pub(crate) syntax: SyntaxNode,
11939}
11940impl OwnerTo {
11941    #[inline]
11942    pub fn role_ref(&self) -> Option<RoleRef> {
11943        support::child(&self.syntax)
11944    }
11945    #[inline]
11946    pub fn owner_token(&self) -> Option<SyntaxToken> {
11947        support::token(&self.syntax, SyntaxKind::OWNER_KW)
11948    }
11949    #[inline]
11950    pub fn to_token(&self) -> Option<SyntaxToken> {
11951        support::token(&self.syntax, SyntaxKind::TO_KW)
11952    }
11953}
11954
11955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11956pub struct ParallelFuncOption {
11957    pub(crate) syntax: SyntaxNode,
11958}
11959impl ParallelFuncOption {
11960    #[inline]
11961    pub fn ident_token(&self) -> Option<SyntaxToken> {
11962        support::token(&self.syntax, SyntaxKind::IDENT)
11963    }
11964    #[inline]
11965    pub fn parallel_token(&self) -> Option<SyntaxToken> {
11966        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
11967    }
11968}
11969
11970#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11971pub struct Param {
11972    pub(crate) syntax: SyntaxNode,
11973}
11974impl Param {
11975    #[inline]
11976    pub fn mode(&self) -> Option<ParamMode> {
11977        support::child(&self.syntax)
11978    }
11979    #[inline]
11980    pub fn name(&self) -> Option<Name> {
11981        support::child(&self.syntax)
11982    }
11983    #[inline]
11984    pub fn param_default(&self) -> Option<ParamDefault> {
11985        support::child(&self.syntax)
11986    }
11987    #[inline]
11988    pub fn ty(&self) -> Option<Type> {
11989        support::child(&self.syntax)
11990    }
11991}
11992
11993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11994pub struct ParamDefault {
11995    pub(crate) syntax: SyntaxNode,
11996}
11997impl ParamDefault {
11998    #[inline]
11999    pub fn expr(&self) -> Option<Expr> {
12000        support::child(&self.syntax)
12001    }
12002    #[inline]
12003    pub fn eq_token(&self) -> Option<SyntaxToken> {
12004        support::token(&self.syntax, SyntaxKind::EQ)
12005    }
12006    #[inline]
12007    pub fn default_token(&self) -> Option<SyntaxToken> {
12008        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
12009    }
12010}
12011
12012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12013pub struct ParamIn {
12014    pub(crate) syntax: SyntaxNode,
12015}
12016impl ParamIn {
12017    #[inline]
12018    pub fn in_token(&self) -> Option<SyntaxToken> {
12019        support::token(&self.syntax, SyntaxKind::IN_KW)
12020    }
12021}
12022
12023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12024pub struct ParamInOut {
12025    pub(crate) syntax: SyntaxNode,
12026}
12027impl ParamInOut {
12028    #[inline]
12029    pub fn in_token(&self) -> Option<SyntaxToken> {
12030        support::token(&self.syntax, SyntaxKind::IN_KW)
12031    }
12032    #[inline]
12033    pub fn inout_token(&self) -> Option<SyntaxToken> {
12034        support::token(&self.syntax, SyntaxKind::INOUT_KW)
12035    }
12036    #[inline]
12037    pub fn out_token(&self) -> Option<SyntaxToken> {
12038        support::token(&self.syntax, SyntaxKind::OUT_KW)
12039    }
12040}
12041
12042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12043pub struct ParamList {
12044    pub(crate) syntax: SyntaxNode,
12045}
12046impl ParamList {
12047    #[inline]
12048    pub fn params(&self) -> AstChildren<Param> {
12049        support::children(&self.syntax)
12050    }
12051}
12052
12053#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12054pub struct ParamOut {
12055    pub(crate) syntax: SyntaxNode,
12056}
12057impl ParamOut {
12058    #[inline]
12059    pub fn out_token(&self) -> Option<SyntaxToken> {
12060        support::token(&self.syntax, SyntaxKind::OUT_KW)
12061    }
12062}
12063
12064#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12065pub struct ParamVariadic {
12066    pub(crate) syntax: SyntaxNode,
12067}
12068impl ParamVariadic {
12069    #[inline]
12070    pub fn variadic_token(&self) -> Option<SyntaxToken> {
12071        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
12072    }
12073}
12074
12075#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12076pub struct ParenExpr {
12077    pub(crate) syntax: SyntaxNode,
12078}
12079impl ParenExpr {
12080    #[inline]
12081    pub fn expr(&self) -> Option<Expr> {
12082        support::child(&self.syntax)
12083    }
12084    #[inline]
12085    pub fn from_item(&self) -> Option<FromItem> {
12086        support::child(&self.syntax)
12087    }
12088    #[inline]
12089    pub fn select(&self) -> Option<Select> {
12090        support::child(&self.syntax)
12091    }
12092    #[inline]
12093    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12094        support::token(&self.syntax, SyntaxKind::L_PAREN)
12095    }
12096    #[inline]
12097    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12098        support::token(&self.syntax, SyntaxKind::R_PAREN)
12099    }
12100}
12101
12102#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12103pub struct ParenSelect {
12104    pub(crate) syntax: SyntaxNode,
12105}
12106impl ParenSelect {
12107    #[inline]
12108    pub fn select(&self) -> Option<SelectVariant> {
12109        support::child(&self.syntax)
12110    }
12111    #[inline]
12112    pub fn with_clause(&self) -> Option<WithClause> {
12113        support::child(&self.syntax)
12114    }
12115    #[inline]
12116    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12117        support::token(&self.syntax, SyntaxKind::L_PAREN)
12118    }
12119    #[inline]
12120    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12121        support::token(&self.syntax, SyntaxKind::R_PAREN)
12122    }
12123}
12124
12125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12126pub struct Partition {
12127    pub(crate) syntax: SyntaxNode,
12128}
12129impl Partition {
12130    #[inline]
12131    pub fn partition_type(&self) -> Option<PartitionType> {
12132        support::child(&self.syntax)
12133    }
12134    #[inline]
12135    pub fn path(&self) -> Option<Path> {
12136        support::child(&self.syntax)
12137    }
12138    #[inline]
12139    pub fn partition_token(&self) -> Option<SyntaxToken> {
12140        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
12141    }
12142}
12143
12144#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12145pub struct PartitionBy {
12146    pub(crate) syntax: SyntaxNode,
12147}
12148impl PartitionBy {
12149    #[inline]
12150    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
12151        support::child(&self.syntax)
12152    }
12153    #[inline]
12154    pub fn by_token(&self) -> Option<SyntaxToken> {
12155        support::token(&self.syntax, SyntaxKind::BY_KW)
12156    }
12157    #[inline]
12158    pub fn ident_token(&self) -> Option<SyntaxToken> {
12159        support::token(&self.syntax, SyntaxKind::IDENT)
12160    }
12161    #[inline]
12162    pub fn partition_token(&self) -> Option<SyntaxToken> {
12163        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
12164    }
12165    #[inline]
12166    pub fn range_token(&self) -> Option<SyntaxToken> {
12167        support::token(&self.syntax, SyntaxKind::RANGE_KW)
12168    }
12169}
12170
12171#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12172pub struct PartitionDefault {
12173    pub(crate) syntax: SyntaxNode,
12174}
12175impl PartitionDefault {
12176    #[inline]
12177    pub fn default_token(&self) -> Option<SyntaxToken> {
12178        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
12179    }
12180}
12181
12182#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12183pub struct PartitionForValuesFrom {
12184    pub(crate) syntax: SyntaxNode,
12185}
12186impl PartitionForValuesFrom {
12187    #[inline]
12188    pub fn exprs(&self) -> AstChildren<Expr> {
12189        support::children(&self.syntax)
12190    }
12191    #[inline]
12192    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12193        support::token(&self.syntax, SyntaxKind::L_PAREN)
12194    }
12195    #[inline]
12196    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12197        support::token(&self.syntax, SyntaxKind::R_PAREN)
12198    }
12199    #[inline]
12200    pub fn for_token(&self) -> Option<SyntaxToken> {
12201        support::token(&self.syntax, SyntaxKind::FOR_KW)
12202    }
12203    #[inline]
12204    pub fn from_token(&self) -> Option<SyntaxToken> {
12205        support::token(&self.syntax, SyntaxKind::FROM_KW)
12206    }
12207    #[inline]
12208    pub fn to_token(&self) -> Option<SyntaxToken> {
12209        support::token(&self.syntax, SyntaxKind::TO_KW)
12210    }
12211    #[inline]
12212    pub fn values_token(&self) -> Option<SyntaxToken> {
12213        support::token(&self.syntax, SyntaxKind::VALUES_KW)
12214    }
12215}
12216
12217#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12218pub struct PartitionForValuesIn {
12219    pub(crate) syntax: SyntaxNode,
12220}
12221impl PartitionForValuesIn {
12222    #[inline]
12223    pub fn exprs(&self) -> AstChildren<Expr> {
12224        support::children(&self.syntax)
12225    }
12226    #[inline]
12227    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12228        support::token(&self.syntax, SyntaxKind::L_PAREN)
12229    }
12230    #[inline]
12231    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12232        support::token(&self.syntax, SyntaxKind::R_PAREN)
12233    }
12234    #[inline]
12235    pub fn for_token(&self) -> Option<SyntaxToken> {
12236        support::token(&self.syntax, SyntaxKind::FOR_KW)
12237    }
12238    #[inline]
12239    pub fn in_token(&self) -> Option<SyntaxToken> {
12240        support::token(&self.syntax, SyntaxKind::IN_KW)
12241    }
12242    #[inline]
12243    pub fn values_token(&self) -> Option<SyntaxToken> {
12244        support::token(&self.syntax, SyntaxKind::VALUES_KW)
12245    }
12246}
12247
12248#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12249pub struct PartitionForValuesWith {
12250    pub(crate) syntax: SyntaxNode,
12251}
12252impl PartitionForValuesWith {
12253    #[inline]
12254    pub fn literal(&self) -> Option<Literal> {
12255        support::child(&self.syntax)
12256    }
12257    #[inline]
12258    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12259        support::token(&self.syntax, SyntaxKind::L_PAREN)
12260    }
12261    #[inline]
12262    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12263        support::token(&self.syntax, SyntaxKind::R_PAREN)
12264    }
12265    #[inline]
12266    pub fn comma_token(&self) -> Option<SyntaxToken> {
12267        support::token(&self.syntax, SyntaxKind::COMMA)
12268    }
12269    #[inline]
12270    pub fn for_token(&self) -> Option<SyntaxToken> {
12271        support::token(&self.syntax, SyntaxKind::FOR_KW)
12272    }
12273    #[inline]
12274    pub fn ident_token(&self) -> Option<SyntaxToken> {
12275        support::token(&self.syntax, SyntaxKind::IDENT)
12276    }
12277    #[inline]
12278    pub fn values_token(&self) -> Option<SyntaxToken> {
12279        support::token(&self.syntax, SyntaxKind::VALUES_KW)
12280    }
12281    #[inline]
12282    pub fn with_token(&self) -> Option<SyntaxToken> {
12283        support::token(&self.syntax, SyntaxKind::WITH_KW)
12284    }
12285}
12286
12287#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12288pub struct PartitionItem {
12289    pub(crate) syntax: SyntaxNode,
12290}
12291impl PartitionItem {
12292    #[inline]
12293    pub fn collate(&self) -> Option<Collate> {
12294        support::child(&self.syntax)
12295    }
12296    #[inline]
12297    pub fn expr(&self) -> Option<Expr> {
12298        support::child(&self.syntax)
12299    }
12300}
12301
12302#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12303pub struct PartitionItemList {
12304    pub(crate) syntax: SyntaxNode,
12305}
12306impl PartitionItemList {
12307    #[inline]
12308    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
12309        support::children(&self.syntax)
12310    }
12311    #[inline]
12312    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12313        support::token(&self.syntax, SyntaxKind::L_PAREN)
12314    }
12315    #[inline]
12316    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12317        support::token(&self.syntax, SyntaxKind::R_PAREN)
12318    }
12319}
12320
12321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12322pub struct PartitionList {
12323    pub(crate) syntax: SyntaxNode,
12324}
12325impl PartitionList {
12326    #[inline]
12327    pub fn partitions(&self) -> AstChildren<Partition> {
12328        support::children(&self.syntax)
12329    }
12330    #[inline]
12331    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12332        support::token(&self.syntax, SyntaxKind::L_PAREN)
12333    }
12334    #[inline]
12335    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12336        support::token(&self.syntax, SyntaxKind::R_PAREN)
12337    }
12338}
12339
12340#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12341pub struct PartitionOf {
12342    pub(crate) syntax: SyntaxNode,
12343}
12344impl PartitionOf {
12345    #[inline]
12346    pub fn path(&self) -> Option<Path> {
12347        support::child(&self.syntax)
12348    }
12349    #[inline]
12350    pub fn of_token(&self) -> Option<SyntaxToken> {
12351        support::token(&self.syntax, SyntaxKind::OF_KW)
12352    }
12353    #[inline]
12354    pub fn partition_token(&self) -> Option<SyntaxToken> {
12355        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
12356    }
12357}
12358
12359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12360pub struct Path {
12361    pub(crate) syntax: SyntaxNode,
12362}
12363impl Path {
12364    #[inline]
12365    pub fn qualifier(&self) -> Option<Path> {
12366        support::child(&self.syntax)
12367    }
12368    #[inline]
12369    pub fn segment(&self) -> Option<PathSegment> {
12370        support::child(&self.syntax)
12371    }
12372    #[inline]
12373    pub fn dot_token(&self) -> Option<SyntaxToken> {
12374        support::token(&self.syntax, SyntaxKind::DOT)
12375    }
12376}
12377
12378#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12379pub struct PathSegment {
12380    pub(crate) syntax: SyntaxNode,
12381}
12382impl PathSegment {
12383    #[inline]
12384    pub fn name(&self) -> Option<Name> {
12385        support::child(&self.syntax)
12386    }
12387    #[inline]
12388    pub fn name_ref(&self) -> Option<NameRef> {
12389        support::child(&self.syntax)
12390    }
12391}
12392
12393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12394pub struct PathType {
12395    pub(crate) syntax: SyntaxNode,
12396}
12397impl PathType {
12398    #[inline]
12399    pub fn arg_list(&self) -> Option<ArgList> {
12400        support::child(&self.syntax)
12401    }
12402    #[inline]
12403    pub fn path(&self) -> Option<Path> {
12404        support::child(&self.syntax)
12405    }
12406}
12407
12408#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12409pub struct PercentType {
12410    pub(crate) syntax: SyntaxNode,
12411}
12412impl PercentType {
12413    #[inline]
12414    pub fn percent_token(&self) -> Option<SyntaxToken> {
12415        support::token(&self.syntax, SyntaxKind::PERCENT)
12416    }
12417    #[inline]
12418    pub fn type_token(&self) -> Option<SyntaxToken> {
12419        support::token(&self.syntax, SyntaxKind::TYPE_KW)
12420    }
12421}
12422
12423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12424pub struct PercentTypeClause {
12425    pub(crate) syntax: SyntaxNode,
12426}
12427impl PercentTypeClause {
12428    #[inline]
12429    pub fn path(&self) -> Option<Path> {
12430        support::child(&self.syntax)
12431    }
12432    #[inline]
12433    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
12434        support::child(&self.syntax)
12435    }
12436}
12437
12438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12439pub struct PositionFn {
12440    pub(crate) syntax: SyntaxNode,
12441}
12442impl PositionFn {
12443    #[inline]
12444    pub fn expr(&self) -> Option<Expr> {
12445        support::child(&self.syntax)
12446    }
12447    #[inline]
12448    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12449        support::token(&self.syntax, SyntaxKind::L_PAREN)
12450    }
12451    #[inline]
12452    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12453        support::token(&self.syntax, SyntaxKind::R_PAREN)
12454    }
12455    #[inline]
12456    pub fn in_token(&self) -> Option<SyntaxToken> {
12457        support::token(&self.syntax, SyntaxKind::IN_KW)
12458    }
12459    #[inline]
12460    pub fn position_token(&self) -> Option<SyntaxToken> {
12461        support::token(&self.syntax, SyntaxKind::POSITION_KW)
12462    }
12463}
12464
12465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12466pub struct PostfixExpr {
12467    pub(crate) syntax: SyntaxNode,
12468}
12469impl PostfixExpr {
12470    #[inline]
12471    pub fn expr(&self) -> Option<Expr> {
12472        support::child(&self.syntax)
12473    }
12474}
12475
12476#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12477pub struct PrefixExpr {
12478    pub(crate) syntax: SyntaxNode,
12479}
12480impl PrefixExpr {
12481    #[inline]
12482    pub fn expr(&self) -> Option<Expr> {
12483        support::child(&self.syntax)
12484    }
12485}
12486
12487#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12488pub struct Prepare {
12489    pub(crate) syntax: SyntaxNode,
12490}
12491impl Prepare {
12492    #[inline]
12493    pub fn name(&self) -> Option<Name> {
12494        support::child(&self.syntax)
12495    }
12496    #[inline]
12497    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
12498        support::child(&self.syntax)
12499    }
12500    #[inline]
12501    pub fn as_token(&self) -> Option<SyntaxToken> {
12502        support::token(&self.syntax, SyntaxKind::AS_KW)
12503    }
12504    #[inline]
12505    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12506        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12507    }
12508}
12509
12510#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12511pub struct PrepareTransaction {
12512    pub(crate) syntax: SyntaxNode,
12513}
12514impl PrepareTransaction {
12515    #[inline]
12516    pub fn literal(&self) -> Option<Literal> {
12517        support::child(&self.syntax)
12518    }
12519    #[inline]
12520    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12521        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12522    }
12523    #[inline]
12524    pub fn transaction_token(&self) -> Option<SyntaxToken> {
12525        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
12526    }
12527}
12528
12529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12530pub struct PreserveRows {
12531    pub(crate) syntax: SyntaxNode,
12532}
12533impl PreserveRows {
12534    #[inline]
12535    pub fn preserve_token(&self) -> Option<SyntaxToken> {
12536        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
12537    }
12538    #[inline]
12539    pub fn rows_token(&self) -> Option<SyntaxToken> {
12540        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12541    }
12542}
12543
12544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12545pub struct PrimaryKeyConstraint {
12546    pub(crate) syntax: SyntaxNode,
12547}
12548impl PrimaryKeyConstraint {
12549    #[inline]
12550    pub fn column_list(&self) -> Option<ColumnList> {
12551        support::child(&self.syntax)
12552    }
12553    #[inline]
12554    pub fn constraint_name(&self) -> Option<ConstraintName> {
12555        support::child(&self.syntax)
12556    }
12557    #[inline]
12558    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
12559        support::child(&self.syntax)
12560    }
12561    #[inline]
12562    pub fn using_index(&self) -> Option<UsingIndex> {
12563        support::child(&self.syntax)
12564    }
12565    #[inline]
12566    pub fn key_token(&self) -> Option<SyntaxToken> {
12567        support::token(&self.syntax, SyntaxKind::KEY_KW)
12568    }
12569    #[inline]
12570    pub fn primary_token(&self) -> Option<SyntaxToken> {
12571        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
12572    }
12573}
12574
12575#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12576pub struct PrivilegeTarget {
12577    pub(crate) syntax: SyntaxNode,
12578}
12579impl PrivilegeTarget {
12580    #[inline]
12581    pub fn functions_token(&self) -> Option<SyntaxToken> {
12582        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
12583    }
12584    #[inline]
12585    pub fn large_token(&self) -> Option<SyntaxToken> {
12586        support::token(&self.syntax, SyntaxKind::LARGE_KW)
12587    }
12588    #[inline]
12589    pub fn objects_token(&self) -> Option<SyntaxToken> {
12590        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
12591    }
12592    #[inline]
12593    pub fn routines_token(&self) -> Option<SyntaxToken> {
12594        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
12595    }
12596    #[inline]
12597    pub fn schemas_token(&self) -> Option<SyntaxToken> {
12598        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
12599    }
12600    #[inline]
12601    pub fn sequences_token(&self) -> Option<SyntaxToken> {
12602        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
12603    }
12604    #[inline]
12605    pub fn tables_token(&self) -> Option<SyntaxToken> {
12606        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12607    }
12608    #[inline]
12609    pub fn types_token(&self) -> Option<SyntaxToken> {
12610        support::token(&self.syntax, SyntaxKind::TYPES_KW)
12611    }
12612}
12613
12614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12615pub struct Privileges {
12616    pub(crate) syntax: SyntaxNode,
12617}
12618impl Privileges {
12619    #[inline]
12620    pub fn column_list(&self) -> Option<ColumnList> {
12621        support::child(&self.syntax)
12622    }
12623    #[inline]
12624    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
12625        support::child(&self.syntax)
12626    }
12627    #[inline]
12628    pub fn all_token(&self) -> Option<SyntaxToken> {
12629        support::token(&self.syntax, SyntaxKind::ALL_KW)
12630    }
12631    #[inline]
12632    pub fn privileges_token(&self) -> Option<SyntaxToken> {
12633        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
12634    }
12635}
12636
12637#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12638pub struct PublicationObject {
12639    pub(crate) syntax: SyntaxNode,
12640}
12641impl PublicationObject {
12642    #[inline]
12643    pub fn column_list(&self) -> Option<ColumnList> {
12644        support::child(&self.syntax)
12645    }
12646    #[inline]
12647    pub fn name_ref(&self) -> Option<NameRef> {
12648        support::child(&self.syntax)
12649    }
12650    #[inline]
12651    pub fn path(&self) -> Option<Path> {
12652        support::child(&self.syntax)
12653    }
12654    #[inline]
12655    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
12656        support::child(&self.syntax)
12657    }
12658    #[inline]
12659    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12660        support::token(&self.syntax, SyntaxKind::L_PAREN)
12661    }
12662    #[inline]
12663    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12664        support::token(&self.syntax, SyntaxKind::R_PAREN)
12665    }
12666    #[inline]
12667    pub fn star_token(&self) -> Option<SyntaxToken> {
12668        support::token(&self.syntax, SyntaxKind::STAR)
12669    }
12670    #[inline]
12671    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
12672        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
12673    }
12674    #[inline]
12675    pub fn in_token(&self) -> Option<SyntaxToken> {
12676        support::token(&self.syntax, SyntaxKind::IN_KW)
12677    }
12678    #[inline]
12679    pub fn only_token(&self) -> Option<SyntaxToken> {
12680        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12681    }
12682    #[inline]
12683    pub fn schema_token(&self) -> Option<SyntaxToken> {
12684        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12685    }
12686    #[inline]
12687    pub fn table_token(&self) -> Option<SyntaxToken> {
12688        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12689    }
12690    #[inline]
12691    pub fn tables_token(&self) -> Option<SyntaxToken> {
12692        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12693    }
12694}
12695
12696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12697pub struct ReadCommitted {
12698    pub(crate) syntax: SyntaxNode,
12699}
12700impl ReadCommitted {
12701    #[inline]
12702    pub fn committed_token(&self) -> Option<SyntaxToken> {
12703        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
12704    }
12705    #[inline]
12706    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12707        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12708    }
12709    #[inline]
12710    pub fn level_token(&self) -> Option<SyntaxToken> {
12711        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12712    }
12713    #[inline]
12714    pub fn read_token(&self) -> Option<SyntaxToken> {
12715        support::token(&self.syntax, SyntaxKind::READ_KW)
12716    }
12717}
12718
12719#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12720pub struct ReadOnly {
12721    pub(crate) syntax: SyntaxNode,
12722}
12723impl ReadOnly {
12724    #[inline]
12725    pub fn only_token(&self) -> Option<SyntaxToken> {
12726        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12727    }
12728    #[inline]
12729    pub fn read_token(&self) -> Option<SyntaxToken> {
12730        support::token(&self.syntax, SyntaxKind::READ_KW)
12731    }
12732}
12733
12734#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12735pub struct ReadUncommitted {
12736    pub(crate) syntax: SyntaxNode,
12737}
12738impl ReadUncommitted {
12739    #[inline]
12740    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12741        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12742    }
12743    #[inline]
12744    pub fn level_token(&self) -> Option<SyntaxToken> {
12745        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12746    }
12747    #[inline]
12748    pub fn read_token(&self) -> Option<SyntaxToken> {
12749        support::token(&self.syntax, SyntaxKind::READ_KW)
12750    }
12751    #[inline]
12752    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
12753        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
12754    }
12755}
12756
12757#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12758pub struct ReadWrite {
12759    pub(crate) syntax: SyntaxNode,
12760}
12761impl ReadWrite {
12762    #[inline]
12763    pub fn read_token(&self) -> Option<SyntaxToken> {
12764        support::token(&self.syntax, SyntaxKind::READ_KW)
12765    }
12766    #[inline]
12767    pub fn write_token(&self) -> Option<SyntaxToken> {
12768        support::token(&self.syntax, SyntaxKind::WRITE_KW)
12769    }
12770}
12771
12772#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12773pub struct Reassign {
12774    pub(crate) syntax: SyntaxNode,
12775}
12776impl Reassign {
12777    #[inline]
12778    pub fn new_roles(&self) -> Option<RoleRefList> {
12779        support::child(&self.syntax)
12780    }
12781    #[inline]
12782    pub fn old_roles(&self) -> Option<RoleRefList> {
12783        support::child(&self.syntax)
12784    }
12785    #[inline]
12786    pub fn by_token(&self) -> Option<SyntaxToken> {
12787        support::token(&self.syntax, SyntaxKind::BY_KW)
12788    }
12789    #[inline]
12790    pub fn owned_token(&self) -> Option<SyntaxToken> {
12791        support::token(&self.syntax, SyntaxKind::OWNED_KW)
12792    }
12793    #[inline]
12794    pub fn reassign_token(&self) -> Option<SyntaxToken> {
12795        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
12796    }
12797    #[inline]
12798    pub fn to_token(&self) -> Option<SyntaxToken> {
12799        support::token(&self.syntax, SyntaxKind::TO_KW)
12800    }
12801}
12802
12803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12804pub struct ReferencesConstraint {
12805    pub(crate) syntax: SyntaxNode,
12806}
12807impl ReferencesConstraint {
12808    #[inline]
12809    pub fn column(&self) -> Option<NameRef> {
12810        support::child(&self.syntax)
12811    }
12812    #[inline]
12813    pub fn constraint_name(&self) -> Option<ConstraintName> {
12814        support::child(&self.syntax)
12815    }
12816    #[inline]
12817    pub fn match_type(&self) -> Option<MatchType> {
12818        support::child(&self.syntax)
12819    }
12820    #[inline]
12821    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
12822        support::child(&self.syntax)
12823    }
12824    #[inline]
12825    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
12826        support::child(&self.syntax)
12827    }
12828    #[inline]
12829    pub fn table(&self) -> Option<Path> {
12830        support::child(&self.syntax)
12831    }
12832    #[inline]
12833    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12834        support::token(&self.syntax, SyntaxKind::L_PAREN)
12835    }
12836    #[inline]
12837    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12838        support::token(&self.syntax, SyntaxKind::R_PAREN)
12839    }
12840    #[inline]
12841    pub fn references_token(&self) -> Option<SyntaxToken> {
12842        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
12843    }
12844}
12845
12846#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12847pub struct Referencing {
12848    pub(crate) syntax: SyntaxNode,
12849}
12850impl Referencing {
12851    #[inline]
12852    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
12853        support::children(&self.syntax)
12854    }
12855    #[inline]
12856    pub fn referencing_token(&self) -> Option<SyntaxToken> {
12857        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
12858    }
12859}
12860
12861#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12862pub struct ReferencingTable {
12863    pub(crate) syntax: SyntaxNode,
12864}
12865impl ReferencingTable {
12866    #[inline]
12867    pub fn name_ref(&self) -> Option<NameRef> {
12868        support::child(&self.syntax)
12869    }
12870    #[inline]
12871    pub fn as_token(&self) -> Option<SyntaxToken> {
12872        support::token(&self.syntax, SyntaxKind::AS_KW)
12873    }
12874    #[inline]
12875    pub fn new_token(&self) -> Option<SyntaxToken> {
12876        support::token(&self.syntax, SyntaxKind::NEW_KW)
12877    }
12878    #[inline]
12879    pub fn old_token(&self) -> Option<SyntaxToken> {
12880        support::token(&self.syntax, SyntaxKind::OLD_KW)
12881    }
12882    #[inline]
12883    pub fn table_token(&self) -> Option<SyntaxToken> {
12884        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12885    }
12886}
12887
12888#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12889pub struct Refresh {
12890    pub(crate) syntax: SyntaxNode,
12891}
12892impl Refresh {
12893    #[inline]
12894    pub fn path(&self) -> Option<Path> {
12895        support::child(&self.syntax)
12896    }
12897    #[inline]
12898    pub fn with_data(&self) -> Option<WithData> {
12899        support::child(&self.syntax)
12900    }
12901    #[inline]
12902    pub fn with_no_data(&self) -> Option<WithNoData> {
12903        support::child(&self.syntax)
12904    }
12905    #[inline]
12906    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
12907        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
12908    }
12909    #[inline]
12910    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12911        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12912    }
12913    #[inline]
12914    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12915        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12916    }
12917    #[inline]
12918    pub fn view_token(&self) -> Option<SyntaxToken> {
12919        support::token(&self.syntax, SyntaxKind::VIEW_KW)
12920    }
12921}
12922
12923#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12924pub struct RefreshCollationVersion {
12925    pub(crate) syntax: SyntaxNode,
12926}
12927impl RefreshCollationVersion {
12928    #[inline]
12929    pub fn collation_token(&self) -> Option<SyntaxToken> {
12930        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
12931    }
12932    #[inline]
12933    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12934        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12935    }
12936    #[inline]
12937    pub fn version_token(&self) -> Option<SyntaxToken> {
12938        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12939    }
12940}
12941
12942#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12943pub struct RefreshVersion {
12944    pub(crate) syntax: SyntaxNode,
12945}
12946impl RefreshVersion {
12947    #[inline]
12948    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12949        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12950    }
12951    #[inline]
12952    pub fn version_token(&self) -> Option<SyntaxToken> {
12953        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12954    }
12955}
12956
12957#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12958pub struct Reindex {
12959    pub(crate) syntax: SyntaxNode,
12960}
12961impl Reindex {
12962    #[inline]
12963    pub fn path(&self) -> Option<Path> {
12964        support::child(&self.syntax)
12965    }
12966    #[inline]
12967    pub fn database_token(&self) -> Option<SyntaxToken> {
12968        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
12969    }
12970    #[inline]
12971    pub fn index_token(&self) -> Option<SyntaxToken> {
12972        support::token(&self.syntax, SyntaxKind::INDEX_KW)
12973    }
12974    #[inline]
12975    pub fn reindex_token(&self) -> Option<SyntaxToken> {
12976        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
12977    }
12978    #[inline]
12979    pub fn schema_token(&self) -> Option<SyntaxToken> {
12980        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12981    }
12982    #[inline]
12983    pub fn system_token(&self) -> Option<SyntaxToken> {
12984        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
12985    }
12986    #[inline]
12987    pub fn table_token(&self) -> Option<SyntaxToken> {
12988        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12989    }
12990}
12991
12992#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12993pub struct RelationName {
12994    pub(crate) syntax: SyntaxNode,
12995}
12996impl RelationName {
12997    #[inline]
12998    pub fn path(&self) -> Option<Path> {
12999        support::child(&self.syntax)
13000    }
13001    #[inline]
13002    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13003        support::token(&self.syntax, SyntaxKind::L_PAREN)
13004    }
13005    #[inline]
13006    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13007        support::token(&self.syntax, SyntaxKind::R_PAREN)
13008    }
13009    #[inline]
13010    pub fn star_token(&self) -> Option<SyntaxToken> {
13011        support::token(&self.syntax, SyntaxKind::STAR)
13012    }
13013    #[inline]
13014    pub fn only_token(&self) -> Option<SyntaxToken> {
13015        support::token(&self.syntax, SyntaxKind::ONLY_KW)
13016    }
13017}
13018
13019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13020pub struct ReleaseSavepoint {
13021    pub(crate) syntax: SyntaxNode,
13022}
13023impl ReleaseSavepoint {
13024    #[inline]
13025    pub fn name_ref(&self) -> Option<NameRef> {
13026        support::child(&self.syntax)
13027    }
13028    #[inline]
13029    pub fn release_token(&self) -> Option<SyntaxToken> {
13030        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
13031    }
13032    #[inline]
13033    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13034        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13035    }
13036}
13037
13038#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13039pub struct RenameColumn {
13040    pub(crate) syntax: SyntaxNode,
13041}
13042impl RenameColumn {
13043    #[inline]
13044    pub fn column_token(&self) -> Option<SyntaxToken> {
13045        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
13046    }
13047    #[inline]
13048    pub fn rename_token(&self) -> Option<SyntaxToken> {
13049        support::token(&self.syntax, SyntaxKind::RENAME_KW)
13050    }
13051    #[inline]
13052    pub fn to_token(&self) -> Option<SyntaxToken> {
13053        support::token(&self.syntax, SyntaxKind::TO_KW)
13054    }
13055}
13056
13057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13058pub struct RenameConstraint {
13059    pub(crate) syntax: SyntaxNode,
13060}
13061impl RenameConstraint {
13062    #[inline]
13063    pub fn name(&self) -> Option<Name> {
13064        support::child(&self.syntax)
13065    }
13066    #[inline]
13067    pub fn name_ref(&self) -> Option<NameRef> {
13068        support::child(&self.syntax)
13069    }
13070    #[inline]
13071    pub fn constraint_token(&self) -> Option<SyntaxToken> {
13072        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
13073    }
13074    #[inline]
13075    pub fn rename_token(&self) -> Option<SyntaxToken> {
13076        support::token(&self.syntax, SyntaxKind::RENAME_KW)
13077    }
13078    #[inline]
13079    pub fn to_token(&self) -> Option<SyntaxToken> {
13080        support::token(&self.syntax, SyntaxKind::TO_KW)
13081    }
13082}
13083
13084#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13085pub struct RenameTo {
13086    pub(crate) syntax: SyntaxNode,
13087}
13088impl RenameTo {
13089    #[inline]
13090    pub fn name(&self) -> Option<Name> {
13091        support::child(&self.syntax)
13092    }
13093    #[inline]
13094    pub fn rename_token(&self) -> Option<SyntaxToken> {
13095        support::token(&self.syntax, SyntaxKind::RENAME_KW)
13096    }
13097    #[inline]
13098    pub fn to_token(&self) -> Option<SyntaxToken> {
13099        support::token(&self.syntax, SyntaxKind::TO_KW)
13100    }
13101}
13102
13103#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13104pub struct RepeatableClause {
13105    pub(crate) syntax: SyntaxNode,
13106}
13107impl RepeatableClause {
13108    #[inline]
13109    pub fn expr(&self) -> Option<Expr> {
13110        support::child(&self.syntax)
13111    }
13112    #[inline]
13113    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13114        support::token(&self.syntax, SyntaxKind::L_PAREN)
13115    }
13116    #[inline]
13117    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13118        support::token(&self.syntax, SyntaxKind::R_PAREN)
13119    }
13120    #[inline]
13121    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
13122        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
13123    }
13124}
13125
13126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13127pub struct RepeatableRead {
13128    pub(crate) syntax: SyntaxNode,
13129}
13130impl RepeatableRead {
13131    #[inline]
13132    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13133        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13134    }
13135    #[inline]
13136    pub fn level_token(&self) -> Option<SyntaxToken> {
13137        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13138    }
13139    #[inline]
13140    pub fn read_token(&self) -> Option<SyntaxToken> {
13141        support::token(&self.syntax, SyntaxKind::READ_KW)
13142    }
13143    #[inline]
13144    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
13145        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
13146    }
13147}
13148
13149#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13150pub struct ReplicaIdentity {
13151    pub(crate) syntax: SyntaxNode,
13152}
13153impl ReplicaIdentity {
13154    #[inline]
13155    pub fn identity_token(&self) -> Option<SyntaxToken> {
13156        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
13157    }
13158    #[inline]
13159    pub fn replica_token(&self) -> Option<SyntaxToken> {
13160        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
13161    }
13162}
13163
13164#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13165pub struct Reset {
13166    pub(crate) syntax: SyntaxNode,
13167}
13168impl Reset {
13169    #[inline]
13170    pub fn name_ref(&self) -> Option<NameRef> {
13171        support::child(&self.syntax)
13172    }
13173    #[inline]
13174    pub fn all_token(&self) -> Option<SyntaxToken> {
13175        support::token(&self.syntax, SyntaxKind::ALL_KW)
13176    }
13177    #[inline]
13178    pub fn reset_token(&self) -> Option<SyntaxToken> {
13179        support::token(&self.syntax, SyntaxKind::RESET_KW)
13180    }
13181}
13182
13183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13184pub struct ResetConfigParam {
13185    pub(crate) syntax: SyntaxNode,
13186}
13187impl ResetConfigParam {
13188    #[inline]
13189    pub fn path(&self) -> Option<Path> {
13190        support::child(&self.syntax)
13191    }
13192    #[inline]
13193    pub fn all_token(&self) -> Option<SyntaxToken> {
13194        support::token(&self.syntax, SyntaxKind::ALL_KW)
13195    }
13196    #[inline]
13197    pub fn reset_token(&self) -> Option<SyntaxToken> {
13198        support::token(&self.syntax, SyntaxKind::RESET_KW)
13199    }
13200}
13201
13202#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13203pub struct ResetFuncOption {
13204    pub(crate) syntax: SyntaxNode,
13205}
13206impl ResetFuncOption {
13207    #[inline]
13208    pub fn name_ref(&self) -> Option<NameRef> {
13209        support::child(&self.syntax)
13210    }
13211    #[inline]
13212    pub fn reset_token(&self) -> Option<SyntaxToken> {
13213        support::token(&self.syntax, SyntaxKind::RESET_KW)
13214    }
13215}
13216
13217#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13218pub struct ResetOptions {
13219    pub(crate) syntax: SyntaxNode,
13220}
13221impl ResetOptions {
13222    #[inline]
13223    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13224        support::token(&self.syntax, SyntaxKind::L_PAREN)
13225    }
13226    #[inline]
13227    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13228        support::token(&self.syntax, SyntaxKind::R_PAREN)
13229    }
13230    #[inline]
13231    pub fn reset_token(&self) -> Option<SyntaxToken> {
13232        support::token(&self.syntax, SyntaxKind::RESET_KW)
13233    }
13234}
13235
13236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13237pub struct ResetSessionAuth {
13238    pub(crate) syntax: SyntaxNode,
13239}
13240impl ResetSessionAuth {
13241    #[inline]
13242    pub fn authorization_token(&self) -> Option<SyntaxToken> {
13243        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
13244    }
13245    #[inline]
13246    pub fn reset_token(&self) -> Option<SyntaxToken> {
13247        support::token(&self.syntax, SyntaxKind::RESET_KW)
13248    }
13249    #[inline]
13250    pub fn session_token(&self) -> Option<SyntaxToken> {
13251        support::token(&self.syntax, SyntaxKind::SESSION_KW)
13252    }
13253}
13254
13255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13256pub struct Restart {
13257    pub(crate) syntax: SyntaxNode,
13258}
13259impl Restart {
13260    #[inline]
13261    pub fn restart_token(&self) -> Option<SyntaxToken> {
13262        support::token(&self.syntax, SyntaxKind::RESTART_KW)
13263    }
13264    #[inline]
13265    pub fn with_token(&self) -> Option<SyntaxToken> {
13266        support::token(&self.syntax, SyntaxKind::WITH_KW)
13267    }
13268}
13269
13270#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13271pub struct Restrict {
13272    pub(crate) syntax: SyntaxNode,
13273}
13274impl Restrict {
13275    #[inline]
13276    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13277        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13278    }
13279}
13280
13281#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13282pub struct RetType {
13283    pub(crate) syntax: SyntaxNode,
13284}
13285impl RetType {
13286    #[inline]
13287    pub fn table_arg_list(&self) -> Option<TableArgList> {
13288        support::child(&self.syntax)
13289    }
13290    #[inline]
13291    pub fn ty(&self) -> Option<Type> {
13292        support::child(&self.syntax)
13293    }
13294    #[inline]
13295    pub fn returns_token(&self) -> Option<SyntaxToken> {
13296        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
13297    }
13298    #[inline]
13299    pub fn table_token(&self) -> Option<SyntaxToken> {
13300        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13301    }
13302}
13303
13304#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13305pub struct ReturnFuncOption {
13306    pub(crate) syntax: SyntaxNode,
13307}
13308impl ReturnFuncOption {
13309    #[inline]
13310    pub fn expr(&self) -> Option<Expr> {
13311        support::child(&self.syntax)
13312    }
13313    #[inline]
13314    pub fn return_token(&self) -> Option<SyntaxToken> {
13315        support::token(&self.syntax, SyntaxKind::RETURN_KW)
13316    }
13317}
13318
13319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13320pub struct ReturningClause {
13321    pub(crate) syntax: SyntaxNode,
13322}
13323impl ReturningClause {
13324    #[inline]
13325    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
13326        support::child(&self.syntax)
13327    }
13328    #[inline]
13329    pub fn target_list(&self) -> Option<TargetList> {
13330        support::child(&self.syntax)
13331    }
13332    #[inline]
13333    pub fn returning_token(&self) -> Option<SyntaxToken> {
13334        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
13335    }
13336}
13337
13338#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13339pub struct ReturningOption {
13340    pub(crate) syntax: SyntaxNode,
13341}
13342impl ReturningOption {
13343    #[inline]
13344    pub fn name(&self) -> Option<Name> {
13345        support::child(&self.syntax)
13346    }
13347    #[inline]
13348    pub fn as_token(&self) -> Option<SyntaxToken> {
13349        support::token(&self.syntax, SyntaxKind::AS_KW)
13350    }
13351    #[inline]
13352    pub fn new_token(&self) -> Option<SyntaxToken> {
13353        support::token(&self.syntax, SyntaxKind::NEW_KW)
13354    }
13355    #[inline]
13356    pub fn old_token(&self) -> Option<SyntaxToken> {
13357        support::token(&self.syntax, SyntaxKind::OLD_KW)
13358    }
13359}
13360
13361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13362pub struct ReturningOptionList {
13363    pub(crate) syntax: SyntaxNode,
13364}
13365impl ReturningOptionList {
13366    #[inline]
13367    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
13368        support::children(&self.syntax)
13369    }
13370    #[inline]
13371    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13372        support::token(&self.syntax, SyntaxKind::L_PAREN)
13373    }
13374    #[inline]
13375    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13376        support::token(&self.syntax, SyntaxKind::R_PAREN)
13377    }
13378    #[inline]
13379    pub fn with_token(&self) -> Option<SyntaxToken> {
13380        support::token(&self.syntax, SyntaxKind::WITH_KW)
13381    }
13382}
13383
13384#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13385pub struct Revoke {
13386    pub(crate) syntax: SyntaxNode,
13387}
13388impl Revoke {
13389    #[inline]
13390    pub fn name_refs(&self) -> AstChildren<NameRef> {
13391        support::children(&self.syntax)
13392    }
13393    #[inline]
13394    pub fn paths(&self) -> AstChildren<Path> {
13395        support::children(&self.syntax)
13396    }
13397    #[inline]
13398    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
13399        support::child(&self.syntax)
13400    }
13401    #[inline]
13402    pub fn role_ref(&self) -> Option<RoleRef> {
13403        support::child(&self.syntax)
13404    }
13405    #[inline]
13406    pub fn role_ref_list(&self) -> Option<RoleRefList> {
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 by_token(&self) -> Option<SyntaxToken> {
13415        support::token(&self.syntax, SyntaxKind::BY_KW)
13416    }
13417    #[inline]
13418    pub fn cascade_token(&self) -> Option<SyntaxToken> {
13419        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
13420    }
13421    #[inline]
13422    pub fn for_token(&self) -> Option<SyntaxToken> {
13423        support::token(&self.syntax, SyntaxKind::FOR_KW)
13424    }
13425    #[inline]
13426    pub fn from_token(&self) -> Option<SyntaxToken> {
13427        support::token(&self.syntax, SyntaxKind::FROM_KW)
13428    }
13429    #[inline]
13430    pub fn grant_token(&self) -> Option<SyntaxToken> {
13431        support::token(&self.syntax, SyntaxKind::GRANT_KW)
13432    }
13433    #[inline]
13434    pub fn granted_token(&self) -> Option<SyntaxToken> {
13435        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
13436    }
13437    #[inline]
13438    pub fn in_token(&self) -> Option<SyntaxToken> {
13439        support::token(&self.syntax, SyntaxKind::IN_KW)
13440    }
13441    #[inline]
13442    pub fn on_token(&self) -> Option<SyntaxToken> {
13443        support::token(&self.syntax, SyntaxKind::ON_KW)
13444    }
13445    #[inline]
13446    pub fn option_token(&self) -> Option<SyntaxToken> {
13447        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13448    }
13449    #[inline]
13450    pub fn privileges_token(&self) -> Option<SyntaxToken> {
13451        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
13452    }
13453    #[inline]
13454    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13455        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13456    }
13457    #[inline]
13458    pub fn revoke_token(&self) -> Option<SyntaxToken> {
13459        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
13460    }
13461    #[inline]
13462    pub fn schema_token(&self) -> Option<SyntaxToken> {
13463        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13464    }
13465    #[inline]
13466    pub fn table_token(&self) -> Option<SyntaxToken> {
13467        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13468    }
13469    #[inline]
13470    pub fn tables_token(&self) -> Option<SyntaxToken> {
13471        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13472    }
13473}
13474
13475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13476pub struct RevokeCommand {
13477    pub(crate) syntax: SyntaxNode,
13478}
13479impl RevokeCommand {
13480    #[inline]
13481    pub fn role_ref(&self) -> Option<RoleRef> {
13482        support::child(&self.syntax)
13483    }
13484    #[inline]
13485    pub fn all_token(&self) -> Option<SyntaxToken> {
13486        support::token(&self.syntax, SyntaxKind::ALL_KW)
13487    }
13488    #[inline]
13489    pub fn alter_token(&self) -> Option<SyntaxToken> {
13490        support::token(&self.syntax, SyntaxKind::ALTER_KW)
13491    }
13492    #[inline]
13493    pub fn create_token(&self) -> Option<SyntaxToken> {
13494        support::token(&self.syntax, SyntaxKind::CREATE_KW)
13495    }
13496    #[inline]
13497    pub fn delete_token(&self) -> Option<SyntaxToken> {
13498        support::token(&self.syntax, SyntaxKind::DELETE_KW)
13499    }
13500    #[inline]
13501    pub fn execute_token(&self) -> Option<SyntaxToken> {
13502        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
13503    }
13504    #[inline]
13505    pub fn ident_token(&self) -> Option<SyntaxToken> {
13506        support::token(&self.syntax, SyntaxKind::IDENT)
13507    }
13508    #[inline]
13509    pub fn insert_token(&self) -> Option<SyntaxToken> {
13510        support::token(&self.syntax, SyntaxKind::INSERT_KW)
13511    }
13512    #[inline]
13513    pub fn references_token(&self) -> Option<SyntaxToken> {
13514        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
13515    }
13516    #[inline]
13517    pub fn select_token(&self) -> Option<SyntaxToken> {
13518        support::token(&self.syntax, SyntaxKind::SELECT_KW)
13519    }
13520    #[inline]
13521    pub fn system_token(&self) -> Option<SyntaxToken> {
13522        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
13523    }
13524    #[inline]
13525    pub fn temp_token(&self) -> Option<SyntaxToken> {
13526        support::token(&self.syntax, SyntaxKind::TEMP_KW)
13527    }
13528    #[inline]
13529    pub fn temporary_token(&self) -> Option<SyntaxToken> {
13530        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
13531    }
13532    #[inline]
13533    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13534        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13535    }
13536    #[inline]
13537    pub fn truncate_token(&self) -> Option<SyntaxToken> {
13538        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
13539    }
13540    #[inline]
13541    pub fn update_token(&self) -> Option<SyntaxToken> {
13542        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
13543    }
13544}
13545
13546#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13547pub struct RevokeCommandList {
13548    pub(crate) syntax: SyntaxNode,
13549}
13550impl RevokeCommandList {
13551    #[inline]
13552    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
13553        support::children(&self.syntax)
13554    }
13555}
13556
13557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13558pub struct RevokeDefaultPrivileges {
13559    pub(crate) syntax: SyntaxNode,
13560}
13561impl RevokeDefaultPrivileges {
13562    #[inline]
13563    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
13564        support::child(&self.syntax)
13565    }
13566    #[inline]
13567    pub fn privileges(&self) -> Option<Privileges> {
13568        support::child(&self.syntax)
13569    }
13570    #[inline]
13571    pub fn role_ref_list(&self) -> Option<RoleRefList> {
13572        support::child(&self.syntax)
13573    }
13574    #[inline]
13575    pub fn cascade_token(&self) -> Option<SyntaxToken> {
13576        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
13577    }
13578    #[inline]
13579    pub fn for_token(&self) -> Option<SyntaxToken> {
13580        support::token(&self.syntax, SyntaxKind::FOR_KW)
13581    }
13582    #[inline]
13583    pub fn from_token(&self) -> Option<SyntaxToken> {
13584        support::token(&self.syntax, SyntaxKind::FROM_KW)
13585    }
13586    #[inline]
13587    pub fn grant_token(&self) -> Option<SyntaxToken> {
13588        support::token(&self.syntax, SyntaxKind::GRANT_KW)
13589    }
13590    #[inline]
13591    pub fn on_token(&self) -> Option<SyntaxToken> {
13592        support::token(&self.syntax, SyntaxKind::ON_KW)
13593    }
13594    #[inline]
13595    pub fn option_token(&self) -> Option<SyntaxToken> {
13596        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13597    }
13598    #[inline]
13599    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13600        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13601    }
13602    #[inline]
13603    pub fn revoke_token(&self) -> Option<SyntaxToken> {
13604        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
13605    }
13606}
13607
13608#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13609pub struct Role {
13610    pub(crate) syntax: SyntaxNode,
13611}
13612impl Role {
13613    #[inline]
13614    pub fn name(&self) -> Option<Name> {
13615        support::child(&self.syntax)
13616    }
13617    #[inline]
13618    pub fn current_role_token(&self) -> Option<SyntaxToken> {
13619        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
13620    }
13621    #[inline]
13622    pub fn current_user_token(&self) -> Option<SyntaxToken> {
13623        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
13624    }
13625    #[inline]
13626    pub fn group_token(&self) -> Option<SyntaxToken> {
13627        support::token(&self.syntax, SyntaxKind::GROUP_KW)
13628    }
13629    #[inline]
13630    pub fn session_user_token(&self) -> Option<SyntaxToken> {
13631        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
13632    }
13633}
13634
13635#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13636pub struct RoleOption {
13637    pub(crate) syntax: SyntaxNode,
13638}
13639impl RoleOption {
13640    #[inline]
13641    pub fn inherit_token(&self) -> Option<SyntaxToken> {
13642        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
13643    }
13644}
13645
13646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13647pub struct RoleOptionList {
13648    pub(crate) syntax: SyntaxNode,
13649}
13650impl RoleOptionList {
13651    #[inline]
13652    pub fn role_options(&self) -> AstChildren<RoleOption> {
13653        support::children(&self.syntax)
13654    }
13655    #[inline]
13656    pub fn with_token(&self) -> Option<SyntaxToken> {
13657        support::token(&self.syntax, SyntaxKind::WITH_KW)
13658    }
13659}
13660
13661#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13662pub struct RoleRef {
13663    pub(crate) syntax: SyntaxNode,
13664}
13665impl RoleRef {
13666    #[inline]
13667    pub fn name_ref(&self) -> Option<NameRef> {
13668        support::child(&self.syntax)
13669    }
13670    #[inline]
13671    pub fn current_role_token(&self) -> Option<SyntaxToken> {
13672        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
13673    }
13674    #[inline]
13675    pub fn current_user_token(&self) -> Option<SyntaxToken> {
13676        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
13677    }
13678    #[inline]
13679    pub fn group_token(&self) -> Option<SyntaxToken> {
13680        support::token(&self.syntax, SyntaxKind::GROUP_KW)
13681    }
13682    #[inline]
13683    pub fn session_user_token(&self) -> Option<SyntaxToken> {
13684        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
13685    }
13686}
13687
13688#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13689pub struct RoleRefList {
13690    pub(crate) syntax: SyntaxNode,
13691}
13692impl RoleRefList {
13693    #[inline]
13694    pub fn role_refs(&self) -> AstChildren<RoleRef> {
13695        support::children(&self.syntax)
13696    }
13697}
13698
13699#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13700pub struct Rollback {
13701    pub(crate) syntax: SyntaxNode,
13702}
13703impl Rollback {
13704    #[inline]
13705    pub fn literal(&self) -> Option<Literal> {
13706        support::child(&self.syntax)
13707    }
13708    #[inline]
13709    pub fn name_ref(&self) -> Option<NameRef> {
13710        support::child(&self.syntax)
13711    }
13712    #[inline]
13713    pub fn abort_token(&self) -> Option<SyntaxToken> {
13714        support::token(&self.syntax, SyntaxKind::ABORT_KW)
13715    }
13716    #[inline]
13717    pub fn and_token(&self) -> Option<SyntaxToken> {
13718        support::token(&self.syntax, SyntaxKind::AND_KW)
13719    }
13720    #[inline]
13721    pub fn chain_token(&self) -> Option<SyntaxToken> {
13722        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
13723    }
13724    #[inline]
13725    pub fn no_token(&self) -> Option<SyntaxToken> {
13726        support::token(&self.syntax, SyntaxKind::NO_KW)
13727    }
13728    #[inline]
13729    pub fn prepared_token(&self) -> Option<SyntaxToken> {
13730        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
13731    }
13732    #[inline]
13733    pub fn rollback_token(&self) -> Option<SyntaxToken> {
13734        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
13735    }
13736    #[inline]
13737    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13738        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13739    }
13740    #[inline]
13741    pub fn to_token(&self) -> Option<SyntaxToken> {
13742        support::token(&self.syntax, SyntaxKind::TO_KW)
13743    }
13744    #[inline]
13745    pub fn transaction_token(&self) -> Option<SyntaxToken> {
13746        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
13747    }
13748    #[inline]
13749    pub fn work_token(&self) -> Option<SyntaxToken> {
13750        support::token(&self.syntax, SyntaxKind::WORK_KW)
13751    }
13752}
13753
13754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13755pub struct Row {
13756    pub(crate) syntax: SyntaxNode,
13757}
13758impl Row {
13759    #[inline]
13760    pub fn exprs(&self) -> AstChildren<Expr> {
13761        support::children(&self.syntax)
13762    }
13763}
13764
13765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13766pub struct RowList {
13767    pub(crate) syntax: SyntaxNode,
13768}
13769impl RowList {
13770    #[inline]
13771    pub fn rows(&self) -> AstChildren<Row> {
13772        support::children(&self.syntax)
13773    }
13774}
13775
13776#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13777pub struct RowsFuncOption {
13778    pub(crate) syntax: SyntaxNode,
13779}
13780impl RowsFuncOption {
13781    #[inline]
13782    pub fn rows_token(&self) -> Option<SyntaxToken> {
13783        support::token(&self.syntax, SyntaxKind::ROWS_KW)
13784    }
13785}
13786
13787#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13788pub struct Savepoint {
13789    pub(crate) syntax: SyntaxNode,
13790}
13791impl Savepoint {
13792    #[inline]
13793    pub fn name(&self) -> Option<Name> {
13794        support::child(&self.syntax)
13795    }
13796    #[inline]
13797    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13798        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13799    }
13800}
13801
13802#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13803pub struct SecurityFuncOption {
13804    pub(crate) syntax: SyntaxNode,
13805}
13806impl SecurityFuncOption {
13807    #[inline]
13808    pub fn definer_token(&self) -> Option<SyntaxToken> {
13809        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
13810    }
13811    #[inline]
13812    pub fn invoker_token(&self) -> Option<SyntaxToken> {
13813        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
13814    }
13815    #[inline]
13816    pub fn security_token(&self) -> Option<SyntaxToken> {
13817        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13818    }
13819}
13820
13821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13822pub struct SecurityLabel {
13823    pub(crate) syntax: SyntaxNode,
13824}
13825impl SecurityLabel {
13826    #[inline]
13827    pub fn aggregate(&self) -> Option<Aggregate> {
13828        support::child(&self.syntax)
13829    }
13830    #[inline]
13831    pub fn for_provider(&self) -> Option<ForProvider> {
13832        support::child(&self.syntax)
13833    }
13834    #[inline]
13835    pub fn function_sig(&self) -> Option<FunctionSig> {
13836        support::child(&self.syntax)
13837    }
13838    #[inline]
13839    pub fn literal(&self) -> Option<Literal> {
13840        support::child(&self.syntax)
13841    }
13842    #[inline]
13843    pub fn path(&self) -> Option<Path> {
13844        support::child(&self.syntax)
13845    }
13846    #[inline]
13847    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
13848        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
13849    }
13850    #[inline]
13851    pub fn column_token(&self) -> Option<SyntaxToken> {
13852        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
13853    }
13854    #[inline]
13855    pub fn database_token(&self) -> Option<SyntaxToken> {
13856        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
13857    }
13858    #[inline]
13859    pub fn domain_token(&self) -> Option<SyntaxToken> {
13860        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
13861    }
13862    #[inline]
13863    pub fn event_token(&self) -> Option<SyntaxToken> {
13864        support::token(&self.syntax, SyntaxKind::EVENT_KW)
13865    }
13866    #[inline]
13867    pub fn foreign_token(&self) -> Option<SyntaxToken> {
13868        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
13869    }
13870    #[inline]
13871    pub fn function_token(&self) -> Option<SyntaxToken> {
13872        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
13873    }
13874    #[inline]
13875    pub fn is_token(&self) -> Option<SyntaxToken> {
13876        support::token(&self.syntax, SyntaxKind::IS_KW)
13877    }
13878    #[inline]
13879    pub fn label_token(&self) -> Option<SyntaxToken> {
13880        support::token(&self.syntax, SyntaxKind::LABEL_KW)
13881    }
13882    #[inline]
13883    pub fn language_token(&self) -> Option<SyntaxToken> {
13884        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
13885    }
13886    #[inline]
13887    pub fn large_token(&self) -> Option<SyntaxToken> {
13888        support::token(&self.syntax, SyntaxKind::LARGE_KW)
13889    }
13890    #[inline]
13891    pub fn materialized_token(&self) -> Option<SyntaxToken> {
13892        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
13893    }
13894    #[inline]
13895    pub fn null_token(&self) -> Option<SyntaxToken> {
13896        support::token(&self.syntax, SyntaxKind::NULL_KW)
13897    }
13898    #[inline]
13899    pub fn object_token(&self) -> Option<SyntaxToken> {
13900        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
13901    }
13902    #[inline]
13903    pub fn on_token(&self) -> Option<SyntaxToken> {
13904        support::token(&self.syntax, SyntaxKind::ON_KW)
13905    }
13906    #[inline]
13907    pub fn procedural_token(&self) -> Option<SyntaxToken> {
13908        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
13909    }
13910    #[inline]
13911    pub fn procedure_token(&self) -> Option<SyntaxToken> {
13912        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
13913    }
13914    #[inline]
13915    pub fn publication_token(&self) -> Option<SyntaxToken> {
13916        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
13917    }
13918    #[inline]
13919    pub fn role_token(&self) -> Option<SyntaxToken> {
13920        support::token(&self.syntax, SyntaxKind::ROLE_KW)
13921    }
13922    #[inline]
13923    pub fn routine_token(&self) -> Option<SyntaxToken> {
13924        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
13925    }
13926    #[inline]
13927    pub fn schema_token(&self) -> Option<SyntaxToken> {
13928        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13929    }
13930    #[inline]
13931    pub fn security_token(&self) -> Option<SyntaxToken> {
13932        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13933    }
13934    #[inline]
13935    pub fn sequence_token(&self) -> Option<SyntaxToken> {
13936        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
13937    }
13938    #[inline]
13939    pub fn subscription_token(&self) -> Option<SyntaxToken> {
13940        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
13941    }
13942    #[inline]
13943    pub fn table_token(&self) -> Option<SyntaxToken> {
13944        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13945    }
13946    #[inline]
13947    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
13948        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
13949    }
13950    #[inline]
13951    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13952        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13953    }
13954    #[inline]
13955    pub fn type_token(&self) -> Option<SyntaxToken> {
13956        support::token(&self.syntax, SyntaxKind::TYPE_KW)
13957    }
13958    #[inline]
13959    pub fn view_token(&self) -> Option<SyntaxToken> {
13960        support::token(&self.syntax, SyntaxKind::VIEW_KW)
13961    }
13962}
13963
13964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13965pub struct Select {
13966    pub(crate) syntax: SyntaxNode,
13967}
13968impl Select {
13969    #[inline]
13970    pub fn fetch_clause(&self) -> Option<FetchClause> {
13971        support::child(&self.syntax)
13972    }
13973    #[inline]
13974    pub fn filter_clause(&self) -> Option<FilterClause> {
13975        support::child(&self.syntax)
13976    }
13977    #[inline]
13978    pub fn from_clause(&self) -> Option<FromClause> {
13979        support::child(&self.syntax)
13980    }
13981    #[inline]
13982    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13983        support::child(&self.syntax)
13984    }
13985    #[inline]
13986    pub fn having_clause(&self) -> Option<HavingClause> {
13987        support::child(&self.syntax)
13988    }
13989    #[inline]
13990    pub fn limit_clause(&self) -> Option<LimitClause> {
13991        support::child(&self.syntax)
13992    }
13993    #[inline]
13994    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
13995        support::children(&self.syntax)
13996    }
13997    #[inline]
13998    pub fn offset_clause(&self) -> Option<OffsetClause> {
13999        support::child(&self.syntax)
14000    }
14001    #[inline]
14002    pub fn order_by_clause(&self) -> Option<OrderByClause> {
14003        support::child(&self.syntax)
14004    }
14005    #[inline]
14006    pub fn select_clause(&self) -> Option<SelectClause> {
14007        support::child(&self.syntax)
14008    }
14009    #[inline]
14010    pub fn where_clause(&self) -> Option<WhereClause> {
14011        support::child(&self.syntax)
14012    }
14013    #[inline]
14014    pub fn window_clause(&self) -> Option<WindowClause> {
14015        support::child(&self.syntax)
14016    }
14017    #[inline]
14018    pub fn with_clause(&self) -> Option<WithClause> {
14019        support::child(&self.syntax)
14020    }
14021}
14022
14023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14024pub struct SelectClause {
14025    pub(crate) syntax: SyntaxNode,
14026}
14027impl SelectClause {
14028    #[inline]
14029    pub fn distinct_clause(&self) -> Option<DistinctClause> {
14030        support::child(&self.syntax)
14031    }
14032    #[inline]
14033    pub fn target_list(&self) -> Option<TargetList> {
14034        support::child(&self.syntax)
14035    }
14036    #[inline]
14037    pub fn all_token(&self) -> Option<SyntaxToken> {
14038        support::token(&self.syntax, SyntaxKind::ALL_KW)
14039    }
14040    #[inline]
14041    pub fn select_token(&self) -> Option<SyntaxToken> {
14042        support::token(&self.syntax, SyntaxKind::SELECT_KW)
14043    }
14044}
14045
14046#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14047pub struct SelectInto {
14048    pub(crate) syntax: SyntaxNode,
14049}
14050impl SelectInto {
14051    #[inline]
14052    pub fn filter_clause(&self) -> Option<FilterClause> {
14053        support::child(&self.syntax)
14054    }
14055    #[inline]
14056    pub fn from_clause(&self) -> Option<FromClause> {
14057        support::child(&self.syntax)
14058    }
14059    #[inline]
14060    pub fn group_by_clause(&self) -> Option<GroupByClause> {
14061        support::child(&self.syntax)
14062    }
14063    #[inline]
14064    pub fn having_clause(&self) -> Option<HavingClause> {
14065        support::child(&self.syntax)
14066    }
14067    #[inline]
14068    pub fn into_clause(&self) -> Option<IntoClause> {
14069        support::child(&self.syntax)
14070    }
14071    #[inline]
14072    pub fn limit_clause(&self) -> Option<LimitClause> {
14073        support::child(&self.syntax)
14074    }
14075    #[inline]
14076    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
14077        support::children(&self.syntax)
14078    }
14079    #[inline]
14080    pub fn offset_clause(&self) -> Option<OffsetClause> {
14081        support::child(&self.syntax)
14082    }
14083    #[inline]
14084    pub fn order_by_clause(&self) -> Option<OrderByClause> {
14085        support::child(&self.syntax)
14086    }
14087    #[inline]
14088    pub fn select_clause(&self) -> Option<SelectClause> {
14089        support::child(&self.syntax)
14090    }
14091    #[inline]
14092    pub fn where_clause(&self) -> Option<WhereClause> {
14093        support::child(&self.syntax)
14094    }
14095    #[inline]
14096    pub fn window_clause(&self) -> Option<WindowClause> {
14097        support::child(&self.syntax)
14098    }
14099    #[inline]
14100    pub fn with_clause(&self) -> Option<WithClause> {
14101        support::child(&self.syntax)
14102    }
14103}
14104
14105#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14106pub struct SequenceOption {
14107    pub(crate) syntax: SyntaxNode,
14108}
14109impl SequenceOption {
14110    #[inline]
14111    pub fn literal(&self) -> Option<Literal> {
14112        support::child(&self.syntax)
14113    }
14114    #[inline]
14115    pub fn name_ref(&self) -> Option<NameRef> {
14116        support::child(&self.syntax)
14117    }
14118    #[inline]
14119    pub fn path(&self) -> Option<Path> {
14120        support::child(&self.syntax)
14121    }
14122    #[inline]
14123    pub fn ty(&self) -> Option<Type> {
14124        support::child(&self.syntax)
14125    }
14126    #[inline]
14127    pub fn as_token(&self) -> Option<SyntaxToken> {
14128        support::token(&self.syntax, SyntaxKind::AS_KW)
14129    }
14130    #[inline]
14131    pub fn by_token(&self) -> Option<SyntaxToken> {
14132        support::token(&self.syntax, SyntaxKind::BY_KW)
14133    }
14134    #[inline]
14135    pub fn cycle_token(&self) -> Option<SyntaxToken> {
14136        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
14137    }
14138    #[inline]
14139    pub fn increment_token(&self) -> Option<SyntaxToken> {
14140        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
14141    }
14142    #[inline]
14143    pub fn logged_token(&self) -> Option<SyntaxToken> {
14144        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
14145    }
14146    #[inline]
14147    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
14148        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
14149    }
14150    #[inline]
14151    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
14152        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
14153    }
14154    #[inline]
14155    pub fn name_token(&self) -> Option<SyntaxToken> {
14156        support::token(&self.syntax, SyntaxKind::NAME_KW)
14157    }
14158    #[inline]
14159    pub fn no_token(&self) -> Option<SyntaxToken> {
14160        support::token(&self.syntax, SyntaxKind::NO_KW)
14161    }
14162    #[inline]
14163    pub fn none_token(&self) -> Option<SyntaxToken> {
14164        support::token(&self.syntax, SyntaxKind::NONE_KW)
14165    }
14166    #[inline]
14167    pub fn owned_token(&self) -> Option<SyntaxToken> {
14168        support::token(&self.syntax, SyntaxKind::OWNED_KW)
14169    }
14170    #[inline]
14171    pub fn restart_token(&self) -> Option<SyntaxToken> {
14172        support::token(&self.syntax, SyntaxKind::RESTART_KW)
14173    }
14174    #[inline]
14175    pub fn sequence_token(&self) -> Option<SyntaxToken> {
14176        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
14177    }
14178    #[inline]
14179    pub fn start_token(&self) -> Option<SyntaxToken> {
14180        support::token(&self.syntax, SyntaxKind::START_KW)
14181    }
14182    #[inline]
14183    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
14184        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
14185    }
14186    #[inline]
14187    pub fn with_token(&self) -> Option<SyntaxToken> {
14188        support::token(&self.syntax, SyntaxKind::WITH_KW)
14189    }
14190}
14191
14192#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14193pub struct SequenceOptionList {
14194    pub(crate) syntax: SyntaxNode,
14195}
14196impl SequenceOptionList {
14197    #[inline]
14198    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
14199        support::children(&self.syntax)
14200    }
14201    #[inline]
14202    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14203        support::token(&self.syntax, SyntaxKind::L_PAREN)
14204    }
14205    #[inline]
14206    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14207        support::token(&self.syntax, SyntaxKind::R_PAREN)
14208    }
14209}
14210
14211#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14212pub struct Serializable {
14213    pub(crate) syntax: SyntaxNode,
14214}
14215impl Serializable {
14216    #[inline]
14217    pub fn isolation_token(&self) -> Option<SyntaxToken> {
14218        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
14219    }
14220    #[inline]
14221    pub fn level_token(&self) -> Option<SyntaxToken> {
14222        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
14223    }
14224    #[inline]
14225    pub fn serializable_token(&self) -> Option<SyntaxToken> {
14226        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
14227    }
14228}
14229
14230#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14231pub struct ServerName {
14232    pub(crate) syntax: SyntaxNode,
14233}
14234impl ServerName {
14235    #[inline]
14236    pub fn name_ref(&self) -> Option<NameRef> {
14237        support::child(&self.syntax)
14238    }
14239    #[inline]
14240    pub fn server_token(&self) -> Option<SyntaxToken> {
14241        support::token(&self.syntax, SyntaxKind::SERVER_KW)
14242    }
14243}
14244
14245#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14246pub struct Set {
14247    pub(crate) syntax: SyntaxNode,
14248}
14249impl Set {
14250    #[inline]
14251    pub fn config_value(&self) -> Option<ConfigValue> {
14252        support::child(&self.syntax)
14253    }
14254    #[inline]
14255    pub fn config_values(&self) -> AstChildren<ConfigValue> {
14256        support::children(&self.syntax)
14257    }
14258    #[inline]
14259    pub fn literal(&self) -> Option<Literal> {
14260        support::child(&self.syntax)
14261    }
14262    #[inline]
14263    pub fn path(&self) -> Option<Path> {
14264        support::child(&self.syntax)
14265    }
14266    #[inline]
14267    pub fn eq_token(&self) -> Option<SyntaxToken> {
14268        support::token(&self.syntax, SyntaxKind::EQ)
14269    }
14270    #[inline]
14271    pub fn catalog_token(&self) -> Option<SyntaxToken> {
14272        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
14273    }
14274    #[inline]
14275    pub fn content_token(&self) -> Option<SyntaxToken> {
14276        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
14277    }
14278    #[inline]
14279    pub fn current_token(&self) -> Option<SyntaxToken> {
14280        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
14281    }
14282    #[inline]
14283    pub fn default_token(&self) -> Option<SyntaxToken> {
14284        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14285    }
14286    #[inline]
14287    pub fn document_token(&self) -> Option<SyntaxToken> {
14288        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
14289    }
14290    #[inline]
14291    pub fn from_token(&self) -> Option<SyntaxToken> {
14292        support::token(&self.syntax, SyntaxKind::FROM_KW)
14293    }
14294    #[inline]
14295    pub fn local_token(&self) -> Option<SyntaxToken> {
14296        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14297    }
14298    #[inline]
14299    pub fn option_token(&self) -> Option<SyntaxToken> {
14300        support::token(&self.syntax, SyntaxKind::OPTION_KW)
14301    }
14302    #[inline]
14303    pub fn schema_token(&self) -> Option<SyntaxToken> {
14304        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14305    }
14306    #[inline]
14307    pub fn session_token(&self) -> Option<SyntaxToken> {
14308        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14309    }
14310    #[inline]
14311    pub fn set_token(&self) -> Option<SyntaxToken> {
14312        support::token(&self.syntax, SyntaxKind::SET_KW)
14313    }
14314    #[inline]
14315    pub fn time_token(&self) -> Option<SyntaxToken> {
14316        support::token(&self.syntax, SyntaxKind::TIME_KW)
14317    }
14318    #[inline]
14319    pub fn to_token(&self) -> Option<SyntaxToken> {
14320        support::token(&self.syntax, SyntaxKind::TO_KW)
14321    }
14322    #[inline]
14323    pub fn xml_token(&self) -> Option<SyntaxToken> {
14324        support::token(&self.syntax, SyntaxKind::XML_KW)
14325    }
14326    #[inline]
14327    pub fn zone_token(&self) -> Option<SyntaxToken> {
14328        support::token(&self.syntax, SyntaxKind::ZONE_KW)
14329    }
14330}
14331
14332#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14333pub struct SetAccessMethod {
14334    pub(crate) syntax: SyntaxNode,
14335}
14336impl SetAccessMethod {
14337    #[inline]
14338    pub fn name_ref(&self) -> Option<NameRef> {
14339        support::child(&self.syntax)
14340    }
14341    #[inline]
14342    pub fn access_token(&self) -> Option<SyntaxToken> {
14343        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
14344    }
14345    #[inline]
14346    pub fn method_token(&self) -> Option<SyntaxToken> {
14347        support::token(&self.syntax, SyntaxKind::METHOD_KW)
14348    }
14349    #[inline]
14350    pub fn set_token(&self) -> Option<SyntaxToken> {
14351        support::token(&self.syntax, SyntaxKind::SET_KW)
14352    }
14353}
14354
14355#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14356pub struct SetClause {
14357    pub(crate) syntax: SyntaxNode,
14358}
14359impl SetClause {
14360    #[inline]
14361    pub fn set_column_list(&self) -> Option<SetColumnList> {
14362        support::child(&self.syntax)
14363    }
14364    #[inline]
14365    pub fn set_token(&self) -> Option<SyntaxToken> {
14366        support::token(&self.syntax, SyntaxKind::SET_KW)
14367    }
14368}
14369
14370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14371pub struct SetColumnList {
14372    pub(crate) syntax: SyntaxNode,
14373}
14374impl SetColumnList {
14375    #[inline]
14376    pub fn set_columns(&self) -> AstChildren<SetColumn> {
14377        support::children(&self.syntax)
14378    }
14379}
14380
14381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14382pub struct SetCompression {
14383    pub(crate) syntax: SyntaxNode,
14384}
14385impl SetCompression {
14386    #[inline]
14387    pub fn compression_token(&self) -> Option<SyntaxToken> {
14388        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
14389    }
14390    #[inline]
14391    pub fn set_token(&self) -> Option<SyntaxToken> {
14392        support::token(&self.syntax, SyntaxKind::SET_KW)
14393    }
14394}
14395
14396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14397pub struct SetConfigParam {
14398    pub(crate) syntax: SyntaxNode,
14399}
14400impl SetConfigParam {
14401    #[inline]
14402    pub fn path(&self) -> Option<Path> {
14403        support::child(&self.syntax)
14404    }
14405    #[inline]
14406    pub fn set_token(&self) -> Option<SyntaxToken> {
14407        support::token(&self.syntax, SyntaxKind::SET_KW)
14408    }
14409}
14410
14411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14412pub struct SetConstraints {
14413    pub(crate) syntax: SyntaxNode,
14414}
14415impl SetConstraints {
14416    #[inline]
14417    pub fn paths(&self) -> AstChildren<Path> {
14418        support::children(&self.syntax)
14419    }
14420    #[inline]
14421    pub fn all_token(&self) -> Option<SyntaxToken> {
14422        support::token(&self.syntax, SyntaxKind::ALL_KW)
14423    }
14424    #[inline]
14425    pub fn constraints_token(&self) -> Option<SyntaxToken> {
14426        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
14427    }
14428    #[inline]
14429    pub fn deferred_token(&self) -> Option<SyntaxToken> {
14430        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
14431    }
14432    #[inline]
14433    pub fn immediate_token(&self) -> Option<SyntaxToken> {
14434        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
14435    }
14436    #[inline]
14437    pub fn set_token(&self) -> Option<SyntaxToken> {
14438        support::token(&self.syntax, SyntaxKind::SET_KW)
14439    }
14440}
14441
14442#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14443pub struct SetDefault {
14444    pub(crate) syntax: SyntaxNode,
14445}
14446impl SetDefault {
14447    #[inline]
14448    pub fn expr(&self) -> Option<Expr> {
14449        support::child(&self.syntax)
14450    }
14451    #[inline]
14452    pub fn default_token(&self) -> Option<SyntaxToken> {
14453        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14454    }
14455    #[inline]
14456    pub fn set_token(&self) -> Option<SyntaxToken> {
14457        support::token(&self.syntax, SyntaxKind::SET_KW)
14458    }
14459}
14460
14461#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14462pub struct SetDefaultColumns {
14463    pub(crate) syntax: SyntaxNode,
14464}
14465impl SetDefaultColumns {
14466    #[inline]
14467    pub fn column_list(&self) -> Option<ColumnList> {
14468        support::child(&self.syntax)
14469    }
14470    #[inline]
14471    pub fn default_token(&self) -> Option<SyntaxToken> {
14472        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14473    }
14474    #[inline]
14475    pub fn set_token(&self) -> Option<SyntaxToken> {
14476        support::token(&self.syntax, SyntaxKind::SET_KW)
14477    }
14478}
14479
14480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14481pub struct SetExpr {
14482    pub(crate) syntax: SyntaxNode,
14483}
14484impl SetExpr {
14485    #[inline]
14486    pub fn expr(&self) -> Option<Expr> {
14487        support::child(&self.syntax)
14488    }
14489    #[inline]
14490    pub fn default_token(&self) -> Option<SyntaxToken> {
14491        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14492    }
14493}
14494
14495#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14496pub struct SetExprList {
14497    pub(crate) syntax: SyntaxNode,
14498}
14499impl SetExprList {
14500    #[inline]
14501    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
14502        support::children(&self.syntax)
14503    }
14504    #[inline]
14505    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14506        support::token(&self.syntax, SyntaxKind::L_PAREN)
14507    }
14508    #[inline]
14509    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14510        support::token(&self.syntax, SyntaxKind::R_PAREN)
14511    }
14512    #[inline]
14513    pub fn row_token(&self) -> Option<SyntaxToken> {
14514        support::token(&self.syntax, SyntaxKind::ROW_KW)
14515    }
14516}
14517
14518#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14519pub struct SetExpression {
14520    pub(crate) syntax: SyntaxNode,
14521}
14522impl SetExpression {
14523    #[inline]
14524    pub fn expr(&self) -> Option<Expr> {
14525        support::child(&self.syntax)
14526    }
14527    #[inline]
14528    pub fn expression_token(&self) -> Option<SyntaxToken> {
14529        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
14530    }
14531    #[inline]
14532    pub fn set_token(&self) -> Option<SyntaxToken> {
14533        support::token(&self.syntax, SyntaxKind::SET_KW)
14534    }
14535}
14536
14537#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14538pub struct SetFuncOption {
14539    pub(crate) syntax: SyntaxNode,
14540}
14541impl SetFuncOption {
14542    #[inline]
14543    pub fn set_token(&self) -> Option<SyntaxToken> {
14544        support::token(&self.syntax, SyntaxKind::SET_KW)
14545    }
14546}
14547
14548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14549pub struct SetGenerated {
14550    pub(crate) syntax: SyntaxNode,
14551}
14552impl SetGenerated {
14553    #[inline]
14554    pub fn set_token(&self) -> Option<SyntaxToken> {
14555        support::token(&self.syntax, SyntaxKind::SET_KW)
14556    }
14557}
14558
14559#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14560pub struct SetGeneratedOptions {
14561    pub(crate) syntax: SyntaxNode,
14562}
14563impl SetGeneratedOptions {
14564    #[inline]
14565    pub fn generated_token(&self) -> Option<SyntaxToken> {
14566        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
14567    }
14568    #[inline]
14569    pub fn set_token(&self) -> Option<SyntaxToken> {
14570        support::token(&self.syntax, SyntaxKind::SET_KW)
14571    }
14572}
14573
14574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14575pub struct SetLogged {
14576    pub(crate) syntax: SyntaxNode,
14577}
14578impl SetLogged {
14579    #[inline]
14580    pub fn logged_token(&self) -> Option<SyntaxToken> {
14581        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
14582    }
14583    #[inline]
14584    pub fn set_token(&self) -> Option<SyntaxToken> {
14585        support::token(&self.syntax, SyntaxKind::SET_KW)
14586    }
14587}
14588
14589#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14590pub struct SetMultipleColumns {
14591    pub(crate) syntax: SyntaxNode,
14592}
14593impl SetMultipleColumns {
14594    #[inline]
14595    pub fn column_list(&self) -> Option<ColumnList> {
14596        support::child(&self.syntax)
14597    }
14598    #[inline]
14599    pub fn paren_select(&self) -> Option<ParenSelect> {
14600        support::child(&self.syntax)
14601    }
14602    #[inline]
14603    pub fn set_expr_list(&self) -> Option<SetExprList> {
14604        support::child(&self.syntax)
14605    }
14606    #[inline]
14607    pub fn eq_token(&self) -> Option<SyntaxToken> {
14608        support::token(&self.syntax, SyntaxKind::EQ)
14609    }
14610}
14611
14612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14613pub struct SetNotNull {
14614    pub(crate) syntax: SyntaxNode,
14615}
14616impl SetNotNull {
14617    #[inline]
14618    pub fn not_token(&self) -> Option<SyntaxToken> {
14619        support::token(&self.syntax, SyntaxKind::NOT_KW)
14620    }
14621    #[inline]
14622    pub fn null_token(&self) -> Option<SyntaxToken> {
14623        support::token(&self.syntax, SyntaxKind::NULL_KW)
14624    }
14625    #[inline]
14626    pub fn set_token(&self) -> Option<SyntaxToken> {
14627        support::token(&self.syntax, SyntaxKind::SET_KW)
14628    }
14629}
14630
14631#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14632pub struct SetNullColumns {
14633    pub(crate) syntax: SyntaxNode,
14634}
14635impl SetNullColumns {
14636    #[inline]
14637    pub fn column_list(&self) -> Option<ColumnList> {
14638        support::child(&self.syntax)
14639    }
14640    #[inline]
14641    pub fn null_token(&self) -> Option<SyntaxToken> {
14642        support::token(&self.syntax, SyntaxKind::NULL_KW)
14643    }
14644    #[inline]
14645    pub fn set_token(&self) -> Option<SyntaxToken> {
14646        support::token(&self.syntax, SyntaxKind::SET_KW)
14647    }
14648}
14649
14650#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14651pub struct SetOptions {
14652    pub(crate) syntax: SyntaxNode,
14653}
14654impl SetOptions {
14655    #[inline]
14656    pub fn attribute_list(&self) -> Option<AttributeList> {
14657        support::child(&self.syntax)
14658    }
14659    #[inline]
14660    pub fn set_token(&self) -> Option<SyntaxToken> {
14661        support::token(&self.syntax, SyntaxKind::SET_KW)
14662    }
14663}
14664
14665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14666pub struct SetOptionsList {
14667    pub(crate) syntax: SyntaxNode,
14668}
14669impl SetOptionsList {
14670    #[inline]
14671    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
14672        support::child(&self.syntax)
14673    }
14674    #[inline]
14675    pub fn options_token(&self) -> Option<SyntaxToken> {
14676        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
14677    }
14678    #[inline]
14679    pub fn set_token(&self) -> Option<SyntaxToken> {
14680        support::token(&self.syntax, SyntaxKind::SET_KW)
14681    }
14682}
14683
14684#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14685pub struct SetRole {
14686    pub(crate) syntax: SyntaxNode,
14687}
14688impl SetRole {
14689    #[inline]
14690    pub fn role_ref(&self) -> Option<RoleRef> {
14691        support::child(&self.syntax)
14692    }
14693    #[inline]
14694    pub fn local_token(&self) -> Option<SyntaxToken> {
14695        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14696    }
14697    #[inline]
14698    pub fn none_token(&self) -> Option<SyntaxToken> {
14699        support::token(&self.syntax, SyntaxKind::NONE_KW)
14700    }
14701    #[inline]
14702    pub fn reset_token(&self) -> Option<SyntaxToken> {
14703        support::token(&self.syntax, SyntaxKind::RESET_KW)
14704    }
14705    #[inline]
14706    pub fn role_token(&self) -> Option<SyntaxToken> {
14707        support::token(&self.syntax, SyntaxKind::ROLE_KW)
14708    }
14709    #[inline]
14710    pub fn session_token(&self) -> Option<SyntaxToken> {
14711        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14712    }
14713    #[inline]
14714    pub fn set_token(&self) -> Option<SyntaxToken> {
14715        support::token(&self.syntax, SyntaxKind::SET_KW)
14716    }
14717}
14718
14719#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14720pub struct SetSchema {
14721    pub(crate) syntax: SyntaxNode,
14722}
14723impl SetSchema {
14724    #[inline]
14725    pub fn name_ref(&self) -> Option<NameRef> {
14726        support::child(&self.syntax)
14727    }
14728    #[inline]
14729    pub fn schema_token(&self) -> Option<SyntaxToken> {
14730        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14731    }
14732    #[inline]
14733    pub fn set_token(&self) -> Option<SyntaxToken> {
14734        support::token(&self.syntax, SyntaxKind::SET_KW)
14735    }
14736}
14737
14738#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14739pub struct SetSequenceOption {
14740    pub(crate) syntax: SyntaxNode,
14741}
14742impl SetSequenceOption {
14743    #[inline]
14744    pub fn set_token(&self) -> Option<SyntaxToken> {
14745        support::token(&self.syntax, SyntaxKind::SET_KW)
14746    }
14747}
14748
14749#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14750pub struct SetSessionAuth {
14751    pub(crate) syntax: SyntaxNode,
14752}
14753impl SetSessionAuth {
14754    #[inline]
14755    pub fn literal(&self) -> Option<Literal> {
14756        support::child(&self.syntax)
14757    }
14758    #[inline]
14759    pub fn role_ref(&self) -> Option<RoleRef> {
14760        support::child(&self.syntax)
14761    }
14762    #[inline]
14763    pub fn authorization_token(&self) -> Option<SyntaxToken> {
14764        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
14765    }
14766    #[inline]
14767    pub fn default_token(&self) -> Option<SyntaxToken> {
14768        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14769    }
14770    #[inline]
14771    pub fn local_token(&self) -> Option<SyntaxToken> {
14772        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14773    }
14774    #[inline]
14775    pub fn session_token(&self) -> Option<SyntaxToken> {
14776        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14777    }
14778    #[inline]
14779    pub fn set_token(&self) -> Option<SyntaxToken> {
14780        support::token(&self.syntax, SyntaxKind::SET_KW)
14781    }
14782}
14783
14784#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14785pub struct SetSingleColumn {
14786    pub(crate) syntax: SyntaxNode,
14787}
14788impl SetSingleColumn {
14789    #[inline]
14790    pub fn column(&self) -> Option<Column> {
14791        support::child(&self.syntax)
14792    }
14793    #[inline]
14794    pub fn set_expr(&self) -> Option<SetExpr> {
14795        support::child(&self.syntax)
14796    }
14797    #[inline]
14798    pub fn eq_token(&self) -> Option<SyntaxToken> {
14799        support::token(&self.syntax, SyntaxKind::EQ)
14800    }
14801}
14802
14803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14804pub struct SetStatistics {
14805    pub(crate) syntax: SyntaxNode,
14806}
14807impl SetStatistics {
14808    #[inline]
14809    pub fn set_token(&self) -> Option<SyntaxToken> {
14810        support::token(&self.syntax, SyntaxKind::SET_KW)
14811    }
14812    #[inline]
14813    pub fn statistics_token(&self) -> Option<SyntaxToken> {
14814        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
14815    }
14816}
14817
14818#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14819pub struct SetStorage {
14820    pub(crate) syntax: SyntaxNode,
14821}
14822impl SetStorage {
14823    #[inline]
14824    pub fn set_token(&self) -> Option<SyntaxToken> {
14825        support::token(&self.syntax, SyntaxKind::SET_KW)
14826    }
14827    #[inline]
14828    pub fn storage_token(&self) -> Option<SyntaxToken> {
14829        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14830    }
14831}
14832
14833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14834pub struct SetTablespace {
14835    pub(crate) syntax: SyntaxNode,
14836}
14837impl SetTablespace {
14838    #[inline]
14839    pub fn path(&self) -> Option<Path> {
14840        support::child(&self.syntax)
14841    }
14842    #[inline]
14843    pub fn set_token(&self) -> Option<SyntaxToken> {
14844        support::token(&self.syntax, SyntaxKind::SET_KW)
14845    }
14846    #[inline]
14847    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
14848        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
14849    }
14850}
14851
14852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14853pub struct SetTransaction {
14854    pub(crate) syntax: SyntaxNode,
14855}
14856impl SetTransaction {
14857    #[inline]
14858    pub fn literal(&self) -> Option<Literal> {
14859        support::child(&self.syntax)
14860    }
14861    #[inline]
14862    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
14863        support::child(&self.syntax)
14864    }
14865    #[inline]
14866    pub fn as_token(&self) -> Option<SyntaxToken> {
14867        support::token(&self.syntax, SyntaxKind::AS_KW)
14868    }
14869    #[inline]
14870    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
14871        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
14872    }
14873    #[inline]
14874    pub fn session_token(&self) -> Option<SyntaxToken> {
14875        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14876    }
14877    #[inline]
14878    pub fn set_token(&self) -> Option<SyntaxToken> {
14879        support::token(&self.syntax, SyntaxKind::SET_KW)
14880    }
14881    #[inline]
14882    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
14883        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
14884    }
14885    #[inline]
14886    pub fn transaction_token(&self) -> Option<SyntaxToken> {
14887        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
14888    }
14889}
14890
14891#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14892pub struct SetType {
14893    pub(crate) syntax: SyntaxNode,
14894}
14895impl SetType {
14896    #[inline]
14897    pub fn collate(&self) -> Option<Collate> {
14898        support::child(&self.syntax)
14899    }
14900    #[inline]
14901    pub fn ty(&self) -> Option<Type> {
14902        support::child(&self.syntax)
14903    }
14904    #[inline]
14905    pub fn set_token(&self) -> Option<SyntaxToken> {
14906        support::token(&self.syntax, SyntaxKind::SET_KW)
14907    }
14908    #[inline]
14909    pub fn type_token(&self) -> Option<SyntaxToken> {
14910        support::token(&self.syntax, SyntaxKind::TYPE_KW)
14911    }
14912}
14913
14914#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14915pub struct SetUnlogged {
14916    pub(crate) syntax: SyntaxNode,
14917}
14918impl SetUnlogged {
14919    #[inline]
14920    pub fn set_token(&self) -> Option<SyntaxToken> {
14921        support::token(&self.syntax, SyntaxKind::SET_KW)
14922    }
14923    #[inline]
14924    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
14925        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
14926    }
14927}
14928
14929#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14930pub struct SetWithoutCluster {
14931    pub(crate) syntax: SyntaxNode,
14932}
14933impl SetWithoutCluster {
14934    #[inline]
14935    pub fn cluster_token(&self) -> Option<SyntaxToken> {
14936        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
14937    }
14938    #[inline]
14939    pub fn set_token(&self) -> Option<SyntaxToken> {
14940        support::token(&self.syntax, SyntaxKind::SET_KW)
14941    }
14942    #[inline]
14943    pub fn without_token(&self) -> Option<SyntaxToken> {
14944        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14945    }
14946}
14947
14948#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14949pub struct SetWithoutOids {
14950    pub(crate) syntax: SyntaxNode,
14951}
14952impl SetWithoutOids {
14953    #[inline]
14954    pub fn oids_token(&self) -> Option<SyntaxToken> {
14955        support::token(&self.syntax, SyntaxKind::OIDS_KW)
14956    }
14957    #[inline]
14958    pub fn set_token(&self) -> Option<SyntaxToken> {
14959        support::token(&self.syntax, SyntaxKind::SET_KW)
14960    }
14961    #[inline]
14962    pub fn without_token(&self) -> Option<SyntaxToken> {
14963        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14964    }
14965}
14966
14967#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14968pub struct Show {
14969    pub(crate) syntax: SyntaxNode,
14970}
14971impl Show {
14972    #[inline]
14973    pub fn show_token(&self) -> Option<SyntaxToken> {
14974        support::token(&self.syntax, SyntaxKind::SHOW_KW)
14975    }
14976}
14977
14978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14979pub struct SimilarTo {
14980    pub(crate) syntax: SyntaxNode,
14981}
14982impl SimilarTo {
14983    #[inline]
14984    pub fn similar_token(&self) -> Option<SyntaxToken> {
14985        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14986    }
14987    #[inline]
14988    pub fn to_token(&self) -> Option<SyntaxToken> {
14989        support::token(&self.syntax, SyntaxKind::TO_KW)
14990    }
14991}
14992
14993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14994pub struct SliceExpr {
14995    pub(crate) syntax: SyntaxNode,
14996}
14997impl SliceExpr {
14998    #[inline]
14999    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
15000        support::token(&self.syntax, SyntaxKind::L_BRACK)
15001    }
15002    #[inline]
15003    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
15004        support::token(&self.syntax, SyntaxKind::R_BRACK)
15005    }
15006    #[inline]
15007    pub fn colon_token(&self) -> Option<SyntaxToken> {
15008        support::token(&self.syntax, SyntaxKind::COLON)
15009    }
15010}
15011
15012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15013pub struct SomeFn {
15014    pub(crate) syntax: SyntaxNode,
15015}
15016impl SomeFn {
15017    #[inline]
15018    pub fn expr(&self) -> Option<Expr> {
15019        support::child(&self.syntax)
15020    }
15021    #[inline]
15022    pub fn select_variant(&self) -> Option<SelectVariant> {
15023        support::child(&self.syntax)
15024    }
15025    #[inline]
15026    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15027        support::token(&self.syntax, SyntaxKind::L_PAREN)
15028    }
15029    #[inline]
15030    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15031        support::token(&self.syntax, SyntaxKind::R_PAREN)
15032    }
15033    #[inline]
15034    pub fn some_token(&self) -> Option<SyntaxToken> {
15035        support::token(&self.syntax, SyntaxKind::SOME_KW)
15036    }
15037}
15038
15039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15040pub struct SortAsc {
15041    pub(crate) syntax: SyntaxNode,
15042}
15043impl SortAsc {
15044    #[inline]
15045    pub fn asc_token(&self) -> Option<SyntaxToken> {
15046        support::token(&self.syntax, SyntaxKind::ASC_KW)
15047    }
15048}
15049
15050#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15051pub struct SortBy {
15052    pub(crate) syntax: SyntaxNode,
15053}
15054impl SortBy {
15055    #[inline]
15056    pub fn expr(&self) -> Option<Expr> {
15057        support::child(&self.syntax)
15058    }
15059    #[inline]
15060    pub fn nulls_first(&self) -> Option<NullsFirst> {
15061        support::child(&self.syntax)
15062    }
15063    #[inline]
15064    pub fn nulls_last(&self) -> Option<NullsLast> {
15065        support::child(&self.syntax)
15066    }
15067    #[inline]
15068    pub fn sort_asc(&self) -> Option<SortAsc> {
15069        support::child(&self.syntax)
15070    }
15071    #[inline]
15072    pub fn sort_desc(&self) -> Option<SortDesc> {
15073        support::child(&self.syntax)
15074    }
15075    #[inline]
15076    pub fn sort_using(&self) -> Option<SortUsing> {
15077        support::child(&self.syntax)
15078    }
15079}
15080
15081#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15082pub struct SortByList {
15083    pub(crate) syntax: SyntaxNode,
15084}
15085impl SortByList {
15086    #[inline]
15087    pub fn sort_bys(&self) -> AstChildren<SortBy> {
15088        support::children(&self.syntax)
15089    }
15090}
15091
15092#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15093pub struct SortDesc {
15094    pub(crate) syntax: SyntaxNode,
15095}
15096impl SortDesc {
15097    #[inline]
15098    pub fn desc_token(&self) -> Option<SyntaxToken> {
15099        support::token(&self.syntax, SyntaxKind::DESC_KW)
15100    }
15101}
15102
15103#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15104pub struct SortUsing {
15105    pub(crate) syntax: SyntaxNode,
15106}
15107impl SortUsing {
15108    #[inline]
15109    pub fn op(&self) -> Option<Op> {
15110        support::child(&self.syntax)
15111    }
15112    #[inline]
15113    pub fn using_token(&self) -> Option<SyntaxToken> {
15114        support::token(&self.syntax, SyntaxKind::USING_KW)
15115    }
15116}
15117
15118#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15119pub struct SourceFile {
15120    pub(crate) syntax: SyntaxNode,
15121}
15122impl SourceFile {
15123    #[inline]
15124    pub fn stmts(&self) -> AstChildren<Stmt> {
15125        support::children(&self.syntax)
15126    }
15127}
15128
15129#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15130pub struct SplitPartition {
15131    pub(crate) syntax: SyntaxNode,
15132}
15133impl SplitPartition {
15134    #[inline]
15135    pub fn partition_list(&self) -> Option<PartitionList> {
15136        support::child(&self.syntax)
15137    }
15138    #[inline]
15139    pub fn into_token(&self) -> Option<SyntaxToken> {
15140        support::token(&self.syntax, SyntaxKind::INTO_KW)
15141    }
15142    #[inline]
15143    pub fn partition_token(&self) -> Option<SyntaxToken> {
15144        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
15145    }
15146    #[inline]
15147    pub fn split_token(&self) -> Option<SyntaxToken> {
15148        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
15149    }
15150}
15151
15152#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15153pub struct Storage {
15154    pub(crate) syntax: SyntaxNode,
15155}
15156impl Storage {
15157    #[inline]
15158    pub fn default_token(&self) -> Option<SyntaxToken> {
15159        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15160    }
15161    #[inline]
15162    pub fn external_token(&self) -> Option<SyntaxToken> {
15163        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
15164    }
15165    #[inline]
15166    pub fn ident_token(&self) -> Option<SyntaxToken> {
15167        support::token(&self.syntax, SyntaxKind::IDENT)
15168    }
15169    #[inline]
15170    pub fn storage_token(&self) -> Option<SyntaxToken> {
15171        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
15172    }
15173}
15174
15175#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15176pub struct StrictFuncOption {
15177    pub(crate) syntax: SyntaxNode,
15178}
15179impl StrictFuncOption {
15180    #[inline]
15181    pub fn called_token(&self) -> Option<SyntaxToken> {
15182        support::token(&self.syntax, SyntaxKind::CALLED_KW)
15183    }
15184    #[inline]
15185    pub fn input_token(&self) -> Option<SyntaxToken> {
15186        support::token(&self.syntax, SyntaxKind::INPUT_KW)
15187    }
15188    #[inline]
15189    pub fn null_token(&self) -> Option<SyntaxToken> {
15190        support::token(&self.syntax, SyntaxKind::NULL_KW)
15191    }
15192    #[inline]
15193    pub fn on_token(&self) -> Option<SyntaxToken> {
15194        support::token(&self.syntax, SyntaxKind::ON_KW)
15195    }
15196    #[inline]
15197    pub fn returns_token(&self) -> Option<SyntaxToken> {
15198        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
15199    }
15200    #[inline]
15201    pub fn strict_token(&self) -> Option<SyntaxToken> {
15202        support::token(&self.syntax, SyntaxKind::STRICT_KW)
15203    }
15204}
15205
15206#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15207pub struct SubstringFn {
15208    pub(crate) syntax: SyntaxNode,
15209}
15210impl SubstringFn {
15211    #[inline]
15212    pub fn expr(&self) -> Option<Expr> {
15213        support::child(&self.syntax)
15214    }
15215    #[inline]
15216    pub fn exprs(&self) -> AstChildren<Expr> {
15217        support::children(&self.syntax)
15218    }
15219    #[inline]
15220    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15221        support::token(&self.syntax, SyntaxKind::L_PAREN)
15222    }
15223    #[inline]
15224    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15225        support::token(&self.syntax, SyntaxKind::R_PAREN)
15226    }
15227    #[inline]
15228    pub fn escape_token(&self) -> Option<SyntaxToken> {
15229        support::token(&self.syntax, SyntaxKind::ESCAPE_KW)
15230    }
15231    #[inline]
15232    pub fn for_token(&self) -> Option<SyntaxToken> {
15233        support::token(&self.syntax, SyntaxKind::FOR_KW)
15234    }
15235    #[inline]
15236    pub fn from_token(&self) -> Option<SyntaxToken> {
15237        support::token(&self.syntax, SyntaxKind::FROM_KW)
15238    }
15239    #[inline]
15240    pub fn similar_token(&self) -> Option<SyntaxToken> {
15241        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
15242    }
15243    #[inline]
15244    pub fn substring_token(&self) -> Option<SyntaxToken> {
15245        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
15246    }
15247}
15248
15249#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15250pub struct SupportFuncOption {
15251    pub(crate) syntax: SyntaxNode,
15252}
15253impl SupportFuncOption {
15254    #[inline]
15255    pub fn support_token(&self) -> Option<SyntaxToken> {
15256        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
15257    }
15258}
15259
15260#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15261pub struct Table {
15262    pub(crate) syntax: SyntaxNode,
15263}
15264impl Table {
15265    #[inline]
15266    pub fn relation_name(&self) -> Option<RelationName> {
15267        support::child(&self.syntax)
15268    }
15269    #[inline]
15270    pub fn with_clause(&self) -> Option<WithClause> {
15271        support::child(&self.syntax)
15272    }
15273    #[inline]
15274    pub fn table_token(&self) -> Option<SyntaxToken> {
15275        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15276    }
15277}
15278
15279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15280pub struct TableAndColumns {
15281    pub(crate) syntax: SyntaxNode,
15282}
15283impl TableAndColumns {
15284    #[inline]
15285    pub fn column_list(&self) -> Option<ColumnList> {
15286        support::child(&self.syntax)
15287    }
15288    #[inline]
15289    pub fn relation_name(&self) -> Option<RelationName> {
15290        support::child(&self.syntax)
15291    }
15292}
15293
15294#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15295pub struct TableAndColumnsList {
15296    pub(crate) syntax: SyntaxNode,
15297}
15298impl TableAndColumnsList {
15299    #[inline]
15300    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
15301        support::children(&self.syntax)
15302    }
15303}
15304
15305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15306pub struct TableArgList {
15307    pub(crate) syntax: SyntaxNode,
15308}
15309impl TableArgList {
15310    #[inline]
15311    pub fn args(&self) -> AstChildren<TableArg> {
15312        support::children(&self.syntax)
15313    }
15314    #[inline]
15315    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15316        support::token(&self.syntax, SyntaxKind::L_PAREN)
15317    }
15318    #[inline]
15319    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15320        support::token(&self.syntax, SyntaxKind::R_PAREN)
15321    }
15322}
15323
15324#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15325pub struct TableList {
15326    pub(crate) syntax: SyntaxNode,
15327}
15328impl TableList {
15329    #[inline]
15330    pub fn relation_names(&self) -> AstChildren<RelationName> {
15331        support::children(&self.syntax)
15332    }
15333}
15334
15335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15336pub struct TablesampleClause {
15337    pub(crate) syntax: SyntaxNode,
15338}
15339impl TablesampleClause {
15340    #[inline]
15341    pub fn call_expr(&self) -> Option<CallExpr> {
15342        support::child(&self.syntax)
15343    }
15344    #[inline]
15345    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
15346        support::child(&self.syntax)
15347    }
15348    #[inline]
15349    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
15350        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
15351    }
15352}
15353
15354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15355pub struct Tablespace {
15356    pub(crate) syntax: SyntaxNode,
15357}
15358impl Tablespace {
15359    #[inline]
15360    pub fn name_ref(&self) -> Option<NameRef> {
15361        support::child(&self.syntax)
15362    }
15363    #[inline]
15364    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
15365        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
15366    }
15367}
15368
15369#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15370pub struct Target {
15371    pub(crate) syntax: SyntaxNode,
15372}
15373impl Target {
15374    #[inline]
15375    pub fn as_name(&self) -> Option<AsName> {
15376        support::child(&self.syntax)
15377    }
15378    #[inline]
15379    pub fn expr(&self) -> Option<Expr> {
15380        support::child(&self.syntax)
15381    }
15382    #[inline]
15383    pub fn star_token(&self) -> Option<SyntaxToken> {
15384        support::token(&self.syntax, SyntaxKind::STAR)
15385    }
15386}
15387
15388#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15389pub struct TargetList {
15390    pub(crate) syntax: SyntaxNode,
15391}
15392impl TargetList {
15393    #[inline]
15394    pub fn targets(&self) -> AstChildren<Target> {
15395        support::children(&self.syntax)
15396    }
15397}
15398
15399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15400pub struct TimeType {
15401    pub(crate) syntax: SyntaxNode,
15402}
15403impl TimeType {
15404    #[inline]
15405    pub fn literal(&self) -> Option<Literal> {
15406        support::child(&self.syntax)
15407    }
15408    #[inline]
15409    pub fn timezone(&self) -> Option<Timezone> {
15410        support::child(&self.syntax)
15411    }
15412    #[inline]
15413    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15414        support::token(&self.syntax, SyntaxKind::L_PAREN)
15415    }
15416    #[inline]
15417    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15418        support::token(&self.syntax, SyntaxKind::R_PAREN)
15419    }
15420    #[inline]
15421    pub fn time_token(&self) -> Option<SyntaxToken> {
15422        support::token(&self.syntax, SyntaxKind::TIME_KW)
15423    }
15424    #[inline]
15425    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
15426        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
15427    }
15428}
15429
15430#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15431pub struct Timing {
15432    pub(crate) syntax: SyntaxNode,
15433}
15434impl Timing {
15435    #[inline]
15436    pub fn after_token(&self) -> Option<SyntaxToken> {
15437        support::token(&self.syntax, SyntaxKind::AFTER_KW)
15438    }
15439    #[inline]
15440    pub fn before_token(&self) -> Option<SyntaxToken> {
15441        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
15442    }
15443    #[inline]
15444    pub fn instead_token(&self) -> Option<SyntaxToken> {
15445        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
15446    }
15447    #[inline]
15448    pub fn of_token(&self) -> Option<SyntaxToken> {
15449        support::token(&self.syntax, SyntaxKind::OF_KW)
15450    }
15451}
15452
15453#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15454pub struct TransactionModeList {
15455    pub(crate) syntax: SyntaxNode,
15456}
15457impl TransactionModeList {
15458    #[inline]
15459    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
15460        support::children(&self.syntax)
15461    }
15462}
15463
15464#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15465pub struct TransformFromFunc {
15466    pub(crate) syntax: SyntaxNode,
15467}
15468impl TransformFromFunc {
15469    #[inline]
15470    pub fn function_sig(&self) -> Option<FunctionSig> {
15471        support::child(&self.syntax)
15472    }
15473    #[inline]
15474    pub fn from_token(&self) -> Option<SyntaxToken> {
15475        support::token(&self.syntax, SyntaxKind::FROM_KW)
15476    }
15477    #[inline]
15478    pub fn function_token(&self) -> Option<SyntaxToken> {
15479        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15480    }
15481    #[inline]
15482    pub fn sql_token(&self) -> Option<SyntaxToken> {
15483        support::token(&self.syntax, SyntaxKind::SQL_KW)
15484    }
15485    #[inline]
15486    pub fn with_token(&self) -> Option<SyntaxToken> {
15487        support::token(&self.syntax, SyntaxKind::WITH_KW)
15488    }
15489}
15490
15491#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15492pub struct TransformFuncOption {
15493    pub(crate) syntax: SyntaxNode,
15494}
15495impl TransformFuncOption {
15496    #[inline]
15497    pub fn transform_token(&self) -> Option<SyntaxToken> {
15498        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
15499    }
15500}
15501
15502#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15503pub struct TransformToFunc {
15504    pub(crate) syntax: SyntaxNode,
15505}
15506impl TransformToFunc {
15507    #[inline]
15508    pub fn function_sig(&self) -> Option<FunctionSig> {
15509        support::child(&self.syntax)
15510    }
15511    #[inline]
15512    pub fn function_token(&self) -> Option<SyntaxToken> {
15513        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15514    }
15515    #[inline]
15516    pub fn sql_token(&self) -> Option<SyntaxToken> {
15517        support::token(&self.syntax, SyntaxKind::SQL_KW)
15518    }
15519    #[inline]
15520    pub fn to_token(&self) -> Option<SyntaxToken> {
15521        support::token(&self.syntax, SyntaxKind::TO_KW)
15522    }
15523    #[inline]
15524    pub fn with_token(&self) -> Option<SyntaxToken> {
15525        support::token(&self.syntax, SyntaxKind::WITH_KW)
15526    }
15527}
15528
15529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15530pub struct TriggerEvent {
15531    pub(crate) syntax: SyntaxNode,
15532}
15533impl TriggerEvent {
15534    #[inline]
15535    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
15536        support::child(&self.syntax)
15537    }
15538    #[inline]
15539    pub fn delete_token(&self) -> Option<SyntaxToken> {
15540        support::token(&self.syntax, SyntaxKind::DELETE_KW)
15541    }
15542    #[inline]
15543    pub fn insert_token(&self) -> Option<SyntaxToken> {
15544        support::token(&self.syntax, SyntaxKind::INSERT_KW)
15545    }
15546    #[inline]
15547    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15548        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15549    }
15550}
15551
15552#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15553pub struct TriggerEventList {
15554    pub(crate) syntax: SyntaxNode,
15555}
15556impl TriggerEventList {
15557    #[inline]
15558    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
15559        support::children(&self.syntax)
15560    }
15561}
15562
15563#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15564pub struct TriggerEventUpdate {
15565    pub(crate) syntax: SyntaxNode,
15566}
15567impl TriggerEventUpdate {
15568    #[inline]
15569    pub fn name_refs(&self) -> AstChildren<NameRef> {
15570        support::children(&self.syntax)
15571    }
15572    #[inline]
15573    pub fn of_token(&self) -> Option<SyntaxToken> {
15574        support::token(&self.syntax, SyntaxKind::OF_KW)
15575    }
15576    #[inline]
15577    pub fn update_token(&self) -> Option<SyntaxToken> {
15578        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15579    }
15580}
15581
15582#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15583pub struct TrimFn {
15584    pub(crate) syntax: SyntaxNode,
15585}
15586impl TrimFn {
15587    #[inline]
15588    pub fn expr(&self) -> Option<Expr> {
15589        support::child(&self.syntax)
15590    }
15591    #[inline]
15592    pub fn exprs(&self) -> AstChildren<Expr> {
15593        support::children(&self.syntax)
15594    }
15595    #[inline]
15596    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15597        support::token(&self.syntax, SyntaxKind::L_PAREN)
15598    }
15599    #[inline]
15600    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15601        support::token(&self.syntax, SyntaxKind::R_PAREN)
15602    }
15603    #[inline]
15604    pub fn both_token(&self) -> Option<SyntaxToken> {
15605        support::token(&self.syntax, SyntaxKind::BOTH_KW)
15606    }
15607    #[inline]
15608    pub fn from_token(&self) -> Option<SyntaxToken> {
15609        support::token(&self.syntax, SyntaxKind::FROM_KW)
15610    }
15611    #[inline]
15612    pub fn leading_token(&self) -> Option<SyntaxToken> {
15613        support::token(&self.syntax, SyntaxKind::LEADING_KW)
15614    }
15615    #[inline]
15616    pub fn trailing_token(&self) -> Option<SyntaxToken> {
15617        support::token(&self.syntax, SyntaxKind::TRAILING_KW)
15618    }
15619    #[inline]
15620    pub fn trim_token(&self) -> Option<SyntaxToken> {
15621        support::token(&self.syntax, SyntaxKind::TRIM_KW)
15622    }
15623}
15624
15625#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15626pub struct Truncate {
15627    pub(crate) syntax: SyntaxNode,
15628}
15629impl Truncate {
15630    #[inline]
15631    pub fn table_list(&self) -> Option<TableList> {
15632        support::child(&self.syntax)
15633    }
15634    #[inline]
15635    pub fn cascade_token(&self) -> Option<SyntaxToken> {
15636        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
15637    }
15638    #[inline]
15639    pub fn continue_token(&self) -> Option<SyntaxToken> {
15640        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
15641    }
15642    #[inline]
15643    pub fn identity_token(&self) -> Option<SyntaxToken> {
15644        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
15645    }
15646    #[inline]
15647    pub fn restart_token(&self) -> Option<SyntaxToken> {
15648        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15649    }
15650    #[inline]
15651    pub fn restrict_token(&self) -> Option<SyntaxToken> {
15652        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
15653    }
15654    #[inline]
15655    pub fn table_token(&self) -> Option<SyntaxToken> {
15656        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15657    }
15658    #[inline]
15659    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15660        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15661    }
15662}
15663
15664#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15665pub struct TupleExpr {
15666    pub(crate) syntax: SyntaxNode,
15667}
15668impl TupleExpr {
15669    #[inline]
15670    pub fn exprs(&self) -> AstChildren<Expr> {
15671        support::children(&self.syntax)
15672    }
15673    #[inline]
15674    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15675        support::token(&self.syntax, SyntaxKind::L_PAREN)
15676    }
15677    #[inline]
15678    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15679        support::token(&self.syntax, SyntaxKind::R_PAREN)
15680    }
15681}
15682
15683#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15684pub struct UnicodeNormalForm {
15685    pub(crate) syntax: SyntaxNode,
15686}
15687impl UnicodeNormalForm {
15688    #[inline]
15689    pub fn nfc_token(&self) -> Option<SyntaxToken> {
15690        support::token(&self.syntax, SyntaxKind::NFC_KW)
15691    }
15692    #[inline]
15693    pub fn nfd_token(&self) -> Option<SyntaxToken> {
15694        support::token(&self.syntax, SyntaxKind::NFD_KW)
15695    }
15696    #[inline]
15697    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
15698        support::token(&self.syntax, SyntaxKind::NFKC_KW)
15699    }
15700    #[inline]
15701    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
15702        support::token(&self.syntax, SyntaxKind::NFKD_KW)
15703    }
15704}
15705
15706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15707pub struct UniqueConstraint {
15708    pub(crate) syntax: SyntaxNode,
15709}
15710impl UniqueConstraint {
15711    #[inline]
15712    pub fn column_list(&self) -> Option<ColumnList> {
15713        support::child(&self.syntax)
15714    }
15715    #[inline]
15716    pub fn constraint_name(&self) -> Option<ConstraintName> {
15717        support::child(&self.syntax)
15718    }
15719    #[inline]
15720    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
15721        support::child(&self.syntax)
15722    }
15723    #[inline]
15724    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
15725        support::child(&self.syntax)
15726    }
15727    #[inline]
15728    pub fn using_index(&self) -> Option<UsingIndex> {
15729        support::child(&self.syntax)
15730    }
15731    #[inline]
15732    pub fn unique_token(&self) -> Option<SyntaxToken> {
15733        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
15734    }
15735}
15736
15737#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15738pub struct Unlisten {
15739    pub(crate) syntax: SyntaxNode,
15740}
15741impl Unlisten {
15742    #[inline]
15743    pub fn name_ref(&self) -> Option<NameRef> {
15744        support::child(&self.syntax)
15745    }
15746    #[inline]
15747    pub fn star_token(&self) -> Option<SyntaxToken> {
15748        support::token(&self.syntax, SyntaxKind::STAR)
15749    }
15750    #[inline]
15751    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
15752        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
15753    }
15754}
15755
15756#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15757pub struct Update {
15758    pub(crate) syntax: SyntaxNode,
15759}
15760impl Update {
15761    #[inline]
15762    pub fn alias(&self) -> Option<Alias> {
15763        support::child(&self.syntax)
15764    }
15765    #[inline]
15766    pub fn from_clause(&self) -> Option<FromClause> {
15767        support::child(&self.syntax)
15768    }
15769    #[inline]
15770    pub fn relation_name(&self) -> Option<RelationName> {
15771        support::child(&self.syntax)
15772    }
15773    #[inline]
15774    pub fn returning_clause(&self) -> Option<ReturningClause> {
15775        support::child(&self.syntax)
15776    }
15777    #[inline]
15778    pub fn set_clause(&self) -> Option<SetClause> {
15779        support::child(&self.syntax)
15780    }
15781    #[inline]
15782    pub fn where_clause(&self) -> Option<WhereClause> {
15783        support::child(&self.syntax)
15784    }
15785    #[inline]
15786    pub fn with_clause(&self) -> Option<WithClause> {
15787        support::child(&self.syntax)
15788    }
15789    #[inline]
15790    pub fn update_token(&self) -> Option<SyntaxToken> {
15791        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15792    }
15793}
15794
15795#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15796pub struct UsingClause {
15797    pub(crate) syntax: SyntaxNode,
15798}
15799impl UsingClause {
15800    #[inline]
15801    pub fn from_items(&self) -> AstChildren<FromItem> {
15802        support::children(&self.syntax)
15803    }
15804    #[inline]
15805    pub fn using_token(&self) -> Option<SyntaxToken> {
15806        support::token(&self.syntax, SyntaxKind::USING_KW)
15807    }
15808}
15809
15810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15811pub struct UsingExprClause {
15812    pub(crate) syntax: SyntaxNode,
15813}
15814impl UsingExprClause {
15815    #[inline]
15816    pub fn expr(&self) -> Option<Expr> {
15817        support::child(&self.syntax)
15818    }
15819    #[inline]
15820    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15821        support::token(&self.syntax, SyntaxKind::L_PAREN)
15822    }
15823    #[inline]
15824    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15825        support::token(&self.syntax, SyntaxKind::R_PAREN)
15826    }
15827    #[inline]
15828    pub fn using_token(&self) -> Option<SyntaxToken> {
15829        support::token(&self.syntax, SyntaxKind::USING_KW)
15830    }
15831}
15832
15833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15834pub struct UsingIndex {
15835    pub(crate) syntax: SyntaxNode,
15836}
15837impl UsingIndex {
15838    #[inline]
15839    pub fn name_ref(&self) -> Option<NameRef> {
15840        support::child(&self.syntax)
15841    }
15842    #[inline]
15843    pub fn index_token(&self) -> Option<SyntaxToken> {
15844        support::token(&self.syntax, SyntaxKind::INDEX_KW)
15845    }
15846    #[inline]
15847    pub fn using_token(&self) -> Option<SyntaxToken> {
15848        support::token(&self.syntax, SyntaxKind::USING_KW)
15849    }
15850}
15851
15852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15853pub struct UsingMethod {
15854    pub(crate) syntax: SyntaxNode,
15855}
15856impl UsingMethod {
15857    #[inline]
15858    pub fn name_ref(&self) -> Option<NameRef> {
15859        support::child(&self.syntax)
15860    }
15861    #[inline]
15862    pub fn using_token(&self) -> Option<SyntaxToken> {
15863        support::token(&self.syntax, SyntaxKind::USING_KW)
15864    }
15865}
15866
15867#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15868pub struct UsingOnClause {
15869    pub(crate) syntax: SyntaxNode,
15870}
15871impl UsingOnClause {
15872    #[inline]
15873    pub fn from_item(&self) -> Option<FromItem> {
15874        support::child(&self.syntax)
15875    }
15876    #[inline]
15877    pub fn on_clause(&self) -> Option<OnClause> {
15878        support::child(&self.syntax)
15879    }
15880    #[inline]
15881    pub fn using_token(&self) -> Option<SyntaxToken> {
15882        support::token(&self.syntax, SyntaxKind::USING_KW)
15883    }
15884}
15885
15886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15887pub struct Vacuum {
15888    pub(crate) syntax: SyntaxNode,
15889}
15890impl Vacuum {
15891    #[inline]
15892    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
15893        support::child(&self.syntax)
15894    }
15895    #[inline]
15896    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
15897        support::child(&self.syntax)
15898    }
15899    #[inline]
15900    pub fn analyse_token(&self) -> Option<SyntaxToken> {
15901        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
15902    }
15903    #[inline]
15904    pub fn analyze_token(&self) -> Option<SyntaxToken> {
15905        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
15906    }
15907    #[inline]
15908    pub fn freeze_token(&self) -> Option<SyntaxToken> {
15909        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
15910    }
15911    #[inline]
15912    pub fn full_token(&self) -> Option<SyntaxToken> {
15913        support::token(&self.syntax, SyntaxKind::FULL_KW)
15914    }
15915    #[inline]
15916    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
15917        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
15918    }
15919    #[inline]
15920    pub fn verbose_token(&self) -> Option<SyntaxToken> {
15921        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
15922    }
15923}
15924
15925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15926pub struct VacuumOption {
15927    pub(crate) syntax: SyntaxNode,
15928}
15929impl VacuumOption {
15930    #[inline]
15931    pub fn literal(&self) -> Option<Literal> {
15932        support::child(&self.syntax)
15933    }
15934}
15935
15936#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15937pub struct VacuumOptionList {
15938    pub(crate) syntax: SyntaxNode,
15939}
15940impl VacuumOptionList {
15941    #[inline]
15942    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
15943        support::children(&self.syntax)
15944    }
15945    #[inline]
15946    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15947        support::token(&self.syntax, SyntaxKind::L_PAREN)
15948    }
15949    #[inline]
15950    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15951        support::token(&self.syntax, SyntaxKind::R_PAREN)
15952    }
15953}
15954
15955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15956pub struct ValidateConstraint {
15957    pub(crate) syntax: SyntaxNode,
15958}
15959impl ValidateConstraint {
15960    #[inline]
15961    pub fn name_ref(&self) -> Option<NameRef> {
15962        support::child(&self.syntax)
15963    }
15964    #[inline]
15965    pub fn constraint_token(&self) -> Option<SyntaxToken> {
15966        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
15967    }
15968    #[inline]
15969    pub fn validate_token(&self) -> Option<SyntaxToken> {
15970        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
15971    }
15972}
15973
15974#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15975pub struct Values {
15976    pub(crate) syntax: SyntaxNode,
15977}
15978impl Values {
15979    #[inline]
15980    pub fn row_list(&self) -> Option<RowList> {
15981        support::child(&self.syntax)
15982    }
15983    #[inline]
15984    pub fn with_clause(&self) -> Option<WithClause> {
15985        support::child(&self.syntax)
15986    }
15987    #[inline]
15988    pub fn values_token(&self) -> Option<SyntaxToken> {
15989        support::token(&self.syntax, SyntaxKind::VALUES_KW)
15990    }
15991}
15992
15993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15994pub struct Variant {
15995    pub(crate) syntax: SyntaxNode,
15996}
15997impl Variant {
15998    #[inline]
15999    pub fn literal(&self) -> Option<Literal> {
16000        support::child(&self.syntax)
16001    }
16002}
16003
16004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16005pub struct VariantList {
16006    pub(crate) syntax: SyntaxNode,
16007}
16008impl VariantList {
16009    #[inline]
16010    pub fn variants(&self) -> AstChildren<Variant> {
16011        support::children(&self.syntax)
16012    }
16013    #[inline]
16014    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16015        support::token(&self.syntax, SyntaxKind::L_PAREN)
16016    }
16017    #[inline]
16018    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16019        support::token(&self.syntax, SyntaxKind::R_PAREN)
16020    }
16021}
16022
16023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16024pub struct VolatilityFuncOption {
16025    pub(crate) syntax: SyntaxNode,
16026}
16027impl VolatilityFuncOption {
16028    #[inline]
16029    pub fn immutable_token(&self) -> Option<SyntaxToken> {
16030        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
16031    }
16032    #[inline]
16033    pub fn stable_token(&self) -> Option<SyntaxToken> {
16034        support::token(&self.syntax, SyntaxKind::STABLE_KW)
16035    }
16036    #[inline]
16037    pub fn volatile_token(&self) -> Option<SyntaxToken> {
16038        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
16039    }
16040}
16041
16042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16043pub struct WhenClause {
16044    pub(crate) syntax: SyntaxNode,
16045}
16046impl WhenClause {
16047    #[inline]
16048    pub fn then_token(&self) -> Option<SyntaxToken> {
16049        support::token(&self.syntax, SyntaxKind::THEN_KW)
16050    }
16051    #[inline]
16052    pub fn when_token(&self) -> Option<SyntaxToken> {
16053        support::token(&self.syntax, SyntaxKind::WHEN_KW)
16054    }
16055}
16056
16057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16058pub struct WhenClauseList {
16059    pub(crate) syntax: SyntaxNode,
16060}
16061impl WhenClauseList {
16062    #[inline]
16063    pub fn when_clause(&self) -> Option<WhenClause> {
16064        support::child(&self.syntax)
16065    }
16066    #[inline]
16067    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
16068        support::children(&self.syntax)
16069    }
16070}
16071
16072#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16073pub struct WhenCondition {
16074    pub(crate) syntax: SyntaxNode,
16075}
16076impl WhenCondition {
16077    #[inline]
16078    pub fn expr(&self) -> Option<Expr> {
16079        support::child(&self.syntax)
16080    }
16081    #[inline]
16082    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16083        support::token(&self.syntax, SyntaxKind::L_PAREN)
16084    }
16085    #[inline]
16086    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16087        support::token(&self.syntax, SyntaxKind::R_PAREN)
16088    }
16089    #[inline]
16090    pub fn when_token(&self) -> Option<SyntaxToken> {
16091        support::token(&self.syntax, SyntaxKind::WHEN_KW)
16092    }
16093}
16094
16095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16096pub struct WhereClause {
16097    pub(crate) syntax: SyntaxNode,
16098}
16099impl WhereClause {
16100    #[inline]
16101    pub fn expr(&self) -> Option<Expr> {
16102        support::child(&self.syntax)
16103    }
16104    #[inline]
16105    pub fn where_token(&self) -> Option<SyntaxToken> {
16106        support::token(&self.syntax, SyntaxKind::WHERE_KW)
16107    }
16108}
16109
16110#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16111pub struct WhereConditionClause {
16112    pub(crate) syntax: SyntaxNode,
16113}
16114impl WhereConditionClause {
16115    #[inline]
16116    pub fn expr(&self) -> Option<Expr> {
16117        support::child(&self.syntax)
16118    }
16119    #[inline]
16120    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16121        support::token(&self.syntax, SyntaxKind::L_PAREN)
16122    }
16123    #[inline]
16124    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16125        support::token(&self.syntax, SyntaxKind::R_PAREN)
16126    }
16127    #[inline]
16128    pub fn where_token(&self) -> Option<SyntaxToken> {
16129        support::token(&self.syntax, SyntaxKind::WHERE_KW)
16130    }
16131}
16132
16133#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16134pub struct WhereCurrentOf {
16135    pub(crate) syntax: SyntaxNode,
16136}
16137impl WhereCurrentOf {
16138    #[inline]
16139    pub fn name_ref(&self) -> Option<NameRef> {
16140        support::child(&self.syntax)
16141    }
16142    #[inline]
16143    pub fn current_token(&self) -> Option<SyntaxToken> {
16144        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
16145    }
16146    #[inline]
16147    pub fn of_token(&self) -> Option<SyntaxToken> {
16148        support::token(&self.syntax, SyntaxKind::OF_KW)
16149    }
16150    #[inline]
16151    pub fn where_token(&self) -> Option<SyntaxToken> {
16152        support::token(&self.syntax, SyntaxKind::WHERE_KW)
16153    }
16154}
16155
16156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16157pub struct WindowClause {
16158    pub(crate) syntax: SyntaxNode,
16159}
16160impl WindowClause {
16161    #[inline]
16162    pub fn window_defs(&self) -> AstChildren<WindowDef> {
16163        support::children(&self.syntax)
16164    }
16165    #[inline]
16166    pub fn window_token(&self) -> Option<SyntaxToken> {
16167        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
16168    }
16169}
16170
16171#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16172pub struct WindowDef {
16173    pub(crate) syntax: SyntaxNode,
16174}
16175impl WindowDef {
16176    #[inline]
16177    pub fn name(&self) -> Option<Name> {
16178        support::child(&self.syntax)
16179    }
16180    #[inline]
16181    pub fn window_spec(&self) -> Option<WindowSpec> {
16182        support::child(&self.syntax)
16183    }
16184    #[inline]
16185    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16186        support::token(&self.syntax, SyntaxKind::L_PAREN)
16187    }
16188    #[inline]
16189    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16190        support::token(&self.syntax, SyntaxKind::R_PAREN)
16191    }
16192    #[inline]
16193    pub fn as_token(&self) -> Option<SyntaxToken> {
16194        support::token(&self.syntax, SyntaxKind::AS_KW)
16195    }
16196}
16197
16198#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16199pub struct WindowFuncOption {
16200    pub(crate) syntax: SyntaxNode,
16201}
16202impl WindowFuncOption {
16203    #[inline]
16204    pub fn window_token(&self) -> Option<SyntaxToken> {
16205        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
16206    }
16207}
16208
16209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16210pub struct WindowSpec {
16211    pub(crate) syntax: SyntaxNode,
16212}
16213impl WindowSpec {
16214    #[inline]
16215    pub fn exprs(&self) -> AstChildren<Expr> {
16216        support::children(&self.syntax)
16217    }
16218    #[inline]
16219    pub fn frame_clause(&self) -> Option<FrameClause> {
16220        support::child(&self.syntax)
16221    }
16222    #[inline]
16223    pub fn order_by_clause(&self) -> Option<OrderByClause> {
16224        support::child(&self.syntax)
16225    }
16226    #[inline]
16227    pub fn by_token(&self) -> Option<SyntaxToken> {
16228        support::token(&self.syntax, SyntaxKind::BY_KW)
16229    }
16230    #[inline]
16231    pub fn ident_token(&self) -> Option<SyntaxToken> {
16232        support::token(&self.syntax, SyntaxKind::IDENT)
16233    }
16234    #[inline]
16235    pub fn partition_token(&self) -> Option<SyntaxToken> {
16236        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
16237    }
16238}
16239
16240#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16241pub struct WithCheckExprClause {
16242    pub(crate) syntax: SyntaxNode,
16243}
16244impl WithCheckExprClause {
16245    #[inline]
16246    pub fn expr(&self) -> Option<Expr> {
16247        support::child(&self.syntax)
16248    }
16249    #[inline]
16250    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16251        support::token(&self.syntax, SyntaxKind::L_PAREN)
16252    }
16253    #[inline]
16254    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16255        support::token(&self.syntax, SyntaxKind::R_PAREN)
16256    }
16257    #[inline]
16258    pub fn check_token(&self) -> Option<SyntaxToken> {
16259        support::token(&self.syntax, SyntaxKind::CHECK_KW)
16260    }
16261    #[inline]
16262    pub fn with_token(&self) -> Option<SyntaxToken> {
16263        support::token(&self.syntax, SyntaxKind::WITH_KW)
16264    }
16265}
16266
16267#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16268pub struct WithClause {
16269    pub(crate) syntax: SyntaxNode,
16270}
16271impl WithClause {
16272    #[inline]
16273    pub fn with_tables(&self) -> AstChildren<WithTable> {
16274        support::children(&self.syntax)
16275    }
16276    #[inline]
16277    pub fn recursive_token(&self) -> Option<SyntaxToken> {
16278        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
16279    }
16280    #[inline]
16281    pub fn with_token(&self) -> Option<SyntaxToken> {
16282        support::token(&self.syntax, SyntaxKind::WITH_KW)
16283    }
16284}
16285
16286#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16287pub struct WithData {
16288    pub(crate) syntax: SyntaxNode,
16289}
16290impl WithData {
16291    #[inline]
16292    pub fn data_token(&self) -> Option<SyntaxToken> {
16293        support::token(&self.syntax, SyntaxKind::DATA_KW)
16294    }
16295    #[inline]
16296    pub fn with_token(&self) -> Option<SyntaxToken> {
16297        support::token(&self.syntax, SyntaxKind::WITH_KW)
16298    }
16299}
16300
16301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16302pub struct WithNoData {
16303    pub(crate) syntax: SyntaxNode,
16304}
16305impl WithNoData {
16306    #[inline]
16307    pub fn data_token(&self) -> Option<SyntaxToken> {
16308        support::token(&self.syntax, SyntaxKind::DATA_KW)
16309    }
16310    #[inline]
16311    pub fn no_token(&self) -> Option<SyntaxToken> {
16312        support::token(&self.syntax, SyntaxKind::NO_KW)
16313    }
16314    #[inline]
16315    pub fn with_token(&self) -> Option<SyntaxToken> {
16316        support::token(&self.syntax, SyntaxKind::WITH_KW)
16317    }
16318}
16319
16320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16321pub struct WithOptions {
16322    pub(crate) syntax: SyntaxNode,
16323}
16324impl WithOptions {
16325    #[inline]
16326    pub fn options_token(&self) -> Option<SyntaxToken> {
16327        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
16328    }
16329    #[inline]
16330    pub fn with_token(&self) -> Option<SyntaxToken> {
16331        support::token(&self.syntax, SyntaxKind::WITH_KW)
16332    }
16333}
16334
16335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16336pub struct WithParams {
16337    pub(crate) syntax: SyntaxNode,
16338}
16339impl WithParams {
16340    #[inline]
16341    pub fn attribute_list(&self) -> Option<AttributeList> {
16342        support::child(&self.syntax)
16343    }
16344    #[inline]
16345    pub fn with_token(&self) -> Option<SyntaxToken> {
16346        support::token(&self.syntax, SyntaxKind::WITH_KW)
16347    }
16348}
16349
16350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16351pub struct WithTable {
16352    pub(crate) syntax: SyntaxNode,
16353}
16354impl WithTable {
16355    #[inline]
16356    pub fn column_list(&self) -> Option<ColumnList> {
16357        support::child(&self.syntax)
16358    }
16359    #[inline]
16360    pub fn materialized(&self) -> Option<Materialized> {
16361        support::child(&self.syntax)
16362    }
16363    #[inline]
16364    pub fn name(&self) -> Option<Name> {
16365        support::child(&self.syntax)
16366    }
16367    #[inline]
16368    pub fn not_materialized(&self) -> Option<NotMaterialized> {
16369        support::child(&self.syntax)
16370    }
16371    #[inline]
16372    pub fn query(&self) -> Option<WithQuery> {
16373        support::child(&self.syntax)
16374    }
16375    #[inline]
16376    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16377        support::token(&self.syntax, SyntaxKind::L_PAREN)
16378    }
16379    #[inline]
16380    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16381        support::token(&self.syntax, SyntaxKind::R_PAREN)
16382    }
16383    #[inline]
16384    pub fn as_token(&self) -> Option<SyntaxToken> {
16385        support::token(&self.syntax, SyntaxKind::AS_KW)
16386    }
16387}
16388
16389#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16390pub struct WithTimezone {
16391    pub(crate) syntax: SyntaxNode,
16392}
16393impl WithTimezone {
16394    #[inline]
16395    pub fn time_token(&self) -> Option<SyntaxToken> {
16396        support::token(&self.syntax, SyntaxKind::TIME_KW)
16397    }
16398    #[inline]
16399    pub fn with_token(&self) -> Option<SyntaxToken> {
16400        support::token(&self.syntax, SyntaxKind::WITH_KW)
16401    }
16402    #[inline]
16403    pub fn zone_token(&self) -> Option<SyntaxToken> {
16404        support::token(&self.syntax, SyntaxKind::ZONE_KW)
16405    }
16406}
16407
16408#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16409pub struct WithinClause {
16410    pub(crate) syntax: SyntaxNode,
16411}
16412impl WithinClause {
16413    #[inline]
16414    pub fn order_by_clause(&self) -> Option<OrderByClause> {
16415        support::child(&self.syntax)
16416    }
16417    #[inline]
16418    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16419        support::token(&self.syntax, SyntaxKind::L_PAREN)
16420    }
16421    #[inline]
16422    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16423        support::token(&self.syntax, SyntaxKind::R_PAREN)
16424    }
16425    #[inline]
16426    pub fn group_token(&self) -> Option<SyntaxToken> {
16427        support::token(&self.syntax, SyntaxKind::GROUP_KW)
16428    }
16429    #[inline]
16430    pub fn within_token(&self) -> Option<SyntaxToken> {
16431        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
16432    }
16433}
16434
16435#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16436pub struct WithoutOids {
16437    pub(crate) syntax: SyntaxNode,
16438}
16439impl WithoutOids {
16440    #[inline]
16441    pub fn oids_token(&self) -> Option<SyntaxToken> {
16442        support::token(&self.syntax, SyntaxKind::OIDS_KW)
16443    }
16444    #[inline]
16445    pub fn without_token(&self) -> Option<SyntaxToken> {
16446        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16447    }
16448}
16449
16450#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16451pub struct WithoutTimezone {
16452    pub(crate) syntax: SyntaxNode,
16453}
16454impl WithoutTimezone {
16455    #[inline]
16456    pub fn time_token(&self) -> Option<SyntaxToken> {
16457        support::token(&self.syntax, SyntaxKind::TIME_KW)
16458    }
16459    #[inline]
16460    pub fn without_token(&self) -> Option<SyntaxToken> {
16461        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16462    }
16463    #[inline]
16464    pub fn zone_token(&self) -> Option<SyntaxToken> {
16465        support::token(&self.syntax, SyntaxKind::ZONE_KW)
16466    }
16467}
16468
16469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16470pub struct XmlAttributeList {
16471    pub(crate) syntax: SyntaxNode,
16472}
16473impl XmlAttributeList {
16474    #[inline]
16475    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
16476        support::children(&self.syntax)
16477    }
16478}
16479
16480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16481pub struct XmlColumnOption {
16482    pub(crate) syntax: SyntaxNode,
16483}
16484impl XmlColumnOption {
16485    #[inline]
16486    pub fn expr(&self) -> Option<Expr> {
16487        support::child(&self.syntax)
16488    }
16489    #[inline]
16490    pub fn default_token(&self) -> Option<SyntaxToken> {
16491        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16492    }
16493    #[inline]
16494    pub fn ident_token(&self) -> Option<SyntaxToken> {
16495        support::token(&self.syntax, SyntaxKind::IDENT)
16496    }
16497    #[inline]
16498    pub fn not_token(&self) -> Option<SyntaxToken> {
16499        support::token(&self.syntax, SyntaxKind::NOT_KW)
16500    }
16501    #[inline]
16502    pub fn null_token(&self) -> Option<SyntaxToken> {
16503        support::token(&self.syntax, SyntaxKind::NULL_KW)
16504    }
16505    #[inline]
16506    pub fn path_token(&self) -> Option<SyntaxToken> {
16507        support::token(&self.syntax, SyntaxKind::PATH_KW)
16508    }
16509}
16510
16511#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16512pub struct XmlColumnOptionList {
16513    pub(crate) syntax: SyntaxNode,
16514}
16515impl XmlColumnOptionList {
16516    #[inline]
16517    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
16518        support::child(&self.syntax)
16519    }
16520    #[inline]
16521    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
16522        support::children(&self.syntax)
16523    }
16524}
16525
16526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16527pub struct XmlElementFn {
16528    pub(crate) syntax: SyntaxNode,
16529}
16530impl XmlElementFn {
16531    #[inline]
16532    pub fn exprs(&self) -> AstChildren<Expr> {
16533        support::children(&self.syntax)
16534    }
16535    #[inline]
16536    pub fn name(&self) -> Option<Name> {
16537        support::child(&self.syntax)
16538    }
16539    #[inline]
16540    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
16541        support::child(&self.syntax)
16542    }
16543    #[inline]
16544    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16545        support::token(&self.syntax, SyntaxKind::L_PAREN)
16546    }
16547    #[inline]
16548    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16549        support::token(&self.syntax, SyntaxKind::R_PAREN)
16550    }
16551    #[inline]
16552    pub fn comma_token(&self) -> Option<SyntaxToken> {
16553        support::token(&self.syntax, SyntaxKind::COMMA)
16554    }
16555    #[inline]
16556    pub fn name_token(&self) -> Option<SyntaxToken> {
16557        support::token(&self.syntax, SyntaxKind::NAME_KW)
16558    }
16559    #[inline]
16560    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
16561        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
16562    }
16563    #[inline]
16564    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
16565        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
16566    }
16567}
16568
16569#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16570pub struct XmlExistsFn {
16571    pub(crate) syntax: SyntaxNode,
16572}
16573impl XmlExistsFn {
16574    #[inline]
16575    pub fn expr(&self) -> Option<Expr> {
16576        support::child(&self.syntax)
16577    }
16578    #[inline]
16579    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16580        support::child(&self.syntax)
16581    }
16582    #[inline]
16583    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16584        support::token(&self.syntax, SyntaxKind::L_PAREN)
16585    }
16586    #[inline]
16587    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16588        support::token(&self.syntax, SyntaxKind::R_PAREN)
16589    }
16590    #[inline]
16591    pub fn passing_token(&self) -> Option<SyntaxToken> {
16592        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16593    }
16594    #[inline]
16595    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
16596        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
16597    }
16598}
16599
16600#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16601pub struct XmlForestFn {
16602    pub(crate) syntax: SyntaxNode,
16603}
16604impl XmlForestFn {
16605    #[inline]
16606    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
16607        support::child(&self.syntax)
16608    }
16609    #[inline]
16610    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16611        support::token(&self.syntax, SyntaxKind::L_PAREN)
16612    }
16613    #[inline]
16614    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16615        support::token(&self.syntax, SyntaxKind::R_PAREN)
16616    }
16617    #[inline]
16618    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
16619        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
16620    }
16621}
16622
16623#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16624pub struct XmlNamespace {
16625    pub(crate) syntax: SyntaxNode,
16626}
16627impl XmlNamespace {
16628    #[inline]
16629    pub fn expr(&self) -> Option<Expr> {
16630        support::child(&self.syntax)
16631    }
16632    #[inline]
16633    pub fn name(&self) -> Option<Name> {
16634        support::child(&self.syntax)
16635    }
16636    #[inline]
16637    pub fn as_token(&self) -> Option<SyntaxToken> {
16638        support::token(&self.syntax, SyntaxKind::AS_KW)
16639    }
16640    #[inline]
16641    pub fn default_token(&self) -> Option<SyntaxToken> {
16642        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16643    }
16644}
16645
16646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16647pub struct XmlNamespaceList {
16648    pub(crate) syntax: SyntaxNode,
16649}
16650impl XmlNamespaceList {
16651    #[inline]
16652    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
16653        support::children(&self.syntax)
16654    }
16655    #[inline]
16656    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16657        support::token(&self.syntax, SyntaxKind::L_PAREN)
16658    }
16659    #[inline]
16660    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16661        support::token(&self.syntax, SyntaxKind::R_PAREN)
16662    }
16663}
16664
16665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16666pub struct XmlParseFn {
16667    pub(crate) syntax: SyntaxNode,
16668}
16669impl XmlParseFn {
16670    #[inline]
16671    pub fn expr(&self) -> Option<Expr> {
16672        support::child(&self.syntax)
16673    }
16674    #[inline]
16675    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16676        support::token(&self.syntax, SyntaxKind::L_PAREN)
16677    }
16678    #[inline]
16679    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16680        support::token(&self.syntax, SyntaxKind::R_PAREN)
16681    }
16682    #[inline]
16683    pub fn content_token(&self) -> Option<SyntaxToken> {
16684        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16685    }
16686    #[inline]
16687    pub fn document_token(&self) -> Option<SyntaxToken> {
16688        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16689    }
16690    #[inline]
16691    pub fn preserve_token(&self) -> Option<SyntaxToken> {
16692        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
16693    }
16694    #[inline]
16695    pub fn strip_token(&self) -> Option<SyntaxToken> {
16696        support::token(&self.syntax, SyntaxKind::STRIP_KW)
16697    }
16698    #[inline]
16699    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
16700        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
16701    }
16702    #[inline]
16703    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
16704        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
16705    }
16706}
16707
16708#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16709pub struct XmlPassingMech {
16710    pub(crate) syntax: SyntaxNode,
16711}
16712impl XmlPassingMech {
16713    #[inline]
16714    pub fn by_token(&self) -> Option<SyntaxToken> {
16715        support::token(&self.syntax, SyntaxKind::BY_KW)
16716    }
16717    #[inline]
16718    pub fn ref_token(&self) -> Option<SyntaxToken> {
16719        support::token(&self.syntax, SyntaxKind::REF_KW)
16720    }
16721    #[inline]
16722    pub fn value_token(&self) -> Option<SyntaxToken> {
16723        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16724    }
16725}
16726
16727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16728pub struct XmlPiFn {
16729    pub(crate) syntax: SyntaxNode,
16730}
16731impl XmlPiFn {
16732    #[inline]
16733    pub fn expr(&self) -> Option<Expr> {
16734        support::child(&self.syntax)
16735    }
16736    #[inline]
16737    pub fn name(&self) -> Option<Name> {
16738        support::child(&self.syntax)
16739    }
16740    #[inline]
16741    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16742        support::token(&self.syntax, SyntaxKind::L_PAREN)
16743    }
16744    #[inline]
16745    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16746        support::token(&self.syntax, SyntaxKind::R_PAREN)
16747    }
16748    #[inline]
16749    pub fn comma_token(&self) -> Option<SyntaxToken> {
16750        support::token(&self.syntax, SyntaxKind::COMMA)
16751    }
16752    #[inline]
16753    pub fn name_token(&self) -> Option<SyntaxToken> {
16754        support::token(&self.syntax, SyntaxKind::NAME_KW)
16755    }
16756    #[inline]
16757    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
16758        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
16759    }
16760}
16761
16762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16763pub struct XmlRootFn {
16764    pub(crate) syntax: SyntaxNode,
16765}
16766impl XmlRootFn {
16767    #[inline]
16768    pub fn expr(&self) -> Option<Expr> {
16769        support::child(&self.syntax)
16770    }
16771    #[inline]
16772    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16773        support::token(&self.syntax, SyntaxKind::L_PAREN)
16774    }
16775    #[inline]
16776    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16777        support::token(&self.syntax, SyntaxKind::R_PAREN)
16778    }
16779    #[inline]
16780    pub fn comma_token(&self) -> Option<SyntaxToken> {
16781        support::token(&self.syntax, SyntaxKind::COMMA)
16782    }
16783    #[inline]
16784    pub fn no_token(&self) -> Option<SyntaxToken> {
16785        support::token(&self.syntax, SyntaxKind::NO_KW)
16786    }
16787    #[inline]
16788    pub fn standalone_token(&self) -> Option<SyntaxToken> {
16789        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
16790    }
16791    #[inline]
16792    pub fn value_token(&self) -> Option<SyntaxToken> {
16793        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16794    }
16795    #[inline]
16796    pub fn version_token(&self) -> Option<SyntaxToken> {
16797        support::token(&self.syntax, SyntaxKind::VERSION_KW)
16798    }
16799    #[inline]
16800    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
16801        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
16802    }
16803    #[inline]
16804    pub fn yes_token(&self) -> Option<SyntaxToken> {
16805        support::token(&self.syntax, SyntaxKind::YES_KW)
16806    }
16807}
16808
16809#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16810pub struct XmlRowPassingClause {
16811    pub(crate) syntax: SyntaxNode,
16812}
16813impl XmlRowPassingClause {
16814    #[inline]
16815    pub fn expr(&self) -> Option<Expr> {
16816        support::child(&self.syntax)
16817    }
16818    #[inline]
16819    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16820        support::child(&self.syntax)
16821    }
16822    #[inline]
16823    pub fn passing_token(&self) -> Option<SyntaxToken> {
16824        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16825    }
16826}
16827
16828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16829pub struct XmlSerializeFn {
16830    pub(crate) syntax: SyntaxNode,
16831}
16832impl XmlSerializeFn {
16833    #[inline]
16834    pub fn expr(&self) -> Option<Expr> {
16835        support::child(&self.syntax)
16836    }
16837    #[inline]
16838    pub fn ty(&self) -> Option<Type> {
16839        support::child(&self.syntax)
16840    }
16841    #[inline]
16842    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16843        support::token(&self.syntax, SyntaxKind::L_PAREN)
16844    }
16845    #[inline]
16846    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16847        support::token(&self.syntax, SyntaxKind::R_PAREN)
16848    }
16849    #[inline]
16850    pub fn as_token(&self) -> Option<SyntaxToken> {
16851        support::token(&self.syntax, SyntaxKind::AS_KW)
16852    }
16853    #[inline]
16854    pub fn content_token(&self) -> Option<SyntaxToken> {
16855        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16856    }
16857    #[inline]
16858    pub fn document_token(&self) -> Option<SyntaxToken> {
16859        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16860    }
16861    #[inline]
16862    pub fn indent_token(&self) -> Option<SyntaxToken> {
16863        support::token(&self.syntax, SyntaxKind::INDENT_KW)
16864    }
16865    #[inline]
16866    pub fn no_token(&self) -> Option<SyntaxToken> {
16867        support::token(&self.syntax, SyntaxKind::NO_KW)
16868    }
16869    #[inline]
16870    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
16871        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
16872    }
16873}
16874
16875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16876pub struct XmlTable {
16877    pub(crate) syntax: SyntaxNode,
16878}
16879impl XmlTable {
16880    #[inline]
16881    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
16882        support::child(&self.syntax)
16883    }
16884    #[inline]
16885    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
16886        support::child(&self.syntax)
16887    }
16888    #[inline]
16889    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
16890        support::child(&self.syntax)
16891    }
16892    #[inline]
16893    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16894        support::token(&self.syntax, SyntaxKind::L_PAREN)
16895    }
16896    #[inline]
16897    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16898        support::token(&self.syntax, SyntaxKind::R_PAREN)
16899    }
16900    #[inline]
16901    pub fn comma_token(&self) -> Option<SyntaxToken> {
16902        support::token(&self.syntax, SyntaxKind::COMMA)
16903    }
16904    #[inline]
16905    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
16906        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
16907    }
16908    #[inline]
16909    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
16910        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
16911    }
16912}
16913
16914#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16915pub struct XmlTableColumn {
16916    pub(crate) syntax: SyntaxNode,
16917}
16918impl XmlTableColumn {
16919    #[inline]
16920    pub fn name(&self) -> Option<Name> {
16921        support::child(&self.syntax)
16922    }
16923    #[inline]
16924    pub fn ty(&self) -> Option<Type> {
16925        support::child(&self.syntax)
16926    }
16927    #[inline]
16928    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
16929        support::child(&self.syntax)
16930    }
16931    #[inline]
16932    pub fn for_token(&self) -> Option<SyntaxToken> {
16933        support::token(&self.syntax, SyntaxKind::FOR_KW)
16934    }
16935    #[inline]
16936    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
16937        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
16938    }
16939}
16940
16941#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16942pub struct XmlTableColumnList {
16943    pub(crate) syntax: SyntaxNode,
16944}
16945impl XmlTableColumnList {
16946    #[inline]
16947    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
16948        support::children(&self.syntax)
16949    }
16950    #[inline]
16951    pub fn columns_token(&self) -> Option<SyntaxToken> {
16952        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
16953    }
16954}
16955
16956#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16957pub enum AlterColumnOption {
16958    AddGenerated(AddGenerated),
16959    DropDefault(DropDefault),
16960    DropExpression(DropExpression),
16961    DropIdentity(DropIdentity),
16962    DropNotNull(DropNotNull),
16963    Inherit(Inherit),
16964    NoInherit(NoInherit),
16965    ResetOptions(ResetOptions),
16966    Restart(Restart),
16967    SetCompression(SetCompression),
16968    SetDefault(SetDefault),
16969    SetExpression(SetExpression),
16970    SetGenerated(SetGenerated),
16971    SetGeneratedOptions(SetGeneratedOptions),
16972    SetNotNull(SetNotNull),
16973    SetOptions(SetOptions),
16974    SetOptionsList(SetOptionsList),
16975    SetSequenceOption(SetSequenceOption),
16976    SetStatistics(SetStatistics),
16977    SetStorage(SetStorage),
16978    SetType(SetType),
16979}
16980
16981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16982pub enum AlterDomainAction {
16983    AddConstraint(AddConstraint),
16984    DropConstraint(DropConstraint),
16985    DropDefault(DropDefault),
16986    DropNotNull(DropNotNull),
16987    OwnerTo(OwnerTo),
16988    RenameConstraint(RenameConstraint),
16989    RenameTo(RenameTo),
16990    SetDefault(SetDefault),
16991    SetNotNull(SetNotNull),
16992    SetSchema(SetSchema),
16993    ValidateConstraint(ValidateConstraint),
16994}
16995
16996#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16997pub enum AlterIndexAction {
16998    AlterSetStatistics(AlterSetStatistics),
16999    AttachPartition(AttachPartition),
17000    DependsOnExtension(DependsOnExtension),
17001    NoDependsOnExtension(NoDependsOnExtension),
17002    RenameTo(RenameTo),
17003    ResetOptions(ResetOptions),
17004    SetOptions(SetOptions),
17005    SetTablespace(SetTablespace),
17006}
17007
17008#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17009pub enum AlterMaterializedViewAction {
17010    DependsOnExtension(DependsOnExtension),
17011    NoDependsOnExtension(NoDependsOnExtension),
17012    RenameColumn(RenameColumn),
17013    RenameTo(RenameTo),
17014    SetSchema(SetSchema),
17015    AlterTableAction(AlterTableAction),
17016}
17017
17018#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17019pub enum AlterTableAction {
17020    AddColumn(AddColumn),
17021    AddConstraint(AddConstraint),
17022    AlterColumn(AlterColumn),
17023    AlterConstraint(AlterConstraint),
17024    AttachPartition(AttachPartition),
17025    ClusterOn(ClusterOn),
17026    DetachPartition(DetachPartition),
17027    DisableRls(DisableRls),
17028    DisableRule(DisableRule),
17029    DisableTrigger(DisableTrigger),
17030    DropColumn(DropColumn),
17031    DropConstraint(DropConstraint),
17032    EnableAlwaysRule(EnableAlwaysRule),
17033    EnableAlwaysTrigger(EnableAlwaysTrigger),
17034    EnableReplicaRule(EnableReplicaRule),
17035    EnableReplicaTrigger(EnableReplicaTrigger),
17036    EnableRls(EnableRls),
17037    EnableRule(EnableRule),
17038    EnableTrigger(EnableTrigger),
17039    ForceRls(ForceRls),
17040    InheritTable(InheritTable),
17041    MergePartitions(MergePartitions),
17042    NoForceRls(NoForceRls),
17043    NoInheritTable(NoInheritTable),
17044    NotOf(NotOf),
17045    OfType(OfType),
17046    OptionItemList(OptionItemList),
17047    OwnerTo(OwnerTo),
17048    RenameColumn(RenameColumn),
17049    RenameConstraint(RenameConstraint),
17050    RenameTo(RenameTo),
17051    ReplicaIdentity(ReplicaIdentity),
17052    ResetOptions(ResetOptions),
17053    SetAccessMethod(SetAccessMethod),
17054    SetLogged(SetLogged),
17055    SetOptions(SetOptions),
17056    SetSchema(SetSchema),
17057    SetTablespace(SetTablespace),
17058    SetUnlogged(SetUnlogged),
17059    SetWithoutCluster(SetWithoutCluster),
17060    SetWithoutOids(SetWithoutOids),
17061    SplitPartition(SplitPartition),
17062    ValidateConstraint(ValidateConstraint),
17063}
17064
17065#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17066pub enum ColumnConstraint {
17067    CheckConstraint(CheckConstraint),
17068    DefaultConstraint(DefaultConstraint),
17069    ExcludeConstraint(ExcludeConstraint),
17070    NotNullConstraint(NotNullConstraint),
17071    PrimaryKeyConstraint(PrimaryKeyConstraint),
17072    ReferencesConstraint(ReferencesConstraint),
17073    UniqueConstraint(UniqueConstraint),
17074}
17075
17076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17077pub enum ConfigValue {
17078    Literal(Literal),
17079    NameRef(NameRef),
17080}
17081
17082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17083pub enum ConflictAction {
17084    ConflictDoNothing(ConflictDoNothing),
17085    ConflictDoSelect(ConflictDoSelect),
17086    ConflictDoUpdateSet(ConflictDoUpdateSet),
17087}
17088
17089#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17090pub enum ConflictTarget {
17091    ConflictOnConstraint(ConflictOnConstraint),
17092    ConflictOnIndex(ConflictOnIndex),
17093}
17094
17095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17096pub enum Constraint {
17097    CheckConstraint(CheckConstraint),
17098    DefaultConstraint(DefaultConstraint),
17099    ForeignKeyConstraint(ForeignKeyConstraint),
17100    GeneratedConstraint(GeneratedConstraint),
17101    NotNullConstraint(NotNullConstraint),
17102    NullConstraint(NullConstraint),
17103    PrimaryKeyConstraint(PrimaryKeyConstraint),
17104    ReferencesConstraint(ReferencesConstraint),
17105    UniqueConstraint(UniqueConstraint),
17106}
17107
17108#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17109pub enum ExplainStmt {
17110    CompoundSelect(CompoundSelect),
17111    CreateMaterializedView(CreateMaterializedView),
17112    CreateTableAs(CreateTableAs),
17113    Declare(Declare),
17114    Delete(Delete),
17115    Execute(Execute),
17116    Insert(Insert),
17117    Merge(Merge),
17118    ParenSelect(ParenSelect),
17119    Select(Select),
17120    SelectInto(SelectInto),
17121    Table(Table),
17122    Update(Update),
17123    Values(Values),
17124}
17125
17126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17127pub enum Expr {
17128    ArrayExpr(ArrayExpr),
17129    BetweenExpr(BetweenExpr),
17130    BinExpr(BinExpr),
17131    CallExpr(CallExpr),
17132    CaseExpr(CaseExpr),
17133    CastExpr(CastExpr),
17134    FieldExpr(FieldExpr),
17135    IndexExpr(IndexExpr),
17136    Literal(Literal),
17137    NameRef(NameRef),
17138    ParenExpr(ParenExpr),
17139    PostfixExpr(PostfixExpr),
17140    PrefixExpr(PrefixExpr),
17141    SliceExpr(SliceExpr),
17142    TupleExpr(TupleExpr),
17143}
17144
17145#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17146pub enum FuncOption {
17147    AsFuncOption(AsFuncOption),
17148    BeginFuncOptionList(BeginFuncOptionList),
17149    CostFuncOption(CostFuncOption),
17150    LanguageFuncOption(LanguageFuncOption),
17151    LeakproofFuncOption(LeakproofFuncOption),
17152    ParallelFuncOption(ParallelFuncOption),
17153    ResetFuncOption(ResetFuncOption),
17154    ReturnFuncOption(ReturnFuncOption),
17155    RowsFuncOption(RowsFuncOption),
17156    SecurityFuncOption(SecurityFuncOption),
17157    SetFuncOption(SetFuncOption),
17158    StrictFuncOption(StrictFuncOption),
17159    SupportFuncOption(SupportFuncOption),
17160    TransformFuncOption(TransformFuncOption),
17161    VolatilityFuncOption(VolatilityFuncOption),
17162    WindowFuncOption(WindowFuncOption),
17163}
17164
17165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17166pub enum GroupBy {
17167    GroupingCube(GroupingCube),
17168    GroupingExpr(GroupingExpr),
17169    GroupingRollup(GroupingRollup),
17170    GroupingSets(GroupingSets),
17171}
17172
17173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17174pub enum JoinType {
17175    JoinCross(JoinCross),
17176    JoinFull(JoinFull),
17177    JoinInner(JoinInner),
17178    JoinLeft(JoinLeft),
17179    JoinRight(JoinRight),
17180}
17181
17182#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17183pub enum JsonBehavior {
17184    JsonBehaviorDefault(JsonBehaviorDefault),
17185    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
17186    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
17187    JsonBehaviorError(JsonBehaviorError),
17188    JsonBehaviorFalse(JsonBehaviorFalse),
17189    JsonBehaviorNull(JsonBehaviorNull),
17190    JsonBehaviorTrue(JsonBehaviorTrue),
17191    JsonBehaviorUnknown(JsonBehaviorUnknown),
17192}
17193
17194#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17195pub enum MatchType {
17196    MatchFull(MatchFull),
17197    MatchPartial(MatchPartial),
17198    MatchSimple(MatchSimple),
17199}
17200
17201#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17202pub enum MergeAction {
17203    MergeDelete(MergeDelete),
17204    MergeDoNothing(MergeDoNothing),
17205    MergeInsert(MergeInsert),
17206    MergeUpdate(MergeUpdate),
17207}
17208
17209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17210pub enum MergeWhenClause {
17211    MergeWhenMatched(MergeWhenMatched),
17212    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
17213    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
17214}
17215
17216#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17217pub enum OnCommitAction {
17218    DeleteRows(DeleteRows),
17219    Drop(Drop),
17220    PreserveRows(PreserveRows),
17221}
17222
17223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17224pub enum ParamMode {
17225    ParamIn(ParamIn),
17226    ParamInOut(ParamInOut),
17227    ParamOut(ParamOut),
17228    ParamVariadic(ParamVariadic),
17229}
17230
17231#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17232pub enum PartitionType {
17233    PartitionDefault(PartitionDefault),
17234    PartitionForValuesFrom(PartitionForValuesFrom),
17235    PartitionForValuesIn(PartitionForValuesIn),
17236    PartitionForValuesWith(PartitionForValuesWith),
17237}
17238
17239#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17240pub enum PreparableStmt {
17241    CompoundSelect(CompoundSelect),
17242    Delete(Delete),
17243    Insert(Insert),
17244    Merge(Merge),
17245    Select(Select),
17246    SelectInto(SelectInto),
17247    Table(Table),
17248    Update(Update),
17249    Values(Values),
17250}
17251
17252#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17253pub enum RefAction {
17254    Cascade(Cascade),
17255    NoAction(NoAction),
17256    Restrict(Restrict),
17257    SetDefaultColumns(SetDefaultColumns),
17258    SetNullColumns(SetNullColumns),
17259}
17260
17261#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17262pub enum SchemaElement {
17263    CreateIndex(CreateIndex),
17264    CreateSequence(CreateSequence),
17265    CreateTable(CreateTable),
17266    CreateTrigger(CreateTrigger),
17267    CreateView(CreateView),
17268    Grant(Grant),
17269}
17270
17271#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17272pub enum SelectVariant {
17273    CompoundSelect(CompoundSelect),
17274    ParenSelect(ParenSelect),
17275    Select(Select),
17276    SelectInto(SelectInto),
17277    Table(Table),
17278    Values(Values),
17279}
17280
17281#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17282pub enum SetColumn {
17283    SetMultipleColumns(SetMultipleColumns),
17284    SetSingleColumn(SetSingleColumn),
17285}
17286
17287#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17288pub enum Stmt {
17289    AlterAggregate(AlterAggregate),
17290    AlterCollation(AlterCollation),
17291    AlterConversion(AlterConversion),
17292    AlterDatabase(AlterDatabase),
17293    AlterDefaultPrivileges(AlterDefaultPrivileges),
17294    AlterDomain(AlterDomain),
17295    AlterEventTrigger(AlterEventTrigger),
17296    AlterExtension(AlterExtension),
17297    AlterForeignDataWrapper(AlterForeignDataWrapper),
17298    AlterForeignTable(AlterForeignTable),
17299    AlterFunction(AlterFunction),
17300    AlterGroup(AlterGroup),
17301    AlterIndex(AlterIndex),
17302    AlterLanguage(AlterLanguage),
17303    AlterLargeObject(AlterLargeObject),
17304    AlterMaterializedView(AlterMaterializedView),
17305    AlterOperator(AlterOperator),
17306    AlterOperatorClass(AlterOperatorClass),
17307    AlterOperatorFamily(AlterOperatorFamily),
17308    AlterPolicy(AlterPolicy),
17309    AlterProcedure(AlterProcedure),
17310    AlterPublication(AlterPublication),
17311    AlterRole(AlterRole),
17312    AlterRoutine(AlterRoutine),
17313    AlterRule(AlterRule),
17314    AlterSchema(AlterSchema),
17315    AlterSequence(AlterSequence),
17316    AlterServer(AlterServer),
17317    AlterStatistics(AlterStatistics),
17318    AlterSubscription(AlterSubscription),
17319    AlterSystem(AlterSystem),
17320    AlterTable(AlterTable),
17321    AlterTablespace(AlterTablespace),
17322    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
17323    AlterTextSearchDictionary(AlterTextSearchDictionary),
17324    AlterTextSearchParser(AlterTextSearchParser),
17325    AlterTextSearchTemplate(AlterTextSearchTemplate),
17326    AlterTrigger(AlterTrigger),
17327    AlterType(AlterType),
17328    AlterUser(AlterUser),
17329    AlterUserMapping(AlterUserMapping),
17330    AlterView(AlterView),
17331    Analyze(Analyze),
17332    Begin(Begin),
17333    Call(Call),
17334    Checkpoint(Checkpoint),
17335    Close(Close),
17336    Cluster(Cluster),
17337    CommentOn(CommentOn),
17338    Commit(Commit),
17339    Copy(Copy),
17340    CreateAccessMethod(CreateAccessMethod),
17341    CreateAggregate(CreateAggregate),
17342    CreateCast(CreateCast),
17343    CreateCollation(CreateCollation),
17344    CreateConversion(CreateConversion),
17345    CreateDatabase(CreateDatabase),
17346    CreateDomain(CreateDomain),
17347    CreateEventTrigger(CreateEventTrigger),
17348    CreateExtension(CreateExtension),
17349    CreateForeignDataWrapper(CreateForeignDataWrapper),
17350    CreateForeignTable(CreateForeignTable),
17351    CreateFunction(CreateFunction),
17352    CreateGroup(CreateGroup),
17353    CreateIndex(CreateIndex),
17354    CreateLanguage(CreateLanguage),
17355    CreateMaterializedView(CreateMaterializedView),
17356    CreateOperator(CreateOperator),
17357    CreateOperatorClass(CreateOperatorClass),
17358    CreateOperatorFamily(CreateOperatorFamily),
17359    CreatePolicy(CreatePolicy),
17360    CreateProcedure(CreateProcedure),
17361    CreatePublication(CreatePublication),
17362    CreateRole(CreateRole),
17363    CreateRule(CreateRule),
17364    CreateSchema(CreateSchema),
17365    CreateSequence(CreateSequence),
17366    CreateServer(CreateServer),
17367    CreateStatistics(CreateStatistics),
17368    CreateSubscription(CreateSubscription),
17369    CreateTable(CreateTable),
17370    CreateTableAs(CreateTableAs),
17371    CreateTablespace(CreateTablespace),
17372    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
17373    CreateTextSearchDictionary(CreateTextSearchDictionary),
17374    CreateTextSearchParser(CreateTextSearchParser),
17375    CreateTextSearchTemplate(CreateTextSearchTemplate),
17376    CreateTransform(CreateTransform),
17377    CreateTrigger(CreateTrigger),
17378    CreateType(CreateType),
17379    CreateUser(CreateUser),
17380    CreateUserMapping(CreateUserMapping),
17381    CreateView(CreateView),
17382    Deallocate(Deallocate),
17383    Declare(Declare),
17384    Delete(Delete),
17385    Discard(Discard),
17386    Do(Do),
17387    DropAccessMethod(DropAccessMethod),
17388    DropAggregate(DropAggregate),
17389    DropCast(DropCast),
17390    DropCollation(DropCollation),
17391    DropConversion(DropConversion),
17392    DropDatabase(DropDatabase),
17393    DropDomain(DropDomain),
17394    DropEventTrigger(DropEventTrigger),
17395    DropExtension(DropExtension),
17396    DropForeignDataWrapper(DropForeignDataWrapper),
17397    DropForeignTable(DropForeignTable),
17398    DropFunction(DropFunction),
17399    DropGroup(DropGroup),
17400    DropIndex(DropIndex),
17401    DropLanguage(DropLanguage),
17402    DropMaterializedView(DropMaterializedView),
17403    DropOperator(DropOperator),
17404    DropOperatorClass(DropOperatorClass),
17405    DropOperatorFamily(DropOperatorFamily),
17406    DropOwned(DropOwned),
17407    DropPolicy(DropPolicy),
17408    DropProcedure(DropProcedure),
17409    DropPublication(DropPublication),
17410    DropRole(DropRole),
17411    DropRoutine(DropRoutine),
17412    DropRule(DropRule),
17413    DropSchema(DropSchema),
17414    DropSequence(DropSequence),
17415    DropServer(DropServer),
17416    DropStatistics(DropStatistics),
17417    DropSubscription(DropSubscription),
17418    DropTable(DropTable),
17419    DropTablespace(DropTablespace),
17420    DropTextSearchConfig(DropTextSearchConfig),
17421    DropTextSearchDict(DropTextSearchDict),
17422    DropTextSearchParser(DropTextSearchParser),
17423    DropTextSearchTemplate(DropTextSearchTemplate),
17424    DropTransform(DropTransform),
17425    DropTrigger(DropTrigger),
17426    DropType(DropType),
17427    DropUser(DropUser),
17428    DropUserMapping(DropUserMapping),
17429    DropView(DropView),
17430    Execute(Execute),
17431    Explain(Explain),
17432    Fetch(Fetch),
17433    Grant(Grant),
17434    ImportForeignSchema(ImportForeignSchema),
17435    Insert(Insert),
17436    Listen(Listen),
17437    Load(Load),
17438    Lock(Lock),
17439    Merge(Merge),
17440    Move(Move),
17441    Notify(Notify),
17442    ParenSelect(ParenSelect),
17443    Prepare(Prepare),
17444    PrepareTransaction(PrepareTransaction),
17445    Reassign(Reassign),
17446    Refresh(Refresh),
17447    Reindex(Reindex),
17448    ReleaseSavepoint(ReleaseSavepoint),
17449    Reset(Reset),
17450    ResetSessionAuth(ResetSessionAuth),
17451    Revoke(Revoke),
17452    Rollback(Rollback),
17453    Savepoint(Savepoint),
17454    SecurityLabel(SecurityLabel),
17455    Select(Select),
17456    SelectInto(SelectInto),
17457    Set(Set),
17458    SetConstraints(SetConstraints),
17459    SetRole(SetRole),
17460    SetSessionAuth(SetSessionAuth),
17461    SetTransaction(SetTransaction),
17462    Show(Show),
17463    Table(Table),
17464    Truncate(Truncate),
17465    Unlisten(Unlisten),
17466    Update(Update),
17467    Vacuum(Vacuum),
17468    Values(Values),
17469}
17470
17471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17472pub enum TableArg {
17473    Column(Column),
17474    LikeClause(LikeClause),
17475    TableConstraint(TableConstraint),
17476}
17477
17478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17479pub enum TableConstraint {
17480    CheckConstraint(CheckConstraint),
17481    ExcludeConstraint(ExcludeConstraint),
17482    ForeignKeyConstraint(ForeignKeyConstraint),
17483    PrimaryKeyConstraint(PrimaryKeyConstraint),
17484    UniqueConstraint(UniqueConstraint),
17485}
17486
17487#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17488pub enum Timezone {
17489    WithTimezone(WithTimezone),
17490    WithoutTimezone(WithoutTimezone),
17491}
17492
17493#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17494pub enum TransactionMode {
17495    Deferrable(Deferrable),
17496    NotDeferrable(NotDeferrable),
17497    ReadCommitted(ReadCommitted),
17498    ReadOnly(ReadOnly),
17499    ReadUncommitted(ReadUncommitted),
17500    ReadWrite(ReadWrite),
17501    RepeatableRead(RepeatableRead),
17502    Serializable(Serializable),
17503}
17504
17505#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17506pub enum Type {
17507    ArrayType(ArrayType),
17508    BitType(BitType),
17509    CharType(CharType),
17510    DoubleType(DoubleType),
17511    ExprType(ExprType),
17512    IntervalType(IntervalType),
17513    PathType(PathType),
17514    PercentType(PercentType),
17515    TimeType(TimeType),
17516}
17517
17518#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17519pub enum WithQuery {
17520    CompoundSelect(CompoundSelect),
17521    Delete(Delete),
17522    Insert(Insert),
17523    Merge(Merge),
17524    ParenSelect(ParenSelect),
17525    Select(Select),
17526    Table(Table),
17527    Update(Update),
17528    Values(Values),
17529}
17530impl AstNode for AddColumn {
17531    #[inline]
17532    fn can_cast(kind: SyntaxKind) -> bool {
17533        kind == SyntaxKind::ADD_COLUMN
17534    }
17535    #[inline]
17536    fn cast(syntax: SyntaxNode) -> Option<Self> {
17537        if Self::can_cast(syntax.kind()) {
17538            Some(Self { syntax })
17539        } else {
17540            None
17541        }
17542    }
17543    #[inline]
17544    fn syntax(&self) -> &SyntaxNode {
17545        &self.syntax
17546    }
17547}
17548impl AstNode for AddConstraint {
17549    #[inline]
17550    fn can_cast(kind: SyntaxKind) -> bool {
17551        kind == SyntaxKind::ADD_CONSTRAINT
17552    }
17553    #[inline]
17554    fn cast(syntax: SyntaxNode) -> Option<Self> {
17555        if Self::can_cast(syntax.kind()) {
17556            Some(Self { syntax })
17557        } else {
17558            None
17559        }
17560    }
17561    #[inline]
17562    fn syntax(&self) -> &SyntaxNode {
17563        &self.syntax
17564    }
17565}
17566impl AstNode for AddGenerated {
17567    #[inline]
17568    fn can_cast(kind: SyntaxKind) -> bool {
17569        kind == SyntaxKind::ADD_GENERATED
17570    }
17571    #[inline]
17572    fn cast(syntax: SyntaxNode) -> Option<Self> {
17573        if Self::can_cast(syntax.kind()) {
17574            Some(Self { syntax })
17575        } else {
17576            None
17577        }
17578    }
17579    #[inline]
17580    fn syntax(&self) -> &SyntaxNode {
17581        &self.syntax
17582    }
17583}
17584impl AstNode for AddOpClassOptions {
17585    #[inline]
17586    fn can_cast(kind: SyntaxKind) -> bool {
17587        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
17588    }
17589    #[inline]
17590    fn cast(syntax: SyntaxNode) -> Option<Self> {
17591        if Self::can_cast(syntax.kind()) {
17592            Some(Self { syntax })
17593        } else {
17594            None
17595        }
17596    }
17597    #[inline]
17598    fn syntax(&self) -> &SyntaxNode {
17599        &self.syntax
17600    }
17601}
17602impl AstNode for Aggregate {
17603    #[inline]
17604    fn can_cast(kind: SyntaxKind) -> bool {
17605        kind == SyntaxKind::AGGREGATE
17606    }
17607    #[inline]
17608    fn cast(syntax: SyntaxNode) -> Option<Self> {
17609        if Self::can_cast(syntax.kind()) {
17610            Some(Self { syntax })
17611        } else {
17612            None
17613        }
17614    }
17615    #[inline]
17616    fn syntax(&self) -> &SyntaxNode {
17617        &self.syntax
17618    }
17619}
17620impl AstNode for Alias {
17621    #[inline]
17622    fn can_cast(kind: SyntaxKind) -> bool {
17623        kind == SyntaxKind::ALIAS
17624    }
17625    #[inline]
17626    fn cast(syntax: SyntaxNode) -> Option<Self> {
17627        if Self::can_cast(syntax.kind()) {
17628            Some(Self { syntax })
17629        } else {
17630            None
17631        }
17632    }
17633    #[inline]
17634    fn syntax(&self) -> &SyntaxNode {
17635        &self.syntax
17636    }
17637}
17638impl AstNode for AllFn {
17639    #[inline]
17640    fn can_cast(kind: SyntaxKind) -> bool {
17641        kind == SyntaxKind::ALL_FN
17642    }
17643    #[inline]
17644    fn cast(syntax: SyntaxNode) -> Option<Self> {
17645        if Self::can_cast(syntax.kind()) {
17646            Some(Self { syntax })
17647        } else {
17648            None
17649        }
17650    }
17651    #[inline]
17652    fn syntax(&self) -> &SyntaxNode {
17653        &self.syntax
17654    }
17655}
17656impl AstNode for AlterAggregate {
17657    #[inline]
17658    fn can_cast(kind: SyntaxKind) -> bool {
17659        kind == SyntaxKind::ALTER_AGGREGATE
17660    }
17661    #[inline]
17662    fn cast(syntax: SyntaxNode) -> Option<Self> {
17663        if Self::can_cast(syntax.kind()) {
17664            Some(Self { syntax })
17665        } else {
17666            None
17667        }
17668    }
17669    #[inline]
17670    fn syntax(&self) -> &SyntaxNode {
17671        &self.syntax
17672    }
17673}
17674impl AstNode for AlterCollation {
17675    #[inline]
17676    fn can_cast(kind: SyntaxKind) -> bool {
17677        kind == SyntaxKind::ALTER_COLLATION
17678    }
17679    #[inline]
17680    fn cast(syntax: SyntaxNode) -> Option<Self> {
17681        if Self::can_cast(syntax.kind()) {
17682            Some(Self { syntax })
17683        } else {
17684            None
17685        }
17686    }
17687    #[inline]
17688    fn syntax(&self) -> &SyntaxNode {
17689        &self.syntax
17690    }
17691}
17692impl AstNode for AlterColumn {
17693    #[inline]
17694    fn can_cast(kind: SyntaxKind) -> bool {
17695        kind == SyntaxKind::ALTER_COLUMN
17696    }
17697    #[inline]
17698    fn cast(syntax: SyntaxNode) -> Option<Self> {
17699        if Self::can_cast(syntax.kind()) {
17700            Some(Self { syntax })
17701        } else {
17702            None
17703        }
17704    }
17705    #[inline]
17706    fn syntax(&self) -> &SyntaxNode {
17707        &self.syntax
17708    }
17709}
17710impl AstNode for AlterConstraint {
17711    #[inline]
17712    fn can_cast(kind: SyntaxKind) -> bool {
17713        kind == SyntaxKind::ALTER_CONSTRAINT
17714    }
17715    #[inline]
17716    fn cast(syntax: SyntaxNode) -> Option<Self> {
17717        if Self::can_cast(syntax.kind()) {
17718            Some(Self { syntax })
17719        } else {
17720            None
17721        }
17722    }
17723    #[inline]
17724    fn syntax(&self) -> &SyntaxNode {
17725        &self.syntax
17726    }
17727}
17728impl AstNode for AlterConversion {
17729    #[inline]
17730    fn can_cast(kind: SyntaxKind) -> bool {
17731        kind == SyntaxKind::ALTER_CONVERSION
17732    }
17733    #[inline]
17734    fn cast(syntax: SyntaxNode) -> Option<Self> {
17735        if Self::can_cast(syntax.kind()) {
17736            Some(Self { syntax })
17737        } else {
17738            None
17739        }
17740    }
17741    #[inline]
17742    fn syntax(&self) -> &SyntaxNode {
17743        &self.syntax
17744    }
17745}
17746impl AstNode for AlterDatabase {
17747    #[inline]
17748    fn can_cast(kind: SyntaxKind) -> bool {
17749        kind == SyntaxKind::ALTER_DATABASE
17750    }
17751    #[inline]
17752    fn cast(syntax: SyntaxNode) -> Option<Self> {
17753        if Self::can_cast(syntax.kind()) {
17754            Some(Self { syntax })
17755        } else {
17756            None
17757        }
17758    }
17759    #[inline]
17760    fn syntax(&self) -> &SyntaxNode {
17761        &self.syntax
17762    }
17763}
17764impl AstNode for AlterDefaultPrivileges {
17765    #[inline]
17766    fn can_cast(kind: SyntaxKind) -> bool {
17767        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
17768    }
17769    #[inline]
17770    fn cast(syntax: SyntaxNode) -> Option<Self> {
17771        if Self::can_cast(syntax.kind()) {
17772            Some(Self { syntax })
17773        } else {
17774            None
17775        }
17776    }
17777    #[inline]
17778    fn syntax(&self) -> &SyntaxNode {
17779        &self.syntax
17780    }
17781}
17782impl AstNode for AlterDomain {
17783    #[inline]
17784    fn can_cast(kind: SyntaxKind) -> bool {
17785        kind == SyntaxKind::ALTER_DOMAIN
17786    }
17787    #[inline]
17788    fn cast(syntax: SyntaxNode) -> Option<Self> {
17789        if Self::can_cast(syntax.kind()) {
17790            Some(Self { syntax })
17791        } else {
17792            None
17793        }
17794    }
17795    #[inline]
17796    fn syntax(&self) -> &SyntaxNode {
17797        &self.syntax
17798    }
17799}
17800impl AstNode for AlterEventTrigger {
17801    #[inline]
17802    fn can_cast(kind: SyntaxKind) -> bool {
17803        kind == SyntaxKind::ALTER_EVENT_TRIGGER
17804    }
17805    #[inline]
17806    fn cast(syntax: SyntaxNode) -> Option<Self> {
17807        if Self::can_cast(syntax.kind()) {
17808            Some(Self { syntax })
17809        } else {
17810            None
17811        }
17812    }
17813    #[inline]
17814    fn syntax(&self) -> &SyntaxNode {
17815        &self.syntax
17816    }
17817}
17818impl AstNode for AlterExtension {
17819    #[inline]
17820    fn can_cast(kind: SyntaxKind) -> bool {
17821        kind == SyntaxKind::ALTER_EXTENSION
17822    }
17823    #[inline]
17824    fn cast(syntax: SyntaxNode) -> Option<Self> {
17825        if Self::can_cast(syntax.kind()) {
17826            Some(Self { syntax })
17827        } else {
17828            None
17829        }
17830    }
17831    #[inline]
17832    fn syntax(&self) -> &SyntaxNode {
17833        &self.syntax
17834    }
17835}
17836impl AstNode for AlterForeignDataWrapper {
17837    #[inline]
17838    fn can_cast(kind: SyntaxKind) -> bool {
17839        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
17840    }
17841    #[inline]
17842    fn cast(syntax: SyntaxNode) -> Option<Self> {
17843        if Self::can_cast(syntax.kind()) {
17844            Some(Self { syntax })
17845        } else {
17846            None
17847        }
17848    }
17849    #[inline]
17850    fn syntax(&self) -> &SyntaxNode {
17851        &self.syntax
17852    }
17853}
17854impl AstNode for AlterForeignTable {
17855    #[inline]
17856    fn can_cast(kind: SyntaxKind) -> bool {
17857        kind == SyntaxKind::ALTER_FOREIGN_TABLE
17858    }
17859    #[inline]
17860    fn cast(syntax: SyntaxNode) -> Option<Self> {
17861        if Self::can_cast(syntax.kind()) {
17862            Some(Self { syntax })
17863        } else {
17864            None
17865        }
17866    }
17867    #[inline]
17868    fn syntax(&self) -> &SyntaxNode {
17869        &self.syntax
17870    }
17871}
17872impl AstNode for AlterFunction {
17873    #[inline]
17874    fn can_cast(kind: SyntaxKind) -> bool {
17875        kind == SyntaxKind::ALTER_FUNCTION
17876    }
17877    #[inline]
17878    fn cast(syntax: SyntaxNode) -> Option<Self> {
17879        if Self::can_cast(syntax.kind()) {
17880            Some(Self { syntax })
17881        } else {
17882            None
17883        }
17884    }
17885    #[inline]
17886    fn syntax(&self) -> &SyntaxNode {
17887        &self.syntax
17888    }
17889}
17890impl AstNode for AlterGroup {
17891    #[inline]
17892    fn can_cast(kind: SyntaxKind) -> bool {
17893        kind == SyntaxKind::ALTER_GROUP
17894    }
17895    #[inline]
17896    fn cast(syntax: SyntaxNode) -> Option<Self> {
17897        if Self::can_cast(syntax.kind()) {
17898            Some(Self { syntax })
17899        } else {
17900            None
17901        }
17902    }
17903    #[inline]
17904    fn syntax(&self) -> &SyntaxNode {
17905        &self.syntax
17906    }
17907}
17908impl AstNode for AlterIndex {
17909    #[inline]
17910    fn can_cast(kind: SyntaxKind) -> bool {
17911        kind == SyntaxKind::ALTER_INDEX
17912    }
17913    #[inline]
17914    fn cast(syntax: SyntaxNode) -> Option<Self> {
17915        if Self::can_cast(syntax.kind()) {
17916            Some(Self { syntax })
17917        } else {
17918            None
17919        }
17920    }
17921    #[inline]
17922    fn syntax(&self) -> &SyntaxNode {
17923        &self.syntax
17924    }
17925}
17926impl AstNode for AlterLanguage {
17927    #[inline]
17928    fn can_cast(kind: SyntaxKind) -> bool {
17929        kind == SyntaxKind::ALTER_LANGUAGE
17930    }
17931    #[inline]
17932    fn cast(syntax: SyntaxNode) -> Option<Self> {
17933        if Self::can_cast(syntax.kind()) {
17934            Some(Self { syntax })
17935        } else {
17936            None
17937        }
17938    }
17939    #[inline]
17940    fn syntax(&self) -> &SyntaxNode {
17941        &self.syntax
17942    }
17943}
17944impl AstNode for AlterLargeObject {
17945    #[inline]
17946    fn can_cast(kind: SyntaxKind) -> bool {
17947        kind == SyntaxKind::ALTER_LARGE_OBJECT
17948    }
17949    #[inline]
17950    fn cast(syntax: SyntaxNode) -> Option<Self> {
17951        if Self::can_cast(syntax.kind()) {
17952            Some(Self { syntax })
17953        } else {
17954            None
17955        }
17956    }
17957    #[inline]
17958    fn syntax(&self) -> &SyntaxNode {
17959        &self.syntax
17960    }
17961}
17962impl AstNode for AlterMaterializedView {
17963    #[inline]
17964    fn can_cast(kind: SyntaxKind) -> bool {
17965        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
17966    }
17967    #[inline]
17968    fn cast(syntax: SyntaxNode) -> Option<Self> {
17969        if Self::can_cast(syntax.kind()) {
17970            Some(Self { syntax })
17971        } else {
17972            None
17973        }
17974    }
17975    #[inline]
17976    fn syntax(&self) -> &SyntaxNode {
17977        &self.syntax
17978    }
17979}
17980impl AstNode for AlterOperator {
17981    #[inline]
17982    fn can_cast(kind: SyntaxKind) -> bool {
17983        kind == SyntaxKind::ALTER_OPERATOR
17984    }
17985    #[inline]
17986    fn cast(syntax: SyntaxNode) -> Option<Self> {
17987        if Self::can_cast(syntax.kind()) {
17988            Some(Self { syntax })
17989        } else {
17990            None
17991        }
17992    }
17993    #[inline]
17994    fn syntax(&self) -> &SyntaxNode {
17995        &self.syntax
17996    }
17997}
17998impl AstNode for AlterOperatorClass {
17999    #[inline]
18000    fn can_cast(kind: SyntaxKind) -> bool {
18001        kind == SyntaxKind::ALTER_OPERATOR_CLASS
18002    }
18003    #[inline]
18004    fn cast(syntax: SyntaxNode) -> Option<Self> {
18005        if Self::can_cast(syntax.kind()) {
18006            Some(Self { syntax })
18007        } else {
18008            None
18009        }
18010    }
18011    #[inline]
18012    fn syntax(&self) -> &SyntaxNode {
18013        &self.syntax
18014    }
18015}
18016impl AstNode for AlterOperatorFamily {
18017    #[inline]
18018    fn can_cast(kind: SyntaxKind) -> bool {
18019        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
18020    }
18021    #[inline]
18022    fn cast(syntax: SyntaxNode) -> Option<Self> {
18023        if Self::can_cast(syntax.kind()) {
18024            Some(Self { syntax })
18025        } else {
18026            None
18027        }
18028    }
18029    #[inline]
18030    fn syntax(&self) -> &SyntaxNode {
18031        &self.syntax
18032    }
18033}
18034impl AstNode for AlterOption {
18035    #[inline]
18036    fn can_cast(kind: SyntaxKind) -> bool {
18037        kind == SyntaxKind::ALTER_OPTION
18038    }
18039    #[inline]
18040    fn cast(syntax: SyntaxNode) -> Option<Self> {
18041        if Self::can_cast(syntax.kind()) {
18042            Some(Self { syntax })
18043        } else {
18044            None
18045        }
18046    }
18047    #[inline]
18048    fn syntax(&self) -> &SyntaxNode {
18049        &self.syntax
18050    }
18051}
18052impl AstNode for AlterOptionList {
18053    #[inline]
18054    fn can_cast(kind: SyntaxKind) -> bool {
18055        kind == SyntaxKind::ALTER_OPTION_LIST
18056    }
18057    #[inline]
18058    fn cast(syntax: SyntaxNode) -> Option<Self> {
18059        if Self::can_cast(syntax.kind()) {
18060            Some(Self { syntax })
18061        } else {
18062            None
18063        }
18064    }
18065    #[inline]
18066    fn syntax(&self) -> &SyntaxNode {
18067        &self.syntax
18068    }
18069}
18070impl AstNode for AlterPolicy {
18071    #[inline]
18072    fn can_cast(kind: SyntaxKind) -> bool {
18073        kind == SyntaxKind::ALTER_POLICY
18074    }
18075    #[inline]
18076    fn cast(syntax: SyntaxNode) -> Option<Self> {
18077        if Self::can_cast(syntax.kind()) {
18078            Some(Self { syntax })
18079        } else {
18080            None
18081        }
18082    }
18083    #[inline]
18084    fn syntax(&self) -> &SyntaxNode {
18085        &self.syntax
18086    }
18087}
18088impl AstNode for AlterProcedure {
18089    #[inline]
18090    fn can_cast(kind: SyntaxKind) -> bool {
18091        kind == SyntaxKind::ALTER_PROCEDURE
18092    }
18093    #[inline]
18094    fn cast(syntax: SyntaxNode) -> Option<Self> {
18095        if Self::can_cast(syntax.kind()) {
18096            Some(Self { syntax })
18097        } else {
18098            None
18099        }
18100    }
18101    #[inline]
18102    fn syntax(&self) -> &SyntaxNode {
18103        &self.syntax
18104    }
18105}
18106impl AstNode for AlterPublication {
18107    #[inline]
18108    fn can_cast(kind: SyntaxKind) -> bool {
18109        kind == SyntaxKind::ALTER_PUBLICATION
18110    }
18111    #[inline]
18112    fn cast(syntax: SyntaxNode) -> Option<Self> {
18113        if Self::can_cast(syntax.kind()) {
18114            Some(Self { syntax })
18115        } else {
18116            None
18117        }
18118    }
18119    #[inline]
18120    fn syntax(&self) -> &SyntaxNode {
18121        &self.syntax
18122    }
18123}
18124impl AstNode for AlterRole {
18125    #[inline]
18126    fn can_cast(kind: SyntaxKind) -> bool {
18127        kind == SyntaxKind::ALTER_ROLE
18128    }
18129    #[inline]
18130    fn cast(syntax: SyntaxNode) -> Option<Self> {
18131        if Self::can_cast(syntax.kind()) {
18132            Some(Self { syntax })
18133        } else {
18134            None
18135        }
18136    }
18137    #[inline]
18138    fn syntax(&self) -> &SyntaxNode {
18139        &self.syntax
18140    }
18141}
18142impl AstNode for AlterRoutine {
18143    #[inline]
18144    fn can_cast(kind: SyntaxKind) -> bool {
18145        kind == SyntaxKind::ALTER_ROUTINE
18146    }
18147    #[inline]
18148    fn cast(syntax: SyntaxNode) -> Option<Self> {
18149        if Self::can_cast(syntax.kind()) {
18150            Some(Self { syntax })
18151        } else {
18152            None
18153        }
18154    }
18155    #[inline]
18156    fn syntax(&self) -> &SyntaxNode {
18157        &self.syntax
18158    }
18159}
18160impl AstNode for AlterRule {
18161    #[inline]
18162    fn can_cast(kind: SyntaxKind) -> bool {
18163        kind == SyntaxKind::ALTER_RULE
18164    }
18165    #[inline]
18166    fn cast(syntax: SyntaxNode) -> Option<Self> {
18167        if Self::can_cast(syntax.kind()) {
18168            Some(Self { syntax })
18169        } else {
18170            None
18171        }
18172    }
18173    #[inline]
18174    fn syntax(&self) -> &SyntaxNode {
18175        &self.syntax
18176    }
18177}
18178impl AstNode for AlterSchema {
18179    #[inline]
18180    fn can_cast(kind: SyntaxKind) -> bool {
18181        kind == SyntaxKind::ALTER_SCHEMA
18182    }
18183    #[inline]
18184    fn cast(syntax: SyntaxNode) -> Option<Self> {
18185        if Self::can_cast(syntax.kind()) {
18186            Some(Self { syntax })
18187        } else {
18188            None
18189        }
18190    }
18191    #[inline]
18192    fn syntax(&self) -> &SyntaxNode {
18193        &self.syntax
18194    }
18195}
18196impl AstNode for AlterSequence {
18197    #[inline]
18198    fn can_cast(kind: SyntaxKind) -> bool {
18199        kind == SyntaxKind::ALTER_SEQUENCE
18200    }
18201    #[inline]
18202    fn cast(syntax: SyntaxNode) -> Option<Self> {
18203        if Self::can_cast(syntax.kind()) {
18204            Some(Self { syntax })
18205        } else {
18206            None
18207        }
18208    }
18209    #[inline]
18210    fn syntax(&self) -> &SyntaxNode {
18211        &self.syntax
18212    }
18213}
18214impl AstNode for AlterServer {
18215    #[inline]
18216    fn can_cast(kind: SyntaxKind) -> bool {
18217        kind == SyntaxKind::ALTER_SERVER
18218    }
18219    #[inline]
18220    fn cast(syntax: SyntaxNode) -> Option<Self> {
18221        if Self::can_cast(syntax.kind()) {
18222            Some(Self { syntax })
18223        } else {
18224            None
18225        }
18226    }
18227    #[inline]
18228    fn syntax(&self) -> &SyntaxNode {
18229        &self.syntax
18230    }
18231}
18232impl AstNode for AlterSetStatistics {
18233    #[inline]
18234    fn can_cast(kind: SyntaxKind) -> bool {
18235        kind == SyntaxKind::ALTER_SET_STATISTICS
18236    }
18237    #[inline]
18238    fn cast(syntax: SyntaxNode) -> Option<Self> {
18239        if Self::can_cast(syntax.kind()) {
18240            Some(Self { syntax })
18241        } else {
18242            None
18243        }
18244    }
18245    #[inline]
18246    fn syntax(&self) -> &SyntaxNode {
18247        &self.syntax
18248    }
18249}
18250impl AstNode for AlterStatistics {
18251    #[inline]
18252    fn can_cast(kind: SyntaxKind) -> bool {
18253        kind == SyntaxKind::ALTER_STATISTICS
18254    }
18255    #[inline]
18256    fn cast(syntax: SyntaxNode) -> Option<Self> {
18257        if Self::can_cast(syntax.kind()) {
18258            Some(Self { syntax })
18259        } else {
18260            None
18261        }
18262    }
18263    #[inline]
18264    fn syntax(&self) -> &SyntaxNode {
18265        &self.syntax
18266    }
18267}
18268impl AstNode for AlterSubscription {
18269    #[inline]
18270    fn can_cast(kind: SyntaxKind) -> bool {
18271        kind == SyntaxKind::ALTER_SUBSCRIPTION
18272    }
18273    #[inline]
18274    fn cast(syntax: SyntaxNode) -> Option<Self> {
18275        if Self::can_cast(syntax.kind()) {
18276            Some(Self { syntax })
18277        } else {
18278            None
18279        }
18280    }
18281    #[inline]
18282    fn syntax(&self) -> &SyntaxNode {
18283        &self.syntax
18284    }
18285}
18286impl AstNode for AlterSystem {
18287    #[inline]
18288    fn can_cast(kind: SyntaxKind) -> bool {
18289        kind == SyntaxKind::ALTER_SYSTEM
18290    }
18291    #[inline]
18292    fn cast(syntax: SyntaxNode) -> Option<Self> {
18293        if Self::can_cast(syntax.kind()) {
18294            Some(Self { syntax })
18295        } else {
18296            None
18297        }
18298    }
18299    #[inline]
18300    fn syntax(&self) -> &SyntaxNode {
18301        &self.syntax
18302    }
18303}
18304impl AstNode for AlterTable {
18305    #[inline]
18306    fn can_cast(kind: SyntaxKind) -> bool {
18307        kind == SyntaxKind::ALTER_TABLE
18308    }
18309    #[inline]
18310    fn cast(syntax: SyntaxNode) -> Option<Self> {
18311        if Self::can_cast(syntax.kind()) {
18312            Some(Self { syntax })
18313        } else {
18314            None
18315        }
18316    }
18317    #[inline]
18318    fn syntax(&self) -> &SyntaxNode {
18319        &self.syntax
18320    }
18321}
18322impl AstNode for AlterTablespace {
18323    #[inline]
18324    fn can_cast(kind: SyntaxKind) -> bool {
18325        kind == SyntaxKind::ALTER_TABLESPACE
18326    }
18327    #[inline]
18328    fn cast(syntax: SyntaxNode) -> Option<Self> {
18329        if Self::can_cast(syntax.kind()) {
18330            Some(Self { syntax })
18331        } else {
18332            None
18333        }
18334    }
18335    #[inline]
18336    fn syntax(&self) -> &SyntaxNode {
18337        &self.syntax
18338    }
18339}
18340impl AstNode for AlterTextSearchConfiguration {
18341    #[inline]
18342    fn can_cast(kind: SyntaxKind) -> bool {
18343        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
18344    }
18345    #[inline]
18346    fn cast(syntax: SyntaxNode) -> Option<Self> {
18347        if Self::can_cast(syntax.kind()) {
18348            Some(Self { syntax })
18349        } else {
18350            None
18351        }
18352    }
18353    #[inline]
18354    fn syntax(&self) -> &SyntaxNode {
18355        &self.syntax
18356    }
18357}
18358impl AstNode for AlterTextSearchDictionary {
18359    #[inline]
18360    fn can_cast(kind: SyntaxKind) -> bool {
18361        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
18362    }
18363    #[inline]
18364    fn cast(syntax: SyntaxNode) -> Option<Self> {
18365        if Self::can_cast(syntax.kind()) {
18366            Some(Self { syntax })
18367        } else {
18368            None
18369        }
18370    }
18371    #[inline]
18372    fn syntax(&self) -> &SyntaxNode {
18373        &self.syntax
18374    }
18375}
18376impl AstNode for AlterTextSearchParser {
18377    #[inline]
18378    fn can_cast(kind: SyntaxKind) -> bool {
18379        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
18380    }
18381    #[inline]
18382    fn cast(syntax: SyntaxNode) -> Option<Self> {
18383        if Self::can_cast(syntax.kind()) {
18384            Some(Self { syntax })
18385        } else {
18386            None
18387        }
18388    }
18389    #[inline]
18390    fn syntax(&self) -> &SyntaxNode {
18391        &self.syntax
18392    }
18393}
18394impl AstNode for AlterTextSearchTemplate {
18395    #[inline]
18396    fn can_cast(kind: SyntaxKind) -> bool {
18397        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
18398    }
18399    #[inline]
18400    fn cast(syntax: SyntaxNode) -> Option<Self> {
18401        if Self::can_cast(syntax.kind()) {
18402            Some(Self { syntax })
18403        } else {
18404            None
18405        }
18406    }
18407    #[inline]
18408    fn syntax(&self) -> &SyntaxNode {
18409        &self.syntax
18410    }
18411}
18412impl AstNode for AlterTrigger {
18413    #[inline]
18414    fn can_cast(kind: SyntaxKind) -> bool {
18415        kind == SyntaxKind::ALTER_TRIGGER
18416    }
18417    #[inline]
18418    fn cast(syntax: SyntaxNode) -> Option<Self> {
18419        if Self::can_cast(syntax.kind()) {
18420            Some(Self { syntax })
18421        } else {
18422            None
18423        }
18424    }
18425    #[inline]
18426    fn syntax(&self) -> &SyntaxNode {
18427        &self.syntax
18428    }
18429}
18430impl AstNode for AlterType {
18431    #[inline]
18432    fn can_cast(kind: SyntaxKind) -> bool {
18433        kind == SyntaxKind::ALTER_TYPE
18434    }
18435    #[inline]
18436    fn cast(syntax: SyntaxNode) -> Option<Self> {
18437        if Self::can_cast(syntax.kind()) {
18438            Some(Self { syntax })
18439        } else {
18440            None
18441        }
18442    }
18443    #[inline]
18444    fn syntax(&self) -> &SyntaxNode {
18445        &self.syntax
18446    }
18447}
18448impl AstNode for AlterUser {
18449    #[inline]
18450    fn can_cast(kind: SyntaxKind) -> bool {
18451        kind == SyntaxKind::ALTER_USER
18452    }
18453    #[inline]
18454    fn cast(syntax: SyntaxNode) -> Option<Self> {
18455        if Self::can_cast(syntax.kind()) {
18456            Some(Self { syntax })
18457        } else {
18458            None
18459        }
18460    }
18461    #[inline]
18462    fn syntax(&self) -> &SyntaxNode {
18463        &self.syntax
18464    }
18465}
18466impl AstNode for AlterUserMapping {
18467    #[inline]
18468    fn can_cast(kind: SyntaxKind) -> bool {
18469        kind == SyntaxKind::ALTER_USER_MAPPING
18470    }
18471    #[inline]
18472    fn cast(syntax: SyntaxNode) -> Option<Self> {
18473        if Self::can_cast(syntax.kind()) {
18474            Some(Self { syntax })
18475        } else {
18476            None
18477        }
18478    }
18479    #[inline]
18480    fn syntax(&self) -> &SyntaxNode {
18481        &self.syntax
18482    }
18483}
18484impl AstNode for AlterView {
18485    #[inline]
18486    fn can_cast(kind: SyntaxKind) -> bool {
18487        kind == SyntaxKind::ALTER_VIEW
18488    }
18489    #[inline]
18490    fn cast(syntax: SyntaxNode) -> Option<Self> {
18491        if Self::can_cast(syntax.kind()) {
18492            Some(Self { syntax })
18493        } else {
18494            None
18495        }
18496    }
18497    #[inline]
18498    fn syntax(&self) -> &SyntaxNode {
18499        &self.syntax
18500    }
18501}
18502impl AstNode for Analyze {
18503    #[inline]
18504    fn can_cast(kind: SyntaxKind) -> bool {
18505        kind == SyntaxKind::ANALYZE
18506    }
18507    #[inline]
18508    fn cast(syntax: SyntaxNode) -> Option<Self> {
18509        if Self::can_cast(syntax.kind()) {
18510            Some(Self { syntax })
18511        } else {
18512            None
18513        }
18514    }
18515    #[inline]
18516    fn syntax(&self) -> &SyntaxNode {
18517        &self.syntax
18518    }
18519}
18520impl AstNode for AnyFn {
18521    #[inline]
18522    fn can_cast(kind: SyntaxKind) -> bool {
18523        kind == SyntaxKind::ANY_FN
18524    }
18525    #[inline]
18526    fn cast(syntax: SyntaxNode) -> Option<Self> {
18527        if Self::can_cast(syntax.kind()) {
18528            Some(Self { syntax })
18529        } else {
18530            None
18531        }
18532    }
18533    #[inline]
18534    fn syntax(&self) -> &SyntaxNode {
18535        &self.syntax
18536    }
18537}
18538impl AstNode for Arg {
18539    #[inline]
18540    fn can_cast(kind: SyntaxKind) -> bool {
18541        kind == SyntaxKind::ARG
18542    }
18543    #[inline]
18544    fn cast(syntax: SyntaxNode) -> Option<Self> {
18545        if Self::can_cast(syntax.kind()) {
18546            Some(Self { syntax })
18547        } else {
18548            None
18549        }
18550    }
18551    #[inline]
18552    fn syntax(&self) -> &SyntaxNode {
18553        &self.syntax
18554    }
18555}
18556impl AstNode for ArgList {
18557    #[inline]
18558    fn can_cast(kind: SyntaxKind) -> bool {
18559        kind == SyntaxKind::ARG_LIST
18560    }
18561    #[inline]
18562    fn cast(syntax: SyntaxNode) -> Option<Self> {
18563        if Self::can_cast(syntax.kind()) {
18564            Some(Self { syntax })
18565        } else {
18566            None
18567        }
18568    }
18569    #[inline]
18570    fn syntax(&self) -> &SyntaxNode {
18571        &self.syntax
18572    }
18573}
18574impl AstNode for ArrayExpr {
18575    #[inline]
18576    fn can_cast(kind: SyntaxKind) -> bool {
18577        kind == SyntaxKind::ARRAY_EXPR
18578    }
18579    #[inline]
18580    fn cast(syntax: SyntaxNode) -> Option<Self> {
18581        if Self::can_cast(syntax.kind()) {
18582            Some(Self { syntax })
18583        } else {
18584            None
18585        }
18586    }
18587    #[inline]
18588    fn syntax(&self) -> &SyntaxNode {
18589        &self.syntax
18590    }
18591}
18592impl AstNode for ArrayType {
18593    #[inline]
18594    fn can_cast(kind: SyntaxKind) -> bool {
18595        kind == SyntaxKind::ARRAY_TYPE
18596    }
18597    #[inline]
18598    fn cast(syntax: SyntaxNode) -> Option<Self> {
18599        if Self::can_cast(syntax.kind()) {
18600            Some(Self { syntax })
18601        } else {
18602            None
18603        }
18604    }
18605    #[inline]
18606    fn syntax(&self) -> &SyntaxNode {
18607        &self.syntax
18608    }
18609}
18610impl AstNode for AsFuncOption {
18611    #[inline]
18612    fn can_cast(kind: SyntaxKind) -> bool {
18613        kind == SyntaxKind::AS_FUNC_OPTION
18614    }
18615    #[inline]
18616    fn cast(syntax: SyntaxNode) -> Option<Self> {
18617        if Self::can_cast(syntax.kind()) {
18618            Some(Self { syntax })
18619        } else {
18620            None
18621        }
18622    }
18623    #[inline]
18624    fn syntax(&self) -> &SyntaxNode {
18625        &self.syntax
18626    }
18627}
18628impl AstNode for AsName {
18629    #[inline]
18630    fn can_cast(kind: SyntaxKind) -> bool {
18631        kind == SyntaxKind::AS_NAME
18632    }
18633    #[inline]
18634    fn cast(syntax: SyntaxNode) -> Option<Self> {
18635        if Self::can_cast(syntax.kind()) {
18636            Some(Self { syntax })
18637        } else {
18638            None
18639        }
18640    }
18641    #[inline]
18642    fn syntax(&self) -> &SyntaxNode {
18643        &self.syntax
18644    }
18645}
18646impl AstNode for AsPolicyType {
18647    #[inline]
18648    fn can_cast(kind: SyntaxKind) -> bool {
18649        kind == SyntaxKind::AS_POLICY_TYPE
18650    }
18651    #[inline]
18652    fn cast(syntax: SyntaxNode) -> Option<Self> {
18653        if Self::can_cast(syntax.kind()) {
18654            Some(Self { syntax })
18655        } else {
18656            None
18657        }
18658    }
18659    #[inline]
18660    fn syntax(&self) -> &SyntaxNode {
18661        &self.syntax
18662    }
18663}
18664impl AstNode for AtTimeZone {
18665    #[inline]
18666    fn can_cast(kind: SyntaxKind) -> bool {
18667        kind == SyntaxKind::AT_TIME_ZONE
18668    }
18669    #[inline]
18670    fn cast(syntax: SyntaxNode) -> Option<Self> {
18671        if Self::can_cast(syntax.kind()) {
18672            Some(Self { syntax })
18673        } else {
18674            None
18675        }
18676    }
18677    #[inline]
18678    fn syntax(&self) -> &SyntaxNode {
18679        &self.syntax
18680    }
18681}
18682impl AstNode for AttachPartition {
18683    #[inline]
18684    fn can_cast(kind: SyntaxKind) -> bool {
18685        kind == SyntaxKind::ATTACH_PARTITION
18686    }
18687    #[inline]
18688    fn cast(syntax: SyntaxNode) -> Option<Self> {
18689        if Self::can_cast(syntax.kind()) {
18690            Some(Self { syntax })
18691        } else {
18692            None
18693        }
18694    }
18695    #[inline]
18696    fn syntax(&self) -> &SyntaxNode {
18697        &self.syntax
18698    }
18699}
18700impl AstNode for AttributeList {
18701    #[inline]
18702    fn can_cast(kind: SyntaxKind) -> bool {
18703        kind == SyntaxKind::ATTRIBUTE_LIST
18704    }
18705    #[inline]
18706    fn cast(syntax: SyntaxNode) -> Option<Self> {
18707        if Self::can_cast(syntax.kind()) {
18708            Some(Self { syntax })
18709        } else {
18710            None
18711        }
18712    }
18713    #[inline]
18714    fn syntax(&self) -> &SyntaxNode {
18715        &self.syntax
18716    }
18717}
18718impl AstNode for AttributeOption {
18719    #[inline]
18720    fn can_cast(kind: SyntaxKind) -> bool {
18721        kind == SyntaxKind::ATTRIBUTE_OPTION
18722    }
18723    #[inline]
18724    fn cast(syntax: SyntaxNode) -> Option<Self> {
18725        if Self::can_cast(syntax.kind()) {
18726            Some(Self { syntax })
18727        } else {
18728            None
18729        }
18730    }
18731    #[inline]
18732    fn syntax(&self) -> &SyntaxNode {
18733        &self.syntax
18734    }
18735}
18736impl AstNode for AttributeValue {
18737    #[inline]
18738    fn can_cast(kind: SyntaxKind) -> bool {
18739        kind == SyntaxKind::ATTRIBUTE_VALUE
18740    }
18741    #[inline]
18742    fn cast(syntax: SyntaxNode) -> Option<Self> {
18743        if Self::can_cast(syntax.kind()) {
18744            Some(Self { syntax })
18745        } else {
18746            None
18747        }
18748    }
18749    #[inline]
18750    fn syntax(&self) -> &SyntaxNode {
18751        &self.syntax
18752    }
18753}
18754impl AstNode for Begin {
18755    #[inline]
18756    fn can_cast(kind: SyntaxKind) -> bool {
18757        kind == SyntaxKind::BEGIN
18758    }
18759    #[inline]
18760    fn cast(syntax: SyntaxNode) -> Option<Self> {
18761        if Self::can_cast(syntax.kind()) {
18762            Some(Self { syntax })
18763        } else {
18764            None
18765        }
18766    }
18767    #[inline]
18768    fn syntax(&self) -> &SyntaxNode {
18769        &self.syntax
18770    }
18771}
18772impl AstNode for BeginFuncOption {
18773    #[inline]
18774    fn can_cast(kind: SyntaxKind) -> bool {
18775        kind == SyntaxKind::BEGIN_FUNC_OPTION
18776    }
18777    #[inline]
18778    fn cast(syntax: SyntaxNode) -> Option<Self> {
18779        if Self::can_cast(syntax.kind()) {
18780            Some(Self { syntax })
18781        } else {
18782            None
18783        }
18784    }
18785    #[inline]
18786    fn syntax(&self) -> &SyntaxNode {
18787        &self.syntax
18788    }
18789}
18790impl AstNode for BeginFuncOptionList {
18791    #[inline]
18792    fn can_cast(kind: SyntaxKind) -> bool {
18793        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
18794    }
18795    #[inline]
18796    fn cast(syntax: SyntaxNode) -> Option<Self> {
18797        if Self::can_cast(syntax.kind()) {
18798            Some(Self { syntax })
18799        } else {
18800            None
18801        }
18802    }
18803    #[inline]
18804    fn syntax(&self) -> &SyntaxNode {
18805        &self.syntax
18806    }
18807}
18808impl AstNode for BetweenExpr {
18809    #[inline]
18810    fn can_cast(kind: SyntaxKind) -> bool {
18811        kind == SyntaxKind::BETWEEN_EXPR
18812    }
18813    #[inline]
18814    fn cast(syntax: SyntaxNode) -> Option<Self> {
18815        if Self::can_cast(syntax.kind()) {
18816            Some(Self { syntax })
18817        } else {
18818            None
18819        }
18820    }
18821    #[inline]
18822    fn syntax(&self) -> &SyntaxNode {
18823        &self.syntax
18824    }
18825}
18826impl AstNode for BinExpr {
18827    #[inline]
18828    fn can_cast(kind: SyntaxKind) -> bool {
18829        kind == SyntaxKind::BIN_EXPR
18830    }
18831    #[inline]
18832    fn cast(syntax: SyntaxNode) -> Option<Self> {
18833        if Self::can_cast(syntax.kind()) {
18834            Some(Self { syntax })
18835        } else {
18836            None
18837        }
18838    }
18839    #[inline]
18840    fn syntax(&self) -> &SyntaxNode {
18841        &self.syntax
18842    }
18843}
18844impl AstNode for BitType {
18845    #[inline]
18846    fn can_cast(kind: SyntaxKind) -> bool {
18847        kind == SyntaxKind::BIT_TYPE
18848    }
18849    #[inline]
18850    fn cast(syntax: SyntaxNode) -> Option<Self> {
18851        if Self::can_cast(syntax.kind()) {
18852            Some(Self { syntax })
18853        } else {
18854            None
18855        }
18856    }
18857    #[inline]
18858    fn syntax(&self) -> &SyntaxNode {
18859        &self.syntax
18860    }
18861}
18862impl AstNode for Call {
18863    #[inline]
18864    fn can_cast(kind: SyntaxKind) -> bool {
18865        kind == SyntaxKind::CALL
18866    }
18867    #[inline]
18868    fn cast(syntax: SyntaxNode) -> Option<Self> {
18869        if Self::can_cast(syntax.kind()) {
18870            Some(Self { syntax })
18871        } else {
18872            None
18873        }
18874    }
18875    #[inline]
18876    fn syntax(&self) -> &SyntaxNode {
18877        &self.syntax
18878    }
18879}
18880impl AstNode for CallExpr {
18881    #[inline]
18882    fn can_cast(kind: SyntaxKind) -> bool {
18883        kind == SyntaxKind::CALL_EXPR
18884    }
18885    #[inline]
18886    fn cast(syntax: SyntaxNode) -> Option<Self> {
18887        if Self::can_cast(syntax.kind()) {
18888            Some(Self { syntax })
18889        } else {
18890            None
18891        }
18892    }
18893    #[inline]
18894    fn syntax(&self) -> &SyntaxNode {
18895        &self.syntax
18896    }
18897}
18898impl AstNode for Cascade {
18899    #[inline]
18900    fn can_cast(kind: SyntaxKind) -> bool {
18901        kind == SyntaxKind::CASCADE
18902    }
18903    #[inline]
18904    fn cast(syntax: SyntaxNode) -> Option<Self> {
18905        if Self::can_cast(syntax.kind()) {
18906            Some(Self { syntax })
18907        } else {
18908            None
18909        }
18910    }
18911    #[inline]
18912    fn syntax(&self) -> &SyntaxNode {
18913        &self.syntax
18914    }
18915}
18916impl AstNode for CaseExpr {
18917    #[inline]
18918    fn can_cast(kind: SyntaxKind) -> bool {
18919        kind == SyntaxKind::CASE_EXPR
18920    }
18921    #[inline]
18922    fn cast(syntax: SyntaxNode) -> Option<Self> {
18923        if Self::can_cast(syntax.kind()) {
18924            Some(Self { syntax })
18925        } else {
18926            None
18927        }
18928    }
18929    #[inline]
18930    fn syntax(&self) -> &SyntaxNode {
18931        &self.syntax
18932    }
18933}
18934impl AstNode for CastExpr {
18935    #[inline]
18936    fn can_cast(kind: SyntaxKind) -> bool {
18937        kind == SyntaxKind::CAST_EXPR
18938    }
18939    #[inline]
18940    fn cast(syntax: SyntaxNode) -> Option<Self> {
18941        if Self::can_cast(syntax.kind()) {
18942            Some(Self { syntax })
18943        } else {
18944            None
18945        }
18946    }
18947    #[inline]
18948    fn syntax(&self) -> &SyntaxNode {
18949        &self.syntax
18950    }
18951}
18952impl AstNode for CastSig {
18953    #[inline]
18954    fn can_cast(kind: SyntaxKind) -> bool {
18955        kind == SyntaxKind::CAST_SIG
18956    }
18957    #[inline]
18958    fn cast(syntax: SyntaxNode) -> Option<Self> {
18959        if Self::can_cast(syntax.kind()) {
18960            Some(Self { syntax })
18961        } else {
18962            None
18963        }
18964    }
18965    #[inline]
18966    fn syntax(&self) -> &SyntaxNode {
18967        &self.syntax
18968    }
18969}
18970impl AstNode for CharType {
18971    #[inline]
18972    fn can_cast(kind: SyntaxKind) -> bool {
18973        kind == SyntaxKind::CHAR_TYPE
18974    }
18975    #[inline]
18976    fn cast(syntax: SyntaxNode) -> Option<Self> {
18977        if Self::can_cast(syntax.kind()) {
18978            Some(Self { syntax })
18979        } else {
18980            None
18981        }
18982    }
18983    #[inline]
18984    fn syntax(&self) -> &SyntaxNode {
18985        &self.syntax
18986    }
18987}
18988impl AstNode for CheckConstraint {
18989    #[inline]
18990    fn can_cast(kind: SyntaxKind) -> bool {
18991        kind == SyntaxKind::CHECK_CONSTRAINT
18992    }
18993    #[inline]
18994    fn cast(syntax: SyntaxNode) -> Option<Self> {
18995        if Self::can_cast(syntax.kind()) {
18996            Some(Self { syntax })
18997        } else {
18998            None
18999        }
19000    }
19001    #[inline]
19002    fn syntax(&self) -> &SyntaxNode {
19003        &self.syntax
19004    }
19005}
19006impl AstNode for Checkpoint {
19007    #[inline]
19008    fn can_cast(kind: SyntaxKind) -> bool {
19009        kind == SyntaxKind::CHECKPOINT
19010    }
19011    #[inline]
19012    fn cast(syntax: SyntaxNode) -> Option<Self> {
19013        if Self::can_cast(syntax.kind()) {
19014            Some(Self { syntax })
19015        } else {
19016            None
19017        }
19018    }
19019    #[inline]
19020    fn syntax(&self) -> &SyntaxNode {
19021        &self.syntax
19022    }
19023}
19024impl AstNode for Close {
19025    #[inline]
19026    fn can_cast(kind: SyntaxKind) -> bool {
19027        kind == SyntaxKind::CLOSE
19028    }
19029    #[inline]
19030    fn cast(syntax: SyntaxNode) -> Option<Self> {
19031        if Self::can_cast(syntax.kind()) {
19032            Some(Self { syntax })
19033        } else {
19034            None
19035        }
19036    }
19037    #[inline]
19038    fn syntax(&self) -> &SyntaxNode {
19039        &self.syntax
19040    }
19041}
19042impl AstNode for Cluster {
19043    #[inline]
19044    fn can_cast(kind: SyntaxKind) -> bool {
19045        kind == SyntaxKind::CLUSTER
19046    }
19047    #[inline]
19048    fn cast(syntax: SyntaxNode) -> Option<Self> {
19049        if Self::can_cast(syntax.kind()) {
19050            Some(Self { syntax })
19051        } else {
19052            None
19053        }
19054    }
19055    #[inline]
19056    fn syntax(&self) -> &SyntaxNode {
19057        &self.syntax
19058    }
19059}
19060impl AstNode for ClusterOn {
19061    #[inline]
19062    fn can_cast(kind: SyntaxKind) -> bool {
19063        kind == SyntaxKind::CLUSTER_ON
19064    }
19065    #[inline]
19066    fn cast(syntax: SyntaxNode) -> Option<Self> {
19067        if Self::can_cast(syntax.kind()) {
19068            Some(Self { syntax })
19069        } else {
19070            None
19071        }
19072    }
19073    #[inline]
19074    fn syntax(&self) -> &SyntaxNode {
19075        &self.syntax
19076    }
19077}
19078impl AstNode for Collate {
19079    #[inline]
19080    fn can_cast(kind: SyntaxKind) -> bool {
19081        kind == SyntaxKind::COLLATE
19082    }
19083    #[inline]
19084    fn cast(syntax: SyntaxNode) -> Option<Self> {
19085        if Self::can_cast(syntax.kind()) {
19086            Some(Self { syntax })
19087        } else {
19088            None
19089        }
19090    }
19091    #[inline]
19092    fn syntax(&self) -> &SyntaxNode {
19093        &self.syntax
19094    }
19095}
19096impl AstNode for CollationForFn {
19097    #[inline]
19098    fn can_cast(kind: SyntaxKind) -> bool {
19099        kind == SyntaxKind::COLLATION_FOR_FN
19100    }
19101    #[inline]
19102    fn cast(syntax: SyntaxNode) -> Option<Self> {
19103        if Self::can_cast(syntax.kind()) {
19104            Some(Self { syntax })
19105        } else {
19106            None
19107        }
19108    }
19109    #[inline]
19110    fn syntax(&self) -> &SyntaxNode {
19111        &self.syntax
19112    }
19113}
19114impl AstNode for ColonColon {
19115    #[inline]
19116    fn can_cast(kind: SyntaxKind) -> bool {
19117        kind == SyntaxKind::COLON_COLON
19118    }
19119    #[inline]
19120    fn cast(syntax: SyntaxNode) -> Option<Self> {
19121        if Self::can_cast(syntax.kind()) {
19122            Some(Self { syntax })
19123        } else {
19124            None
19125        }
19126    }
19127    #[inline]
19128    fn syntax(&self) -> &SyntaxNode {
19129        &self.syntax
19130    }
19131}
19132impl AstNode for ColonEq {
19133    #[inline]
19134    fn can_cast(kind: SyntaxKind) -> bool {
19135        kind == SyntaxKind::COLON_EQ
19136    }
19137    #[inline]
19138    fn cast(syntax: SyntaxNode) -> Option<Self> {
19139        if Self::can_cast(syntax.kind()) {
19140            Some(Self { syntax })
19141        } else {
19142            None
19143        }
19144    }
19145    #[inline]
19146    fn syntax(&self) -> &SyntaxNode {
19147        &self.syntax
19148    }
19149}
19150impl AstNode for Column {
19151    #[inline]
19152    fn can_cast(kind: SyntaxKind) -> bool {
19153        kind == SyntaxKind::COLUMN
19154    }
19155    #[inline]
19156    fn cast(syntax: SyntaxNode) -> Option<Self> {
19157        if Self::can_cast(syntax.kind()) {
19158            Some(Self { syntax })
19159        } else {
19160            None
19161        }
19162    }
19163    #[inline]
19164    fn syntax(&self) -> &SyntaxNode {
19165        &self.syntax
19166    }
19167}
19168impl AstNode for ColumnList {
19169    #[inline]
19170    fn can_cast(kind: SyntaxKind) -> bool {
19171        kind == SyntaxKind::COLUMN_LIST
19172    }
19173    #[inline]
19174    fn cast(syntax: SyntaxNode) -> Option<Self> {
19175        if Self::can_cast(syntax.kind()) {
19176            Some(Self { syntax })
19177        } else {
19178            None
19179        }
19180    }
19181    #[inline]
19182    fn syntax(&self) -> &SyntaxNode {
19183        &self.syntax
19184    }
19185}
19186impl AstNode for CommentOn {
19187    #[inline]
19188    fn can_cast(kind: SyntaxKind) -> bool {
19189        kind == SyntaxKind::COMMENT_ON
19190    }
19191    #[inline]
19192    fn cast(syntax: SyntaxNode) -> Option<Self> {
19193        if Self::can_cast(syntax.kind()) {
19194            Some(Self { syntax })
19195        } else {
19196            None
19197        }
19198    }
19199    #[inline]
19200    fn syntax(&self) -> &SyntaxNode {
19201        &self.syntax
19202    }
19203}
19204impl AstNode for Commit {
19205    #[inline]
19206    fn can_cast(kind: SyntaxKind) -> bool {
19207        kind == SyntaxKind::COMMIT
19208    }
19209    #[inline]
19210    fn cast(syntax: SyntaxNode) -> Option<Self> {
19211        if Self::can_cast(syntax.kind()) {
19212            Some(Self { syntax })
19213        } else {
19214            None
19215        }
19216    }
19217    #[inline]
19218    fn syntax(&self) -> &SyntaxNode {
19219        &self.syntax
19220    }
19221}
19222impl AstNode for CompoundSelect {
19223    #[inline]
19224    fn can_cast(kind: SyntaxKind) -> bool {
19225        kind == SyntaxKind::COMPOUND_SELECT
19226    }
19227    #[inline]
19228    fn cast(syntax: SyntaxNode) -> Option<Self> {
19229        if Self::can_cast(syntax.kind()) {
19230            Some(Self { syntax })
19231        } else {
19232            None
19233        }
19234    }
19235    #[inline]
19236    fn syntax(&self) -> &SyntaxNode {
19237        &self.syntax
19238    }
19239}
19240impl AstNode for CompressionMethod {
19241    #[inline]
19242    fn can_cast(kind: SyntaxKind) -> bool {
19243        kind == SyntaxKind::COMPRESSION_METHOD
19244    }
19245    #[inline]
19246    fn cast(syntax: SyntaxNode) -> Option<Self> {
19247        if Self::can_cast(syntax.kind()) {
19248            Some(Self { syntax })
19249        } else {
19250            None
19251        }
19252    }
19253    #[inline]
19254    fn syntax(&self) -> &SyntaxNode {
19255        &self.syntax
19256    }
19257}
19258impl AstNode for ConflictDoNothing {
19259    #[inline]
19260    fn can_cast(kind: SyntaxKind) -> bool {
19261        kind == SyntaxKind::CONFLICT_DO_NOTHING
19262    }
19263    #[inline]
19264    fn cast(syntax: SyntaxNode) -> Option<Self> {
19265        if Self::can_cast(syntax.kind()) {
19266            Some(Self { syntax })
19267        } else {
19268            None
19269        }
19270    }
19271    #[inline]
19272    fn syntax(&self) -> &SyntaxNode {
19273        &self.syntax
19274    }
19275}
19276impl AstNode for ConflictDoSelect {
19277    #[inline]
19278    fn can_cast(kind: SyntaxKind) -> bool {
19279        kind == SyntaxKind::CONFLICT_DO_SELECT
19280    }
19281    #[inline]
19282    fn cast(syntax: SyntaxNode) -> Option<Self> {
19283        if Self::can_cast(syntax.kind()) {
19284            Some(Self { syntax })
19285        } else {
19286            None
19287        }
19288    }
19289    #[inline]
19290    fn syntax(&self) -> &SyntaxNode {
19291        &self.syntax
19292    }
19293}
19294impl AstNode for ConflictDoUpdateSet {
19295    #[inline]
19296    fn can_cast(kind: SyntaxKind) -> bool {
19297        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
19298    }
19299    #[inline]
19300    fn cast(syntax: SyntaxNode) -> Option<Self> {
19301        if Self::can_cast(syntax.kind()) {
19302            Some(Self { syntax })
19303        } else {
19304            None
19305        }
19306    }
19307    #[inline]
19308    fn syntax(&self) -> &SyntaxNode {
19309        &self.syntax
19310    }
19311}
19312impl AstNode for ConflictIndexItem {
19313    #[inline]
19314    fn can_cast(kind: SyntaxKind) -> bool {
19315        kind == SyntaxKind::CONFLICT_INDEX_ITEM
19316    }
19317    #[inline]
19318    fn cast(syntax: SyntaxNode) -> Option<Self> {
19319        if Self::can_cast(syntax.kind()) {
19320            Some(Self { syntax })
19321        } else {
19322            None
19323        }
19324    }
19325    #[inline]
19326    fn syntax(&self) -> &SyntaxNode {
19327        &self.syntax
19328    }
19329}
19330impl AstNode for ConflictIndexItemList {
19331    #[inline]
19332    fn can_cast(kind: SyntaxKind) -> bool {
19333        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
19334    }
19335    #[inline]
19336    fn cast(syntax: SyntaxNode) -> Option<Self> {
19337        if Self::can_cast(syntax.kind()) {
19338            Some(Self { syntax })
19339        } else {
19340            None
19341        }
19342    }
19343    #[inline]
19344    fn syntax(&self) -> &SyntaxNode {
19345        &self.syntax
19346    }
19347}
19348impl AstNode for ConflictOnConstraint {
19349    #[inline]
19350    fn can_cast(kind: SyntaxKind) -> bool {
19351        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
19352    }
19353    #[inline]
19354    fn cast(syntax: SyntaxNode) -> Option<Self> {
19355        if Self::can_cast(syntax.kind()) {
19356            Some(Self { syntax })
19357        } else {
19358            None
19359        }
19360    }
19361    #[inline]
19362    fn syntax(&self) -> &SyntaxNode {
19363        &self.syntax
19364    }
19365}
19366impl AstNode for ConflictOnIndex {
19367    #[inline]
19368    fn can_cast(kind: SyntaxKind) -> bool {
19369        kind == SyntaxKind::CONFLICT_ON_INDEX
19370    }
19371    #[inline]
19372    fn cast(syntax: SyntaxNode) -> Option<Self> {
19373        if Self::can_cast(syntax.kind()) {
19374            Some(Self { syntax })
19375        } else {
19376            None
19377        }
19378    }
19379    #[inline]
19380    fn syntax(&self) -> &SyntaxNode {
19381        &self.syntax
19382    }
19383}
19384impl AstNode for ConstraintExclusion {
19385    #[inline]
19386    fn can_cast(kind: SyntaxKind) -> bool {
19387        kind == SyntaxKind::CONSTRAINT_EXCLUSION
19388    }
19389    #[inline]
19390    fn cast(syntax: SyntaxNode) -> Option<Self> {
19391        if Self::can_cast(syntax.kind()) {
19392            Some(Self { syntax })
19393        } else {
19394            None
19395        }
19396    }
19397    #[inline]
19398    fn syntax(&self) -> &SyntaxNode {
19399        &self.syntax
19400    }
19401}
19402impl AstNode for ConstraintExclusionList {
19403    #[inline]
19404    fn can_cast(kind: SyntaxKind) -> bool {
19405        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
19406    }
19407    #[inline]
19408    fn cast(syntax: SyntaxNode) -> Option<Self> {
19409        if Self::can_cast(syntax.kind()) {
19410            Some(Self { syntax })
19411        } else {
19412            None
19413        }
19414    }
19415    #[inline]
19416    fn syntax(&self) -> &SyntaxNode {
19417        &self.syntax
19418    }
19419}
19420impl AstNode for ConstraintIncludeClause {
19421    #[inline]
19422    fn can_cast(kind: SyntaxKind) -> bool {
19423        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
19424    }
19425    #[inline]
19426    fn cast(syntax: SyntaxNode) -> Option<Self> {
19427        if Self::can_cast(syntax.kind()) {
19428            Some(Self { syntax })
19429        } else {
19430            None
19431        }
19432    }
19433    #[inline]
19434    fn syntax(&self) -> &SyntaxNode {
19435        &self.syntax
19436    }
19437}
19438impl AstNode for ConstraintIndexMethod {
19439    #[inline]
19440    fn can_cast(kind: SyntaxKind) -> bool {
19441        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
19442    }
19443    #[inline]
19444    fn cast(syntax: SyntaxNode) -> Option<Self> {
19445        if Self::can_cast(syntax.kind()) {
19446            Some(Self { syntax })
19447        } else {
19448            None
19449        }
19450    }
19451    #[inline]
19452    fn syntax(&self) -> &SyntaxNode {
19453        &self.syntax
19454    }
19455}
19456impl AstNode for ConstraintIndexTablespace {
19457    #[inline]
19458    fn can_cast(kind: SyntaxKind) -> bool {
19459        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
19460    }
19461    #[inline]
19462    fn cast(syntax: SyntaxNode) -> Option<Self> {
19463        if Self::can_cast(syntax.kind()) {
19464            Some(Self { syntax })
19465        } else {
19466            None
19467        }
19468    }
19469    #[inline]
19470    fn syntax(&self) -> &SyntaxNode {
19471        &self.syntax
19472    }
19473}
19474impl AstNode for ConstraintName {
19475    #[inline]
19476    fn can_cast(kind: SyntaxKind) -> bool {
19477        kind == SyntaxKind::CONSTRAINT_NAME
19478    }
19479    #[inline]
19480    fn cast(syntax: SyntaxNode) -> Option<Self> {
19481        if Self::can_cast(syntax.kind()) {
19482            Some(Self { syntax })
19483        } else {
19484            None
19485        }
19486    }
19487    #[inline]
19488    fn syntax(&self) -> &SyntaxNode {
19489        &self.syntax
19490    }
19491}
19492impl AstNode for Copy {
19493    #[inline]
19494    fn can_cast(kind: SyntaxKind) -> bool {
19495        kind == SyntaxKind::COPY
19496    }
19497    #[inline]
19498    fn cast(syntax: SyntaxNode) -> Option<Self> {
19499        if Self::can_cast(syntax.kind()) {
19500            Some(Self { syntax })
19501        } else {
19502            None
19503        }
19504    }
19505    #[inline]
19506    fn syntax(&self) -> &SyntaxNode {
19507        &self.syntax
19508    }
19509}
19510impl AstNode for CopyOption {
19511    #[inline]
19512    fn can_cast(kind: SyntaxKind) -> bool {
19513        kind == SyntaxKind::COPY_OPTION
19514    }
19515    #[inline]
19516    fn cast(syntax: SyntaxNode) -> Option<Self> {
19517        if Self::can_cast(syntax.kind()) {
19518            Some(Self { syntax })
19519        } else {
19520            None
19521        }
19522    }
19523    #[inline]
19524    fn syntax(&self) -> &SyntaxNode {
19525        &self.syntax
19526    }
19527}
19528impl AstNode for CopyOptionList {
19529    #[inline]
19530    fn can_cast(kind: SyntaxKind) -> bool {
19531        kind == SyntaxKind::COPY_OPTION_LIST
19532    }
19533    #[inline]
19534    fn cast(syntax: SyntaxNode) -> Option<Self> {
19535        if Self::can_cast(syntax.kind()) {
19536            Some(Self { syntax })
19537        } else {
19538            None
19539        }
19540    }
19541    #[inline]
19542    fn syntax(&self) -> &SyntaxNode {
19543        &self.syntax
19544    }
19545}
19546impl AstNode for CostFuncOption {
19547    #[inline]
19548    fn can_cast(kind: SyntaxKind) -> bool {
19549        kind == SyntaxKind::COST_FUNC_OPTION
19550    }
19551    #[inline]
19552    fn cast(syntax: SyntaxNode) -> Option<Self> {
19553        if Self::can_cast(syntax.kind()) {
19554            Some(Self { syntax })
19555        } else {
19556            None
19557        }
19558    }
19559    #[inline]
19560    fn syntax(&self) -> &SyntaxNode {
19561        &self.syntax
19562    }
19563}
19564impl AstNode for CreateAccessMethod {
19565    #[inline]
19566    fn can_cast(kind: SyntaxKind) -> bool {
19567        kind == SyntaxKind::CREATE_ACCESS_METHOD
19568    }
19569    #[inline]
19570    fn cast(syntax: SyntaxNode) -> Option<Self> {
19571        if Self::can_cast(syntax.kind()) {
19572            Some(Self { syntax })
19573        } else {
19574            None
19575        }
19576    }
19577    #[inline]
19578    fn syntax(&self) -> &SyntaxNode {
19579        &self.syntax
19580    }
19581}
19582impl AstNode for CreateAggregate {
19583    #[inline]
19584    fn can_cast(kind: SyntaxKind) -> bool {
19585        kind == SyntaxKind::CREATE_AGGREGATE
19586    }
19587    #[inline]
19588    fn cast(syntax: SyntaxNode) -> Option<Self> {
19589        if Self::can_cast(syntax.kind()) {
19590            Some(Self { syntax })
19591        } else {
19592            None
19593        }
19594    }
19595    #[inline]
19596    fn syntax(&self) -> &SyntaxNode {
19597        &self.syntax
19598    }
19599}
19600impl AstNode for CreateCast {
19601    #[inline]
19602    fn can_cast(kind: SyntaxKind) -> bool {
19603        kind == SyntaxKind::CREATE_CAST
19604    }
19605    #[inline]
19606    fn cast(syntax: SyntaxNode) -> Option<Self> {
19607        if Self::can_cast(syntax.kind()) {
19608            Some(Self { syntax })
19609        } else {
19610            None
19611        }
19612    }
19613    #[inline]
19614    fn syntax(&self) -> &SyntaxNode {
19615        &self.syntax
19616    }
19617}
19618impl AstNode for CreateCollation {
19619    #[inline]
19620    fn can_cast(kind: SyntaxKind) -> bool {
19621        kind == SyntaxKind::CREATE_COLLATION
19622    }
19623    #[inline]
19624    fn cast(syntax: SyntaxNode) -> Option<Self> {
19625        if Self::can_cast(syntax.kind()) {
19626            Some(Self { syntax })
19627        } else {
19628            None
19629        }
19630    }
19631    #[inline]
19632    fn syntax(&self) -> &SyntaxNode {
19633        &self.syntax
19634    }
19635}
19636impl AstNode for CreateConversion {
19637    #[inline]
19638    fn can_cast(kind: SyntaxKind) -> bool {
19639        kind == SyntaxKind::CREATE_CONVERSION
19640    }
19641    #[inline]
19642    fn cast(syntax: SyntaxNode) -> Option<Self> {
19643        if Self::can_cast(syntax.kind()) {
19644            Some(Self { syntax })
19645        } else {
19646            None
19647        }
19648    }
19649    #[inline]
19650    fn syntax(&self) -> &SyntaxNode {
19651        &self.syntax
19652    }
19653}
19654impl AstNode for CreateDatabase {
19655    #[inline]
19656    fn can_cast(kind: SyntaxKind) -> bool {
19657        kind == SyntaxKind::CREATE_DATABASE
19658    }
19659    #[inline]
19660    fn cast(syntax: SyntaxNode) -> Option<Self> {
19661        if Self::can_cast(syntax.kind()) {
19662            Some(Self { syntax })
19663        } else {
19664            None
19665        }
19666    }
19667    #[inline]
19668    fn syntax(&self) -> &SyntaxNode {
19669        &self.syntax
19670    }
19671}
19672impl AstNode for CreateDatabaseOption {
19673    #[inline]
19674    fn can_cast(kind: SyntaxKind) -> bool {
19675        kind == SyntaxKind::CREATE_DATABASE_OPTION
19676    }
19677    #[inline]
19678    fn cast(syntax: SyntaxNode) -> Option<Self> {
19679        if Self::can_cast(syntax.kind()) {
19680            Some(Self { syntax })
19681        } else {
19682            None
19683        }
19684    }
19685    #[inline]
19686    fn syntax(&self) -> &SyntaxNode {
19687        &self.syntax
19688    }
19689}
19690impl AstNode for CreateDatabaseOptionList {
19691    #[inline]
19692    fn can_cast(kind: SyntaxKind) -> bool {
19693        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
19694    }
19695    #[inline]
19696    fn cast(syntax: SyntaxNode) -> Option<Self> {
19697        if Self::can_cast(syntax.kind()) {
19698            Some(Self { syntax })
19699        } else {
19700            None
19701        }
19702    }
19703    #[inline]
19704    fn syntax(&self) -> &SyntaxNode {
19705        &self.syntax
19706    }
19707}
19708impl AstNode for CreateDomain {
19709    #[inline]
19710    fn can_cast(kind: SyntaxKind) -> bool {
19711        kind == SyntaxKind::CREATE_DOMAIN
19712    }
19713    #[inline]
19714    fn cast(syntax: SyntaxNode) -> Option<Self> {
19715        if Self::can_cast(syntax.kind()) {
19716            Some(Self { syntax })
19717        } else {
19718            None
19719        }
19720    }
19721    #[inline]
19722    fn syntax(&self) -> &SyntaxNode {
19723        &self.syntax
19724    }
19725}
19726impl AstNode for CreateEventTrigger {
19727    #[inline]
19728    fn can_cast(kind: SyntaxKind) -> bool {
19729        kind == SyntaxKind::CREATE_EVENT_TRIGGER
19730    }
19731    #[inline]
19732    fn cast(syntax: SyntaxNode) -> Option<Self> {
19733        if Self::can_cast(syntax.kind()) {
19734            Some(Self { syntax })
19735        } else {
19736            None
19737        }
19738    }
19739    #[inline]
19740    fn syntax(&self) -> &SyntaxNode {
19741        &self.syntax
19742    }
19743}
19744impl AstNode for CreateExtension {
19745    #[inline]
19746    fn can_cast(kind: SyntaxKind) -> bool {
19747        kind == SyntaxKind::CREATE_EXTENSION
19748    }
19749    #[inline]
19750    fn cast(syntax: SyntaxNode) -> Option<Self> {
19751        if Self::can_cast(syntax.kind()) {
19752            Some(Self { syntax })
19753        } else {
19754            None
19755        }
19756    }
19757    #[inline]
19758    fn syntax(&self) -> &SyntaxNode {
19759        &self.syntax
19760    }
19761}
19762impl AstNode for CreateForeignDataWrapper {
19763    #[inline]
19764    fn can_cast(kind: SyntaxKind) -> bool {
19765        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
19766    }
19767    #[inline]
19768    fn cast(syntax: SyntaxNode) -> Option<Self> {
19769        if Self::can_cast(syntax.kind()) {
19770            Some(Self { syntax })
19771        } else {
19772            None
19773        }
19774    }
19775    #[inline]
19776    fn syntax(&self) -> &SyntaxNode {
19777        &self.syntax
19778    }
19779}
19780impl AstNode for CreateForeignTable {
19781    #[inline]
19782    fn can_cast(kind: SyntaxKind) -> bool {
19783        kind == SyntaxKind::CREATE_FOREIGN_TABLE
19784    }
19785    #[inline]
19786    fn cast(syntax: SyntaxNode) -> Option<Self> {
19787        if Self::can_cast(syntax.kind()) {
19788            Some(Self { syntax })
19789        } else {
19790            None
19791        }
19792    }
19793    #[inline]
19794    fn syntax(&self) -> &SyntaxNode {
19795        &self.syntax
19796    }
19797}
19798impl AstNode for CreateFunction {
19799    #[inline]
19800    fn can_cast(kind: SyntaxKind) -> bool {
19801        kind == SyntaxKind::CREATE_FUNCTION
19802    }
19803    #[inline]
19804    fn cast(syntax: SyntaxNode) -> Option<Self> {
19805        if Self::can_cast(syntax.kind()) {
19806            Some(Self { syntax })
19807        } else {
19808            None
19809        }
19810    }
19811    #[inline]
19812    fn syntax(&self) -> &SyntaxNode {
19813        &self.syntax
19814    }
19815}
19816impl AstNode for CreateGroup {
19817    #[inline]
19818    fn can_cast(kind: SyntaxKind) -> bool {
19819        kind == SyntaxKind::CREATE_GROUP
19820    }
19821    #[inline]
19822    fn cast(syntax: SyntaxNode) -> Option<Self> {
19823        if Self::can_cast(syntax.kind()) {
19824            Some(Self { syntax })
19825        } else {
19826            None
19827        }
19828    }
19829    #[inline]
19830    fn syntax(&self) -> &SyntaxNode {
19831        &self.syntax
19832    }
19833}
19834impl AstNode for CreateIndex {
19835    #[inline]
19836    fn can_cast(kind: SyntaxKind) -> bool {
19837        kind == SyntaxKind::CREATE_INDEX
19838    }
19839    #[inline]
19840    fn cast(syntax: SyntaxNode) -> Option<Self> {
19841        if Self::can_cast(syntax.kind()) {
19842            Some(Self { syntax })
19843        } else {
19844            None
19845        }
19846    }
19847    #[inline]
19848    fn syntax(&self) -> &SyntaxNode {
19849        &self.syntax
19850    }
19851}
19852impl AstNode for CreateLanguage {
19853    #[inline]
19854    fn can_cast(kind: SyntaxKind) -> bool {
19855        kind == SyntaxKind::CREATE_LANGUAGE
19856    }
19857    #[inline]
19858    fn cast(syntax: SyntaxNode) -> Option<Self> {
19859        if Self::can_cast(syntax.kind()) {
19860            Some(Self { syntax })
19861        } else {
19862            None
19863        }
19864    }
19865    #[inline]
19866    fn syntax(&self) -> &SyntaxNode {
19867        &self.syntax
19868    }
19869}
19870impl AstNode for CreateMaterializedView {
19871    #[inline]
19872    fn can_cast(kind: SyntaxKind) -> bool {
19873        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
19874    }
19875    #[inline]
19876    fn cast(syntax: SyntaxNode) -> Option<Self> {
19877        if Self::can_cast(syntax.kind()) {
19878            Some(Self { syntax })
19879        } else {
19880            None
19881        }
19882    }
19883    #[inline]
19884    fn syntax(&self) -> &SyntaxNode {
19885        &self.syntax
19886    }
19887}
19888impl AstNode for CreateOperator {
19889    #[inline]
19890    fn can_cast(kind: SyntaxKind) -> bool {
19891        kind == SyntaxKind::CREATE_OPERATOR
19892    }
19893    #[inline]
19894    fn cast(syntax: SyntaxNode) -> Option<Self> {
19895        if Self::can_cast(syntax.kind()) {
19896            Some(Self { syntax })
19897        } else {
19898            None
19899        }
19900    }
19901    #[inline]
19902    fn syntax(&self) -> &SyntaxNode {
19903        &self.syntax
19904    }
19905}
19906impl AstNode for CreateOperatorClass {
19907    #[inline]
19908    fn can_cast(kind: SyntaxKind) -> bool {
19909        kind == SyntaxKind::CREATE_OPERATOR_CLASS
19910    }
19911    #[inline]
19912    fn cast(syntax: SyntaxNode) -> Option<Self> {
19913        if Self::can_cast(syntax.kind()) {
19914            Some(Self { syntax })
19915        } else {
19916            None
19917        }
19918    }
19919    #[inline]
19920    fn syntax(&self) -> &SyntaxNode {
19921        &self.syntax
19922    }
19923}
19924impl AstNode for CreateOperatorFamily {
19925    #[inline]
19926    fn can_cast(kind: SyntaxKind) -> bool {
19927        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
19928    }
19929    #[inline]
19930    fn cast(syntax: SyntaxNode) -> Option<Self> {
19931        if Self::can_cast(syntax.kind()) {
19932            Some(Self { syntax })
19933        } else {
19934            None
19935        }
19936    }
19937    #[inline]
19938    fn syntax(&self) -> &SyntaxNode {
19939        &self.syntax
19940    }
19941}
19942impl AstNode for CreatePolicy {
19943    #[inline]
19944    fn can_cast(kind: SyntaxKind) -> bool {
19945        kind == SyntaxKind::CREATE_POLICY
19946    }
19947    #[inline]
19948    fn cast(syntax: SyntaxNode) -> Option<Self> {
19949        if Self::can_cast(syntax.kind()) {
19950            Some(Self { syntax })
19951        } else {
19952            None
19953        }
19954    }
19955    #[inline]
19956    fn syntax(&self) -> &SyntaxNode {
19957        &self.syntax
19958    }
19959}
19960impl AstNode for CreateProcedure {
19961    #[inline]
19962    fn can_cast(kind: SyntaxKind) -> bool {
19963        kind == SyntaxKind::CREATE_PROCEDURE
19964    }
19965    #[inline]
19966    fn cast(syntax: SyntaxNode) -> Option<Self> {
19967        if Self::can_cast(syntax.kind()) {
19968            Some(Self { syntax })
19969        } else {
19970            None
19971        }
19972    }
19973    #[inline]
19974    fn syntax(&self) -> &SyntaxNode {
19975        &self.syntax
19976    }
19977}
19978impl AstNode for CreatePublication {
19979    #[inline]
19980    fn can_cast(kind: SyntaxKind) -> bool {
19981        kind == SyntaxKind::CREATE_PUBLICATION
19982    }
19983    #[inline]
19984    fn cast(syntax: SyntaxNode) -> Option<Self> {
19985        if Self::can_cast(syntax.kind()) {
19986            Some(Self { syntax })
19987        } else {
19988            None
19989        }
19990    }
19991    #[inline]
19992    fn syntax(&self) -> &SyntaxNode {
19993        &self.syntax
19994    }
19995}
19996impl AstNode for CreateRole {
19997    #[inline]
19998    fn can_cast(kind: SyntaxKind) -> bool {
19999        kind == SyntaxKind::CREATE_ROLE
20000    }
20001    #[inline]
20002    fn cast(syntax: SyntaxNode) -> Option<Self> {
20003        if Self::can_cast(syntax.kind()) {
20004            Some(Self { syntax })
20005        } else {
20006            None
20007        }
20008    }
20009    #[inline]
20010    fn syntax(&self) -> &SyntaxNode {
20011        &self.syntax
20012    }
20013}
20014impl AstNode for CreateRule {
20015    #[inline]
20016    fn can_cast(kind: SyntaxKind) -> bool {
20017        kind == SyntaxKind::CREATE_RULE
20018    }
20019    #[inline]
20020    fn cast(syntax: SyntaxNode) -> Option<Self> {
20021        if Self::can_cast(syntax.kind()) {
20022            Some(Self { syntax })
20023        } else {
20024            None
20025        }
20026    }
20027    #[inline]
20028    fn syntax(&self) -> &SyntaxNode {
20029        &self.syntax
20030    }
20031}
20032impl AstNode for CreateSchema {
20033    #[inline]
20034    fn can_cast(kind: SyntaxKind) -> bool {
20035        kind == SyntaxKind::CREATE_SCHEMA
20036    }
20037    #[inline]
20038    fn cast(syntax: SyntaxNode) -> Option<Self> {
20039        if Self::can_cast(syntax.kind()) {
20040            Some(Self { syntax })
20041        } else {
20042            None
20043        }
20044    }
20045    #[inline]
20046    fn syntax(&self) -> &SyntaxNode {
20047        &self.syntax
20048    }
20049}
20050impl AstNode for CreateSequence {
20051    #[inline]
20052    fn can_cast(kind: SyntaxKind) -> bool {
20053        kind == SyntaxKind::CREATE_SEQUENCE
20054    }
20055    #[inline]
20056    fn cast(syntax: SyntaxNode) -> Option<Self> {
20057        if Self::can_cast(syntax.kind()) {
20058            Some(Self { syntax })
20059        } else {
20060            None
20061        }
20062    }
20063    #[inline]
20064    fn syntax(&self) -> &SyntaxNode {
20065        &self.syntax
20066    }
20067}
20068impl AstNode for CreateServer {
20069    #[inline]
20070    fn can_cast(kind: SyntaxKind) -> bool {
20071        kind == SyntaxKind::CREATE_SERVER
20072    }
20073    #[inline]
20074    fn cast(syntax: SyntaxNode) -> Option<Self> {
20075        if Self::can_cast(syntax.kind()) {
20076            Some(Self { syntax })
20077        } else {
20078            None
20079        }
20080    }
20081    #[inline]
20082    fn syntax(&self) -> &SyntaxNode {
20083        &self.syntax
20084    }
20085}
20086impl AstNode for CreateStatistics {
20087    #[inline]
20088    fn can_cast(kind: SyntaxKind) -> bool {
20089        kind == SyntaxKind::CREATE_STATISTICS
20090    }
20091    #[inline]
20092    fn cast(syntax: SyntaxNode) -> Option<Self> {
20093        if Self::can_cast(syntax.kind()) {
20094            Some(Self { syntax })
20095        } else {
20096            None
20097        }
20098    }
20099    #[inline]
20100    fn syntax(&self) -> &SyntaxNode {
20101        &self.syntax
20102    }
20103}
20104impl AstNode for CreateSubscription {
20105    #[inline]
20106    fn can_cast(kind: SyntaxKind) -> bool {
20107        kind == SyntaxKind::CREATE_SUBSCRIPTION
20108    }
20109    #[inline]
20110    fn cast(syntax: SyntaxNode) -> Option<Self> {
20111        if Self::can_cast(syntax.kind()) {
20112            Some(Self { syntax })
20113        } else {
20114            None
20115        }
20116    }
20117    #[inline]
20118    fn syntax(&self) -> &SyntaxNode {
20119        &self.syntax
20120    }
20121}
20122impl AstNode for CreateTable {
20123    #[inline]
20124    fn can_cast(kind: SyntaxKind) -> bool {
20125        kind == SyntaxKind::CREATE_TABLE
20126    }
20127    #[inline]
20128    fn cast(syntax: SyntaxNode) -> Option<Self> {
20129        if Self::can_cast(syntax.kind()) {
20130            Some(Self { syntax })
20131        } else {
20132            None
20133        }
20134    }
20135    #[inline]
20136    fn syntax(&self) -> &SyntaxNode {
20137        &self.syntax
20138    }
20139}
20140impl AstNode for CreateTableAs {
20141    #[inline]
20142    fn can_cast(kind: SyntaxKind) -> bool {
20143        kind == SyntaxKind::CREATE_TABLE_AS
20144    }
20145    #[inline]
20146    fn cast(syntax: SyntaxNode) -> Option<Self> {
20147        if Self::can_cast(syntax.kind()) {
20148            Some(Self { syntax })
20149        } else {
20150            None
20151        }
20152    }
20153    #[inline]
20154    fn syntax(&self) -> &SyntaxNode {
20155        &self.syntax
20156    }
20157}
20158impl AstNode for CreateTablespace {
20159    #[inline]
20160    fn can_cast(kind: SyntaxKind) -> bool {
20161        kind == SyntaxKind::CREATE_TABLESPACE
20162    }
20163    #[inline]
20164    fn cast(syntax: SyntaxNode) -> Option<Self> {
20165        if Self::can_cast(syntax.kind()) {
20166            Some(Self { syntax })
20167        } else {
20168            None
20169        }
20170    }
20171    #[inline]
20172    fn syntax(&self) -> &SyntaxNode {
20173        &self.syntax
20174    }
20175}
20176impl AstNode for CreateTextSearchConfiguration {
20177    #[inline]
20178    fn can_cast(kind: SyntaxKind) -> bool {
20179        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
20180    }
20181    #[inline]
20182    fn cast(syntax: SyntaxNode) -> Option<Self> {
20183        if Self::can_cast(syntax.kind()) {
20184            Some(Self { syntax })
20185        } else {
20186            None
20187        }
20188    }
20189    #[inline]
20190    fn syntax(&self) -> &SyntaxNode {
20191        &self.syntax
20192    }
20193}
20194impl AstNode for CreateTextSearchDictionary {
20195    #[inline]
20196    fn can_cast(kind: SyntaxKind) -> bool {
20197        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
20198    }
20199    #[inline]
20200    fn cast(syntax: SyntaxNode) -> Option<Self> {
20201        if Self::can_cast(syntax.kind()) {
20202            Some(Self { syntax })
20203        } else {
20204            None
20205        }
20206    }
20207    #[inline]
20208    fn syntax(&self) -> &SyntaxNode {
20209        &self.syntax
20210    }
20211}
20212impl AstNode for CreateTextSearchParser {
20213    #[inline]
20214    fn can_cast(kind: SyntaxKind) -> bool {
20215        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
20216    }
20217    #[inline]
20218    fn cast(syntax: SyntaxNode) -> Option<Self> {
20219        if Self::can_cast(syntax.kind()) {
20220            Some(Self { syntax })
20221        } else {
20222            None
20223        }
20224    }
20225    #[inline]
20226    fn syntax(&self) -> &SyntaxNode {
20227        &self.syntax
20228    }
20229}
20230impl AstNode for CreateTextSearchTemplate {
20231    #[inline]
20232    fn can_cast(kind: SyntaxKind) -> bool {
20233        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
20234    }
20235    #[inline]
20236    fn cast(syntax: SyntaxNode) -> Option<Self> {
20237        if Self::can_cast(syntax.kind()) {
20238            Some(Self { syntax })
20239        } else {
20240            None
20241        }
20242    }
20243    #[inline]
20244    fn syntax(&self) -> &SyntaxNode {
20245        &self.syntax
20246    }
20247}
20248impl AstNode for CreateTransform {
20249    #[inline]
20250    fn can_cast(kind: SyntaxKind) -> bool {
20251        kind == SyntaxKind::CREATE_TRANSFORM
20252    }
20253    #[inline]
20254    fn cast(syntax: SyntaxNode) -> Option<Self> {
20255        if Self::can_cast(syntax.kind()) {
20256            Some(Self { syntax })
20257        } else {
20258            None
20259        }
20260    }
20261    #[inline]
20262    fn syntax(&self) -> &SyntaxNode {
20263        &self.syntax
20264    }
20265}
20266impl AstNode for CreateTrigger {
20267    #[inline]
20268    fn can_cast(kind: SyntaxKind) -> bool {
20269        kind == SyntaxKind::CREATE_TRIGGER
20270    }
20271    #[inline]
20272    fn cast(syntax: SyntaxNode) -> Option<Self> {
20273        if Self::can_cast(syntax.kind()) {
20274            Some(Self { syntax })
20275        } else {
20276            None
20277        }
20278    }
20279    #[inline]
20280    fn syntax(&self) -> &SyntaxNode {
20281        &self.syntax
20282    }
20283}
20284impl AstNode for CreateType {
20285    #[inline]
20286    fn can_cast(kind: SyntaxKind) -> bool {
20287        kind == SyntaxKind::CREATE_TYPE
20288    }
20289    #[inline]
20290    fn cast(syntax: SyntaxNode) -> Option<Self> {
20291        if Self::can_cast(syntax.kind()) {
20292            Some(Self { syntax })
20293        } else {
20294            None
20295        }
20296    }
20297    #[inline]
20298    fn syntax(&self) -> &SyntaxNode {
20299        &self.syntax
20300    }
20301}
20302impl AstNode for CreateUser {
20303    #[inline]
20304    fn can_cast(kind: SyntaxKind) -> bool {
20305        kind == SyntaxKind::CREATE_USER
20306    }
20307    #[inline]
20308    fn cast(syntax: SyntaxNode) -> Option<Self> {
20309        if Self::can_cast(syntax.kind()) {
20310            Some(Self { syntax })
20311        } else {
20312            None
20313        }
20314    }
20315    #[inline]
20316    fn syntax(&self) -> &SyntaxNode {
20317        &self.syntax
20318    }
20319}
20320impl AstNode for CreateUserMapping {
20321    #[inline]
20322    fn can_cast(kind: SyntaxKind) -> bool {
20323        kind == SyntaxKind::CREATE_USER_MAPPING
20324    }
20325    #[inline]
20326    fn cast(syntax: SyntaxNode) -> Option<Self> {
20327        if Self::can_cast(syntax.kind()) {
20328            Some(Self { syntax })
20329        } else {
20330            None
20331        }
20332    }
20333    #[inline]
20334    fn syntax(&self) -> &SyntaxNode {
20335        &self.syntax
20336    }
20337}
20338impl AstNode for CreateView {
20339    #[inline]
20340    fn can_cast(kind: SyntaxKind) -> bool {
20341        kind == SyntaxKind::CREATE_VIEW
20342    }
20343    #[inline]
20344    fn cast(syntax: SyntaxNode) -> Option<Self> {
20345        if Self::can_cast(syntax.kind()) {
20346            Some(Self { syntax })
20347        } else {
20348            None
20349        }
20350    }
20351    #[inline]
20352    fn syntax(&self) -> &SyntaxNode {
20353        &self.syntax
20354    }
20355}
20356impl AstNode for CustomOp {
20357    #[inline]
20358    fn can_cast(kind: SyntaxKind) -> bool {
20359        kind == SyntaxKind::CUSTOM_OP
20360    }
20361    #[inline]
20362    fn cast(syntax: SyntaxNode) -> Option<Self> {
20363        if Self::can_cast(syntax.kind()) {
20364            Some(Self { syntax })
20365        } else {
20366            None
20367        }
20368    }
20369    #[inline]
20370    fn syntax(&self) -> &SyntaxNode {
20371        &self.syntax
20372    }
20373}
20374impl AstNode for Deallocate {
20375    #[inline]
20376    fn can_cast(kind: SyntaxKind) -> bool {
20377        kind == SyntaxKind::DEALLOCATE
20378    }
20379    #[inline]
20380    fn cast(syntax: SyntaxNode) -> Option<Self> {
20381        if Self::can_cast(syntax.kind()) {
20382            Some(Self { syntax })
20383        } else {
20384            None
20385        }
20386    }
20387    #[inline]
20388    fn syntax(&self) -> &SyntaxNode {
20389        &self.syntax
20390    }
20391}
20392impl AstNode for Declare {
20393    #[inline]
20394    fn can_cast(kind: SyntaxKind) -> bool {
20395        kind == SyntaxKind::DECLARE
20396    }
20397    #[inline]
20398    fn cast(syntax: SyntaxNode) -> Option<Self> {
20399        if Self::can_cast(syntax.kind()) {
20400            Some(Self { syntax })
20401        } else {
20402            None
20403        }
20404    }
20405    #[inline]
20406    fn syntax(&self) -> &SyntaxNode {
20407        &self.syntax
20408    }
20409}
20410impl AstNode for DefaultConstraint {
20411    #[inline]
20412    fn can_cast(kind: SyntaxKind) -> bool {
20413        kind == SyntaxKind::DEFAULT_CONSTRAINT
20414    }
20415    #[inline]
20416    fn cast(syntax: SyntaxNode) -> Option<Self> {
20417        if Self::can_cast(syntax.kind()) {
20418            Some(Self { syntax })
20419        } else {
20420            None
20421        }
20422    }
20423    #[inline]
20424    fn syntax(&self) -> &SyntaxNode {
20425        &self.syntax
20426    }
20427}
20428impl AstNode for Deferrable {
20429    #[inline]
20430    fn can_cast(kind: SyntaxKind) -> bool {
20431        kind == SyntaxKind::DEFERRABLE
20432    }
20433    #[inline]
20434    fn cast(syntax: SyntaxNode) -> Option<Self> {
20435        if Self::can_cast(syntax.kind()) {
20436            Some(Self { syntax })
20437        } else {
20438            None
20439        }
20440    }
20441    #[inline]
20442    fn syntax(&self) -> &SyntaxNode {
20443        &self.syntax
20444    }
20445}
20446impl AstNode for DeferrableConstraintOption {
20447    #[inline]
20448    fn can_cast(kind: SyntaxKind) -> bool {
20449        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
20450    }
20451    #[inline]
20452    fn cast(syntax: SyntaxNode) -> Option<Self> {
20453        if Self::can_cast(syntax.kind()) {
20454            Some(Self { syntax })
20455        } else {
20456            None
20457        }
20458    }
20459    #[inline]
20460    fn syntax(&self) -> &SyntaxNode {
20461        &self.syntax
20462    }
20463}
20464impl AstNode for Delete {
20465    #[inline]
20466    fn can_cast(kind: SyntaxKind) -> bool {
20467        kind == SyntaxKind::DELETE
20468    }
20469    #[inline]
20470    fn cast(syntax: SyntaxNode) -> Option<Self> {
20471        if Self::can_cast(syntax.kind()) {
20472            Some(Self { syntax })
20473        } else {
20474            None
20475        }
20476    }
20477    #[inline]
20478    fn syntax(&self) -> &SyntaxNode {
20479        &self.syntax
20480    }
20481}
20482impl AstNode for DeleteRows {
20483    #[inline]
20484    fn can_cast(kind: SyntaxKind) -> bool {
20485        kind == SyntaxKind::DELETE_ROWS
20486    }
20487    #[inline]
20488    fn cast(syntax: SyntaxNode) -> Option<Self> {
20489        if Self::can_cast(syntax.kind()) {
20490            Some(Self { syntax })
20491        } else {
20492            None
20493        }
20494    }
20495    #[inline]
20496    fn syntax(&self) -> &SyntaxNode {
20497        &self.syntax
20498    }
20499}
20500impl AstNode for DependsOnExtension {
20501    #[inline]
20502    fn can_cast(kind: SyntaxKind) -> bool {
20503        kind == SyntaxKind::DEPENDS_ON_EXTENSION
20504    }
20505    #[inline]
20506    fn cast(syntax: SyntaxNode) -> Option<Self> {
20507        if Self::can_cast(syntax.kind()) {
20508            Some(Self { syntax })
20509        } else {
20510            None
20511        }
20512    }
20513    #[inline]
20514    fn syntax(&self) -> &SyntaxNode {
20515        &self.syntax
20516    }
20517}
20518impl AstNode for DetachPartition {
20519    #[inline]
20520    fn can_cast(kind: SyntaxKind) -> bool {
20521        kind == SyntaxKind::DETACH_PARTITION
20522    }
20523    #[inline]
20524    fn cast(syntax: SyntaxNode) -> Option<Self> {
20525        if Self::can_cast(syntax.kind()) {
20526            Some(Self { syntax })
20527        } else {
20528            None
20529        }
20530    }
20531    #[inline]
20532    fn syntax(&self) -> &SyntaxNode {
20533        &self.syntax
20534    }
20535}
20536impl AstNode for DisableRls {
20537    #[inline]
20538    fn can_cast(kind: SyntaxKind) -> bool {
20539        kind == SyntaxKind::DISABLE_RLS
20540    }
20541    #[inline]
20542    fn cast(syntax: SyntaxNode) -> Option<Self> {
20543        if Self::can_cast(syntax.kind()) {
20544            Some(Self { syntax })
20545        } else {
20546            None
20547        }
20548    }
20549    #[inline]
20550    fn syntax(&self) -> &SyntaxNode {
20551        &self.syntax
20552    }
20553}
20554impl AstNode for DisableRule {
20555    #[inline]
20556    fn can_cast(kind: SyntaxKind) -> bool {
20557        kind == SyntaxKind::DISABLE_RULE
20558    }
20559    #[inline]
20560    fn cast(syntax: SyntaxNode) -> Option<Self> {
20561        if Self::can_cast(syntax.kind()) {
20562            Some(Self { syntax })
20563        } else {
20564            None
20565        }
20566    }
20567    #[inline]
20568    fn syntax(&self) -> &SyntaxNode {
20569        &self.syntax
20570    }
20571}
20572impl AstNode for DisableTrigger {
20573    #[inline]
20574    fn can_cast(kind: SyntaxKind) -> bool {
20575        kind == SyntaxKind::DISABLE_TRIGGER
20576    }
20577    #[inline]
20578    fn cast(syntax: SyntaxNode) -> Option<Self> {
20579        if Self::can_cast(syntax.kind()) {
20580            Some(Self { syntax })
20581        } else {
20582            None
20583        }
20584    }
20585    #[inline]
20586    fn syntax(&self) -> &SyntaxNode {
20587        &self.syntax
20588    }
20589}
20590impl AstNode for Discard {
20591    #[inline]
20592    fn can_cast(kind: SyntaxKind) -> bool {
20593        kind == SyntaxKind::DISCARD
20594    }
20595    #[inline]
20596    fn cast(syntax: SyntaxNode) -> Option<Self> {
20597        if Self::can_cast(syntax.kind()) {
20598            Some(Self { syntax })
20599        } else {
20600            None
20601        }
20602    }
20603    #[inline]
20604    fn syntax(&self) -> &SyntaxNode {
20605        &self.syntax
20606    }
20607}
20608impl AstNode for DistinctClause {
20609    #[inline]
20610    fn can_cast(kind: SyntaxKind) -> bool {
20611        kind == SyntaxKind::DISTINCT_CLAUSE
20612    }
20613    #[inline]
20614    fn cast(syntax: SyntaxNode) -> Option<Self> {
20615        if Self::can_cast(syntax.kind()) {
20616            Some(Self { syntax })
20617        } else {
20618            None
20619        }
20620    }
20621    #[inline]
20622    fn syntax(&self) -> &SyntaxNode {
20623        &self.syntax
20624    }
20625}
20626impl AstNode for Do {
20627    #[inline]
20628    fn can_cast(kind: SyntaxKind) -> bool {
20629        kind == SyntaxKind::DO
20630    }
20631    #[inline]
20632    fn cast(syntax: SyntaxNode) -> Option<Self> {
20633        if Self::can_cast(syntax.kind()) {
20634            Some(Self { syntax })
20635        } else {
20636            None
20637        }
20638    }
20639    #[inline]
20640    fn syntax(&self) -> &SyntaxNode {
20641        &self.syntax
20642    }
20643}
20644impl AstNode for DoubleType {
20645    #[inline]
20646    fn can_cast(kind: SyntaxKind) -> bool {
20647        kind == SyntaxKind::DOUBLE_TYPE
20648    }
20649    #[inline]
20650    fn cast(syntax: SyntaxNode) -> Option<Self> {
20651        if Self::can_cast(syntax.kind()) {
20652            Some(Self { syntax })
20653        } else {
20654            None
20655        }
20656    }
20657    #[inline]
20658    fn syntax(&self) -> &SyntaxNode {
20659        &self.syntax
20660    }
20661}
20662impl AstNode for Drop {
20663    #[inline]
20664    fn can_cast(kind: SyntaxKind) -> bool {
20665        kind == SyntaxKind::DROP
20666    }
20667    #[inline]
20668    fn cast(syntax: SyntaxNode) -> Option<Self> {
20669        if Self::can_cast(syntax.kind()) {
20670            Some(Self { syntax })
20671        } else {
20672            None
20673        }
20674    }
20675    #[inline]
20676    fn syntax(&self) -> &SyntaxNode {
20677        &self.syntax
20678    }
20679}
20680impl AstNode for DropAccessMethod {
20681    #[inline]
20682    fn can_cast(kind: SyntaxKind) -> bool {
20683        kind == SyntaxKind::DROP_ACCESS_METHOD
20684    }
20685    #[inline]
20686    fn cast(syntax: SyntaxNode) -> Option<Self> {
20687        if Self::can_cast(syntax.kind()) {
20688            Some(Self { syntax })
20689        } else {
20690            None
20691        }
20692    }
20693    #[inline]
20694    fn syntax(&self) -> &SyntaxNode {
20695        &self.syntax
20696    }
20697}
20698impl AstNode for DropAggregate {
20699    #[inline]
20700    fn can_cast(kind: SyntaxKind) -> bool {
20701        kind == SyntaxKind::DROP_AGGREGATE
20702    }
20703    #[inline]
20704    fn cast(syntax: SyntaxNode) -> Option<Self> {
20705        if Self::can_cast(syntax.kind()) {
20706            Some(Self { syntax })
20707        } else {
20708            None
20709        }
20710    }
20711    #[inline]
20712    fn syntax(&self) -> &SyntaxNode {
20713        &self.syntax
20714    }
20715}
20716impl AstNode for DropCast {
20717    #[inline]
20718    fn can_cast(kind: SyntaxKind) -> bool {
20719        kind == SyntaxKind::DROP_CAST
20720    }
20721    #[inline]
20722    fn cast(syntax: SyntaxNode) -> Option<Self> {
20723        if Self::can_cast(syntax.kind()) {
20724            Some(Self { syntax })
20725        } else {
20726            None
20727        }
20728    }
20729    #[inline]
20730    fn syntax(&self) -> &SyntaxNode {
20731        &self.syntax
20732    }
20733}
20734impl AstNode for DropCollation {
20735    #[inline]
20736    fn can_cast(kind: SyntaxKind) -> bool {
20737        kind == SyntaxKind::DROP_COLLATION
20738    }
20739    #[inline]
20740    fn cast(syntax: SyntaxNode) -> Option<Self> {
20741        if Self::can_cast(syntax.kind()) {
20742            Some(Self { syntax })
20743        } else {
20744            None
20745        }
20746    }
20747    #[inline]
20748    fn syntax(&self) -> &SyntaxNode {
20749        &self.syntax
20750    }
20751}
20752impl AstNode for DropColumn {
20753    #[inline]
20754    fn can_cast(kind: SyntaxKind) -> bool {
20755        kind == SyntaxKind::DROP_COLUMN
20756    }
20757    #[inline]
20758    fn cast(syntax: SyntaxNode) -> Option<Self> {
20759        if Self::can_cast(syntax.kind()) {
20760            Some(Self { syntax })
20761        } else {
20762            None
20763        }
20764    }
20765    #[inline]
20766    fn syntax(&self) -> &SyntaxNode {
20767        &self.syntax
20768    }
20769}
20770impl AstNode for DropConstraint {
20771    #[inline]
20772    fn can_cast(kind: SyntaxKind) -> bool {
20773        kind == SyntaxKind::DROP_CONSTRAINT
20774    }
20775    #[inline]
20776    fn cast(syntax: SyntaxNode) -> Option<Self> {
20777        if Self::can_cast(syntax.kind()) {
20778            Some(Self { syntax })
20779        } else {
20780            None
20781        }
20782    }
20783    #[inline]
20784    fn syntax(&self) -> &SyntaxNode {
20785        &self.syntax
20786    }
20787}
20788impl AstNode for DropConversion {
20789    #[inline]
20790    fn can_cast(kind: SyntaxKind) -> bool {
20791        kind == SyntaxKind::DROP_CONVERSION
20792    }
20793    #[inline]
20794    fn cast(syntax: SyntaxNode) -> Option<Self> {
20795        if Self::can_cast(syntax.kind()) {
20796            Some(Self { syntax })
20797        } else {
20798            None
20799        }
20800    }
20801    #[inline]
20802    fn syntax(&self) -> &SyntaxNode {
20803        &self.syntax
20804    }
20805}
20806impl AstNode for DropDatabase {
20807    #[inline]
20808    fn can_cast(kind: SyntaxKind) -> bool {
20809        kind == SyntaxKind::DROP_DATABASE
20810    }
20811    #[inline]
20812    fn cast(syntax: SyntaxNode) -> Option<Self> {
20813        if Self::can_cast(syntax.kind()) {
20814            Some(Self { syntax })
20815        } else {
20816            None
20817        }
20818    }
20819    #[inline]
20820    fn syntax(&self) -> &SyntaxNode {
20821        &self.syntax
20822    }
20823}
20824impl AstNode for DropDefault {
20825    #[inline]
20826    fn can_cast(kind: SyntaxKind) -> bool {
20827        kind == SyntaxKind::DROP_DEFAULT
20828    }
20829    #[inline]
20830    fn cast(syntax: SyntaxNode) -> Option<Self> {
20831        if Self::can_cast(syntax.kind()) {
20832            Some(Self { syntax })
20833        } else {
20834            None
20835        }
20836    }
20837    #[inline]
20838    fn syntax(&self) -> &SyntaxNode {
20839        &self.syntax
20840    }
20841}
20842impl AstNode for DropDomain {
20843    #[inline]
20844    fn can_cast(kind: SyntaxKind) -> bool {
20845        kind == SyntaxKind::DROP_DOMAIN
20846    }
20847    #[inline]
20848    fn cast(syntax: SyntaxNode) -> Option<Self> {
20849        if Self::can_cast(syntax.kind()) {
20850            Some(Self { syntax })
20851        } else {
20852            None
20853        }
20854    }
20855    #[inline]
20856    fn syntax(&self) -> &SyntaxNode {
20857        &self.syntax
20858    }
20859}
20860impl AstNode for DropEventTrigger {
20861    #[inline]
20862    fn can_cast(kind: SyntaxKind) -> bool {
20863        kind == SyntaxKind::DROP_EVENT_TRIGGER
20864    }
20865    #[inline]
20866    fn cast(syntax: SyntaxNode) -> Option<Self> {
20867        if Self::can_cast(syntax.kind()) {
20868            Some(Self { syntax })
20869        } else {
20870            None
20871        }
20872    }
20873    #[inline]
20874    fn syntax(&self) -> &SyntaxNode {
20875        &self.syntax
20876    }
20877}
20878impl AstNode for DropExpression {
20879    #[inline]
20880    fn can_cast(kind: SyntaxKind) -> bool {
20881        kind == SyntaxKind::DROP_EXPRESSION
20882    }
20883    #[inline]
20884    fn cast(syntax: SyntaxNode) -> Option<Self> {
20885        if Self::can_cast(syntax.kind()) {
20886            Some(Self { syntax })
20887        } else {
20888            None
20889        }
20890    }
20891    #[inline]
20892    fn syntax(&self) -> &SyntaxNode {
20893        &self.syntax
20894    }
20895}
20896impl AstNode for DropExtension {
20897    #[inline]
20898    fn can_cast(kind: SyntaxKind) -> bool {
20899        kind == SyntaxKind::DROP_EXTENSION
20900    }
20901    #[inline]
20902    fn cast(syntax: SyntaxNode) -> Option<Self> {
20903        if Self::can_cast(syntax.kind()) {
20904            Some(Self { syntax })
20905        } else {
20906            None
20907        }
20908    }
20909    #[inline]
20910    fn syntax(&self) -> &SyntaxNode {
20911        &self.syntax
20912    }
20913}
20914impl AstNode for DropForeignDataWrapper {
20915    #[inline]
20916    fn can_cast(kind: SyntaxKind) -> bool {
20917        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
20918    }
20919    #[inline]
20920    fn cast(syntax: SyntaxNode) -> Option<Self> {
20921        if Self::can_cast(syntax.kind()) {
20922            Some(Self { syntax })
20923        } else {
20924            None
20925        }
20926    }
20927    #[inline]
20928    fn syntax(&self) -> &SyntaxNode {
20929        &self.syntax
20930    }
20931}
20932impl AstNode for DropForeignTable {
20933    #[inline]
20934    fn can_cast(kind: SyntaxKind) -> bool {
20935        kind == SyntaxKind::DROP_FOREIGN_TABLE
20936    }
20937    #[inline]
20938    fn cast(syntax: SyntaxNode) -> Option<Self> {
20939        if Self::can_cast(syntax.kind()) {
20940            Some(Self { syntax })
20941        } else {
20942            None
20943        }
20944    }
20945    #[inline]
20946    fn syntax(&self) -> &SyntaxNode {
20947        &self.syntax
20948    }
20949}
20950impl AstNode for DropFunction {
20951    #[inline]
20952    fn can_cast(kind: SyntaxKind) -> bool {
20953        kind == SyntaxKind::DROP_FUNCTION
20954    }
20955    #[inline]
20956    fn cast(syntax: SyntaxNode) -> Option<Self> {
20957        if Self::can_cast(syntax.kind()) {
20958            Some(Self { syntax })
20959        } else {
20960            None
20961        }
20962    }
20963    #[inline]
20964    fn syntax(&self) -> &SyntaxNode {
20965        &self.syntax
20966    }
20967}
20968impl AstNode for DropGroup {
20969    #[inline]
20970    fn can_cast(kind: SyntaxKind) -> bool {
20971        kind == SyntaxKind::DROP_GROUP
20972    }
20973    #[inline]
20974    fn cast(syntax: SyntaxNode) -> Option<Self> {
20975        if Self::can_cast(syntax.kind()) {
20976            Some(Self { syntax })
20977        } else {
20978            None
20979        }
20980    }
20981    #[inline]
20982    fn syntax(&self) -> &SyntaxNode {
20983        &self.syntax
20984    }
20985}
20986impl AstNode for DropIdentity {
20987    #[inline]
20988    fn can_cast(kind: SyntaxKind) -> bool {
20989        kind == SyntaxKind::DROP_IDENTITY
20990    }
20991    #[inline]
20992    fn cast(syntax: SyntaxNode) -> Option<Self> {
20993        if Self::can_cast(syntax.kind()) {
20994            Some(Self { syntax })
20995        } else {
20996            None
20997        }
20998    }
20999    #[inline]
21000    fn syntax(&self) -> &SyntaxNode {
21001        &self.syntax
21002    }
21003}
21004impl AstNode for DropIndex {
21005    #[inline]
21006    fn can_cast(kind: SyntaxKind) -> bool {
21007        kind == SyntaxKind::DROP_INDEX
21008    }
21009    #[inline]
21010    fn cast(syntax: SyntaxNode) -> Option<Self> {
21011        if Self::can_cast(syntax.kind()) {
21012            Some(Self { syntax })
21013        } else {
21014            None
21015        }
21016    }
21017    #[inline]
21018    fn syntax(&self) -> &SyntaxNode {
21019        &self.syntax
21020    }
21021}
21022impl AstNode for DropLanguage {
21023    #[inline]
21024    fn can_cast(kind: SyntaxKind) -> bool {
21025        kind == SyntaxKind::DROP_LANGUAGE
21026    }
21027    #[inline]
21028    fn cast(syntax: SyntaxNode) -> Option<Self> {
21029        if Self::can_cast(syntax.kind()) {
21030            Some(Self { syntax })
21031        } else {
21032            None
21033        }
21034    }
21035    #[inline]
21036    fn syntax(&self) -> &SyntaxNode {
21037        &self.syntax
21038    }
21039}
21040impl AstNode for DropMaterializedView {
21041    #[inline]
21042    fn can_cast(kind: SyntaxKind) -> bool {
21043        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
21044    }
21045    #[inline]
21046    fn cast(syntax: SyntaxNode) -> Option<Self> {
21047        if Self::can_cast(syntax.kind()) {
21048            Some(Self { syntax })
21049        } else {
21050            None
21051        }
21052    }
21053    #[inline]
21054    fn syntax(&self) -> &SyntaxNode {
21055        &self.syntax
21056    }
21057}
21058impl AstNode for DropNotNull {
21059    #[inline]
21060    fn can_cast(kind: SyntaxKind) -> bool {
21061        kind == SyntaxKind::DROP_NOT_NULL
21062    }
21063    #[inline]
21064    fn cast(syntax: SyntaxNode) -> Option<Self> {
21065        if Self::can_cast(syntax.kind()) {
21066            Some(Self { syntax })
21067        } else {
21068            None
21069        }
21070    }
21071    #[inline]
21072    fn syntax(&self) -> &SyntaxNode {
21073        &self.syntax
21074    }
21075}
21076impl AstNode for DropOpClassOption {
21077    #[inline]
21078    fn can_cast(kind: SyntaxKind) -> bool {
21079        kind == SyntaxKind::DROP_OP_CLASS_OPTION
21080    }
21081    #[inline]
21082    fn cast(syntax: SyntaxNode) -> Option<Self> {
21083        if Self::can_cast(syntax.kind()) {
21084            Some(Self { syntax })
21085        } else {
21086            None
21087        }
21088    }
21089    #[inline]
21090    fn syntax(&self) -> &SyntaxNode {
21091        &self.syntax
21092    }
21093}
21094impl AstNode for DropOpClassOptionList {
21095    #[inline]
21096    fn can_cast(kind: SyntaxKind) -> bool {
21097        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
21098    }
21099    #[inline]
21100    fn cast(syntax: SyntaxNode) -> Option<Self> {
21101        if Self::can_cast(syntax.kind()) {
21102            Some(Self { syntax })
21103        } else {
21104            None
21105        }
21106    }
21107    #[inline]
21108    fn syntax(&self) -> &SyntaxNode {
21109        &self.syntax
21110    }
21111}
21112impl AstNode for DropOpClassOptions {
21113    #[inline]
21114    fn can_cast(kind: SyntaxKind) -> bool {
21115        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
21116    }
21117    #[inline]
21118    fn cast(syntax: SyntaxNode) -> Option<Self> {
21119        if Self::can_cast(syntax.kind()) {
21120            Some(Self { syntax })
21121        } else {
21122            None
21123        }
21124    }
21125    #[inline]
21126    fn syntax(&self) -> &SyntaxNode {
21127        &self.syntax
21128    }
21129}
21130impl AstNode for DropOperator {
21131    #[inline]
21132    fn can_cast(kind: SyntaxKind) -> bool {
21133        kind == SyntaxKind::DROP_OPERATOR
21134    }
21135    #[inline]
21136    fn cast(syntax: SyntaxNode) -> Option<Self> {
21137        if Self::can_cast(syntax.kind()) {
21138            Some(Self { syntax })
21139        } else {
21140            None
21141        }
21142    }
21143    #[inline]
21144    fn syntax(&self) -> &SyntaxNode {
21145        &self.syntax
21146    }
21147}
21148impl AstNode for DropOperatorClass {
21149    #[inline]
21150    fn can_cast(kind: SyntaxKind) -> bool {
21151        kind == SyntaxKind::DROP_OPERATOR_CLASS
21152    }
21153    #[inline]
21154    fn cast(syntax: SyntaxNode) -> Option<Self> {
21155        if Self::can_cast(syntax.kind()) {
21156            Some(Self { syntax })
21157        } else {
21158            None
21159        }
21160    }
21161    #[inline]
21162    fn syntax(&self) -> &SyntaxNode {
21163        &self.syntax
21164    }
21165}
21166impl AstNode for DropOperatorFamily {
21167    #[inline]
21168    fn can_cast(kind: SyntaxKind) -> bool {
21169        kind == SyntaxKind::DROP_OPERATOR_FAMILY
21170    }
21171    #[inline]
21172    fn cast(syntax: SyntaxNode) -> Option<Self> {
21173        if Self::can_cast(syntax.kind()) {
21174            Some(Self { syntax })
21175        } else {
21176            None
21177        }
21178    }
21179    #[inline]
21180    fn syntax(&self) -> &SyntaxNode {
21181        &self.syntax
21182    }
21183}
21184impl AstNode for DropOwned {
21185    #[inline]
21186    fn can_cast(kind: SyntaxKind) -> bool {
21187        kind == SyntaxKind::DROP_OWNED
21188    }
21189    #[inline]
21190    fn cast(syntax: SyntaxNode) -> Option<Self> {
21191        if Self::can_cast(syntax.kind()) {
21192            Some(Self { syntax })
21193        } else {
21194            None
21195        }
21196    }
21197    #[inline]
21198    fn syntax(&self) -> &SyntaxNode {
21199        &self.syntax
21200    }
21201}
21202impl AstNode for DropPolicy {
21203    #[inline]
21204    fn can_cast(kind: SyntaxKind) -> bool {
21205        kind == SyntaxKind::DROP_POLICY
21206    }
21207    #[inline]
21208    fn cast(syntax: SyntaxNode) -> Option<Self> {
21209        if Self::can_cast(syntax.kind()) {
21210            Some(Self { syntax })
21211        } else {
21212            None
21213        }
21214    }
21215    #[inline]
21216    fn syntax(&self) -> &SyntaxNode {
21217        &self.syntax
21218    }
21219}
21220impl AstNode for DropProcedure {
21221    #[inline]
21222    fn can_cast(kind: SyntaxKind) -> bool {
21223        kind == SyntaxKind::DROP_PROCEDURE
21224    }
21225    #[inline]
21226    fn cast(syntax: SyntaxNode) -> Option<Self> {
21227        if Self::can_cast(syntax.kind()) {
21228            Some(Self { syntax })
21229        } else {
21230            None
21231        }
21232    }
21233    #[inline]
21234    fn syntax(&self) -> &SyntaxNode {
21235        &self.syntax
21236    }
21237}
21238impl AstNode for DropPublication {
21239    #[inline]
21240    fn can_cast(kind: SyntaxKind) -> bool {
21241        kind == SyntaxKind::DROP_PUBLICATION
21242    }
21243    #[inline]
21244    fn cast(syntax: SyntaxNode) -> Option<Self> {
21245        if Self::can_cast(syntax.kind()) {
21246            Some(Self { syntax })
21247        } else {
21248            None
21249        }
21250    }
21251    #[inline]
21252    fn syntax(&self) -> &SyntaxNode {
21253        &self.syntax
21254    }
21255}
21256impl AstNode for DropRole {
21257    #[inline]
21258    fn can_cast(kind: SyntaxKind) -> bool {
21259        kind == SyntaxKind::DROP_ROLE
21260    }
21261    #[inline]
21262    fn cast(syntax: SyntaxNode) -> Option<Self> {
21263        if Self::can_cast(syntax.kind()) {
21264            Some(Self { syntax })
21265        } else {
21266            None
21267        }
21268    }
21269    #[inline]
21270    fn syntax(&self) -> &SyntaxNode {
21271        &self.syntax
21272    }
21273}
21274impl AstNode for DropRoutine {
21275    #[inline]
21276    fn can_cast(kind: SyntaxKind) -> bool {
21277        kind == SyntaxKind::DROP_ROUTINE
21278    }
21279    #[inline]
21280    fn cast(syntax: SyntaxNode) -> Option<Self> {
21281        if Self::can_cast(syntax.kind()) {
21282            Some(Self { syntax })
21283        } else {
21284            None
21285        }
21286    }
21287    #[inline]
21288    fn syntax(&self) -> &SyntaxNode {
21289        &self.syntax
21290    }
21291}
21292impl AstNode for DropRule {
21293    #[inline]
21294    fn can_cast(kind: SyntaxKind) -> bool {
21295        kind == SyntaxKind::DROP_RULE
21296    }
21297    #[inline]
21298    fn cast(syntax: SyntaxNode) -> Option<Self> {
21299        if Self::can_cast(syntax.kind()) {
21300            Some(Self { syntax })
21301        } else {
21302            None
21303        }
21304    }
21305    #[inline]
21306    fn syntax(&self) -> &SyntaxNode {
21307        &self.syntax
21308    }
21309}
21310impl AstNode for DropSchema {
21311    #[inline]
21312    fn can_cast(kind: SyntaxKind) -> bool {
21313        kind == SyntaxKind::DROP_SCHEMA
21314    }
21315    #[inline]
21316    fn cast(syntax: SyntaxNode) -> Option<Self> {
21317        if Self::can_cast(syntax.kind()) {
21318            Some(Self { syntax })
21319        } else {
21320            None
21321        }
21322    }
21323    #[inline]
21324    fn syntax(&self) -> &SyntaxNode {
21325        &self.syntax
21326    }
21327}
21328impl AstNode for DropSequence {
21329    #[inline]
21330    fn can_cast(kind: SyntaxKind) -> bool {
21331        kind == SyntaxKind::DROP_SEQUENCE
21332    }
21333    #[inline]
21334    fn cast(syntax: SyntaxNode) -> Option<Self> {
21335        if Self::can_cast(syntax.kind()) {
21336            Some(Self { syntax })
21337        } else {
21338            None
21339        }
21340    }
21341    #[inline]
21342    fn syntax(&self) -> &SyntaxNode {
21343        &self.syntax
21344    }
21345}
21346impl AstNode for DropServer {
21347    #[inline]
21348    fn can_cast(kind: SyntaxKind) -> bool {
21349        kind == SyntaxKind::DROP_SERVER
21350    }
21351    #[inline]
21352    fn cast(syntax: SyntaxNode) -> Option<Self> {
21353        if Self::can_cast(syntax.kind()) {
21354            Some(Self { syntax })
21355        } else {
21356            None
21357        }
21358    }
21359    #[inline]
21360    fn syntax(&self) -> &SyntaxNode {
21361        &self.syntax
21362    }
21363}
21364impl AstNode for DropStatistics {
21365    #[inline]
21366    fn can_cast(kind: SyntaxKind) -> bool {
21367        kind == SyntaxKind::DROP_STATISTICS
21368    }
21369    #[inline]
21370    fn cast(syntax: SyntaxNode) -> Option<Self> {
21371        if Self::can_cast(syntax.kind()) {
21372            Some(Self { syntax })
21373        } else {
21374            None
21375        }
21376    }
21377    #[inline]
21378    fn syntax(&self) -> &SyntaxNode {
21379        &self.syntax
21380    }
21381}
21382impl AstNode for DropSubscription {
21383    #[inline]
21384    fn can_cast(kind: SyntaxKind) -> bool {
21385        kind == SyntaxKind::DROP_SUBSCRIPTION
21386    }
21387    #[inline]
21388    fn cast(syntax: SyntaxNode) -> Option<Self> {
21389        if Self::can_cast(syntax.kind()) {
21390            Some(Self { syntax })
21391        } else {
21392            None
21393        }
21394    }
21395    #[inline]
21396    fn syntax(&self) -> &SyntaxNode {
21397        &self.syntax
21398    }
21399}
21400impl AstNode for DropTable {
21401    #[inline]
21402    fn can_cast(kind: SyntaxKind) -> bool {
21403        kind == SyntaxKind::DROP_TABLE
21404    }
21405    #[inline]
21406    fn cast(syntax: SyntaxNode) -> Option<Self> {
21407        if Self::can_cast(syntax.kind()) {
21408            Some(Self { syntax })
21409        } else {
21410            None
21411        }
21412    }
21413    #[inline]
21414    fn syntax(&self) -> &SyntaxNode {
21415        &self.syntax
21416    }
21417}
21418impl AstNode for DropTablespace {
21419    #[inline]
21420    fn can_cast(kind: SyntaxKind) -> bool {
21421        kind == SyntaxKind::DROP_TABLESPACE
21422    }
21423    #[inline]
21424    fn cast(syntax: SyntaxNode) -> Option<Self> {
21425        if Self::can_cast(syntax.kind()) {
21426            Some(Self { syntax })
21427        } else {
21428            None
21429        }
21430    }
21431    #[inline]
21432    fn syntax(&self) -> &SyntaxNode {
21433        &self.syntax
21434    }
21435}
21436impl AstNode for DropTextSearchConfig {
21437    #[inline]
21438    fn can_cast(kind: SyntaxKind) -> bool {
21439        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
21440    }
21441    #[inline]
21442    fn cast(syntax: SyntaxNode) -> Option<Self> {
21443        if Self::can_cast(syntax.kind()) {
21444            Some(Self { syntax })
21445        } else {
21446            None
21447        }
21448    }
21449    #[inline]
21450    fn syntax(&self) -> &SyntaxNode {
21451        &self.syntax
21452    }
21453}
21454impl AstNode for DropTextSearchDict {
21455    #[inline]
21456    fn can_cast(kind: SyntaxKind) -> bool {
21457        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
21458    }
21459    #[inline]
21460    fn cast(syntax: SyntaxNode) -> Option<Self> {
21461        if Self::can_cast(syntax.kind()) {
21462            Some(Self { syntax })
21463        } else {
21464            None
21465        }
21466    }
21467    #[inline]
21468    fn syntax(&self) -> &SyntaxNode {
21469        &self.syntax
21470    }
21471}
21472impl AstNode for DropTextSearchParser {
21473    #[inline]
21474    fn can_cast(kind: SyntaxKind) -> bool {
21475        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
21476    }
21477    #[inline]
21478    fn cast(syntax: SyntaxNode) -> Option<Self> {
21479        if Self::can_cast(syntax.kind()) {
21480            Some(Self { syntax })
21481        } else {
21482            None
21483        }
21484    }
21485    #[inline]
21486    fn syntax(&self) -> &SyntaxNode {
21487        &self.syntax
21488    }
21489}
21490impl AstNode for DropTextSearchTemplate {
21491    #[inline]
21492    fn can_cast(kind: SyntaxKind) -> bool {
21493        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
21494    }
21495    #[inline]
21496    fn cast(syntax: SyntaxNode) -> Option<Self> {
21497        if Self::can_cast(syntax.kind()) {
21498            Some(Self { syntax })
21499        } else {
21500            None
21501        }
21502    }
21503    #[inline]
21504    fn syntax(&self) -> &SyntaxNode {
21505        &self.syntax
21506    }
21507}
21508impl AstNode for DropTransform {
21509    #[inline]
21510    fn can_cast(kind: SyntaxKind) -> bool {
21511        kind == SyntaxKind::DROP_TRANSFORM
21512    }
21513    #[inline]
21514    fn cast(syntax: SyntaxNode) -> Option<Self> {
21515        if Self::can_cast(syntax.kind()) {
21516            Some(Self { syntax })
21517        } else {
21518            None
21519        }
21520    }
21521    #[inline]
21522    fn syntax(&self) -> &SyntaxNode {
21523        &self.syntax
21524    }
21525}
21526impl AstNode for DropTrigger {
21527    #[inline]
21528    fn can_cast(kind: SyntaxKind) -> bool {
21529        kind == SyntaxKind::DROP_TRIGGER
21530    }
21531    #[inline]
21532    fn cast(syntax: SyntaxNode) -> Option<Self> {
21533        if Self::can_cast(syntax.kind()) {
21534            Some(Self { syntax })
21535        } else {
21536            None
21537        }
21538    }
21539    #[inline]
21540    fn syntax(&self) -> &SyntaxNode {
21541        &self.syntax
21542    }
21543}
21544impl AstNode for DropType {
21545    #[inline]
21546    fn can_cast(kind: SyntaxKind) -> bool {
21547        kind == SyntaxKind::DROP_TYPE
21548    }
21549    #[inline]
21550    fn cast(syntax: SyntaxNode) -> Option<Self> {
21551        if Self::can_cast(syntax.kind()) {
21552            Some(Self { syntax })
21553        } else {
21554            None
21555        }
21556    }
21557    #[inline]
21558    fn syntax(&self) -> &SyntaxNode {
21559        &self.syntax
21560    }
21561}
21562impl AstNode for DropUser {
21563    #[inline]
21564    fn can_cast(kind: SyntaxKind) -> bool {
21565        kind == SyntaxKind::DROP_USER
21566    }
21567    #[inline]
21568    fn cast(syntax: SyntaxNode) -> Option<Self> {
21569        if Self::can_cast(syntax.kind()) {
21570            Some(Self { syntax })
21571        } else {
21572            None
21573        }
21574    }
21575    #[inline]
21576    fn syntax(&self) -> &SyntaxNode {
21577        &self.syntax
21578    }
21579}
21580impl AstNode for DropUserMapping {
21581    #[inline]
21582    fn can_cast(kind: SyntaxKind) -> bool {
21583        kind == SyntaxKind::DROP_USER_MAPPING
21584    }
21585    #[inline]
21586    fn cast(syntax: SyntaxNode) -> Option<Self> {
21587        if Self::can_cast(syntax.kind()) {
21588            Some(Self { syntax })
21589        } else {
21590            None
21591        }
21592    }
21593    #[inline]
21594    fn syntax(&self) -> &SyntaxNode {
21595        &self.syntax
21596    }
21597}
21598impl AstNode for DropView {
21599    #[inline]
21600    fn can_cast(kind: SyntaxKind) -> bool {
21601        kind == SyntaxKind::DROP_VIEW
21602    }
21603    #[inline]
21604    fn cast(syntax: SyntaxNode) -> Option<Self> {
21605        if Self::can_cast(syntax.kind()) {
21606            Some(Self { syntax })
21607        } else {
21608            None
21609        }
21610    }
21611    #[inline]
21612    fn syntax(&self) -> &SyntaxNode {
21613        &self.syntax
21614    }
21615}
21616impl AstNode for ElseClause {
21617    #[inline]
21618    fn can_cast(kind: SyntaxKind) -> bool {
21619        kind == SyntaxKind::ELSE_CLAUSE
21620    }
21621    #[inline]
21622    fn cast(syntax: SyntaxNode) -> Option<Self> {
21623        if Self::can_cast(syntax.kind()) {
21624            Some(Self { syntax })
21625        } else {
21626            None
21627        }
21628    }
21629    #[inline]
21630    fn syntax(&self) -> &SyntaxNode {
21631        &self.syntax
21632    }
21633}
21634impl AstNode for EnableAlwaysRule {
21635    #[inline]
21636    fn can_cast(kind: SyntaxKind) -> bool {
21637        kind == SyntaxKind::ENABLE_ALWAYS_RULE
21638    }
21639    #[inline]
21640    fn cast(syntax: SyntaxNode) -> Option<Self> {
21641        if Self::can_cast(syntax.kind()) {
21642            Some(Self { syntax })
21643        } else {
21644            None
21645        }
21646    }
21647    #[inline]
21648    fn syntax(&self) -> &SyntaxNode {
21649        &self.syntax
21650    }
21651}
21652impl AstNode for EnableAlwaysTrigger {
21653    #[inline]
21654    fn can_cast(kind: SyntaxKind) -> bool {
21655        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
21656    }
21657    #[inline]
21658    fn cast(syntax: SyntaxNode) -> Option<Self> {
21659        if Self::can_cast(syntax.kind()) {
21660            Some(Self { syntax })
21661        } else {
21662            None
21663        }
21664    }
21665    #[inline]
21666    fn syntax(&self) -> &SyntaxNode {
21667        &self.syntax
21668    }
21669}
21670impl AstNode for EnableReplicaRule {
21671    #[inline]
21672    fn can_cast(kind: SyntaxKind) -> bool {
21673        kind == SyntaxKind::ENABLE_REPLICA_RULE
21674    }
21675    #[inline]
21676    fn cast(syntax: SyntaxNode) -> Option<Self> {
21677        if Self::can_cast(syntax.kind()) {
21678            Some(Self { syntax })
21679        } else {
21680            None
21681        }
21682    }
21683    #[inline]
21684    fn syntax(&self) -> &SyntaxNode {
21685        &self.syntax
21686    }
21687}
21688impl AstNode for EnableReplicaTrigger {
21689    #[inline]
21690    fn can_cast(kind: SyntaxKind) -> bool {
21691        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
21692    }
21693    #[inline]
21694    fn cast(syntax: SyntaxNode) -> Option<Self> {
21695        if Self::can_cast(syntax.kind()) {
21696            Some(Self { syntax })
21697        } else {
21698            None
21699        }
21700    }
21701    #[inline]
21702    fn syntax(&self) -> &SyntaxNode {
21703        &self.syntax
21704    }
21705}
21706impl AstNode for EnableRls {
21707    #[inline]
21708    fn can_cast(kind: SyntaxKind) -> bool {
21709        kind == SyntaxKind::ENABLE_RLS
21710    }
21711    #[inline]
21712    fn cast(syntax: SyntaxNode) -> Option<Self> {
21713        if Self::can_cast(syntax.kind()) {
21714            Some(Self { syntax })
21715        } else {
21716            None
21717        }
21718    }
21719    #[inline]
21720    fn syntax(&self) -> &SyntaxNode {
21721        &self.syntax
21722    }
21723}
21724impl AstNode for EnableRule {
21725    #[inline]
21726    fn can_cast(kind: SyntaxKind) -> bool {
21727        kind == SyntaxKind::ENABLE_RULE
21728    }
21729    #[inline]
21730    fn cast(syntax: SyntaxNode) -> Option<Self> {
21731        if Self::can_cast(syntax.kind()) {
21732            Some(Self { syntax })
21733        } else {
21734            None
21735        }
21736    }
21737    #[inline]
21738    fn syntax(&self) -> &SyntaxNode {
21739        &self.syntax
21740    }
21741}
21742impl AstNode for EnableTrigger {
21743    #[inline]
21744    fn can_cast(kind: SyntaxKind) -> bool {
21745        kind == SyntaxKind::ENABLE_TRIGGER
21746    }
21747    #[inline]
21748    fn cast(syntax: SyntaxNode) -> Option<Self> {
21749        if Self::can_cast(syntax.kind()) {
21750            Some(Self { syntax })
21751        } else {
21752            None
21753        }
21754    }
21755    #[inline]
21756    fn syntax(&self) -> &SyntaxNode {
21757        &self.syntax
21758    }
21759}
21760impl AstNode for Enforced {
21761    #[inline]
21762    fn can_cast(kind: SyntaxKind) -> bool {
21763        kind == SyntaxKind::ENFORCED
21764    }
21765    #[inline]
21766    fn cast(syntax: SyntaxNode) -> Option<Self> {
21767        if Self::can_cast(syntax.kind()) {
21768            Some(Self { syntax })
21769        } else {
21770            None
21771        }
21772    }
21773    #[inline]
21774    fn syntax(&self) -> &SyntaxNode {
21775        &self.syntax
21776    }
21777}
21778impl AstNode for EventTriggerWhen {
21779    #[inline]
21780    fn can_cast(kind: SyntaxKind) -> bool {
21781        kind == SyntaxKind::EVENT_TRIGGER_WHEN
21782    }
21783    #[inline]
21784    fn cast(syntax: SyntaxNode) -> Option<Self> {
21785        if Self::can_cast(syntax.kind()) {
21786            Some(Self { syntax })
21787        } else {
21788            None
21789        }
21790    }
21791    #[inline]
21792    fn syntax(&self) -> &SyntaxNode {
21793        &self.syntax
21794    }
21795}
21796impl AstNode for EventTriggerWhenClause {
21797    #[inline]
21798    fn can_cast(kind: SyntaxKind) -> bool {
21799        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
21800    }
21801    #[inline]
21802    fn cast(syntax: SyntaxNode) -> Option<Self> {
21803        if Self::can_cast(syntax.kind()) {
21804            Some(Self { syntax })
21805        } else {
21806            None
21807        }
21808    }
21809    #[inline]
21810    fn syntax(&self) -> &SyntaxNode {
21811        &self.syntax
21812    }
21813}
21814impl AstNode for ExceptTables {
21815    #[inline]
21816    fn can_cast(kind: SyntaxKind) -> bool {
21817        kind == SyntaxKind::EXCEPT_TABLES
21818    }
21819    #[inline]
21820    fn cast(syntax: SyntaxNode) -> Option<Self> {
21821        if Self::can_cast(syntax.kind()) {
21822            Some(Self { syntax })
21823        } else {
21824            None
21825        }
21826    }
21827    #[inline]
21828    fn syntax(&self) -> &SyntaxNode {
21829        &self.syntax
21830    }
21831}
21832impl AstNode for ExcludeConstraint {
21833    #[inline]
21834    fn can_cast(kind: SyntaxKind) -> bool {
21835        kind == SyntaxKind::EXCLUDE_CONSTRAINT
21836    }
21837    #[inline]
21838    fn cast(syntax: SyntaxNode) -> Option<Self> {
21839        if Self::can_cast(syntax.kind()) {
21840            Some(Self { syntax })
21841        } else {
21842            None
21843        }
21844    }
21845    #[inline]
21846    fn syntax(&self) -> &SyntaxNode {
21847        &self.syntax
21848    }
21849}
21850impl AstNode for Execute {
21851    #[inline]
21852    fn can_cast(kind: SyntaxKind) -> bool {
21853        kind == SyntaxKind::EXECUTE
21854    }
21855    #[inline]
21856    fn cast(syntax: SyntaxNode) -> Option<Self> {
21857        if Self::can_cast(syntax.kind()) {
21858            Some(Self { syntax })
21859        } else {
21860            None
21861        }
21862    }
21863    #[inline]
21864    fn syntax(&self) -> &SyntaxNode {
21865        &self.syntax
21866    }
21867}
21868impl AstNode for ExistsFn {
21869    #[inline]
21870    fn can_cast(kind: SyntaxKind) -> bool {
21871        kind == SyntaxKind::EXISTS_FN
21872    }
21873    #[inline]
21874    fn cast(syntax: SyntaxNode) -> Option<Self> {
21875        if Self::can_cast(syntax.kind()) {
21876            Some(Self { syntax })
21877        } else {
21878            None
21879        }
21880    }
21881    #[inline]
21882    fn syntax(&self) -> &SyntaxNode {
21883        &self.syntax
21884    }
21885}
21886impl AstNode for Explain {
21887    #[inline]
21888    fn can_cast(kind: SyntaxKind) -> bool {
21889        kind == SyntaxKind::EXPLAIN
21890    }
21891    #[inline]
21892    fn cast(syntax: SyntaxNode) -> Option<Self> {
21893        if Self::can_cast(syntax.kind()) {
21894            Some(Self { syntax })
21895        } else {
21896            None
21897        }
21898    }
21899    #[inline]
21900    fn syntax(&self) -> &SyntaxNode {
21901        &self.syntax
21902    }
21903}
21904impl AstNode for ExprAsName {
21905    #[inline]
21906    fn can_cast(kind: SyntaxKind) -> bool {
21907        kind == SyntaxKind::EXPR_AS_NAME
21908    }
21909    #[inline]
21910    fn cast(syntax: SyntaxNode) -> Option<Self> {
21911        if Self::can_cast(syntax.kind()) {
21912            Some(Self { syntax })
21913        } else {
21914            None
21915        }
21916    }
21917    #[inline]
21918    fn syntax(&self) -> &SyntaxNode {
21919        &self.syntax
21920    }
21921}
21922impl AstNode for ExprType {
21923    #[inline]
21924    fn can_cast(kind: SyntaxKind) -> bool {
21925        kind == SyntaxKind::EXPR_TYPE
21926    }
21927    #[inline]
21928    fn cast(syntax: SyntaxNode) -> Option<Self> {
21929        if Self::can_cast(syntax.kind()) {
21930            Some(Self { syntax })
21931        } else {
21932            None
21933        }
21934    }
21935    #[inline]
21936    fn syntax(&self) -> &SyntaxNode {
21937        &self.syntax
21938    }
21939}
21940impl AstNode for ExtractFn {
21941    #[inline]
21942    fn can_cast(kind: SyntaxKind) -> bool {
21943        kind == SyntaxKind::EXTRACT_FN
21944    }
21945    #[inline]
21946    fn cast(syntax: SyntaxNode) -> Option<Self> {
21947        if Self::can_cast(syntax.kind()) {
21948            Some(Self { syntax })
21949        } else {
21950            None
21951        }
21952    }
21953    #[inline]
21954    fn syntax(&self) -> &SyntaxNode {
21955        &self.syntax
21956    }
21957}
21958impl AstNode for FatArrow {
21959    #[inline]
21960    fn can_cast(kind: SyntaxKind) -> bool {
21961        kind == SyntaxKind::FAT_ARROW
21962    }
21963    #[inline]
21964    fn cast(syntax: SyntaxNode) -> Option<Self> {
21965        if Self::can_cast(syntax.kind()) {
21966            Some(Self { syntax })
21967        } else {
21968            None
21969        }
21970    }
21971    #[inline]
21972    fn syntax(&self) -> &SyntaxNode {
21973        &self.syntax
21974    }
21975}
21976impl AstNode for FdwOption {
21977    #[inline]
21978    fn can_cast(kind: SyntaxKind) -> bool {
21979        kind == SyntaxKind::FDW_OPTION
21980    }
21981    #[inline]
21982    fn cast(syntax: SyntaxNode) -> Option<Self> {
21983        if Self::can_cast(syntax.kind()) {
21984            Some(Self { syntax })
21985        } else {
21986            None
21987        }
21988    }
21989    #[inline]
21990    fn syntax(&self) -> &SyntaxNode {
21991        &self.syntax
21992    }
21993}
21994impl AstNode for FdwOptionList {
21995    #[inline]
21996    fn can_cast(kind: SyntaxKind) -> bool {
21997        kind == SyntaxKind::FDW_OPTION_LIST
21998    }
21999    #[inline]
22000    fn cast(syntax: SyntaxNode) -> Option<Self> {
22001        if Self::can_cast(syntax.kind()) {
22002            Some(Self { syntax })
22003        } else {
22004            None
22005        }
22006    }
22007    #[inline]
22008    fn syntax(&self) -> &SyntaxNode {
22009        &self.syntax
22010    }
22011}
22012impl AstNode for Fetch {
22013    #[inline]
22014    fn can_cast(kind: SyntaxKind) -> bool {
22015        kind == SyntaxKind::FETCH
22016    }
22017    #[inline]
22018    fn cast(syntax: SyntaxNode) -> Option<Self> {
22019        if Self::can_cast(syntax.kind()) {
22020            Some(Self { syntax })
22021        } else {
22022            None
22023        }
22024    }
22025    #[inline]
22026    fn syntax(&self) -> &SyntaxNode {
22027        &self.syntax
22028    }
22029}
22030impl AstNode for FetchClause {
22031    #[inline]
22032    fn can_cast(kind: SyntaxKind) -> bool {
22033        kind == SyntaxKind::FETCH_CLAUSE
22034    }
22035    #[inline]
22036    fn cast(syntax: SyntaxNode) -> Option<Self> {
22037        if Self::can_cast(syntax.kind()) {
22038            Some(Self { syntax })
22039        } else {
22040            None
22041        }
22042    }
22043    #[inline]
22044    fn syntax(&self) -> &SyntaxNode {
22045        &self.syntax
22046    }
22047}
22048impl AstNode for FieldExpr {
22049    #[inline]
22050    fn can_cast(kind: SyntaxKind) -> bool {
22051        kind == SyntaxKind::FIELD_EXPR
22052    }
22053    #[inline]
22054    fn cast(syntax: SyntaxNode) -> Option<Self> {
22055        if Self::can_cast(syntax.kind()) {
22056            Some(Self { syntax })
22057        } else {
22058            None
22059        }
22060    }
22061    #[inline]
22062    fn syntax(&self) -> &SyntaxNode {
22063        &self.syntax
22064    }
22065}
22066impl AstNode for FilterClause {
22067    #[inline]
22068    fn can_cast(kind: SyntaxKind) -> bool {
22069        kind == SyntaxKind::FILTER_CLAUSE
22070    }
22071    #[inline]
22072    fn cast(syntax: SyntaxNode) -> Option<Self> {
22073        if Self::can_cast(syntax.kind()) {
22074            Some(Self { syntax })
22075        } else {
22076            None
22077        }
22078    }
22079    #[inline]
22080    fn syntax(&self) -> &SyntaxNode {
22081        &self.syntax
22082    }
22083}
22084impl AstNode for ForProvider {
22085    #[inline]
22086    fn can_cast(kind: SyntaxKind) -> bool {
22087        kind == SyntaxKind::FOR_PROVIDER
22088    }
22089    #[inline]
22090    fn cast(syntax: SyntaxNode) -> Option<Self> {
22091        if Self::can_cast(syntax.kind()) {
22092            Some(Self { syntax })
22093        } else {
22094            None
22095        }
22096    }
22097    #[inline]
22098    fn syntax(&self) -> &SyntaxNode {
22099        &self.syntax
22100    }
22101}
22102impl AstNode for ForceRls {
22103    #[inline]
22104    fn can_cast(kind: SyntaxKind) -> bool {
22105        kind == SyntaxKind::FORCE_RLS
22106    }
22107    #[inline]
22108    fn cast(syntax: SyntaxNode) -> Option<Self> {
22109        if Self::can_cast(syntax.kind()) {
22110            Some(Self { syntax })
22111        } else {
22112            None
22113        }
22114    }
22115    #[inline]
22116    fn syntax(&self) -> &SyntaxNode {
22117        &self.syntax
22118    }
22119}
22120impl AstNode for ForeignKeyConstraint {
22121    #[inline]
22122    fn can_cast(kind: SyntaxKind) -> bool {
22123        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
22124    }
22125    #[inline]
22126    fn cast(syntax: SyntaxNode) -> Option<Self> {
22127        if Self::can_cast(syntax.kind()) {
22128            Some(Self { syntax })
22129        } else {
22130            None
22131        }
22132    }
22133    #[inline]
22134    fn syntax(&self) -> &SyntaxNode {
22135        &self.syntax
22136    }
22137}
22138impl AstNode for FrameClause {
22139    #[inline]
22140    fn can_cast(kind: SyntaxKind) -> bool {
22141        kind == SyntaxKind::FRAME_CLAUSE
22142    }
22143    #[inline]
22144    fn cast(syntax: SyntaxNode) -> Option<Self> {
22145        if Self::can_cast(syntax.kind()) {
22146            Some(Self { syntax })
22147        } else {
22148            None
22149        }
22150    }
22151    #[inline]
22152    fn syntax(&self) -> &SyntaxNode {
22153        &self.syntax
22154    }
22155}
22156impl AstNode for FromClause {
22157    #[inline]
22158    fn can_cast(kind: SyntaxKind) -> bool {
22159        kind == SyntaxKind::FROM_CLAUSE
22160    }
22161    #[inline]
22162    fn cast(syntax: SyntaxNode) -> Option<Self> {
22163        if Self::can_cast(syntax.kind()) {
22164            Some(Self { syntax })
22165        } else {
22166            None
22167        }
22168    }
22169    #[inline]
22170    fn syntax(&self) -> &SyntaxNode {
22171        &self.syntax
22172    }
22173}
22174impl AstNode for FromItem {
22175    #[inline]
22176    fn can_cast(kind: SyntaxKind) -> bool {
22177        kind == SyntaxKind::FROM_ITEM
22178    }
22179    #[inline]
22180    fn cast(syntax: SyntaxNode) -> Option<Self> {
22181        if Self::can_cast(syntax.kind()) {
22182            Some(Self { syntax })
22183        } else {
22184            None
22185        }
22186    }
22187    #[inline]
22188    fn syntax(&self) -> &SyntaxNode {
22189        &self.syntax
22190    }
22191}
22192impl AstNode for FromTable {
22193    #[inline]
22194    fn can_cast(kind: SyntaxKind) -> bool {
22195        kind == SyntaxKind::FROM_TABLE
22196    }
22197    #[inline]
22198    fn cast(syntax: SyntaxNode) -> Option<Self> {
22199        if Self::can_cast(syntax.kind()) {
22200            Some(Self { syntax })
22201        } else {
22202            None
22203        }
22204    }
22205    #[inline]
22206    fn syntax(&self) -> &SyntaxNode {
22207        &self.syntax
22208    }
22209}
22210impl AstNode for FuncOptionList {
22211    #[inline]
22212    fn can_cast(kind: SyntaxKind) -> bool {
22213        kind == SyntaxKind::FUNC_OPTION_LIST
22214    }
22215    #[inline]
22216    fn cast(syntax: SyntaxNode) -> Option<Self> {
22217        if Self::can_cast(syntax.kind()) {
22218            Some(Self { syntax })
22219        } else {
22220            None
22221        }
22222    }
22223    #[inline]
22224    fn syntax(&self) -> &SyntaxNode {
22225        &self.syntax
22226    }
22227}
22228impl AstNode for FunctionSig {
22229    #[inline]
22230    fn can_cast(kind: SyntaxKind) -> bool {
22231        kind == SyntaxKind::FUNCTION_SIG
22232    }
22233    #[inline]
22234    fn cast(syntax: SyntaxNode) -> Option<Self> {
22235        if Self::can_cast(syntax.kind()) {
22236            Some(Self { syntax })
22237        } else {
22238            None
22239        }
22240    }
22241    #[inline]
22242    fn syntax(&self) -> &SyntaxNode {
22243        &self.syntax
22244    }
22245}
22246impl AstNode for FunctionSigList {
22247    #[inline]
22248    fn can_cast(kind: SyntaxKind) -> bool {
22249        kind == SyntaxKind::FUNCTION_SIG_LIST
22250    }
22251    #[inline]
22252    fn cast(syntax: SyntaxNode) -> Option<Self> {
22253        if Self::can_cast(syntax.kind()) {
22254            Some(Self { syntax })
22255        } else {
22256            None
22257        }
22258    }
22259    #[inline]
22260    fn syntax(&self) -> &SyntaxNode {
22261        &self.syntax
22262    }
22263}
22264impl AstNode for GeneratedConstraint {
22265    #[inline]
22266    fn can_cast(kind: SyntaxKind) -> bool {
22267        kind == SyntaxKind::GENERATED_CONSTRAINT
22268    }
22269    #[inline]
22270    fn cast(syntax: SyntaxNode) -> Option<Self> {
22271        if Self::can_cast(syntax.kind()) {
22272            Some(Self { syntax })
22273        } else {
22274            None
22275        }
22276    }
22277    #[inline]
22278    fn syntax(&self) -> &SyntaxNode {
22279        &self.syntax
22280    }
22281}
22282impl AstNode for Grant {
22283    #[inline]
22284    fn can_cast(kind: SyntaxKind) -> bool {
22285        kind == SyntaxKind::GRANT
22286    }
22287    #[inline]
22288    fn cast(syntax: SyntaxNode) -> Option<Self> {
22289        if Self::can_cast(syntax.kind()) {
22290            Some(Self { syntax })
22291        } else {
22292            None
22293        }
22294    }
22295    #[inline]
22296    fn syntax(&self) -> &SyntaxNode {
22297        &self.syntax
22298    }
22299}
22300impl AstNode for GrantDefaultPrivileges {
22301    #[inline]
22302    fn can_cast(kind: SyntaxKind) -> bool {
22303        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
22304    }
22305    #[inline]
22306    fn cast(syntax: SyntaxNode) -> Option<Self> {
22307        if Self::can_cast(syntax.kind()) {
22308            Some(Self { syntax })
22309        } else {
22310            None
22311        }
22312    }
22313    #[inline]
22314    fn syntax(&self) -> &SyntaxNode {
22315        &self.syntax
22316    }
22317}
22318impl AstNode for GroupByClause {
22319    #[inline]
22320    fn can_cast(kind: SyntaxKind) -> bool {
22321        kind == SyntaxKind::GROUP_BY_CLAUSE
22322    }
22323    #[inline]
22324    fn cast(syntax: SyntaxNode) -> Option<Self> {
22325        if Self::can_cast(syntax.kind()) {
22326            Some(Self { syntax })
22327        } else {
22328            None
22329        }
22330    }
22331    #[inline]
22332    fn syntax(&self) -> &SyntaxNode {
22333        &self.syntax
22334    }
22335}
22336impl AstNode for GroupByList {
22337    #[inline]
22338    fn can_cast(kind: SyntaxKind) -> bool {
22339        kind == SyntaxKind::GROUP_BY_LIST
22340    }
22341    #[inline]
22342    fn cast(syntax: SyntaxNode) -> Option<Self> {
22343        if Self::can_cast(syntax.kind()) {
22344            Some(Self { syntax })
22345        } else {
22346            None
22347        }
22348    }
22349    #[inline]
22350    fn syntax(&self) -> &SyntaxNode {
22351        &self.syntax
22352    }
22353}
22354impl AstNode for GroupingCube {
22355    #[inline]
22356    fn can_cast(kind: SyntaxKind) -> bool {
22357        kind == SyntaxKind::GROUPING_CUBE
22358    }
22359    #[inline]
22360    fn cast(syntax: SyntaxNode) -> Option<Self> {
22361        if Self::can_cast(syntax.kind()) {
22362            Some(Self { syntax })
22363        } else {
22364            None
22365        }
22366    }
22367    #[inline]
22368    fn syntax(&self) -> &SyntaxNode {
22369        &self.syntax
22370    }
22371}
22372impl AstNode for GroupingExpr {
22373    #[inline]
22374    fn can_cast(kind: SyntaxKind) -> bool {
22375        kind == SyntaxKind::GROUPING_EXPR
22376    }
22377    #[inline]
22378    fn cast(syntax: SyntaxNode) -> Option<Self> {
22379        if Self::can_cast(syntax.kind()) {
22380            Some(Self { syntax })
22381        } else {
22382            None
22383        }
22384    }
22385    #[inline]
22386    fn syntax(&self) -> &SyntaxNode {
22387        &self.syntax
22388    }
22389}
22390impl AstNode for GroupingRollup {
22391    #[inline]
22392    fn can_cast(kind: SyntaxKind) -> bool {
22393        kind == SyntaxKind::GROUPING_ROLLUP
22394    }
22395    #[inline]
22396    fn cast(syntax: SyntaxNode) -> Option<Self> {
22397        if Self::can_cast(syntax.kind()) {
22398            Some(Self { syntax })
22399        } else {
22400            None
22401        }
22402    }
22403    #[inline]
22404    fn syntax(&self) -> &SyntaxNode {
22405        &self.syntax
22406    }
22407}
22408impl AstNode for GroupingSets {
22409    #[inline]
22410    fn can_cast(kind: SyntaxKind) -> bool {
22411        kind == SyntaxKind::GROUPING_SETS
22412    }
22413    #[inline]
22414    fn cast(syntax: SyntaxNode) -> Option<Self> {
22415        if Self::can_cast(syntax.kind()) {
22416            Some(Self { syntax })
22417        } else {
22418            None
22419        }
22420    }
22421    #[inline]
22422    fn syntax(&self) -> &SyntaxNode {
22423        &self.syntax
22424    }
22425}
22426impl AstNode for Gteq {
22427    #[inline]
22428    fn can_cast(kind: SyntaxKind) -> bool {
22429        kind == SyntaxKind::GTEQ
22430    }
22431    #[inline]
22432    fn cast(syntax: SyntaxNode) -> Option<Self> {
22433        if Self::can_cast(syntax.kind()) {
22434            Some(Self { syntax })
22435        } else {
22436            None
22437        }
22438    }
22439    #[inline]
22440    fn syntax(&self) -> &SyntaxNode {
22441        &self.syntax
22442    }
22443}
22444impl AstNode for HandlerClause {
22445    #[inline]
22446    fn can_cast(kind: SyntaxKind) -> bool {
22447        kind == SyntaxKind::HANDLER_CLAUSE
22448    }
22449    #[inline]
22450    fn cast(syntax: SyntaxNode) -> Option<Self> {
22451        if Self::can_cast(syntax.kind()) {
22452            Some(Self { syntax })
22453        } else {
22454            None
22455        }
22456    }
22457    #[inline]
22458    fn syntax(&self) -> &SyntaxNode {
22459        &self.syntax
22460    }
22461}
22462impl AstNode for HavingClause {
22463    #[inline]
22464    fn can_cast(kind: SyntaxKind) -> bool {
22465        kind == SyntaxKind::HAVING_CLAUSE
22466    }
22467    #[inline]
22468    fn cast(syntax: SyntaxNode) -> Option<Self> {
22469        if Self::can_cast(syntax.kind()) {
22470            Some(Self { syntax })
22471        } else {
22472            None
22473        }
22474    }
22475    #[inline]
22476    fn syntax(&self) -> &SyntaxNode {
22477        &self.syntax
22478    }
22479}
22480impl AstNode for IfExists {
22481    #[inline]
22482    fn can_cast(kind: SyntaxKind) -> bool {
22483        kind == SyntaxKind::IF_EXISTS
22484    }
22485    #[inline]
22486    fn cast(syntax: SyntaxNode) -> Option<Self> {
22487        if Self::can_cast(syntax.kind()) {
22488            Some(Self { syntax })
22489        } else {
22490            None
22491        }
22492    }
22493    #[inline]
22494    fn syntax(&self) -> &SyntaxNode {
22495        &self.syntax
22496    }
22497}
22498impl AstNode for IfNotExists {
22499    #[inline]
22500    fn can_cast(kind: SyntaxKind) -> bool {
22501        kind == SyntaxKind::IF_NOT_EXISTS
22502    }
22503    #[inline]
22504    fn cast(syntax: SyntaxNode) -> Option<Self> {
22505        if Self::can_cast(syntax.kind()) {
22506            Some(Self { syntax })
22507        } else {
22508            None
22509        }
22510    }
22511    #[inline]
22512    fn syntax(&self) -> &SyntaxNode {
22513        &self.syntax
22514    }
22515}
22516impl AstNode for ImportForeignSchema {
22517    #[inline]
22518    fn can_cast(kind: SyntaxKind) -> bool {
22519        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
22520    }
22521    #[inline]
22522    fn cast(syntax: SyntaxNode) -> Option<Self> {
22523        if Self::can_cast(syntax.kind()) {
22524            Some(Self { syntax })
22525        } else {
22526            None
22527        }
22528    }
22529    #[inline]
22530    fn syntax(&self) -> &SyntaxNode {
22531        &self.syntax
22532    }
22533}
22534impl AstNode for IndexExpr {
22535    #[inline]
22536    fn can_cast(kind: SyntaxKind) -> bool {
22537        kind == SyntaxKind::INDEX_EXPR
22538    }
22539    #[inline]
22540    fn cast(syntax: SyntaxNode) -> Option<Self> {
22541        if Self::can_cast(syntax.kind()) {
22542            Some(Self { syntax })
22543        } else {
22544            None
22545        }
22546    }
22547    #[inline]
22548    fn syntax(&self) -> &SyntaxNode {
22549        &self.syntax
22550    }
22551}
22552impl AstNode for Inherit {
22553    #[inline]
22554    fn can_cast(kind: SyntaxKind) -> bool {
22555        kind == SyntaxKind::INHERIT
22556    }
22557    #[inline]
22558    fn cast(syntax: SyntaxNode) -> Option<Self> {
22559        if Self::can_cast(syntax.kind()) {
22560            Some(Self { syntax })
22561        } else {
22562            None
22563        }
22564    }
22565    #[inline]
22566    fn syntax(&self) -> &SyntaxNode {
22567        &self.syntax
22568    }
22569}
22570impl AstNode for InheritTable {
22571    #[inline]
22572    fn can_cast(kind: SyntaxKind) -> bool {
22573        kind == SyntaxKind::INHERIT_TABLE
22574    }
22575    #[inline]
22576    fn cast(syntax: SyntaxNode) -> Option<Self> {
22577        if Self::can_cast(syntax.kind()) {
22578            Some(Self { syntax })
22579        } else {
22580            None
22581        }
22582    }
22583    #[inline]
22584    fn syntax(&self) -> &SyntaxNode {
22585        &self.syntax
22586    }
22587}
22588impl AstNode for Inherits {
22589    #[inline]
22590    fn can_cast(kind: SyntaxKind) -> bool {
22591        kind == SyntaxKind::INHERITS
22592    }
22593    #[inline]
22594    fn cast(syntax: SyntaxNode) -> Option<Self> {
22595        if Self::can_cast(syntax.kind()) {
22596            Some(Self { syntax })
22597        } else {
22598            None
22599        }
22600    }
22601    #[inline]
22602    fn syntax(&self) -> &SyntaxNode {
22603        &self.syntax
22604    }
22605}
22606impl AstNode for InitiallyDeferredConstraintOption {
22607    #[inline]
22608    fn can_cast(kind: SyntaxKind) -> bool {
22609        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
22610    }
22611    #[inline]
22612    fn cast(syntax: SyntaxNode) -> Option<Self> {
22613        if Self::can_cast(syntax.kind()) {
22614            Some(Self { syntax })
22615        } else {
22616            None
22617        }
22618    }
22619    #[inline]
22620    fn syntax(&self) -> &SyntaxNode {
22621        &self.syntax
22622    }
22623}
22624impl AstNode for InitiallyImmediateConstraintOption {
22625    #[inline]
22626    fn can_cast(kind: SyntaxKind) -> bool {
22627        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
22628    }
22629    #[inline]
22630    fn cast(syntax: SyntaxNode) -> Option<Self> {
22631        if Self::can_cast(syntax.kind()) {
22632            Some(Self { syntax })
22633        } else {
22634            None
22635        }
22636    }
22637    #[inline]
22638    fn syntax(&self) -> &SyntaxNode {
22639        &self.syntax
22640    }
22641}
22642impl AstNode for Insert {
22643    #[inline]
22644    fn can_cast(kind: SyntaxKind) -> bool {
22645        kind == SyntaxKind::INSERT
22646    }
22647    #[inline]
22648    fn cast(syntax: SyntaxNode) -> Option<Self> {
22649        if Self::can_cast(syntax.kind()) {
22650            Some(Self { syntax })
22651        } else {
22652            None
22653        }
22654    }
22655    #[inline]
22656    fn syntax(&self) -> &SyntaxNode {
22657        &self.syntax
22658    }
22659}
22660impl AstNode for IntervalType {
22661    #[inline]
22662    fn can_cast(kind: SyntaxKind) -> bool {
22663        kind == SyntaxKind::INTERVAL_TYPE
22664    }
22665    #[inline]
22666    fn cast(syntax: SyntaxNode) -> Option<Self> {
22667        if Self::can_cast(syntax.kind()) {
22668            Some(Self { syntax })
22669        } else {
22670            None
22671        }
22672    }
22673    #[inline]
22674    fn syntax(&self) -> &SyntaxNode {
22675        &self.syntax
22676    }
22677}
22678impl AstNode for IntoClause {
22679    #[inline]
22680    fn can_cast(kind: SyntaxKind) -> bool {
22681        kind == SyntaxKind::INTO_CLAUSE
22682    }
22683    #[inline]
22684    fn cast(syntax: SyntaxNode) -> Option<Self> {
22685        if Self::can_cast(syntax.kind()) {
22686            Some(Self { syntax })
22687        } else {
22688            None
22689        }
22690    }
22691    #[inline]
22692    fn syntax(&self) -> &SyntaxNode {
22693        &self.syntax
22694    }
22695}
22696impl AstNode for IntoSchema {
22697    #[inline]
22698    fn can_cast(kind: SyntaxKind) -> bool {
22699        kind == SyntaxKind::INTO_SCHEMA
22700    }
22701    #[inline]
22702    fn cast(syntax: SyntaxNode) -> Option<Self> {
22703        if Self::can_cast(syntax.kind()) {
22704            Some(Self { syntax })
22705        } else {
22706            None
22707        }
22708    }
22709    #[inline]
22710    fn syntax(&self) -> &SyntaxNode {
22711        &self.syntax
22712    }
22713}
22714impl AstNode for IsDistinctFrom {
22715    #[inline]
22716    fn can_cast(kind: SyntaxKind) -> bool {
22717        kind == SyntaxKind::IS_DISTINCT_FROM
22718    }
22719    #[inline]
22720    fn cast(syntax: SyntaxNode) -> Option<Self> {
22721        if Self::can_cast(syntax.kind()) {
22722            Some(Self { syntax })
22723        } else {
22724            None
22725        }
22726    }
22727    #[inline]
22728    fn syntax(&self) -> &SyntaxNode {
22729        &self.syntax
22730    }
22731}
22732impl AstNode for IsJson {
22733    #[inline]
22734    fn can_cast(kind: SyntaxKind) -> bool {
22735        kind == SyntaxKind::IS_JSON
22736    }
22737    #[inline]
22738    fn cast(syntax: SyntaxNode) -> Option<Self> {
22739        if Self::can_cast(syntax.kind()) {
22740            Some(Self { syntax })
22741        } else {
22742            None
22743        }
22744    }
22745    #[inline]
22746    fn syntax(&self) -> &SyntaxNode {
22747        &self.syntax
22748    }
22749}
22750impl AstNode for IsJsonArray {
22751    #[inline]
22752    fn can_cast(kind: SyntaxKind) -> bool {
22753        kind == SyntaxKind::IS_JSON_ARRAY
22754    }
22755    #[inline]
22756    fn cast(syntax: SyntaxNode) -> Option<Self> {
22757        if Self::can_cast(syntax.kind()) {
22758            Some(Self { syntax })
22759        } else {
22760            None
22761        }
22762    }
22763    #[inline]
22764    fn syntax(&self) -> &SyntaxNode {
22765        &self.syntax
22766    }
22767}
22768impl AstNode for IsJsonObject {
22769    #[inline]
22770    fn can_cast(kind: SyntaxKind) -> bool {
22771        kind == SyntaxKind::IS_JSON_OBJECT
22772    }
22773    #[inline]
22774    fn cast(syntax: SyntaxNode) -> Option<Self> {
22775        if Self::can_cast(syntax.kind()) {
22776            Some(Self { syntax })
22777        } else {
22778            None
22779        }
22780    }
22781    #[inline]
22782    fn syntax(&self) -> &SyntaxNode {
22783        &self.syntax
22784    }
22785}
22786impl AstNode for IsJsonScalar {
22787    #[inline]
22788    fn can_cast(kind: SyntaxKind) -> bool {
22789        kind == SyntaxKind::IS_JSON_SCALAR
22790    }
22791    #[inline]
22792    fn cast(syntax: SyntaxNode) -> Option<Self> {
22793        if Self::can_cast(syntax.kind()) {
22794            Some(Self { syntax })
22795        } else {
22796            None
22797        }
22798    }
22799    #[inline]
22800    fn syntax(&self) -> &SyntaxNode {
22801        &self.syntax
22802    }
22803}
22804impl AstNode for IsJsonValue {
22805    #[inline]
22806    fn can_cast(kind: SyntaxKind) -> bool {
22807        kind == SyntaxKind::IS_JSON_VALUE
22808    }
22809    #[inline]
22810    fn cast(syntax: SyntaxNode) -> Option<Self> {
22811        if Self::can_cast(syntax.kind()) {
22812            Some(Self { syntax })
22813        } else {
22814            None
22815        }
22816    }
22817    #[inline]
22818    fn syntax(&self) -> &SyntaxNode {
22819        &self.syntax
22820    }
22821}
22822impl AstNode for IsNormalized {
22823    #[inline]
22824    fn can_cast(kind: SyntaxKind) -> bool {
22825        kind == SyntaxKind::IS_NORMALIZED
22826    }
22827    #[inline]
22828    fn cast(syntax: SyntaxNode) -> Option<Self> {
22829        if Self::can_cast(syntax.kind()) {
22830            Some(Self { syntax })
22831        } else {
22832            None
22833        }
22834    }
22835    #[inline]
22836    fn syntax(&self) -> &SyntaxNode {
22837        &self.syntax
22838    }
22839}
22840impl AstNode for IsNot {
22841    #[inline]
22842    fn can_cast(kind: SyntaxKind) -> bool {
22843        kind == SyntaxKind::IS_NOT
22844    }
22845    #[inline]
22846    fn cast(syntax: SyntaxNode) -> Option<Self> {
22847        if Self::can_cast(syntax.kind()) {
22848            Some(Self { syntax })
22849        } else {
22850            None
22851        }
22852    }
22853    #[inline]
22854    fn syntax(&self) -> &SyntaxNode {
22855        &self.syntax
22856    }
22857}
22858impl AstNode for IsNotDistinctFrom {
22859    #[inline]
22860    fn can_cast(kind: SyntaxKind) -> bool {
22861        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
22862    }
22863    #[inline]
22864    fn cast(syntax: SyntaxNode) -> Option<Self> {
22865        if Self::can_cast(syntax.kind()) {
22866            Some(Self { syntax })
22867        } else {
22868            None
22869        }
22870    }
22871    #[inline]
22872    fn syntax(&self) -> &SyntaxNode {
22873        &self.syntax
22874    }
22875}
22876impl AstNode for IsNotJson {
22877    #[inline]
22878    fn can_cast(kind: SyntaxKind) -> bool {
22879        kind == SyntaxKind::IS_NOT_JSON
22880    }
22881    #[inline]
22882    fn cast(syntax: SyntaxNode) -> Option<Self> {
22883        if Self::can_cast(syntax.kind()) {
22884            Some(Self { syntax })
22885        } else {
22886            None
22887        }
22888    }
22889    #[inline]
22890    fn syntax(&self) -> &SyntaxNode {
22891        &self.syntax
22892    }
22893}
22894impl AstNode for IsNotJsonArray {
22895    #[inline]
22896    fn can_cast(kind: SyntaxKind) -> bool {
22897        kind == SyntaxKind::IS_NOT_JSON_ARRAY
22898    }
22899    #[inline]
22900    fn cast(syntax: SyntaxNode) -> Option<Self> {
22901        if Self::can_cast(syntax.kind()) {
22902            Some(Self { syntax })
22903        } else {
22904            None
22905        }
22906    }
22907    #[inline]
22908    fn syntax(&self) -> &SyntaxNode {
22909        &self.syntax
22910    }
22911}
22912impl AstNode for IsNotJsonObject {
22913    #[inline]
22914    fn can_cast(kind: SyntaxKind) -> bool {
22915        kind == SyntaxKind::IS_NOT_JSON_OBJECT
22916    }
22917    #[inline]
22918    fn cast(syntax: SyntaxNode) -> Option<Self> {
22919        if Self::can_cast(syntax.kind()) {
22920            Some(Self { syntax })
22921        } else {
22922            None
22923        }
22924    }
22925    #[inline]
22926    fn syntax(&self) -> &SyntaxNode {
22927        &self.syntax
22928    }
22929}
22930impl AstNode for IsNotJsonScalar {
22931    #[inline]
22932    fn can_cast(kind: SyntaxKind) -> bool {
22933        kind == SyntaxKind::IS_NOT_JSON_SCALAR
22934    }
22935    #[inline]
22936    fn cast(syntax: SyntaxNode) -> Option<Self> {
22937        if Self::can_cast(syntax.kind()) {
22938            Some(Self { syntax })
22939        } else {
22940            None
22941        }
22942    }
22943    #[inline]
22944    fn syntax(&self) -> &SyntaxNode {
22945        &self.syntax
22946    }
22947}
22948impl AstNode for IsNotJsonValue {
22949    #[inline]
22950    fn can_cast(kind: SyntaxKind) -> bool {
22951        kind == SyntaxKind::IS_NOT_JSON_VALUE
22952    }
22953    #[inline]
22954    fn cast(syntax: SyntaxNode) -> Option<Self> {
22955        if Self::can_cast(syntax.kind()) {
22956            Some(Self { syntax })
22957        } else {
22958            None
22959        }
22960    }
22961    #[inline]
22962    fn syntax(&self) -> &SyntaxNode {
22963        &self.syntax
22964    }
22965}
22966impl AstNode for IsNotNormalized {
22967    #[inline]
22968    fn can_cast(kind: SyntaxKind) -> bool {
22969        kind == SyntaxKind::IS_NOT_NORMALIZED
22970    }
22971    #[inline]
22972    fn cast(syntax: SyntaxNode) -> Option<Self> {
22973        if Self::can_cast(syntax.kind()) {
22974            Some(Self { syntax })
22975        } else {
22976            None
22977        }
22978    }
22979    #[inline]
22980    fn syntax(&self) -> &SyntaxNode {
22981        &self.syntax
22982    }
22983}
22984impl AstNode for Join {
22985    #[inline]
22986    fn can_cast(kind: SyntaxKind) -> bool {
22987        kind == SyntaxKind::JOIN
22988    }
22989    #[inline]
22990    fn cast(syntax: SyntaxNode) -> Option<Self> {
22991        if Self::can_cast(syntax.kind()) {
22992            Some(Self { syntax })
22993        } else {
22994            None
22995        }
22996    }
22997    #[inline]
22998    fn syntax(&self) -> &SyntaxNode {
22999        &self.syntax
23000    }
23001}
23002impl AstNode for JoinCross {
23003    #[inline]
23004    fn can_cast(kind: SyntaxKind) -> bool {
23005        kind == SyntaxKind::JOIN_CROSS
23006    }
23007    #[inline]
23008    fn cast(syntax: SyntaxNode) -> Option<Self> {
23009        if Self::can_cast(syntax.kind()) {
23010            Some(Self { syntax })
23011        } else {
23012            None
23013        }
23014    }
23015    #[inline]
23016    fn syntax(&self) -> &SyntaxNode {
23017        &self.syntax
23018    }
23019}
23020impl AstNode for JoinExpr {
23021    #[inline]
23022    fn can_cast(kind: SyntaxKind) -> bool {
23023        kind == SyntaxKind::JOIN_EXPR
23024    }
23025    #[inline]
23026    fn cast(syntax: SyntaxNode) -> Option<Self> {
23027        if Self::can_cast(syntax.kind()) {
23028            Some(Self { syntax })
23029        } else {
23030            None
23031        }
23032    }
23033    #[inline]
23034    fn syntax(&self) -> &SyntaxNode {
23035        &self.syntax
23036    }
23037}
23038impl AstNode for JoinFull {
23039    #[inline]
23040    fn can_cast(kind: SyntaxKind) -> bool {
23041        kind == SyntaxKind::JOIN_FULL
23042    }
23043    #[inline]
23044    fn cast(syntax: SyntaxNode) -> Option<Self> {
23045        if Self::can_cast(syntax.kind()) {
23046            Some(Self { syntax })
23047        } else {
23048            None
23049        }
23050    }
23051    #[inline]
23052    fn syntax(&self) -> &SyntaxNode {
23053        &self.syntax
23054    }
23055}
23056impl AstNode for JoinInner {
23057    #[inline]
23058    fn can_cast(kind: SyntaxKind) -> bool {
23059        kind == SyntaxKind::JOIN_INNER
23060    }
23061    #[inline]
23062    fn cast(syntax: SyntaxNode) -> Option<Self> {
23063        if Self::can_cast(syntax.kind()) {
23064            Some(Self { syntax })
23065        } else {
23066            None
23067        }
23068    }
23069    #[inline]
23070    fn syntax(&self) -> &SyntaxNode {
23071        &self.syntax
23072    }
23073}
23074impl AstNode for JoinLeft {
23075    #[inline]
23076    fn can_cast(kind: SyntaxKind) -> bool {
23077        kind == SyntaxKind::JOIN_LEFT
23078    }
23079    #[inline]
23080    fn cast(syntax: SyntaxNode) -> Option<Self> {
23081        if Self::can_cast(syntax.kind()) {
23082            Some(Self { syntax })
23083        } else {
23084            None
23085        }
23086    }
23087    #[inline]
23088    fn syntax(&self) -> &SyntaxNode {
23089        &self.syntax
23090    }
23091}
23092impl AstNode for JoinRight {
23093    #[inline]
23094    fn can_cast(kind: SyntaxKind) -> bool {
23095        kind == SyntaxKind::JOIN_RIGHT
23096    }
23097    #[inline]
23098    fn cast(syntax: SyntaxNode) -> Option<Self> {
23099        if Self::can_cast(syntax.kind()) {
23100            Some(Self { syntax })
23101        } else {
23102            None
23103        }
23104    }
23105    #[inline]
23106    fn syntax(&self) -> &SyntaxNode {
23107        &self.syntax
23108    }
23109}
23110impl AstNode for JoinUsingClause {
23111    #[inline]
23112    fn can_cast(kind: SyntaxKind) -> bool {
23113        kind == SyntaxKind::JOIN_USING_CLAUSE
23114    }
23115    #[inline]
23116    fn cast(syntax: SyntaxNode) -> Option<Self> {
23117        if Self::can_cast(syntax.kind()) {
23118            Some(Self { syntax })
23119        } else {
23120            None
23121        }
23122    }
23123    #[inline]
23124    fn syntax(&self) -> &SyntaxNode {
23125        &self.syntax
23126    }
23127}
23128impl AstNode for JsonArrayAggFn {
23129    #[inline]
23130    fn can_cast(kind: SyntaxKind) -> bool {
23131        kind == SyntaxKind::JSON_ARRAY_AGG_FN
23132    }
23133    #[inline]
23134    fn cast(syntax: SyntaxNode) -> Option<Self> {
23135        if Self::can_cast(syntax.kind()) {
23136            Some(Self { syntax })
23137        } else {
23138            None
23139        }
23140    }
23141    #[inline]
23142    fn syntax(&self) -> &SyntaxNode {
23143        &self.syntax
23144    }
23145}
23146impl AstNode for JsonArrayFn {
23147    #[inline]
23148    fn can_cast(kind: SyntaxKind) -> bool {
23149        kind == SyntaxKind::JSON_ARRAY_FN
23150    }
23151    #[inline]
23152    fn cast(syntax: SyntaxNode) -> Option<Self> {
23153        if Self::can_cast(syntax.kind()) {
23154            Some(Self { syntax })
23155        } else {
23156            None
23157        }
23158    }
23159    #[inline]
23160    fn syntax(&self) -> &SyntaxNode {
23161        &self.syntax
23162    }
23163}
23164impl AstNode for JsonBehaviorClause {
23165    #[inline]
23166    fn can_cast(kind: SyntaxKind) -> bool {
23167        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
23168    }
23169    #[inline]
23170    fn cast(syntax: SyntaxNode) -> Option<Self> {
23171        if Self::can_cast(syntax.kind()) {
23172            Some(Self { syntax })
23173        } else {
23174            None
23175        }
23176    }
23177    #[inline]
23178    fn syntax(&self) -> &SyntaxNode {
23179        &self.syntax
23180    }
23181}
23182impl AstNode for JsonBehaviorDefault {
23183    #[inline]
23184    fn can_cast(kind: SyntaxKind) -> bool {
23185        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
23186    }
23187    #[inline]
23188    fn cast(syntax: SyntaxNode) -> Option<Self> {
23189        if Self::can_cast(syntax.kind()) {
23190            Some(Self { syntax })
23191        } else {
23192            None
23193        }
23194    }
23195    #[inline]
23196    fn syntax(&self) -> &SyntaxNode {
23197        &self.syntax
23198    }
23199}
23200impl AstNode for JsonBehaviorEmptyArray {
23201    #[inline]
23202    fn can_cast(kind: SyntaxKind) -> bool {
23203        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
23204    }
23205    #[inline]
23206    fn cast(syntax: SyntaxNode) -> Option<Self> {
23207        if Self::can_cast(syntax.kind()) {
23208            Some(Self { syntax })
23209        } else {
23210            None
23211        }
23212    }
23213    #[inline]
23214    fn syntax(&self) -> &SyntaxNode {
23215        &self.syntax
23216    }
23217}
23218impl AstNode for JsonBehaviorEmptyObject {
23219    #[inline]
23220    fn can_cast(kind: SyntaxKind) -> bool {
23221        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
23222    }
23223    #[inline]
23224    fn cast(syntax: SyntaxNode) -> Option<Self> {
23225        if Self::can_cast(syntax.kind()) {
23226            Some(Self { syntax })
23227        } else {
23228            None
23229        }
23230    }
23231    #[inline]
23232    fn syntax(&self) -> &SyntaxNode {
23233        &self.syntax
23234    }
23235}
23236impl AstNode for JsonBehaviorError {
23237    #[inline]
23238    fn can_cast(kind: SyntaxKind) -> bool {
23239        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
23240    }
23241    #[inline]
23242    fn cast(syntax: SyntaxNode) -> Option<Self> {
23243        if Self::can_cast(syntax.kind()) {
23244            Some(Self { syntax })
23245        } else {
23246            None
23247        }
23248    }
23249    #[inline]
23250    fn syntax(&self) -> &SyntaxNode {
23251        &self.syntax
23252    }
23253}
23254impl AstNode for JsonBehaviorFalse {
23255    #[inline]
23256    fn can_cast(kind: SyntaxKind) -> bool {
23257        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
23258    }
23259    #[inline]
23260    fn cast(syntax: SyntaxNode) -> Option<Self> {
23261        if Self::can_cast(syntax.kind()) {
23262            Some(Self { syntax })
23263        } else {
23264            None
23265        }
23266    }
23267    #[inline]
23268    fn syntax(&self) -> &SyntaxNode {
23269        &self.syntax
23270    }
23271}
23272impl AstNode for JsonBehaviorNull {
23273    #[inline]
23274    fn can_cast(kind: SyntaxKind) -> bool {
23275        kind == SyntaxKind::JSON_BEHAVIOR_NULL
23276    }
23277    #[inline]
23278    fn cast(syntax: SyntaxNode) -> Option<Self> {
23279        if Self::can_cast(syntax.kind()) {
23280            Some(Self { syntax })
23281        } else {
23282            None
23283        }
23284    }
23285    #[inline]
23286    fn syntax(&self) -> &SyntaxNode {
23287        &self.syntax
23288    }
23289}
23290impl AstNode for JsonBehaviorTrue {
23291    #[inline]
23292    fn can_cast(kind: SyntaxKind) -> bool {
23293        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
23294    }
23295    #[inline]
23296    fn cast(syntax: SyntaxNode) -> Option<Self> {
23297        if Self::can_cast(syntax.kind()) {
23298            Some(Self { syntax })
23299        } else {
23300            None
23301        }
23302    }
23303    #[inline]
23304    fn syntax(&self) -> &SyntaxNode {
23305        &self.syntax
23306    }
23307}
23308impl AstNode for JsonBehaviorUnknown {
23309    #[inline]
23310    fn can_cast(kind: SyntaxKind) -> bool {
23311        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
23312    }
23313    #[inline]
23314    fn cast(syntax: SyntaxNode) -> Option<Self> {
23315        if Self::can_cast(syntax.kind()) {
23316            Some(Self { syntax })
23317        } else {
23318            None
23319        }
23320    }
23321    #[inline]
23322    fn syntax(&self) -> &SyntaxNode {
23323        &self.syntax
23324    }
23325}
23326impl AstNode for JsonEncodingClause {
23327    #[inline]
23328    fn can_cast(kind: SyntaxKind) -> bool {
23329        kind == SyntaxKind::JSON_ENCODING_CLAUSE
23330    }
23331    #[inline]
23332    fn cast(syntax: SyntaxNode) -> Option<Self> {
23333        if Self::can_cast(syntax.kind()) {
23334            Some(Self { syntax })
23335        } else {
23336            None
23337        }
23338    }
23339    #[inline]
23340    fn syntax(&self) -> &SyntaxNode {
23341        &self.syntax
23342    }
23343}
23344impl AstNode for JsonExistsFn {
23345    #[inline]
23346    fn can_cast(kind: SyntaxKind) -> bool {
23347        kind == SyntaxKind::JSON_EXISTS_FN
23348    }
23349    #[inline]
23350    fn cast(syntax: SyntaxNode) -> Option<Self> {
23351        if Self::can_cast(syntax.kind()) {
23352            Some(Self { syntax })
23353        } else {
23354            None
23355        }
23356    }
23357    #[inline]
23358    fn syntax(&self) -> &SyntaxNode {
23359        &self.syntax
23360    }
23361}
23362impl AstNode for JsonExprFormat {
23363    #[inline]
23364    fn can_cast(kind: SyntaxKind) -> bool {
23365        kind == SyntaxKind::JSON_EXPR_FORMAT
23366    }
23367    #[inline]
23368    fn cast(syntax: SyntaxNode) -> Option<Self> {
23369        if Self::can_cast(syntax.kind()) {
23370            Some(Self { syntax })
23371        } else {
23372            None
23373        }
23374    }
23375    #[inline]
23376    fn syntax(&self) -> &SyntaxNode {
23377        &self.syntax
23378    }
23379}
23380impl AstNode for JsonFn {
23381    #[inline]
23382    fn can_cast(kind: SyntaxKind) -> bool {
23383        kind == SyntaxKind::JSON_FN
23384    }
23385    #[inline]
23386    fn cast(syntax: SyntaxNode) -> Option<Self> {
23387        if Self::can_cast(syntax.kind()) {
23388            Some(Self { syntax })
23389        } else {
23390            None
23391        }
23392    }
23393    #[inline]
23394    fn syntax(&self) -> &SyntaxNode {
23395        &self.syntax
23396    }
23397}
23398impl AstNode for JsonFormatClause {
23399    #[inline]
23400    fn can_cast(kind: SyntaxKind) -> bool {
23401        kind == SyntaxKind::JSON_FORMAT_CLAUSE
23402    }
23403    #[inline]
23404    fn cast(syntax: SyntaxNode) -> Option<Self> {
23405        if Self::can_cast(syntax.kind()) {
23406            Some(Self { syntax })
23407        } else {
23408            None
23409        }
23410    }
23411    #[inline]
23412    fn syntax(&self) -> &SyntaxNode {
23413        &self.syntax
23414    }
23415}
23416impl AstNode for JsonKeyValue {
23417    #[inline]
23418    fn can_cast(kind: SyntaxKind) -> bool {
23419        kind == SyntaxKind::JSON_KEY_VALUE
23420    }
23421    #[inline]
23422    fn cast(syntax: SyntaxNode) -> Option<Self> {
23423        if Self::can_cast(syntax.kind()) {
23424            Some(Self { syntax })
23425        } else {
23426            None
23427        }
23428    }
23429    #[inline]
23430    fn syntax(&self) -> &SyntaxNode {
23431        &self.syntax
23432    }
23433}
23434impl AstNode for JsonKeysUniqueClause {
23435    #[inline]
23436    fn can_cast(kind: SyntaxKind) -> bool {
23437        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
23438    }
23439    #[inline]
23440    fn cast(syntax: SyntaxNode) -> Option<Self> {
23441        if Self::can_cast(syntax.kind()) {
23442            Some(Self { syntax })
23443        } else {
23444            None
23445        }
23446    }
23447    #[inline]
23448    fn syntax(&self) -> &SyntaxNode {
23449        &self.syntax
23450    }
23451}
23452impl AstNode for JsonNullClause {
23453    #[inline]
23454    fn can_cast(kind: SyntaxKind) -> bool {
23455        kind == SyntaxKind::JSON_NULL_CLAUSE
23456    }
23457    #[inline]
23458    fn cast(syntax: SyntaxNode) -> Option<Self> {
23459        if Self::can_cast(syntax.kind()) {
23460            Some(Self { syntax })
23461        } else {
23462            None
23463        }
23464    }
23465    #[inline]
23466    fn syntax(&self) -> &SyntaxNode {
23467        &self.syntax
23468    }
23469}
23470impl AstNode for JsonObjectAggFn {
23471    #[inline]
23472    fn can_cast(kind: SyntaxKind) -> bool {
23473        kind == SyntaxKind::JSON_OBJECT_AGG_FN
23474    }
23475    #[inline]
23476    fn cast(syntax: SyntaxNode) -> Option<Self> {
23477        if Self::can_cast(syntax.kind()) {
23478            Some(Self { syntax })
23479        } else {
23480            None
23481        }
23482    }
23483    #[inline]
23484    fn syntax(&self) -> &SyntaxNode {
23485        &self.syntax
23486    }
23487}
23488impl AstNode for JsonObjectFn {
23489    #[inline]
23490    fn can_cast(kind: SyntaxKind) -> bool {
23491        kind == SyntaxKind::JSON_OBJECT_FN
23492    }
23493    #[inline]
23494    fn cast(syntax: SyntaxNode) -> Option<Self> {
23495        if Self::can_cast(syntax.kind()) {
23496            Some(Self { syntax })
23497        } else {
23498            None
23499        }
23500    }
23501    #[inline]
23502    fn syntax(&self) -> &SyntaxNode {
23503        &self.syntax
23504    }
23505}
23506impl AstNode for JsonOnEmptyClause {
23507    #[inline]
23508    fn can_cast(kind: SyntaxKind) -> bool {
23509        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
23510    }
23511    #[inline]
23512    fn cast(syntax: SyntaxNode) -> Option<Self> {
23513        if Self::can_cast(syntax.kind()) {
23514            Some(Self { syntax })
23515        } else {
23516            None
23517        }
23518    }
23519    #[inline]
23520    fn syntax(&self) -> &SyntaxNode {
23521        &self.syntax
23522    }
23523}
23524impl AstNode for JsonOnErrorClause {
23525    #[inline]
23526    fn can_cast(kind: SyntaxKind) -> bool {
23527        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
23528    }
23529    #[inline]
23530    fn cast(syntax: SyntaxNode) -> Option<Self> {
23531        if Self::can_cast(syntax.kind()) {
23532            Some(Self { syntax })
23533        } else {
23534            None
23535        }
23536    }
23537    #[inline]
23538    fn syntax(&self) -> &SyntaxNode {
23539        &self.syntax
23540    }
23541}
23542impl AstNode for JsonPassingArg {
23543    #[inline]
23544    fn can_cast(kind: SyntaxKind) -> bool {
23545        kind == SyntaxKind::JSON_PASSING_ARG
23546    }
23547    #[inline]
23548    fn cast(syntax: SyntaxNode) -> Option<Self> {
23549        if Self::can_cast(syntax.kind()) {
23550            Some(Self { syntax })
23551        } else {
23552            None
23553        }
23554    }
23555    #[inline]
23556    fn syntax(&self) -> &SyntaxNode {
23557        &self.syntax
23558    }
23559}
23560impl AstNode for JsonPassingClause {
23561    #[inline]
23562    fn can_cast(kind: SyntaxKind) -> bool {
23563        kind == SyntaxKind::JSON_PASSING_CLAUSE
23564    }
23565    #[inline]
23566    fn cast(syntax: SyntaxNode) -> Option<Self> {
23567        if Self::can_cast(syntax.kind()) {
23568            Some(Self { syntax })
23569        } else {
23570            None
23571        }
23572    }
23573    #[inline]
23574    fn syntax(&self) -> &SyntaxNode {
23575        &self.syntax
23576    }
23577}
23578impl AstNode for JsonPathClause {
23579    #[inline]
23580    fn can_cast(kind: SyntaxKind) -> bool {
23581        kind == SyntaxKind::JSON_PATH_CLAUSE
23582    }
23583    #[inline]
23584    fn cast(syntax: SyntaxNode) -> Option<Self> {
23585        if Self::can_cast(syntax.kind()) {
23586            Some(Self { syntax })
23587        } else {
23588            None
23589        }
23590    }
23591    #[inline]
23592    fn syntax(&self) -> &SyntaxNode {
23593        &self.syntax
23594    }
23595}
23596impl AstNode for JsonQueryFn {
23597    #[inline]
23598    fn can_cast(kind: SyntaxKind) -> bool {
23599        kind == SyntaxKind::JSON_QUERY_FN
23600    }
23601    #[inline]
23602    fn cast(syntax: SyntaxNode) -> Option<Self> {
23603        if Self::can_cast(syntax.kind()) {
23604            Some(Self { syntax })
23605        } else {
23606            None
23607        }
23608    }
23609    #[inline]
23610    fn syntax(&self) -> &SyntaxNode {
23611        &self.syntax
23612    }
23613}
23614impl AstNode for JsonQuotesClause {
23615    #[inline]
23616    fn can_cast(kind: SyntaxKind) -> bool {
23617        kind == SyntaxKind::JSON_QUOTES_CLAUSE
23618    }
23619    #[inline]
23620    fn cast(syntax: SyntaxNode) -> Option<Self> {
23621        if Self::can_cast(syntax.kind()) {
23622            Some(Self { syntax })
23623        } else {
23624            None
23625        }
23626    }
23627    #[inline]
23628    fn syntax(&self) -> &SyntaxNode {
23629        &self.syntax
23630    }
23631}
23632impl AstNode for JsonReturningClause {
23633    #[inline]
23634    fn can_cast(kind: SyntaxKind) -> bool {
23635        kind == SyntaxKind::JSON_RETURNING_CLAUSE
23636    }
23637    #[inline]
23638    fn cast(syntax: SyntaxNode) -> Option<Self> {
23639        if Self::can_cast(syntax.kind()) {
23640            Some(Self { syntax })
23641        } else {
23642            None
23643        }
23644    }
23645    #[inline]
23646    fn syntax(&self) -> &SyntaxNode {
23647        &self.syntax
23648    }
23649}
23650impl AstNode for JsonScalarFn {
23651    #[inline]
23652    fn can_cast(kind: SyntaxKind) -> bool {
23653        kind == SyntaxKind::JSON_SCALAR_FN
23654    }
23655    #[inline]
23656    fn cast(syntax: SyntaxNode) -> Option<Self> {
23657        if Self::can_cast(syntax.kind()) {
23658            Some(Self { syntax })
23659        } else {
23660            None
23661        }
23662    }
23663    #[inline]
23664    fn syntax(&self) -> &SyntaxNode {
23665        &self.syntax
23666    }
23667}
23668impl AstNode for JsonSelectFormat {
23669    #[inline]
23670    fn can_cast(kind: SyntaxKind) -> bool {
23671        kind == SyntaxKind::JSON_SELECT_FORMAT
23672    }
23673    #[inline]
23674    fn cast(syntax: SyntaxNode) -> Option<Self> {
23675        if Self::can_cast(syntax.kind()) {
23676            Some(Self { syntax })
23677        } else {
23678            None
23679        }
23680    }
23681    #[inline]
23682    fn syntax(&self) -> &SyntaxNode {
23683        &self.syntax
23684    }
23685}
23686impl AstNode for JsonSerializeFn {
23687    #[inline]
23688    fn can_cast(kind: SyntaxKind) -> bool {
23689        kind == SyntaxKind::JSON_SERIALIZE_FN
23690    }
23691    #[inline]
23692    fn cast(syntax: SyntaxNode) -> Option<Self> {
23693        if Self::can_cast(syntax.kind()) {
23694            Some(Self { syntax })
23695        } else {
23696            None
23697        }
23698    }
23699    #[inline]
23700    fn syntax(&self) -> &SyntaxNode {
23701        &self.syntax
23702    }
23703}
23704impl AstNode for JsonTable {
23705    #[inline]
23706    fn can_cast(kind: SyntaxKind) -> bool {
23707        kind == SyntaxKind::JSON_TABLE
23708    }
23709    #[inline]
23710    fn cast(syntax: SyntaxNode) -> Option<Self> {
23711        if Self::can_cast(syntax.kind()) {
23712            Some(Self { syntax })
23713        } else {
23714            None
23715        }
23716    }
23717    #[inline]
23718    fn syntax(&self) -> &SyntaxNode {
23719        &self.syntax
23720    }
23721}
23722impl AstNode for JsonTableColumn {
23723    #[inline]
23724    fn can_cast(kind: SyntaxKind) -> bool {
23725        kind == SyntaxKind::JSON_TABLE_COLUMN
23726    }
23727    #[inline]
23728    fn cast(syntax: SyntaxNode) -> Option<Self> {
23729        if Self::can_cast(syntax.kind()) {
23730            Some(Self { syntax })
23731        } else {
23732            None
23733        }
23734    }
23735    #[inline]
23736    fn syntax(&self) -> &SyntaxNode {
23737        &self.syntax
23738    }
23739}
23740impl AstNode for JsonTableColumnList {
23741    #[inline]
23742    fn can_cast(kind: SyntaxKind) -> bool {
23743        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
23744    }
23745    #[inline]
23746    fn cast(syntax: SyntaxNode) -> Option<Self> {
23747        if Self::can_cast(syntax.kind()) {
23748            Some(Self { syntax })
23749        } else {
23750            None
23751        }
23752    }
23753    #[inline]
23754    fn syntax(&self) -> &SyntaxNode {
23755        &self.syntax
23756    }
23757}
23758impl AstNode for JsonValueExpr {
23759    #[inline]
23760    fn can_cast(kind: SyntaxKind) -> bool {
23761        kind == SyntaxKind::JSON_VALUE_EXPR
23762    }
23763    #[inline]
23764    fn cast(syntax: SyntaxNode) -> Option<Self> {
23765        if Self::can_cast(syntax.kind()) {
23766            Some(Self { syntax })
23767        } else {
23768            None
23769        }
23770    }
23771    #[inline]
23772    fn syntax(&self) -> &SyntaxNode {
23773        &self.syntax
23774    }
23775}
23776impl AstNode for JsonValueFn {
23777    #[inline]
23778    fn can_cast(kind: SyntaxKind) -> bool {
23779        kind == SyntaxKind::JSON_VALUE_FN
23780    }
23781    #[inline]
23782    fn cast(syntax: SyntaxNode) -> Option<Self> {
23783        if Self::can_cast(syntax.kind()) {
23784            Some(Self { syntax })
23785        } else {
23786            None
23787        }
23788    }
23789    #[inline]
23790    fn syntax(&self) -> &SyntaxNode {
23791        &self.syntax
23792    }
23793}
23794impl AstNode for JsonWrapperBehaviorClause {
23795    #[inline]
23796    fn can_cast(kind: SyntaxKind) -> bool {
23797        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
23798    }
23799    #[inline]
23800    fn cast(syntax: SyntaxNode) -> Option<Self> {
23801        if Self::can_cast(syntax.kind()) {
23802            Some(Self { syntax })
23803        } else {
23804            None
23805        }
23806    }
23807    #[inline]
23808    fn syntax(&self) -> &SyntaxNode {
23809        &self.syntax
23810    }
23811}
23812impl AstNode for LanguageFuncOption {
23813    #[inline]
23814    fn can_cast(kind: SyntaxKind) -> bool {
23815        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
23816    }
23817    #[inline]
23818    fn cast(syntax: SyntaxNode) -> Option<Self> {
23819        if Self::can_cast(syntax.kind()) {
23820            Some(Self { syntax })
23821        } else {
23822            None
23823        }
23824    }
23825    #[inline]
23826    fn syntax(&self) -> &SyntaxNode {
23827        &self.syntax
23828    }
23829}
23830impl AstNode for LeakproofFuncOption {
23831    #[inline]
23832    fn can_cast(kind: SyntaxKind) -> bool {
23833        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
23834    }
23835    #[inline]
23836    fn cast(syntax: SyntaxNode) -> Option<Self> {
23837        if Self::can_cast(syntax.kind()) {
23838            Some(Self { syntax })
23839        } else {
23840            None
23841        }
23842    }
23843    #[inline]
23844    fn syntax(&self) -> &SyntaxNode {
23845        &self.syntax
23846    }
23847}
23848impl AstNode for LikeClause {
23849    #[inline]
23850    fn can_cast(kind: SyntaxKind) -> bool {
23851        kind == SyntaxKind::LIKE_CLAUSE
23852    }
23853    #[inline]
23854    fn cast(syntax: SyntaxNode) -> Option<Self> {
23855        if Self::can_cast(syntax.kind()) {
23856            Some(Self { syntax })
23857        } else {
23858            None
23859        }
23860    }
23861    #[inline]
23862    fn syntax(&self) -> &SyntaxNode {
23863        &self.syntax
23864    }
23865}
23866impl AstNode for LikeOption {
23867    #[inline]
23868    fn can_cast(kind: SyntaxKind) -> bool {
23869        kind == SyntaxKind::LIKE_OPTION
23870    }
23871    #[inline]
23872    fn cast(syntax: SyntaxNode) -> Option<Self> {
23873        if Self::can_cast(syntax.kind()) {
23874            Some(Self { syntax })
23875        } else {
23876            None
23877        }
23878    }
23879    #[inline]
23880    fn syntax(&self) -> &SyntaxNode {
23881        &self.syntax
23882    }
23883}
23884impl AstNode for LimitClause {
23885    #[inline]
23886    fn can_cast(kind: SyntaxKind) -> bool {
23887        kind == SyntaxKind::LIMIT_CLAUSE
23888    }
23889    #[inline]
23890    fn cast(syntax: SyntaxNode) -> Option<Self> {
23891        if Self::can_cast(syntax.kind()) {
23892            Some(Self { syntax })
23893        } else {
23894            None
23895        }
23896    }
23897    #[inline]
23898    fn syntax(&self) -> &SyntaxNode {
23899        &self.syntax
23900    }
23901}
23902impl AstNode for LimitToTables {
23903    #[inline]
23904    fn can_cast(kind: SyntaxKind) -> bool {
23905        kind == SyntaxKind::LIMIT_TO_TABLES
23906    }
23907    #[inline]
23908    fn cast(syntax: SyntaxNode) -> Option<Self> {
23909        if Self::can_cast(syntax.kind()) {
23910            Some(Self { syntax })
23911        } else {
23912            None
23913        }
23914    }
23915    #[inline]
23916    fn syntax(&self) -> &SyntaxNode {
23917        &self.syntax
23918    }
23919}
23920impl AstNode for Listen {
23921    #[inline]
23922    fn can_cast(kind: SyntaxKind) -> bool {
23923        kind == SyntaxKind::LISTEN
23924    }
23925    #[inline]
23926    fn cast(syntax: SyntaxNode) -> Option<Self> {
23927        if Self::can_cast(syntax.kind()) {
23928            Some(Self { syntax })
23929        } else {
23930            None
23931        }
23932    }
23933    #[inline]
23934    fn syntax(&self) -> &SyntaxNode {
23935        &self.syntax
23936    }
23937}
23938impl AstNode for Literal {
23939    #[inline]
23940    fn can_cast(kind: SyntaxKind) -> bool {
23941        kind == SyntaxKind::LITERAL
23942    }
23943    #[inline]
23944    fn cast(syntax: SyntaxNode) -> Option<Self> {
23945        if Self::can_cast(syntax.kind()) {
23946            Some(Self { syntax })
23947        } else {
23948            None
23949        }
23950    }
23951    #[inline]
23952    fn syntax(&self) -> &SyntaxNode {
23953        &self.syntax
23954    }
23955}
23956impl AstNode for Load {
23957    #[inline]
23958    fn can_cast(kind: SyntaxKind) -> bool {
23959        kind == SyntaxKind::LOAD
23960    }
23961    #[inline]
23962    fn cast(syntax: SyntaxNode) -> Option<Self> {
23963        if Self::can_cast(syntax.kind()) {
23964            Some(Self { syntax })
23965        } else {
23966            None
23967        }
23968    }
23969    #[inline]
23970    fn syntax(&self) -> &SyntaxNode {
23971        &self.syntax
23972    }
23973}
23974impl AstNode for Lock {
23975    #[inline]
23976    fn can_cast(kind: SyntaxKind) -> bool {
23977        kind == SyntaxKind::LOCK
23978    }
23979    #[inline]
23980    fn cast(syntax: SyntaxNode) -> Option<Self> {
23981        if Self::can_cast(syntax.kind()) {
23982            Some(Self { syntax })
23983        } else {
23984            None
23985        }
23986    }
23987    #[inline]
23988    fn syntax(&self) -> &SyntaxNode {
23989        &self.syntax
23990    }
23991}
23992impl AstNode for LockingClause {
23993    #[inline]
23994    fn can_cast(kind: SyntaxKind) -> bool {
23995        kind == SyntaxKind::LOCKING_CLAUSE
23996    }
23997    #[inline]
23998    fn cast(syntax: SyntaxNode) -> Option<Self> {
23999        if Self::can_cast(syntax.kind()) {
24000            Some(Self { syntax })
24001        } else {
24002            None
24003        }
24004    }
24005    #[inline]
24006    fn syntax(&self) -> &SyntaxNode {
24007        &self.syntax
24008    }
24009}
24010impl AstNode for Lteq {
24011    #[inline]
24012    fn can_cast(kind: SyntaxKind) -> bool {
24013        kind == SyntaxKind::LTEQ
24014    }
24015    #[inline]
24016    fn cast(syntax: SyntaxNode) -> Option<Self> {
24017        if Self::can_cast(syntax.kind()) {
24018            Some(Self { syntax })
24019        } else {
24020            None
24021        }
24022    }
24023    #[inline]
24024    fn syntax(&self) -> &SyntaxNode {
24025        &self.syntax
24026    }
24027}
24028impl AstNode for MatchFull {
24029    #[inline]
24030    fn can_cast(kind: SyntaxKind) -> bool {
24031        kind == SyntaxKind::MATCH_FULL
24032    }
24033    #[inline]
24034    fn cast(syntax: SyntaxNode) -> Option<Self> {
24035        if Self::can_cast(syntax.kind()) {
24036            Some(Self { syntax })
24037        } else {
24038            None
24039        }
24040    }
24041    #[inline]
24042    fn syntax(&self) -> &SyntaxNode {
24043        &self.syntax
24044    }
24045}
24046impl AstNode for MatchPartial {
24047    #[inline]
24048    fn can_cast(kind: SyntaxKind) -> bool {
24049        kind == SyntaxKind::MATCH_PARTIAL
24050    }
24051    #[inline]
24052    fn cast(syntax: SyntaxNode) -> Option<Self> {
24053        if Self::can_cast(syntax.kind()) {
24054            Some(Self { syntax })
24055        } else {
24056            None
24057        }
24058    }
24059    #[inline]
24060    fn syntax(&self) -> &SyntaxNode {
24061        &self.syntax
24062    }
24063}
24064impl AstNode for MatchSimple {
24065    #[inline]
24066    fn can_cast(kind: SyntaxKind) -> bool {
24067        kind == SyntaxKind::MATCH_SIMPLE
24068    }
24069    #[inline]
24070    fn cast(syntax: SyntaxNode) -> Option<Self> {
24071        if Self::can_cast(syntax.kind()) {
24072            Some(Self { syntax })
24073        } else {
24074            None
24075        }
24076    }
24077    #[inline]
24078    fn syntax(&self) -> &SyntaxNode {
24079        &self.syntax
24080    }
24081}
24082impl AstNode for Materialized {
24083    #[inline]
24084    fn can_cast(kind: SyntaxKind) -> bool {
24085        kind == SyntaxKind::MATERIALIZED
24086    }
24087    #[inline]
24088    fn cast(syntax: SyntaxNode) -> Option<Self> {
24089        if Self::can_cast(syntax.kind()) {
24090            Some(Self { syntax })
24091        } else {
24092            None
24093        }
24094    }
24095    #[inline]
24096    fn syntax(&self) -> &SyntaxNode {
24097        &self.syntax
24098    }
24099}
24100impl AstNode for Merge {
24101    #[inline]
24102    fn can_cast(kind: SyntaxKind) -> bool {
24103        kind == SyntaxKind::MERGE
24104    }
24105    #[inline]
24106    fn cast(syntax: SyntaxNode) -> Option<Self> {
24107        if Self::can_cast(syntax.kind()) {
24108            Some(Self { syntax })
24109        } else {
24110            None
24111        }
24112    }
24113    #[inline]
24114    fn syntax(&self) -> &SyntaxNode {
24115        &self.syntax
24116    }
24117}
24118impl AstNode for MergeDelete {
24119    #[inline]
24120    fn can_cast(kind: SyntaxKind) -> bool {
24121        kind == SyntaxKind::MERGE_DELETE
24122    }
24123    #[inline]
24124    fn cast(syntax: SyntaxNode) -> Option<Self> {
24125        if Self::can_cast(syntax.kind()) {
24126            Some(Self { syntax })
24127        } else {
24128            None
24129        }
24130    }
24131    #[inline]
24132    fn syntax(&self) -> &SyntaxNode {
24133        &self.syntax
24134    }
24135}
24136impl AstNode for MergeDoNothing {
24137    #[inline]
24138    fn can_cast(kind: SyntaxKind) -> bool {
24139        kind == SyntaxKind::MERGE_DO_NOTHING
24140    }
24141    #[inline]
24142    fn cast(syntax: SyntaxNode) -> Option<Self> {
24143        if Self::can_cast(syntax.kind()) {
24144            Some(Self { syntax })
24145        } else {
24146            None
24147        }
24148    }
24149    #[inline]
24150    fn syntax(&self) -> &SyntaxNode {
24151        &self.syntax
24152    }
24153}
24154impl AstNode for MergeInsert {
24155    #[inline]
24156    fn can_cast(kind: SyntaxKind) -> bool {
24157        kind == SyntaxKind::MERGE_INSERT
24158    }
24159    #[inline]
24160    fn cast(syntax: SyntaxNode) -> Option<Self> {
24161        if Self::can_cast(syntax.kind()) {
24162            Some(Self { syntax })
24163        } else {
24164            None
24165        }
24166    }
24167    #[inline]
24168    fn syntax(&self) -> &SyntaxNode {
24169        &self.syntax
24170    }
24171}
24172impl AstNode for MergePartitions {
24173    #[inline]
24174    fn can_cast(kind: SyntaxKind) -> bool {
24175        kind == SyntaxKind::MERGE_PARTITIONS
24176    }
24177    #[inline]
24178    fn cast(syntax: SyntaxNode) -> Option<Self> {
24179        if Self::can_cast(syntax.kind()) {
24180            Some(Self { syntax })
24181        } else {
24182            None
24183        }
24184    }
24185    #[inline]
24186    fn syntax(&self) -> &SyntaxNode {
24187        &self.syntax
24188    }
24189}
24190impl AstNode for MergeUpdate {
24191    #[inline]
24192    fn can_cast(kind: SyntaxKind) -> bool {
24193        kind == SyntaxKind::MERGE_UPDATE
24194    }
24195    #[inline]
24196    fn cast(syntax: SyntaxNode) -> Option<Self> {
24197        if Self::can_cast(syntax.kind()) {
24198            Some(Self { syntax })
24199        } else {
24200            None
24201        }
24202    }
24203    #[inline]
24204    fn syntax(&self) -> &SyntaxNode {
24205        &self.syntax
24206    }
24207}
24208impl AstNode for MergeWhenMatched {
24209    #[inline]
24210    fn can_cast(kind: SyntaxKind) -> bool {
24211        kind == SyntaxKind::MERGE_WHEN_MATCHED
24212    }
24213    #[inline]
24214    fn cast(syntax: SyntaxNode) -> Option<Self> {
24215        if Self::can_cast(syntax.kind()) {
24216            Some(Self { syntax })
24217        } else {
24218            None
24219        }
24220    }
24221    #[inline]
24222    fn syntax(&self) -> &SyntaxNode {
24223        &self.syntax
24224    }
24225}
24226impl AstNode for MergeWhenNotMatchedSource {
24227    #[inline]
24228    fn can_cast(kind: SyntaxKind) -> bool {
24229        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
24230    }
24231    #[inline]
24232    fn cast(syntax: SyntaxNode) -> Option<Self> {
24233        if Self::can_cast(syntax.kind()) {
24234            Some(Self { syntax })
24235        } else {
24236            None
24237        }
24238    }
24239    #[inline]
24240    fn syntax(&self) -> &SyntaxNode {
24241        &self.syntax
24242    }
24243}
24244impl AstNode for MergeWhenNotMatchedTarget {
24245    #[inline]
24246    fn can_cast(kind: SyntaxKind) -> bool {
24247        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
24248    }
24249    #[inline]
24250    fn cast(syntax: SyntaxNode) -> Option<Self> {
24251        if Self::can_cast(syntax.kind()) {
24252            Some(Self { syntax })
24253        } else {
24254            None
24255        }
24256    }
24257    #[inline]
24258    fn syntax(&self) -> &SyntaxNode {
24259        &self.syntax
24260    }
24261}
24262impl AstNode for Move {
24263    #[inline]
24264    fn can_cast(kind: SyntaxKind) -> bool {
24265        kind == SyntaxKind::MOVE
24266    }
24267    #[inline]
24268    fn cast(syntax: SyntaxNode) -> Option<Self> {
24269        if Self::can_cast(syntax.kind()) {
24270            Some(Self { syntax })
24271        } else {
24272            None
24273        }
24274    }
24275    #[inline]
24276    fn syntax(&self) -> &SyntaxNode {
24277        &self.syntax
24278    }
24279}
24280impl AstNode for Name {
24281    #[inline]
24282    fn can_cast(kind: SyntaxKind) -> bool {
24283        kind == SyntaxKind::NAME
24284    }
24285    #[inline]
24286    fn cast(syntax: SyntaxNode) -> Option<Self> {
24287        if Self::can_cast(syntax.kind()) {
24288            Some(Self { syntax })
24289        } else {
24290            None
24291        }
24292    }
24293    #[inline]
24294    fn syntax(&self) -> &SyntaxNode {
24295        &self.syntax
24296    }
24297}
24298impl AstNode for NameRef {
24299    #[inline]
24300    fn can_cast(kind: SyntaxKind) -> bool {
24301        kind == SyntaxKind::NAME_REF
24302    }
24303    #[inline]
24304    fn cast(syntax: SyntaxNode) -> Option<Self> {
24305        if Self::can_cast(syntax.kind()) {
24306            Some(Self { syntax })
24307        } else {
24308            None
24309        }
24310    }
24311    #[inline]
24312    fn syntax(&self) -> &SyntaxNode {
24313        &self.syntax
24314    }
24315}
24316impl AstNode for NamedArg {
24317    #[inline]
24318    fn can_cast(kind: SyntaxKind) -> bool {
24319        kind == SyntaxKind::NAMED_ARG
24320    }
24321    #[inline]
24322    fn cast(syntax: SyntaxNode) -> Option<Self> {
24323        if Self::can_cast(syntax.kind()) {
24324            Some(Self { syntax })
24325        } else {
24326            None
24327        }
24328    }
24329    #[inline]
24330    fn syntax(&self) -> &SyntaxNode {
24331        &self.syntax
24332    }
24333}
24334impl AstNode for Neq {
24335    #[inline]
24336    fn can_cast(kind: SyntaxKind) -> bool {
24337        kind == SyntaxKind::NEQ
24338    }
24339    #[inline]
24340    fn cast(syntax: SyntaxNode) -> Option<Self> {
24341        if Self::can_cast(syntax.kind()) {
24342            Some(Self { syntax })
24343        } else {
24344            None
24345        }
24346    }
24347    #[inline]
24348    fn syntax(&self) -> &SyntaxNode {
24349        &self.syntax
24350    }
24351}
24352impl AstNode for Neqb {
24353    #[inline]
24354    fn can_cast(kind: SyntaxKind) -> bool {
24355        kind == SyntaxKind::NEQB
24356    }
24357    #[inline]
24358    fn cast(syntax: SyntaxNode) -> Option<Self> {
24359        if Self::can_cast(syntax.kind()) {
24360            Some(Self { syntax })
24361        } else {
24362            None
24363        }
24364    }
24365    #[inline]
24366    fn syntax(&self) -> &SyntaxNode {
24367        &self.syntax
24368    }
24369}
24370impl AstNode for NoAction {
24371    #[inline]
24372    fn can_cast(kind: SyntaxKind) -> bool {
24373        kind == SyntaxKind::NO_ACTION
24374    }
24375    #[inline]
24376    fn cast(syntax: SyntaxNode) -> Option<Self> {
24377        if Self::can_cast(syntax.kind()) {
24378            Some(Self { syntax })
24379        } else {
24380            None
24381        }
24382    }
24383    #[inline]
24384    fn syntax(&self) -> &SyntaxNode {
24385        &self.syntax
24386    }
24387}
24388impl AstNode for NoDependsOnExtension {
24389    #[inline]
24390    fn can_cast(kind: SyntaxKind) -> bool {
24391        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
24392    }
24393    #[inline]
24394    fn cast(syntax: SyntaxNode) -> Option<Self> {
24395        if Self::can_cast(syntax.kind()) {
24396            Some(Self { syntax })
24397        } else {
24398            None
24399        }
24400    }
24401    #[inline]
24402    fn syntax(&self) -> &SyntaxNode {
24403        &self.syntax
24404    }
24405}
24406impl AstNode for NoForceRls {
24407    #[inline]
24408    fn can_cast(kind: SyntaxKind) -> bool {
24409        kind == SyntaxKind::NO_FORCE_RLS
24410    }
24411    #[inline]
24412    fn cast(syntax: SyntaxNode) -> Option<Self> {
24413        if Self::can_cast(syntax.kind()) {
24414            Some(Self { syntax })
24415        } else {
24416            None
24417        }
24418    }
24419    #[inline]
24420    fn syntax(&self) -> &SyntaxNode {
24421        &self.syntax
24422    }
24423}
24424impl AstNode for NoInherit {
24425    #[inline]
24426    fn can_cast(kind: SyntaxKind) -> bool {
24427        kind == SyntaxKind::NO_INHERIT
24428    }
24429    #[inline]
24430    fn cast(syntax: SyntaxNode) -> Option<Self> {
24431        if Self::can_cast(syntax.kind()) {
24432            Some(Self { syntax })
24433        } else {
24434            None
24435        }
24436    }
24437    #[inline]
24438    fn syntax(&self) -> &SyntaxNode {
24439        &self.syntax
24440    }
24441}
24442impl AstNode for NoInheritTable {
24443    #[inline]
24444    fn can_cast(kind: SyntaxKind) -> bool {
24445        kind == SyntaxKind::NO_INHERIT_TABLE
24446    }
24447    #[inline]
24448    fn cast(syntax: SyntaxNode) -> Option<Self> {
24449        if Self::can_cast(syntax.kind()) {
24450            Some(Self { syntax })
24451        } else {
24452            None
24453        }
24454    }
24455    #[inline]
24456    fn syntax(&self) -> &SyntaxNode {
24457        &self.syntax
24458    }
24459}
24460impl AstNode for NonStandardParam {
24461    #[inline]
24462    fn can_cast(kind: SyntaxKind) -> bool {
24463        kind == SyntaxKind::NON_STANDARD_PARAM
24464    }
24465    #[inline]
24466    fn cast(syntax: SyntaxNode) -> Option<Self> {
24467        if Self::can_cast(syntax.kind()) {
24468            Some(Self { syntax })
24469        } else {
24470            None
24471        }
24472    }
24473    #[inline]
24474    fn syntax(&self) -> &SyntaxNode {
24475        &self.syntax
24476    }
24477}
24478impl AstNode for NotDeferrable {
24479    #[inline]
24480    fn can_cast(kind: SyntaxKind) -> bool {
24481        kind == SyntaxKind::NOT_DEFERRABLE
24482    }
24483    #[inline]
24484    fn cast(syntax: SyntaxNode) -> Option<Self> {
24485        if Self::can_cast(syntax.kind()) {
24486            Some(Self { syntax })
24487        } else {
24488            None
24489        }
24490    }
24491    #[inline]
24492    fn syntax(&self) -> &SyntaxNode {
24493        &self.syntax
24494    }
24495}
24496impl AstNode for NotDeferrableConstraintOption {
24497    #[inline]
24498    fn can_cast(kind: SyntaxKind) -> bool {
24499        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
24500    }
24501    #[inline]
24502    fn cast(syntax: SyntaxNode) -> Option<Self> {
24503        if Self::can_cast(syntax.kind()) {
24504            Some(Self { syntax })
24505        } else {
24506            None
24507        }
24508    }
24509    #[inline]
24510    fn syntax(&self) -> &SyntaxNode {
24511        &self.syntax
24512    }
24513}
24514impl AstNode for NotEnforced {
24515    #[inline]
24516    fn can_cast(kind: SyntaxKind) -> bool {
24517        kind == SyntaxKind::NOT_ENFORCED
24518    }
24519    #[inline]
24520    fn cast(syntax: SyntaxNode) -> Option<Self> {
24521        if Self::can_cast(syntax.kind()) {
24522            Some(Self { syntax })
24523        } else {
24524            None
24525        }
24526    }
24527    #[inline]
24528    fn syntax(&self) -> &SyntaxNode {
24529        &self.syntax
24530    }
24531}
24532impl AstNode for NotIlike {
24533    #[inline]
24534    fn can_cast(kind: SyntaxKind) -> bool {
24535        kind == SyntaxKind::NOT_ILIKE
24536    }
24537    #[inline]
24538    fn cast(syntax: SyntaxNode) -> Option<Self> {
24539        if Self::can_cast(syntax.kind()) {
24540            Some(Self { syntax })
24541        } else {
24542            None
24543        }
24544    }
24545    #[inline]
24546    fn syntax(&self) -> &SyntaxNode {
24547        &self.syntax
24548    }
24549}
24550impl AstNode for NotIn {
24551    #[inline]
24552    fn can_cast(kind: SyntaxKind) -> bool {
24553        kind == SyntaxKind::NOT_IN
24554    }
24555    #[inline]
24556    fn cast(syntax: SyntaxNode) -> Option<Self> {
24557        if Self::can_cast(syntax.kind()) {
24558            Some(Self { syntax })
24559        } else {
24560            None
24561        }
24562    }
24563    #[inline]
24564    fn syntax(&self) -> &SyntaxNode {
24565        &self.syntax
24566    }
24567}
24568impl AstNode for NotLike {
24569    #[inline]
24570    fn can_cast(kind: SyntaxKind) -> bool {
24571        kind == SyntaxKind::NOT_LIKE
24572    }
24573    #[inline]
24574    fn cast(syntax: SyntaxNode) -> Option<Self> {
24575        if Self::can_cast(syntax.kind()) {
24576            Some(Self { syntax })
24577        } else {
24578            None
24579        }
24580    }
24581    #[inline]
24582    fn syntax(&self) -> &SyntaxNode {
24583        &self.syntax
24584    }
24585}
24586impl AstNode for NotMaterialized {
24587    #[inline]
24588    fn can_cast(kind: SyntaxKind) -> bool {
24589        kind == SyntaxKind::NOT_MATERIALIZED
24590    }
24591    #[inline]
24592    fn cast(syntax: SyntaxNode) -> Option<Self> {
24593        if Self::can_cast(syntax.kind()) {
24594            Some(Self { syntax })
24595        } else {
24596            None
24597        }
24598    }
24599    #[inline]
24600    fn syntax(&self) -> &SyntaxNode {
24601        &self.syntax
24602    }
24603}
24604impl AstNode for NotNullConstraint {
24605    #[inline]
24606    fn can_cast(kind: SyntaxKind) -> bool {
24607        kind == SyntaxKind::NOT_NULL_CONSTRAINT
24608    }
24609    #[inline]
24610    fn cast(syntax: SyntaxNode) -> Option<Self> {
24611        if Self::can_cast(syntax.kind()) {
24612            Some(Self { syntax })
24613        } else {
24614            None
24615        }
24616    }
24617    #[inline]
24618    fn syntax(&self) -> &SyntaxNode {
24619        &self.syntax
24620    }
24621}
24622impl AstNode for NotOf {
24623    #[inline]
24624    fn can_cast(kind: SyntaxKind) -> bool {
24625        kind == SyntaxKind::NOT_OF
24626    }
24627    #[inline]
24628    fn cast(syntax: SyntaxNode) -> Option<Self> {
24629        if Self::can_cast(syntax.kind()) {
24630            Some(Self { syntax })
24631        } else {
24632            None
24633        }
24634    }
24635    #[inline]
24636    fn syntax(&self) -> &SyntaxNode {
24637        &self.syntax
24638    }
24639}
24640impl AstNode for NotSimilarTo {
24641    #[inline]
24642    fn can_cast(kind: SyntaxKind) -> bool {
24643        kind == SyntaxKind::NOT_SIMILAR_TO
24644    }
24645    #[inline]
24646    fn cast(syntax: SyntaxNode) -> Option<Self> {
24647        if Self::can_cast(syntax.kind()) {
24648            Some(Self { syntax })
24649        } else {
24650            None
24651        }
24652    }
24653    #[inline]
24654    fn syntax(&self) -> &SyntaxNode {
24655        &self.syntax
24656    }
24657}
24658impl AstNode for NotValid {
24659    #[inline]
24660    fn can_cast(kind: SyntaxKind) -> bool {
24661        kind == SyntaxKind::NOT_VALID
24662    }
24663    #[inline]
24664    fn cast(syntax: SyntaxNode) -> Option<Self> {
24665        if Self::can_cast(syntax.kind()) {
24666            Some(Self { syntax })
24667        } else {
24668            None
24669        }
24670    }
24671    #[inline]
24672    fn syntax(&self) -> &SyntaxNode {
24673        &self.syntax
24674    }
24675}
24676impl AstNode for Notify {
24677    #[inline]
24678    fn can_cast(kind: SyntaxKind) -> bool {
24679        kind == SyntaxKind::NOTIFY
24680    }
24681    #[inline]
24682    fn cast(syntax: SyntaxNode) -> Option<Self> {
24683        if Self::can_cast(syntax.kind()) {
24684            Some(Self { syntax })
24685        } else {
24686            None
24687        }
24688    }
24689    #[inline]
24690    fn syntax(&self) -> &SyntaxNode {
24691        &self.syntax
24692    }
24693}
24694impl AstNode for NullConstraint {
24695    #[inline]
24696    fn can_cast(kind: SyntaxKind) -> bool {
24697        kind == SyntaxKind::NULL_CONSTRAINT
24698    }
24699    #[inline]
24700    fn cast(syntax: SyntaxNode) -> Option<Self> {
24701        if Self::can_cast(syntax.kind()) {
24702            Some(Self { syntax })
24703        } else {
24704            None
24705        }
24706    }
24707    #[inline]
24708    fn syntax(&self) -> &SyntaxNode {
24709        &self.syntax
24710    }
24711}
24712impl AstNode for NullsDistinct {
24713    #[inline]
24714    fn can_cast(kind: SyntaxKind) -> bool {
24715        kind == SyntaxKind::NULLS_DISTINCT
24716    }
24717    #[inline]
24718    fn cast(syntax: SyntaxNode) -> Option<Self> {
24719        if Self::can_cast(syntax.kind()) {
24720            Some(Self { syntax })
24721        } else {
24722            None
24723        }
24724    }
24725    #[inline]
24726    fn syntax(&self) -> &SyntaxNode {
24727        &self.syntax
24728    }
24729}
24730impl AstNode for NullsFirst {
24731    #[inline]
24732    fn can_cast(kind: SyntaxKind) -> bool {
24733        kind == SyntaxKind::NULLS_FIRST
24734    }
24735    #[inline]
24736    fn cast(syntax: SyntaxNode) -> Option<Self> {
24737        if Self::can_cast(syntax.kind()) {
24738            Some(Self { syntax })
24739        } else {
24740            None
24741        }
24742    }
24743    #[inline]
24744    fn syntax(&self) -> &SyntaxNode {
24745        &self.syntax
24746    }
24747}
24748impl AstNode for NullsLast {
24749    #[inline]
24750    fn can_cast(kind: SyntaxKind) -> bool {
24751        kind == SyntaxKind::NULLS_LAST
24752    }
24753    #[inline]
24754    fn cast(syntax: SyntaxNode) -> Option<Self> {
24755        if Self::can_cast(syntax.kind()) {
24756            Some(Self { syntax })
24757        } else {
24758            None
24759        }
24760    }
24761    #[inline]
24762    fn syntax(&self) -> &SyntaxNode {
24763        &self.syntax
24764    }
24765}
24766impl AstNode for NullsNotDistinct {
24767    #[inline]
24768    fn can_cast(kind: SyntaxKind) -> bool {
24769        kind == SyntaxKind::NULLS_NOT_DISTINCT
24770    }
24771    #[inline]
24772    fn cast(syntax: SyntaxNode) -> Option<Self> {
24773        if Self::can_cast(syntax.kind()) {
24774            Some(Self { syntax })
24775        } else {
24776            None
24777        }
24778    }
24779    #[inline]
24780    fn syntax(&self) -> &SyntaxNode {
24781        &self.syntax
24782    }
24783}
24784impl AstNode for OfType {
24785    #[inline]
24786    fn can_cast(kind: SyntaxKind) -> bool {
24787        kind == SyntaxKind::OF_TYPE
24788    }
24789    #[inline]
24790    fn cast(syntax: SyntaxNode) -> Option<Self> {
24791        if Self::can_cast(syntax.kind()) {
24792            Some(Self { syntax })
24793        } else {
24794            None
24795        }
24796    }
24797    #[inline]
24798    fn syntax(&self) -> &SyntaxNode {
24799        &self.syntax
24800    }
24801}
24802impl AstNode for OffsetClause {
24803    #[inline]
24804    fn can_cast(kind: SyntaxKind) -> bool {
24805        kind == SyntaxKind::OFFSET_CLAUSE
24806    }
24807    #[inline]
24808    fn cast(syntax: SyntaxNode) -> Option<Self> {
24809        if Self::can_cast(syntax.kind()) {
24810            Some(Self { syntax })
24811        } else {
24812            None
24813        }
24814    }
24815    #[inline]
24816    fn syntax(&self) -> &SyntaxNode {
24817        &self.syntax
24818    }
24819}
24820impl AstNode for OnClause {
24821    #[inline]
24822    fn can_cast(kind: SyntaxKind) -> bool {
24823        kind == SyntaxKind::ON_CLAUSE
24824    }
24825    #[inline]
24826    fn cast(syntax: SyntaxNode) -> Option<Self> {
24827        if Self::can_cast(syntax.kind()) {
24828            Some(Self { syntax })
24829        } else {
24830            None
24831        }
24832    }
24833    #[inline]
24834    fn syntax(&self) -> &SyntaxNode {
24835        &self.syntax
24836    }
24837}
24838impl AstNode for OnCommit {
24839    #[inline]
24840    fn can_cast(kind: SyntaxKind) -> bool {
24841        kind == SyntaxKind::ON_COMMIT
24842    }
24843    #[inline]
24844    fn cast(syntax: SyntaxNode) -> Option<Self> {
24845        if Self::can_cast(syntax.kind()) {
24846            Some(Self { syntax })
24847        } else {
24848            None
24849        }
24850    }
24851    #[inline]
24852    fn syntax(&self) -> &SyntaxNode {
24853        &self.syntax
24854    }
24855}
24856impl AstNode for OnConflictClause {
24857    #[inline]
24858    fn can_cast(kind: SyntaxKind) -> bool {
24859        kind == SyntaxKind::ON_CONFLICT_CLAUSE
24860    }
24861    #[inline]
24862    fn cast(syntax: SyntaxNode) -> Option<Self> {
24863        if Self::can_cast(syntax.kind()) {
24864            Some(Self { syntax })
24865        } else {
24866            None
24867        }
24868    }
24869    #[inline]
24870    fn syntax(&self) -> &SyntaxNode {
24871        &self.syntax
24872    }
24873}
24874impl AstNode for OnDeleteAction {
24875    #[inline]
24876    fn can_cast(kind: SyntaxKind) -> bool {
24877        kind == SyntaxKind::ON_DELETE_ACTION
24878    }
24879    #[inline]
24880    fn cast(syntax: SyntaxNode) -> Option<Self> {
24881        if Self::can_cast(syntax.kind()) {
24882            Some(Self { syntax })
24883        } else {
24884            None
24885        }
24886    }
24887    #[inline]
24888    fn syntax(&self) -> &SyntaxNode {
24889        &self.syntax
24890    }
24891}
24892impl AstNode for OnTable {
24893    #[inline]
24894    fn can_cast(kind: SyntaxKind) -> bool {
24895        kind == SyntaxKind::ON_TABLE
24896    }
24897    #[inline]
24898    fn cast(syntax: SyntaxNode) -> Option<Self> {
24899        if Self::can_cast(syntax.kind()) {
24900            Some(Self { syntax })
24901        } else {
24902            None
24903        }
24904    }
24905    #[inline]
24906    fn syntax(&self) -> &SyntaxNode {
24907        &self.syntax
24908    }
24909}
24910impl AstNode for OnUpdateAction {
24911    #[inline]
24912    fn can_cast(kind: SyntaxKind) -> bool {
24913        kind == SyntaxKind::ON_UPDATE_ACTION
24914    }
24915    #[inline]
24916    fn cast(syntax: SyntaxNode) -> Option<Self> {
24917        if Self::can_cast(syntax.kind()) {
24918            Some(Self { syntax })
24919        } else {
24920            None
24921        }
24922    }
24923    #[inline]
24924    fn syntax(&self) -> &SyntaxNode {
24925        &self.syntax
24926    }
24927}
24928impl AstNode for Op {
24929    #[inline]
24930    fn can_cast(kind: SyntaxKind) -> bool {
24931        kind == SyntaxKind::OP
24932    }
24933    #[inline]
24934    fn cast(syntax: SyntaxNode) -> Option<Self> {
24935        if Self::can_cast(syntax.kind()) {
24936            Some(Self { syntax })
24937        } else {
24938            None
24939        }
24940    }
24941    #[inline]
24942    fn syntax(&self) -> &SyntaxNode {
24943        &self.syntax
24944    }
24945}
24946impl AstNode for OpClassOption {
24947    #[inline]
24948    fn can_cast(kind: SyntaxKind) -> bool {
24949        kind == SyntaxKind::OP_CLASS_OPTION
24950    }
24951    #[inline]
24952    fn cast(syntax: SyntaxNode) -> Option<Self> {
24953        if Self::can_cast(syntax.kind()) {
24954            Some(Self { syntax })
24955        } else {
24956            None
24957        }
24958    }
24959    #[inline]
24960    fn syntax(&self) -> &SyntaxNode {
24961        &self.syntax
24962    }
24963}
24964impl AstNode for OpSig {
24965    #[inline]
24966    fn can_cast(kind: SyntaxKind) -> bool {
24967        kind == SyntaxKind::OP_SIG
24968    }
24969    #[inline]
24970    fn cast(syntax: SyntaxNode) -> Option<Self> {
24971        if Self::can_cast(syntax.kind()) {
24972            Some(Self { syntax })
24973        } else {
24974            None
24975        }
24976    }
24977    #[inline]
24978    fn syntax(&self) -> &SyntaxNode {
24979        &self.syntax
24980    }
24981}
24982impl AstNode for OpSigList {
24983    #[inline]
24984    fn can_cast(kind: SyntaxKind) -> bool {
24985        kind == SyntaxKind::OP_SIG_LIST
24986    }
24987    #[inline]
24988    fn cast(syntax: SyntaxNode) -> Option<Self> {
24989        if Self::can_cast(syntax.kind()) {
24990            Some(Self { syntax })
24991        } else {
24992            None
24993        }
24994    }
24995    #[inline]
24996    fn syntax(&self) -> &SyntaxNode {
24997        &self.syntax
24998    }
24999}
25000impl AstNode for OperatorCall {
25001    #[inline]
25002    fn can_cast(kind: SyntaxKind) -> bool {
25003        kind == SyntaxKind::OPERATOR_CALL
25004    }
25005    #[inline]
25006    fn cast(syntax: SyntaxNode) -> Option<Self> {
25007        if Self::can_cast(syntax.kind()) {
25008            Some(Self { syntax })
25009        } else {
25010            None
25011        }
25012    }
25013    #[inline]
25014    fn syntax(&self) -> &SyntaxNode {
25015        &self.syntax
25016    }
25017}
25018impl AstNode for OperatorClassOptionList {
25019    #[inline]
25020    fn can_cast(kind: SyntaxKind) -> bool {
25021        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
25022    }
25023    #[inline]
25024    fn cast(syntax: SyntaxNode) -> Option<Self> {
25025        if Self::can_cast(syntax.kind()) {
25026            Some(Self { syntax })
25027        } else {
25028            None
25029        }
25030    }
25031    #[inline]
25032    fn syntax(&self) -> &SyntaxNode {
25033        &self.syntax
25034    }
25035}
25036impl AstNode for OptionItem {
25037    #[inline]
25038    fn can_cast(kind: SyntaxKind) -> bool {
25039        kind == SyntaxKind::OPTION_ITEM
25040    }
25041    #[inline]
25042    fn cast(syntax: SyntaxNode) -> Option<Self> {
25043        if Self::can_cast(syntax.kind()) {
25044            Some(Self { syntax })
25045        } else {
25046            None
25047        }
25048    }
25049    #[inline]
25050    fn syntax(&self) -> &SyntaxNode {
25051        &self.syntax
25052    }
25053}
25054impl AstNode for OptionItemList {
25055    #[inline]
25056    fn can_cast(kind: SyntaxKind) -> bool {
25057        kind == SyntaxKind::OPTION_ITEM_LIST
25058    }
25059    #[inline]
25060    fn cast(syntax: SyntaxNode) -> Option<Self> {
25061        if Self::can_cast(syntax.kind()) {
25062            Some(Self { syntax })
25063        } else {
25064            None
25065        }
25066    }
25067    #[inline]
25068    fn syntax(&self) -> &SyntaxNode {
25069        &self.syntax
25070    }
25071}
25072impl AstNode for OrReplace {
25073    #[inline]
25074    fn can_cast(kind: SyntaxKind) -> bool {
25075        kind == SyntaxKind::OR_REPLACE
25076    }
25077    #[inline]
25078    fn cast(syntax: SyntaxNode) -> Option<Self> {
25079        if Self::can_cast(syntax.kind()) {
25080            Some(Self { syntax })
25081        } else {
25082            None
25083        }
25084    }
25085    #[inline]
25086    fn syntax(&self) -> &SyntaxNode {
25087        &self.syntax
25088    }
25089}
25090impl AstNode for OrderByClause {
25091    #[inline]
25092    fn can_cast(kind: SyntaxKind) -> bool {
25093        kind == SyntaxKind::ORDER_BY_CLAUSE
25094    }
25095    #[inline]
25096    fn cast(syntax: SyntaxNode) -> Option<Self> {
25097        if Self::can_cast(syntax.kind()) {
25098            Some(Self { syntax })
25099        } else {
25100            None
25101        }
25102    }
25103    #[inline]
25104    fn syntax(&self) -> &SyntaxNode {
25105        &self.syntax
25106    }
25107}
25108impl AstNode for OverClause {
25109    #[inline]
25110    fn can_cast(kind: SyntaxKind) -> bool {
25111        kind == SyntaxKind::OVER_CLAUSE
25112    }
25113    #[inline]
25114    fn cast(syntax: SyntaxNode) -> Option<Self> {
25115        if Self::can_cast(syntax.kind()) {
25116            Some(Self { syntax })
25117        } else {
25118            None
25119        }
25120    }
25121    #[inline]
25122    fn syntax(&self) -> &SyntaxNode {
25123        &self.syntax
25124    }
25125}
25126impl AstNode for OverlayFn {
25127    #[inline]
25128    fn can_cast(kind: SyntaxKind) -> bool {
25129        kind == SyntaxKind::OVERLAY_FN
25130    }
25131    #[inline]
25132    fn cast(syntax: SyntaxNode) -> Option<Self> {
25133        if Self::can_cast(syntax.kind()) {
25134            Some(Self { syntax })
25135        } else {
25136            None
25137        }
25138    }
25139    #[inline]
25140    fn syntax(&self) -> &SyntaxNode {
25141        &self.syntax
25142    }
25143}
25144impl AstNode for OwnedByRoles {
25145    #[inline]
25146    fn can_cast(kind: SyntaxKind) -> bool {
25147        kind == SyntaxKind::OWNED_BY_ROLES
25148    }
25149    #[inline]
25150    fn cast(syntax: SyntaxNode) -> Option<Self> {
25151        if Self::can_cast(syntax.kind()) {
25152            Some(Self { syntax })
25153        } else {
25154            None
25155        }
25156    }
25157    #[inline]
25158    fn syntax(&self) -> &SyntaxNode {
25159        &self.syntax
25160    }
25161}
25162impl AstNode for OwnerTo {
25163    #[inline]
25164    fn can_cast(kind: SyntaxKind) -> bool {
25165        kind == SyntaxKind::OWNER_TO
25166    }
25167    #[inline]
25168    fn cast(syntax: SyntaxNode) -> Option<Self> {
25169        if Self::can_cast(syntax.kind()) {
25170            Some(Self { syntax })
25171        } else {
25172            None
25173        }
25174    }
25175    #[inline]
25176    fn syntax(&self) -> &SyntaxNode {
25177        &self.syntax
25178    }
25179}
25180impl AstNode for ParallelFuncOption {
25181    #[inline]
25182    fn can_cast(kind: SyntaxKind) -> bool {
25183        kind == SyntaxKind::PARALLEL_FUNC_OPTION
25184    }
25185    #[inline]
25186    fn cast(syntax: SyntaxNode) -> Option<Self> {
25187        if Self::can_cast(syntax.kind()) {
25188            Some(Self { syntax })
25189        } else {
25190            None
25191        }
25192    }
25193    #[inline]
25194    fn syntax(&self) -> &SyntaxNode {
25195        &self.syntax
25196    }
25197}
25198impl AstNode for Param {
25199    #[inline]
25200    fn can_cast(kind: SyntaxKind) -> bool {
25201        kind == SyntaxKind::PARAM
25202    }
25203    #[inline]
25204    fn cast(syntax: SyntaxNode) -> Option<Self> {
25205        if Self::can_cast(syntax.kind()) {
25206            Some(Self { syntax })
25207        } else {
25208            None
25209        }
25210    }
25211    #[inline]
25212    fn syntax(&self) -> &SyntaxNode {
25213        &self.syntax
25214    }
25215}
25216impl AstNode for ParamDefault {
25217    #[inline]
25218    fn can_cast(kind: SyntaxKind) -> bool {
25219        kind == SyntaxKind::PARAM_DEFAULT
25220    }
25221    #[inline]
25222    fn cast(syntax: SyntaxNode) -> Option<Self> {
25223        if Self::can_cast(syntax.kind()) {
25224            Some(Self { syntax })
25225        } else {
25226            None
25227        }
25228    }
25229    #[inline]
25230    fn syntax(&self) -> &SyntaxNode {
25231        &self.syntax
25232    }
25233}
25234impl AstNode for ParamIn {
25235    #[inline]
25236    fn can_cast(kind: SyntaxKind) -> bool {
25237        kind == SyntaxKind::PARAM_IN
25238    }
25239    #[inline]
25240    fn cast(syntax: SyntaxNode) -> Option<Self> {
25241        if Self::can_cast(syntax.kind()) {
25242            Some(Self { syntax })
25243        } else {
25244            None
25245        }
25246    }
25247    #[inline]
25248    fn syntax(&self) -> &SyntaxNode {
25249        &self.syntax
25250    }
25251}
25252impl AstNode for ParamInOut {
25253    #[inline]
25254    fn can_cast(kind: SyntaxKind) -> bool {
25255        kind == SyntaxKind::PARAM_IN_OUT
25256    }
25257    #[inline]
25258    fn cast(syntax: SyntaxNode) -> Option<Self> {
25259        if Self::can_cast(syntax.kind()) {
25260            Some(Self { syntax })
25261        } else {
25262            None
25263        }
25264    }
25265    #[inline]
25266    fn syntax(&self) -> &SyntaxNode {
25267        &self.syntax
25268    }
25269}
25270impl AstNode for ParamList {
25271    #[inline]
25272    fn can_cast(kind: SyntaxKind) -> bool {
25273        kind == SyntaxKind::PARAM_LIST
25274    }
25275    #[inline]
25276    fn cast(syntax: SyntaxNode) -> Option<Self> {
25277        if Self::can_cast(syntax.kind()) {
25278            Some(Self { syntax })
25279        } else {
25280            None
25281        }
25282    }
25283    #[inline]
25284    fn syntax(&self) -> &SyntaxNode {
25285        &self.syntax
25286    }
25287}
25288impl AstNode for ParamOut {
25289    #[inline]
25290    fn can_cast(kind: SyntaxKind) -> bool {
25291        kind == SyntaxKind::PARAM_OUT
25292    }
25293    #[inline]
25294    fn cast(syntax: SyntaxNode) -> Option<Self> {
25295        if Self::can_cast(syntax.kind()) {
25296            Some(Self { syntax })
25297        } else {
25298            None
25299        }
25300    }
25301    #[inline]
25302    fn syntax(&self) -> &SyntaxNode {
25303        &self.syntax
25304    }
25305}
25306impl AstNode for ParamVariadic {
25307    #[inline]
25308    fn can_cast(kind: SyntaxKind) -> bool {
25309        kind == SyntaxKind::PARAM_VARIADIC
25310    }
25311    #[inline]
25312    fn cast(syntax: SyntaxNode) -> Option<Self> {
25313        if Self::can_cast(syntax.kind()) {
25314            Some(Self { syntax })
25315        } else {
25316            None
25317        }
25318    }
25319    #[inline]
25320    fn syntax(&self) -> &SyntaxNode {
25321        &self.syntax
25322    }
25323}
25324impl AstNode for ParenExpr {
25325    #[inline]
25326    fn can_cast(kind: SyntaxKind) -> bool {
25327        kind == SyntaxKind::PAREN_EXPR
25328    }
25329    #[inline]
25330    fn cast(syntax: SyntaxNode) -> Option<Self> {
25331        if Self::can_cast(syntax.kind()) {
25332            Some(Self { syntax })
25333        } else {
25334            None
25335        }
25336    }
25337    #[inline]
25338    fn syntax(&self) -> &SyntaxNode {
25339        &self.syntax
25340    }
25341}
25342impl AstNode for ParenSelect {
25343    #[inline]
25344    fn can_cast(kind: SyntaxKind) -> bool {
25345        kind == SyntaxKind::PAREN_SELECT
25346    }
25347    #[inline]
25348    fn cast(syntax: SyntaxNode) -> Option<Self> {
25349        if Self::can_cast(syntax.kind()) {
25350            Some(Self { syntax })
25351        } else {
25352            None
25353        }
25354    }
25355    #[inline]
25356    fn syntax(&self) -> &SyntaxNode {
25357        &self.syntax
25358    }
25359}
25360impl AstNode for Partition {
25361    #[inline]
25362    fn can_cast(kind: SyntaxKind) -> bool {
25363        kind == SyntaxKind::PARTITION
25364    }
25365    #[inline]
25366    fn cast(syntax: SyntaxNode) -> Option<Self> {
25367        if Self::can_cast(syntax.kind()) {
25368            Some(Self { syntax })
25369        } else {
25370            None
25371        }
25372    }
25373    #[inline]
25374    fn syntax(&self) -> &SyntaxNode {
25375        &self.syntax
25376    }
25377}
25378impl AstNode for PartitionBy {
25379    #[inline]
25380    fn can_cast(kind: SyntaxKind) -> bool {
25381        kind == SyntaxKind::PARTITION_BY
25382    }
25383    #[inline]
25384    fn cast(syntax: SyntaxNode) -> Option<Self> {
25385        if Self::can_cast(syntax.kind()) {
25386            Some(Self { syntax })
25387        } else {
25388            None
25389        }
25390    }
25391    #[inline]
25392    fn syntax(&self) -> &SyntaxNode {
25393        &self.syntax
25394    }
25395}
25396impl AstNode for PartitionDefault {
25397    #[inline]
25398    fn can_cast(kind: SyntaxKind) -> bool {
25399        kind == SyntaxKind::PARTITION_DEFAULT
25400    }
25401    #[inline]
25402    fn cast(syntax: SyntaxNode) -> Option<Self> {
25403        if Self::can_cast(syntax.kind()) {
25404            Some(Self { syntax })
25405        } else {
25406            None
25407        }
25408    }
25409    #[inline]
25410    fn syntax(&self) -> &SyntaxNode {
25411        &self.syntax
25412    }
25413}
25414impl AstNode for PartitionForValuesFrom {
25415    #[inline]
25416    fn can_cast(kind: SyntaxKind) -> bool {
25417        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
25418    }
25419    #[inline]
25420    fn cast(syntax: SyntaxNode) -> Option<Self> {
25421        if Self::can_cast(syntax.kind()) {
25422            Some(Self { syntax })
25423        } else {
25424            None
25425        }
25426    }
25427    #[inline]
25428    fn syntax(&self) -> &SyntaxNode {
25429        &self.syntax
25430    }
25431}
25432impl AstNode for PartitionForValuesIn {
25433    #[inline]
25434    fn can_cast(kind: SyntaxKind) -> bool {
25435        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
25436    }
25437    #[inline]
25438    fn cast(syntax: SyntaxNode) -> Option<Self> {
25439        if Self::can_cast(syntax.kind()) {
25440            Some(Self { syntax })
25441        } else {
25442            None
25443        }
25444    }
25445    #[inline]
25446    fn syntax(&self) -> &SyntaxNode {
25447        &self.syntax
25448    }
25449}
25450impl AstNode for PartitionForValuesWith {
25451    #[inline]
25452    fn can_cast(kind: SyntaxKind) -> bool {
25453        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
25454    }
25455    #[inline]
25456    fn cast(syntax: SyntaxNode) -> Option<Self> {
25457        if Self::can_cast(syntax.kind()) {
25458            Some(Self { syntax })
25459        } else {
25460            None
25461        }
25462    }
25463    #[inline]
25464    fn syntax(&self) -> &SyntaxNode {
25465        &self.syntax
25466    }
25467}
25468impl AstNode for PartitionItem {
25469    #[inline]
25470    fn can_cast(kind: SyntaxKind) -> bool {
25471        kind == SyntaxKind::PARTITION_ITEM
25472    }
25473    #[inline]
25474    fn cast(syntax: SyntaxNode) -> Option<Self> {
25475        if Self::can_cast(syntax.kind()) {
25476            Some(Self { syntax })
25477        } else {
25478            None
25479        }
25480    }
25481    #[inline]
25482    fn syntax(&self) -> &SyntaxNode {
25483        &self.syntax
25484    }
25485}
25486impl AstNode for PartitionItemList {
25487    #[inline]
25488    fn can_cast(kind: SyntaxKind) -> bool {
25489        kind == SyntaxKind::PARTITION_ITEM_LIST
25490    }
25491    #[inline]
25492    fn cast(syntax: SyntaxNode) -> Option<Self> {
25493        if Self::can_cast(syntax.kind()) {
25494            Some(Self { syntax })
25495        } else {
25496            None
25497        }
25498    }
25499    #[inline]
25500    fn syntax(&self) -> &SyntaxNode {
25501        &self.syntax
25502    }
25503}
25504impl AstNode for PartitionList {
25505    #[inline]
25506    fn can_cast(kind: SyntaxKind) -> bool {
25507        kind == SyntaxKind::PARTITION_LIST
25508    }
25509    #[inline]
25510    fn cast(syntax: SyntaxNode) -> Option<Self> {
25511        if Self::can_cast(syntax.kind()) {
25512            Some(Self { syntax })
25513        } else {
25514            None
25515        }
25516    }
25517    #[inline]
25518    fn syntax(&self) -> &SyntaxNode {
25519        &self.syntax
25520    }
25521}
25522impl AstNode for PartitionOf {
25523    #[inline]
25524    fn can_cast(kind: SyntaxKind) -> bool {
25525        kind == SyntaxKind::PARTITION_OF
25526    }
25527    #[inline]
25528    fn cast(syntax: SyntaxNode) -> Option<Self> {
25529        if Self::can_cast(syntax.kind()) {
25530            Some(Self { syntax })
25531        } else {
25532            None
25533        }
25534    }
25535    #[inline]
25536    fn syntax(&self) -> &SyntaxNode {
25537        &self.syntax
25538    }
25539}
25540impl AstNode for Path {
25541    #[inline]
25542    fn can_cast(kind: SyntaxKind) -> bool {
25543        kind == SyntaxKind::PATH
25544    }
25545    #[inline]
25546    fn cast(syntax: SyntaxNode) -> Option<Self> {
25547        if Self::can_cast(syntax.kind()) {
25548            Some(Self { syntax })
25549        } else {
25550            None
25551        }
25552    }
25553    #[inline]
25554    fn syntax(&self) -> &SyntaxNode {
25555        &self.syntax
25556    }
25557}
25558impl AstNode for PathSegment {
25559    #[inline]
25560    fn can_cast(kind: SyntaxKind) -> bool {
25561        kind == SyntaxKind::PATH_SEGMENT
25562    }
25563    #[inline]
25564    fn cast(syntax: SyntaxNode) -> Option<Self> {
25565        if Self::can_cast(syntax.kind()) {
25566            Some(Self { syntax })
25567        } else {
25568            None
25569        }
25570    }
25571    #[inline]
25572    fn syntax(&self) -> &SyntaxNode {
25573        &self.syntax
25574    }
25575}
25576impl AstNode for PathType {
25577    #[inline]
25578    fn can_cast(kind: SyntaxKind) -> bool {
25579        kind == SyntaxKind::PATH_TYPE
25580    }
25581    #[inline]
25582    fn cast(syntax: SyntaxNode) -> Option<Self> {
25583        if Self::can_cast(syntax.kind()) {
25584            Some(Self { syntax })
25585        } else {
25586            None
25587        }
25588    }
25589    #[inline]
25590    fn syntax(&self) -> &SyntaxNode {
25591        &self.syntax
25592    }
25593}
25594impl AstNode for PercentType {
25595    #[inline]
25596    fn can_cast(kind: SyntaxKind) -> bool {
25597        kind == SyntaxKind::PERCENT_TYPE
25598    }
25599    #[inline]
25600    fn cast(syntax: SyntaxNode) -> Option<Self> {
25601        if Self::can_cast(syntax.kind()) {
25602            Some(Self { syntax })
25603        } else {
25604            None
25605        }
25606    }
25607    #[inline]
25608    fn syntax(&self) -> &SyntaxNode {
25609        &self.syntax
25610    }
25611}
25612impl AstNode for PercentTypeClause {
25613    #[inline]
25614    fn can_cast(kind: SyntaxKind) -> bool {
25615        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
25616    }
25617    #[inline]
25618    fn cast(syntax: SyntaxNode) -> Option<Self> {
25619        if Self::can_cast(syntax.kind()) {
25620            Some(Self { syntax })
25621        } else {
25622            None
25623        }
25624    }
25625    #[inline]
25626    fn syntax(&self) -> &SyntaxNode {
25627        &self.syntax
25628    }
25629}
25630impl AstNode for PositionFn {
25631    #[inline]
25632    fn can_cast(kind: SyntaxKind) -> bool {
25633        kind == SyntaxKind::POSITION_FN
25634    }
25635    #[inline]
25636    fn cast(syntax: SyntaxNode) -> Option<Self> {
25637        if Self::can_cast(syntax.kind()) {
25638            Some(Self { syntax })
25639        } else {
25640            None
25641        }
25642    }
25643    #[inline]
25644    fn syntax(&self) -> &SyntaxNode {
25645        &self.syntax
25646    }
25647}
25648impl AstNode for PostfixExpr {
25649    #[inline]
25650    fn can_cast(kind: SyntaxKind) -> bool {
25651        kind == SyntaxKind::POSTFIX_EXPR
25652    }
25653    #[inline]
25654    fn cast(syntax: SyntaxNode) -> Option<Self> {
25655        if Self::can_cast(syntax.kind()) {
25656            Some(Self { syntax })
25657        } else {
25658            None
25659        }
25660    }
25661    #[inline]
25662    fn syntax(&self) -> &SyntaxNode {
25663        &self.syntax
25664    }
25665}
25666impl AstNode for PrefixExpr {
25667    #[inline]
25668    fn can_cast(kind: SyntaxKind) -> bool {
25669        kind == SyntaxKind::PREFIX_EXPR
25670    }
25671    #[inline]
25672    fn cast(syntax: SyntaxNode) -> Option<Self> {
25673        if Self::can_cast(syntax.kind()) {
25674            Some(Self { syntax })
25675        } else {
25676            None
25677        }
25678    }
25679    #[inline]
25680    fn syntax(&self) -> &SyntaxNode {
25681        &self.syntax
25682    }
25683}
25684impl AstNode for Prepare {
25685    #[inline]
25686    fn can_cast(kind: SyntaxKind) -> bool {
25687        kind == SyntaxKind::PREPARE
25688    }
25689    #[inline]
25690    fn cast(syntax: SyntaxNode) -> Option<Self> {
25691        if Self::can_cast(syntax.kind()) {
25692            Some(Self { syntax })
25693        } else {
25694            None
25695        }
25696    }
25697    #[inline]
25698    fn syntax(&self) -> &SyntaxNode {
25699        &self.syntax
25700    }
25701}
25702impl AstNode for PrepareTransaction {
25703    #[inline]
25704    fn can_cast(kind: SyntaxKind) -> bool {
25705        kind == SyntaxKind::PREPARE_TRANSACTION
25706    }
25707    #[inline]
25708    fn cast(syntax: SyntaxNode) -> Option<Self> {
25709        if Self::can_cast(syntax.kind()) {
25710            Some(Self { syntax })
25711        } else {
25712            None
25713        }
25714    }
25715    #[inline]
25716    fn syntax(&self) -> &SyntaxNode {
25717        &self.syntax
25718    }
25719}
25720impl AstNode for PreserveRows {
25721    #[inline]
25722    fn can_cast(kind: SyntaxKind) -> bool {
25723        kind == SyntaxKind::PRESERVE_ROWS
25724    }
25725    #[inline]
25726    fn cast(syntax: SyntaxNode) -> Option<Self> {
25727        if Self::can_cast(syntax.kind()) {
25728            Some(Self { syntax })
25729        } else {
25730            None
25731        }
25732    }
25733    #[inline]
25734    fn syntax(&self) -> &SyntaxNode {
25735        &self.syntax
25736    }
25737}
25738impl AstNode for PrimaryKeyConstraint {
25739    #[inline]
25740    fn can_cast(kind: SyntaxKind) -> bool {
25741        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
25742    }
25743    #[inline]
25744    fn cast(syntax: SyntaxNode) -> Option<Self> {
25745        if Self::can_cast(syntax.kind()) {
25746            Some(Self { syntax })
25747        } else {
25748            None
25749        }
25750    }
25751    #[inline]
25752    fn syntax(&self) -> &SyntaxNode {
25753        &self.syntax
25754    }
25755}
25756impl AstNode for PrivilegeTarget {
25757    #[inline]
25758    fn can_cast(kind: SyntaxKind) -> bool {
25759        kind == SyntaxKind::PRIVILEGE_TARGET
25760    }
25761    #[inline]
25762    fn cast(syntax: SyntaxNode) -> Option<Self> {
25763        if Self::can_cast(syntax.kind()) {
25764            Some(Self { syntax })
25765        } else {
25766            None
25767        }
25768    }
25769    #[inline]
25770    fn syntax(&self) -> &SyntaxNode {
25771        &self.syntax
25772    }
25773}
25774impl AstNode for Privileges {
25775    #[inline]
25776    fn can_cast(kind: SyntaxKind) -> bool {
25777        kind == SyntaxKind::PRIVILEGES
25778    }
25779    #[inline]
25780    fn cast(syntax: SyntaxNode) -> Option<Self> {
25781        if Self::can_cast(syntax.kind()) {
25782            Some(Self { syntax })
25783        } else {
25784            None
25785        }
25786    }
25787    #[inline]
25788    fn syntax(&self) -> &SyntaxNode {
25789        &self.syntax
25790    }
25791}
25792impl AstNode for PublicationObject {
25793    #[inline]
25794    fn can_cast(kind: SyntaxKind) -> bool {
25795        kind == SyntaxKind::PUBLICATION_OBJECT
25796    }
25797    #[inline]
25798    fn cast(syntax: SyntaxNode) -> Option<Self> {
25799        if Self::can_cast(syntax.kind()) {
25800            Some(Self { syntax })
25801        } else {
25802            None
25803        }
25804    }
25805    #[inline]
25806    fn syntax(&self) -> &SyntaxNode {
25807        &self.syntax
25808    }
25809}
25810impl AstNode for ReadCommitted {
25811    #[inline]
25812    fn can_cast(kind: SyntaxKind) -> bool {
25813        kind == SyntaxKind::READ_COMMITTED
25814    }
25815    #[inline]
25816    fn cast(syntax: SyntaxNode) -> Option<Self> {
25817        if Self::can_cast(syntax.kind()) {
25818            Some(Self { syntax })
25819        } else {
25820            None
25821        }
25822    }
25823    #[inline]
25824    fn syntax(&self) -> &SyntaxNode {
25825        &self.syntax
25826    }
25827}
25828impl AstNode for ReadOnly {
25829    #[inline]
25830    fn can_cast(kind: SyntaxKind) -> bool {
25831        kind == SyntaxKind::READ_ONLY
25832    }
25833    #[inline]
25834    fn cast(syntax: SyntaxNode) -> Option<Self> {
25835        if Self::can_cast(syntax.kind()) {
25836            Some(Self { syntax })
25837        } else {
25838            None
25839        }
25840    }
25841    #[inline]
25842    fn syntax(&self) -> &SyntaxNode {
25843        &self.syntax
25844    }
25845}
25846impl AstNode for ReadUncommitted {
25847    #[inline]
25848    fn can_cast(kind: SyntaxKind) -> bool {
25849        kind == SyntaxKind::READ_UNCOMMITTED
25850    }
25851    #[inline]
25852    fn cast(syntax: SyntaxNode) -> Option<Self> {
25853        if Self::can_cast(syntax.kind()) {
25854            Some(Self { syntax })
25855        } else {
25856            None
25857        }
25858    }
25859    #[inline]
25860    fn syntax(&self) -> &SyntaxNode {
25861        &self.syntax
25862    }
25863}
25864impl AstNode for ReadWrite {
25865    #[inline]
25866    fn can_cast(kind: SyntaxKind) -> bool {
25867        kind == SyntaxKind::READ_WRITE
25868    }
25869    #[inline]
25870    fn cast(syntax: SyntaxNode) -> Option<Self> {
25871        if Self::can_cast(syntax.kind()) {
25872            Some(Self { syntax })
25873        } else {
25874            None
25875        }
25876    }
25877    #[inline]
25878    fn syntax(&self) -> &SyntaxNode {
25879        &self.syntax
25880    }
25881}
25882impl AstNode for Reassign {
25883    #[inline]
25884    fn can_cast(kind: SyntaxKind) -> bool {
25885        kind == SyntaxKind::REASSIGN
25886    }
25887    #[inline]
25888    fn cast(syntax: SyntaxNode) -> Option<Self> {
25889        if Self::can_cast(syntax.kind()) {
25890            Some(Self { syntax })
25891        } else {
25892            None
25893        }
25894    }
25895    #[inline]
25896    fn syntax(&self) -> &SyntaxNode {
25897        &self.syntax
25898    }
25899}
25900impl AstNode for ReferencesConstraint {
25901    #[inline]
25902    fn can_cast(kind: SyntaxKind) -> bool {
25903        kind == SyntaxKind::REFERENCES_CONSTRAINT
25904    }
25905    #[inline]
25906    fn cast(syntax: SyntaxNode) -> Option<Self> {
25907        if Self::can_cast(syntax.kind()) {
25908            Some(Self { syntax })
25909        } else {
25910            None
25911        }
25912    }
25913    #[inline]
25914    fn syntax(&self) -> &SyntaxNode {
25915        &self.syntax
25916    }
25917}
25918impl AstNode for Referencing {
25919    #[inline]
25920    fn can_cast(kind: SyntaxKind) -> bool {
25921        kind == SyntaxKind::REFERENCING
25922    }
25923    #[inline]
25924    fn cast(syntax: SyntaxNode) -> Option<Self> {
25925        if Self::can_cast(syntax.kind()) {
25926            Some(Self { syntax })
25927        } else {
25928            None
25929        }
25930    }
25931    #[inline]
25932    fn syntax(&self) -> &SyntaxNode {
25933        &self.syntax
25934    }
25935}
25936impl AstNode for ReferencingTable {
25937    #[inline]
25938    fn can_cast(kind: SyntaxKind) -> bool {
25939        kind == SyntaxKind::REFERENCING_TABLE
25940    }
25941    #[inline]
25942    fn cast(syntax: SyntaxNode) -> Option<Self> {
25943        if Self::can_cast(syntax.kind()) {
25944            Some(Self { syntax })
25945        } else {
25946            None
25947        }
25948    }
25949    #[inline]
25950    fn syntax(&self) -> &SyntaxNode {
25951        &self.syntax
25952    }
25953}
25954impl AstNode for Refresh {
25955    #[inline]
25956    fn can_cast(kind: SyntaxKind) -> bool {
25957        kind == SyntaxKind::REFRESH
25958    }
25959    #[inline]
25960    fn cast(syntax: SyntaxNode) -> Option<Self> {
25961        if Self::can_cast(syntax.kind()) {
25962            Some(Self { syntax })
25963        } else {
25964            None
25965        }
25966    }
25967    #[inline]
25968    fn syntax(&self) -> &SyntaxNode {
25969        &self.syntax
25970    }
25971}
25972impl AstNode for RefreshCollationVersion {
25973    #[inline]
25974    fn can_cast(kind: SyntaxKind) -> bool {
25975        kind == SyntaxKind::REFRESH_COLLATION_VERSION
25976    }
25977    #[inline]
25978    fn cast(syntax: SyntaxNode) -> Option<Self> {
25979        if Self::can_cast(syntax.kind()) {
25980            Some(Self { syntax })
25981        } else {
25982            None
25983        }
25984    }
25985    #[inline]
25986    fn syntax(&self) -> &SyntaxNode {
25987        &self.syntax
25988    }
25989}
25990impl AstNode for RefreshVersion {
25991    #[inline]
25992    fn can_cast(kind: SyntaxKind) -> bool {
25993        kind == SyntaxKind::REFRESH_VERSION
25994    }
25995    #[inline]
25996    fn cast(syntax: SyntaxNode) -> Option<Self> {
25997        if Self::can_cast(syntax.kind()) {
25998            Some(Self { syntax })
25999        } else {
26000            None
26001        }
26002    }
26003    #[inline]
26004    fn syntax(&self) -> &SyntaxNode {
26005        &self.syntax
26006    }
26007}
26008impl AstNode for Reindex {
26009    #[inline]
26010    fn can_cast(kind: SyntaxKind) -> bool {
26011        kind == SyntaxKind::REINDEX
26012    }
26013    #[inline]
26014    fn cast(syntax: SyntaxNode) -> Option<Self> {
26015        if Self::can_cast(syntax.kind()) {
26016            Some(Self { syntax })
26017        } else {
26018            None
26019        }
26020    }
26021    #[inline]
26022    fn syntax(&self) -> &SyntaxNode {
26023        &self.syntax
26024    }
26025}
26026impl AstNode for RelationName {
26027    #[inline]
26028    fn can_cast(kind: SyntaxKind) -> bool {
26029        kind == SyntaxKind::RELATION_NAME
26030    }
26031    #[inline]
26032    fn cast(syntax: SyntaxNode) -> Option<Self> {
26033        if Self::can_cast(syntax.kind()) {
26034            Some(Self { syntax })
26035        } else {
26036            None
26037        }
26038    }
26039    #[inline]
26040    fn syntax(&self) -> &SyntaxNode {
26041        &self.syntax
26042    }
26043}
26044impl AstNode for ReleaseSavepoint {
26045    #[inline]
26046    fn can_cast(kind: SyntaxKind) -> bool {
26047        kind == SyntaxKind::RELEASE_SAVEPOINT
26048    }
26049    #[inline]
26050    fn cast(syntax: SyntaxNode) -> Option<Self> {
26051        if Self::can_cast(syntax.kind()) {
26052            Some(Self { syntax })
26053        } else {
26054            None
26055        }
26056    }
26057    #[inline]
26058    fn syntax(&self) -> &SyntaxNode {
26059        &self.syntax
26060    }
26061}
26062impl AstNode for RenameColumn {
26063    #[inline]
26064    fn can_cast(kind: SyntaxKind) -> bool {
26065        kind == SyntaxKind::RENAME_COLUMN
26066    }
26067    #[inline]
26068    fn cast(syntax: SyntaxNode) -> Option<Self> {
26069        if Self::can_cast(syntax.kind()) {
26070            Some(Self { syntax })
26071        } else {
26072            None
26073        }
26074    }
26075    #[inline]
26076    fn syntax(&self) -> &SyntaxNode {
26077        &self.syntax
26078    }
26079}
26080impl AstNode for RenameConstraint {
26081    #[inline]
26082    fn can_cast(kind: SyntaxKind) -> bool {
26083        kind == SyntaxKind::RENAME_CONSTRAINT
26084    }
26085    #[inline]
26086    fn cast(syntax: SyntaxNode) -> Option<Self> {
26087        if Self::can_cast(syntax.kind()) {
26088            Some(Self { syntax })
26089        } else {
26090            None
26091        }
26092    }
26093    #[inline]
26094    fn syntax(&self) -> &SyntaxNode {
26095        &self.syntax
26096    }
26097}
26098impl AstNode for RenameTo {
26099    #[inline]
26100    fn can_cast(kind: SyntaxKind) -> bool {
26101        kind == SyntaxKind::RENAME_TO
26102    }
26103    #[inline]
26104    fn cast(syntax: SyntaxNode) -> Option<Self> {
26105        if Self::can_cast(syntax.kind()) {
26106            Some(Self { syntax })
26107        } else {
26108            None
26109        }
26110    }
26111    #[inline]
26112    fn syntax(&self) -> &SyntaxNode {
26113        &self.syntax
26114    }
26115}
26116impl AstNode for RepeatableClause {
26117    #[inline]
26118    fn can_cast(kind: SyntaxKind) -> bool {
26119        kind == SyntaxKind::REPEATABLE_CLAUSE
26120    }
26121    #[inline]
26122    fn cast(syntax: SyntaxNode) -> Option<Self> {
26123        if Self::can_cast(syntax.kind()) {
26124            Some(Self { syntax })
26125        } else {
26126            None
26127        }
26128    }
26129    #[inline]
26130    fn syntax(&self) -> &SyntaxNode {
26131        &self.syntax
26132    }
26133}
26134impl AstNode for RepeatableRead {
26135    #[inline]
26136    fn can_cast(kind: SyntaxKind) -> bool {
26137        kind == SyntaxKind::REPEATABLE_READ
26138    }
26139    #[inline]
26140    fn cast(syntax: SyntaxNode) -> Option<Self> {
26141        if Self::can_cast(syntax.kind()) {
26142            Some(Self { syntax })
26143        } else {
26144            None
26145        }
26146    }
26147    #[inline]
26148    fn syntax(&self) -> &SyntaxNode {
26149        &self.syntax
26150    }
26151}
26152impl AstNode for ReplicaIdentity {
26153    #[inline]
26154    fn can_cast(kind: SyntaxKind) -> bool {
26155        kind == SyntaxKind::REPLICA_IDENTITY
26156    }
26157    #[inline]
26158    fn cast(syntax: SyntaxNode) -> Option<Self> {
26159        if Self::can_cast(syntax.kind()) {
26160            Some(Self { syntax })
26161        } else {
26162            None
26163        }
26164    }
26165    #[inline]
26166    fn syntax(&self) -> &SyntaxNode {
26167        &self.syntax
26168    }
26169}
26170impl AstNode for Reset {
26171    #[inline]
26172    fn can_cast(kind: SyntaxKind) -> bool {
26173        kind == SyntaxKind::RESET
26174    }
26175    #[inline]
26176    fn cast(syntax: SyntaxNode) -> Option<Self> {
26177        if Self::can_cast(syntax.kind()) {
26178            Some(Self { syntax })
26179        } else {
26180            None
26181        }
26182    }
26183    #[inline]
26184    fn syntax(&self) -> &SyntaxNode {
26185        &self.syntax
26186    }
26187}
26188impl AstNode for ResetConfigParam {
26189    #[inline]
26190    fn can_cast(kind: SyntaxKind) -> bool {
26191        kind == SyntaxKind::RESET_CONFIG_PARAM
26192    }
26193    #[inline]
26194    fn cast(syntax: SyntaxNode) -> Option<Self> {
26195        if Self::can_cast(syntax.kind()) {
26196            Some(Self { syntax })
26197        } else {
26198            None
26199        }
26200    }
26201    #[inline]
26202    fn syntax(&self) -> &SyntaxNode {
26203        &self.syntax
26204    }
26205}
26206impl AstNode for ResetFuncOption {
26207    #[inline]
26208    fn can_cast(kind: SyntaxKind) -> bool {
26209        kind == SyntaxKind::RESET_FUNC_OPTION
26210    }
26211    #[inline]
26212    fn cast(syntax: SyntaxNode) -> Option<Self> {
26213        if Self::can_cast(syntax.kind()) {
26214            Some(Self { syntax })
26215        } else {
26216            None
26217        }
26218    }
26219    #[inline]
26220    fn syntax(&self) -> &SyntaxNode {
26221        &self.syntax
26222    }
26223}
26224impl AstNode for ResetOptions {
26225    #[inline]
26226    fn can_cast(kind: SyntaxKind) -> bool {
26227        kind == SyntaxKind::RESET_OPTIONS
26228    }
26229    #[inline]
26230    fn cast(syntax: SyntaxNode) -> Option<Self> {
26231        if Self::can_cast(syntax.kind()) {
26232            Some(Self { syntax })
26233        } else {
26234            None
26235        }
26236    }
26237    #[inline]
26238    fn syntax(&self) -> &SyntaxNode {
26239        &self.syntax
26240    }
26241}
26242impl AstNode for ResetSessionAuth {
26243    #[inline]
26244    fn can_cast(kind: SyntaxKind) -> bool {
26245        kind == SyntaxKind::RESET_SESSION_AUTH
26246    }
26247    #[inline]
26248    fn cast(syntax: SyntaxNode) -> Option<Self> {
26249        if Self::can_cast(syntax.kind()) {
26250            Some(Self { syntax })
26251        } else {
26252            None
26253        }
26254    }
26255    #[inline]
26256    fn syntax(&self) -> &SyntaxNode {
26257        &self.syntax
26258    }
26259}
26260impl AstNode for Restart {
26261    #[inline]
26262    fn can_cast(kind: SyntaxKind) -> bool {
26263        kind == SyntaxKind::RESTART
26264    }
26265    #[inline]
26266    fn cast(syntax: SyntaxNode) -> Option<Self> {
26267        if Self::can_cast(syntax.kind()) {
26268            Some(Self { syntax })
26269        } else {
26270            None
26271        }
26272    }
26273    #[inline]
26274    fn syntax(&self) -> &SyntaxNode {
26275        &self.syntax
26276    }
26277}
26278impl AstNode for Restrict {
26279    #[inline]
26280    fn can_cast(kind: SyntaxKind) -> bool {
26281        kind == SyntaxKind::RESTRICT
26282    }
26283    #[inline]
26284    fn cast(syntax: SyntaxNode) -> Option<Self> {
26285        if Self::can_cast(syntax.kind()) {
26286            Some(Self { syntax })
26287        } else {
26288            None
26289        }
26290    }
26291    #[inline]
26292    fn syntax(&self) -> &SyntaxNode {
26293        &self.syntax
26294    }
26295}
26296impl AstNode for RetType {
26297    #[inline]
26298    fn can_cast(kind: SyntaxKind) -> bool {
26299        kind == SyntaxKind::RET_TYPE
26300    }
26301    #[inline]
26302    fn cast(syntax: SyntaxNode) -> Option<Self> {
26303        if Self::can_cast(syntax.kind()) {
26304            Some(Self { syntax })
26305        } else {
26306            None
26307        }
26308    }
26309    #[inline]
26310    fn syntax(&self) -> &SyntaxNode {
26311        &self.syntax
26312    }
26313}
26314impl AstNode for ReturnFuncOption {
26315    #[inline]
26316    fn can_cast(kind: SyntaxKind) -> bool {
26317        kind == SyntaxKind::RETURN_FUNC_OPTION
26318    }
26319    #[inline]
26320    fn cast(syntax: SyntaxNode) -> Option<Self> {
26321        if Self::can_cast(syntax.kind()) {
26322            Some(Self { syntax })
26323        } else {
26324            None
26325        }
26326    }
26327    #[inline]
26328    fn syntax(&self) -> &SyntaxNode {
26329        &self.syntax
26330    }
26331}
26332impl AstNode for ReturningClause {
26333    #[inline]
26334    fn can_cast(kind: SyntaxKind) -> bool {
26335        kind == SyntaxKind::RETURNING_CLAUSE
26336    }
26337    #[inline]
26338    fn cast(syntax: SyntaxNode) -> Option<Self> {
26339        if Self::can_cast(syntax.kind()) {
26340            Some(Self { syntax })
26341        } else {
26342            None
26343        }
26344    }
26345    #[inline]
26346    fn syntax(&self) -> &SyntaxNode {
26347        &self.syntax
26348    }
26349}
26350impl AstNode for ReturningOption {
26351    #[inline]
26352    fn can_cast(kind: SyntaxKind) -> bool {
26353        kind == SyntaxKind::RETURNING_OPTION
26354    }
26355    #[inline]
26356    fn cast(syntax: SyntaxNode) -> Option<Self> {
26357        if Self::can_cast(syntax.kind()) {
26358            Some(Self { syntax })
26359        } else {
26360            None
26361        }
26362    }
26363    #[inline]
26364    fn syntax(&self) -> &SyntaxNode {
26365        &self.syntax
26366    }
26367}
26368impl AstNode for ReturningOptionList {
26369    #[inline]
26370    fn can_cast(kind: SyntaxKind) -> bool {
26371        kind == SyntaxKind::RETURNING_OPTION_LIST
26372    }
26373    #[inline]
26374    fn cast(syntax: SyntaxNode) -> Option<Self> {
26375        if Self::can_cast(syntax.kind()) {
26376            Some(Self { syntax })
26377        } else {
26378            None
26379        }
26380    }
26381    #[inline]
26382    fn syntax(&self) -> &SyntaxNode {
26383        &self.syntax
26384    }
26385}
26386impl AstNode for Revoke {
26387    #[inline]
26388    fn can_cast(kind: SyntaxKind) -> bool {
26389        kind == SyntaxKind::REVOKE
26390    }
26391    #[inline]
26392    fn cast(syntax: SyntaxNode) -> Option<Self> {
26393        if Self::can_cast(syntax.kind()) {
26394            Some(Self { syntax })
26395        } else {
26396            None
26397        }
26398    }
26399    #[inline]
26400    fn syntax(&self) -> &SyntaxNode {
26401        &self.syntax
26402    }
26403}
26404impl AstNode for RevokeCommand {
26405    #[inline]
26406    fn can_cast(kind: SyntaxKind) -> bool {
26407        kind == SyntaxKind::REVOKE_COMMAND
26408    }
26409    #[inline]
26410    fn cast(syntax: SyntaxNode) -> Option<Self> {
26411        if Self::can_cast(syntax.kind()) {
26412            Some(Self { syntax })
26413        } else {
26414            None
26415        }
26416    }
26417    #[inline]
26418    fn syntax(&self) -> &SyntaxNode {
26419        &self.syntax
26420    }
26421}
26422impl AstNode for RevokeCommandList {
26423    #[inline]
26424    fn can_cast(kind: SyntaxKind) -> bool {
26425        kind == SyntaxKind::REVOKE_COMMAND_LIST
26426    }
26427    #[inline]
26428    fn cast(syntax: SyntaxNode) -> Option<Self> {
26429        if Self::can_cast(syntax.kind()) {
26430            Some(Self { syntax })
26431        } else {
26432            None
26433        }
26434    }
26435    #[inline]
26436    fn syntax(&self) -> &SyntaxNode {
26437        &self.syntax
26438    }
26439}
26440impl AstNode for RevokeDefaultPrivileges {
26441    #[inline]
26442    fn can_cast(kind: SyntaxKind) -> bool {
26443        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
26444    }
26445    #[inline]
26446    fn cast(syntax: SyntaxNode) -> Option<Self> {
26447        if Self::can_cast(syntax.kind()) {
26448            Some(Self { syntax })
26449        } else {
26450            None
26451        }
26452    }
26453    #[inline]
26454    fn syntax(&self) -> &SyntaxNode {
26455        &self.syntax
26456    }
26457}
26458impl AstNode for Role {
26459    #[inline]
26460    fn can_cast(kind: SyntaxKind) -> bool {
26461        kind == SyntaxKind::ROLE
26462    }
26463    #[inline]
26464    fn cast(syntax: SyntaxNode) -> Option<Self> {
26465        if Self::can_cast(syntax.kind()) {
26466            Some(Self { syntax })
26467        } else {
26468            None
26469        }
26470    }
26471    #[inline]
26472    fn syntax(&self) -> &SyntaxNode {
26473        &self.syntax
26474    }
26475}
26476impl AstNode for RoleOption {
26477    #[inline]
26478    fn can_cast(kind: SyntaxKind) -> bool {
26479        kind == SyntaxKind::ROLE_OPTION
26480    }
26481    #[inline]
26482    fn cast(syntax: SyntaxNode) -> Option<Self> {
26483        if Self::can_cast(syntax.kind()) {
26484            Some(Self { syntax })
26485        } else {
26486            None
26487        }
26488    }
26489    #[inline]
26490    fn syntax(&self) -> &SyntaxNode {
26491        &self.syntax
26492    }
26493}
26494impl AstNode for RoleOptionList {
26495    #[inline]
26496    fn can_cast(kind: SyntaxKind) -> bool {
26497        kind == SyntaxKind::ROLE_OPTION_LIST
26498    }
26499    #[inline]
26500    fn cast(syntax: SyntaxNode) -> Option<Self> {
26501        if Self::can_cast(syntax.kind()) {
26502            Some(Self { syntax })
26503        } else {
26504            None
26505        }
26506    }
26507    #[inline]
26508    fn syntax(&self) -> &SyntaxNode {
26509        &self.syntax
26510    }
26511}
26512impl AstNode for RoleRef {
26513    #[inline]
26514    fn can_cast(kind: SyntaxKind) -> bool {
26515        kind == SyntaxKind::ROLE_REF
26516    }
26517    #[inline]
26518    fn cast(syntax: SyntaxNode) -> Option<Self> {
26519        if Self::can_cast(syntax.kind()) {
26520            Some(Self { syntax })
26521        } else {
26522            None
26523        }
26524    }
26525    #[inline]
26526    fn syntax(&self) -> &SyntaxNode {
26527        &self.syntax
26528    }
26529}
26530impl AstNode for RoleRefList {
26531    #[inline]
26532    fn can_cast(kind: SyntaxKind) -> bool {
26533        kind == SyntaxKind::ROLE_REF_LIST
26534    }
26535    #[inline]
26536    fn cast(syntax: SyntaxNode) -> Option<Self> {
26537        if Self::can_cast(syntax.kind()) {
26538            Some(Self { syntax })
26539        } else {
26540            None
26541        }
26542    }
26543    #[inline]
26544    fn syntax(&self) -> &SyntaxNode {
26545        &self.syntax
26546    }
26547}
26548impl AstNode for Rollback {
26549    #[inline]
26550    fn can_cast(kind: SyntaxKind) -> bool {
26551        kind == SyntaxKind::ROLLBACK
26552    }
26553    #[inline]
26554    fn cast(syntax: SyntaxNode) -> Option<Self> {
26555        if Self::can_cast(syntax.kind()) {
26556            Some(Self { syntax })
26557        } else {
26558            None
26559        }
26560    }
26561    #[inline]
26562    fn syntax(&self) -> &SyntaxNode {
26563        &self.syntax
26564    }
26565}
26566impl AstNode for Row {
26567    #[inline]
26568    fn can_cast(kind: SyntaxKind) -> bool {
26569        kind == SyntaxKind::ROW
26570    }
26571    #[inline]
26572    fn cast(syntax: SyntaxNode) -> Option<Self> {
26573        if Self::can_cast(syntax.kind()) {
26574            Some(Self { syntax })
26575        } else {
26576            None
26577        }
26578    }
26579    #[inline]
26580    fn syntax(&self) -> &SyntaxNode {
26581        &self.syntax
26582    }
26583}
26584impl AstNode for RowList {
26585    #[inline]
26586    fn can_cast(kind: SyntaxKind) -> bool {
26587        kind == SyntaxKind::ROW_LIST
26588    }
26589    #[inline]
26590    fn cast(syntax: SyntaxNode) -> Option<Self> {
26591        if Self::can_cast(syntax.kind()) {
26592            Some(Self { syntax })
26593        } else {
26594            None
26595        }
26596    }
26597    #[inline]
26598    fn syntax(&self) -> &SyntaxNode {
26599        &self.syntax
26600    }
26601}
26602impl AstNode for RowsFuncOption {
26603    #[inline]
26604    fn can_cast(kind: SyntaxKind) -> bool {
26605        kind == SyntaxKind::ROWS_FUNC_OPTION
26606    }
26607    #[inline]
26608    fn cast(syntax: SyntaxNode) -> Option<Self> {
26609        if Self::can_cast(syntax.kind()) {
26610            Some(Self { syntax })
26611        } else {
26612            None
26613        }
26614    }
26615    #[inline]
26616    fn syntax(&self) -> &SyntaxNode {
26617        &self.syntax
26618    }
26619}
26620impl AstNode for Savepoint {
26621    #[inline]
26622    fn can_cast(kind: SyntaxKind) -> bool {
26623        kind == SyntaxKind::SAVEPOINT
26624    }
26625    #[inline]
26626    fn cast(syntax: SyntaxNode) -> Option<Self> {
26627        if Self::can_cast(syntax.kind()) {
26628            Some(Self { syntax })
26629        } else {
26630            None
26631        }
26632    }
26633    #[inline]
26634    fn syntax(&self) -> &SyntaxNode {
26635        &self.syntax
26636    }
26637}
26638impl AstNode for SecurityFuncOption {
26639    #[inline]
26640    fn can_cast(kind: SyntaxKind) -> bool {
26641        kind == SyntaxKind::SECURITY_FUNC_OPTION
26642    }
26643    #[inline]
26644    fn cast(syntax: SyntaxNode) -> Option<Self> {
26645        if Self::can_cast(syntax.kind()) {
26646            Some(Self { syntax })
26647        } else {
26648            None
26649        }
26650    }
26651    #[inline]
26652    fn syntax(&self) -> &SyntaxNode {
26653        &self.syntax
26654    }
26655}
26656impl AstNode for SecurityLabel {
26657    #[inline]
26658    fn can_cast(kind: SyntaxKind) -> bool {
26659        kind == SyntaxKind::SECURITY_LABEL
26660    }
26661    #[inline]
26662    fn cast(syntax: SyntaxNode) -> Option<Self> {
26663        if Self::can_cast(syntax.kind()) {
26664            Some(Self { syntax })
26665        } else {
26666            None
26667        }
26668    }
26669    #[inline]
26670    fn syntax(&self) -> &SyntaxNode {
26671        &self.syntax
26672    }
26673}
26674impl AstNode for Select {
26675    #[inline]
26676    fn can_cast(kind: SyntaxKind) -> bool {
26677        kind == SyntaxKind::SELECT
26678    }
26679    #[inline]
26680    fn cast(syntax: SyntaxNode) -> Option<Self> {
26681        if Self::can_cast(syntax.kind()) {
26682            Some(Self { syntax })
26683        } else {
26684            None
26685        }
26686    }
26687    #[inline]
26688    fn syntax(&self) -> &SyntaxNode {
26689        &self.syntax
26690    }
26691}
26692impl AstNode for SelectClause {
26693    #[inline]
26694    fn can_cast(kind: SyntaxKind) -> bool {
26695        kind == SyntaxKind::SELECT_CLAUSE
26696    }
26697    #[inline]
26698    fn cast(syntax: SyntaxNode) -> Option<Self> {
26699        if Self::can_cast(syntax.kind()) {
26700            Some(Self { syntax })
26701        } else {
26702            None
26703        }
26704    }
26705    #[inline]
26706    fn syntax(&self) -> &SyntaxNode {
26707        &self.syntax
26708    }
26709}
26710impl AstNode for SelectInto {
26711    #[inline]
26712    fn can_cast(kind: SyntaxKind) -> bool {
26713        kind == SyntaxKind::SELECT_INTO
26714    }
26715    #[inline]
26716    fn cast(syntax: SyntaxNode) -> Option<Self> {
26717        if Self::can_cast(syntax.kind()) {
26718            Some(Self { syntax })
26719        } else {
26720            None
26721        }
26722    }
26723    #[inline]
26724    fn syntax(&self) -> &SyntaxNode {
26725        &self.syntax
26726    }
26727}
26728impl AstNode for SequenceOption {
26729    #[inline]
26730    fn can_cast(kind: SyntaxKind) -> bool {
26731        kind == SyntaxKind::SEQUENCE_OPTION
26732    }
26733    #[inline]
26734    fn cast(syntax: SyntaxNode) -> Option<Self> {
26735        if Self::can_cast(syntax.kind()) {
26736            Some(Self { syntax })
26737        } else {
26738            None
26739        }
26740    }
26741    #[inline]
26742    fn syntax(&self) -> &SyntaxNode {
26743        &self.syntax
26744    }
26745}
26746impl AstNode for SequenceOptionList {
26747    #[inline]
26748    fn can_cast(kind: SyntaxKind) -> bool {
26749        kind == SyntaxKind::SEQUENCE_OPTION_LIST
26750    }
26751    #[inline]
26752    fn cast(syntax: SyntaxNode) -> Option<Self> {
26753        if Self::can_cast(syntax.kind()) {
26754            Some(Self { syntax })
26755        } else {
26756            None
26757        }
26758    }
26759    #[inline]
26760    fn syntax(&self) -> &SyntaxNode {
26761        &self.syntax
26762    }
26763}
26764impl AstNode for Serializable {
26765    #[inline]
26766    fn can_cast(kind: SyntaxKind) -> bool {
26767        kind == SyntaxKind::SERIALIZABLE
26768    }
26769    #[inline]
26770    fn cast(syntax: SyntaxNode) -> Option<Self> {
26771        if Self::can_cast(syntax.kind()) {
26772            Some(Self { syntax })
26773        } else {
26774            None
26775        }
26776    }
26777    #[inline]
26778    fn syntax(&self) -> &SyntaxNode {
26779        &self.syntax
26780    }
26781}
26782impl AstNode for ServerName {
26783    #[inline]
26784    fn can_cast(kind: SyntaxKind) -> bool {
26785        kind == SyntaxKind::SERVER_NAME
26786    }
26787    #[inline]
26788    fn cast(syntax: SyntaxNode) -> Option<Self> {
26789        if Self::can_cast(syntax.kind()) {
26790            Some(Self { syntax })
26791        } else {
26792            None
26793        }
26794    }
26795    #[inline]
26796    fn syntax(&self) -> &SyntaxNode {
26797        &self.syntax
26798    }
26799}
26800impl AstNode for Set {
26801    #[inline]
26802    fn can_cast(kind: SyntaxKind) -> bool {
26803        kind == SyntaxKind::SET
26804    }
26805    #[inline]
26806    fn cast(syntax: SyntaxNode) -> Option<Self> {
26807        if Self::can_cast(syntax.kind()) {
26808            Some(Self { syntax })
26809        } else {
26810            None
26811        }
26812    }
26813    #[inline]
26814    fn syntax(&self) -> &SyntaxNode {
26815        &self.syntax
26816    }
26817}
26818impl AstNode for SetAccessMethod {
26819    #[inline]
26820    fn can_cast(kind: SyntaxKind) -> bool {
26821        kind == SyntaxKind::SET_ACCESS_METHOD
26822    }
26823    #[inline]
26824    fn cast(syntax: SyntaxNode) -> Option<Self> {
26825        if Self::can_cast(syntax.kind()) {
26826            Some(Self { syntax })
26827        } else {
26828            None
26829        }
26830    }
26831    #[inline]
26832    fn syntax(&self) -> &SyntaxNode {
26833        &self.syntax
26834    }
26835}
26836impl AstNode for SetClause {
26837    #[inline]
26838    fn can_cast(kind: SyntaxKind) -> bool {
26839        kind == SyntaxKind::SET_CLAUSE
26840    }
26841    #[inline]
26842    fn cast(syntax: SyntaxNode) -> Option<Self> {
26843        if Self::can_cast(syntax.kind()) {
26844            Some(Self { syntax })
26845        } else {
26846            None
26847        }
26848    }
26849    #[inline]
26850    fn syntax(&self) -> &SyntaxNode {
26851        &self.syntax
26852    }
26853}
26854impl AstNode for SetColumnList {
26855    #[inline]
26856    fn can_cast(kind: SyntaxKind) -> bool {
26857        kind == SyntaxKind::SET_COLUMN_LIST
26858    }
26859    #[inline]
26860    fn cast(syntax: SyntaxNode) -> Option<Self> {
26861        if Self::can_cast(syntax.kind()) {
26862            Some(Self { syntax })
26863        } else {
26864            None
26865        }
26866    }
26867    #[inline]
26868    fn syntax(&self) -> &SyntaxNode {
26869        &self.syntax
26870    }
26871}
26872impl AstNode for SetCompression {
26873    #[inline]
26874    fn can_cast(kind: SyntaxKind) -> bool {
26875        kind == SyntaxKind::SET_COMPRESSION
26876    }
26877    #[inline]
26878    fn cast(syntax: SyntaxNode) -> Option<Self> {
26879        if Self::can_cast(syntax.kind()) {
26880            Some(Self { syntax })
26881        } else {
26882            None
26883        }
26884    }
26885    #[inline]
26886    fn syntax(&self) -> &SyntaxNode {
26887        &self.syntax
26888    }
26889}
26890impl AstNode for SetConfigParam {
26891    #[inline]
26892    fn can_cast(kind: SyntaxKind) -> bool {
26893        kind == SyntaxKind::SET_CONFIG_PARAM
26894    }
26895    #[inline]
26896    fn cast(syntax: SyntaxNode) -> Option<Self> {
26897        if Self::can_cast(syntax.kind()) {
26898            Some(Self { syntax })
26899        } else {
26900            None
26901        }
26902    }
26903    #[inline]
26904    fn syntax(&self) -> &SyntaxNode {
26905        &self.syntax
26906    }
26907}
26908impl AstNode for SetConstraints {
26909    #[inline]
26910    fn can_cast(kind: SyntaxKind) -> bool {
26911        kind == SyntaxKind::SET_CONSTRAINTS
26912    }
26913    #[inline]
26914    fn cast(syntax: SyntaxNode) -> Option<Self> {
26915        if Self::can_cast(syntax.kind()) {
26916            Some(Self { syntax })
26917        } else {
26918            None
26919        }
26920    }
26921    #[inline]
26922    fn syntax(&self) -> &SyntaxNode {
26923        &self.syntax
26924    }
26925}
26926impl AstNode for SetDefault {
26927    #[inline]
26928    fn can_cast(kind: SyntaxKind) -> bool {
26929        kind == SyntaxKind::SET_DEFAULT
26930    }
26931    #[inline]
26932    fn cast(syntax: SyntaxNode) -> Option<Self> {
26933        if Self::can_cast(syntax.kind()) {
26934            Some(Self { syntax })
26935        } else {
26936            None
26937        }
26938    }
26939    #[inline]
26940    fn syntax(&self) -> &SyntaxNode {
26941        &self.syntax
26942    }
26943}
26944impl AstNode for SetDefaultColumns {
26945    #[inline]
26946    fn can_cast(kind: SyntaxKind) -> bool {
26947        kind == SyntaxKind::SET_DEFAULT_COLUMNS
26948    }
26949    #[inline]
26950    fn cast(syntax: SyntaxNode) -> Option<Self> {
26951        if Self::can_cast(syntax.kind()) {
26952            Some(Self { syntax })
26953        } else {
26954            None
26955        }
26956    }
26957    #[inline]
26958    fn syntax(&self) -> &SyntaxNode {
26959        &self.syntax
26960    }
26961}
26962impl AstNode for SetExpr {
26963    #[inline]
26964    fn can_cast(kind: SyntaxKind) -> bool {
26965        kind == SyntaxKind::SET_EXPR
26966    }
26967    #[inline]
26968    fn cast(syntax: SyntaxNode) -> Option<Self> {
26969        if Self::can_cast(syntax.kind()) {
26970            Some(Self { syntax })
26971        } else {
26972            None
26973        }
26974    }
26975    #[inline]
26976    fn syntax(&self) -> &SyntaxNode {
26977        &self.syntax
26978    }
26979}
26980impl AstNode for SetExprList {
26981    #[inline]
26982    fn can_cast(kind: SyntaxKind) -> bool {
26983        kind == SyntaxKind::SET_EXPR_LIST
26984    }
26985    #[inline]
26986    fn cast(syntax: SyntaxNode) -> Option<Self> {
26987        if Self::can_cast(syntax.kind()) {
26988            Some(Self { syntax })
26989        } else {
26990            None
26991        }
26992    }
26993    #[inline]
26994    fn syntax(&self) -> &SyntaxNode {
26995        &self.syntax
26996    }
26997}
26998impl AstNode for SetExpression {
26999    #[inline]
27000    fn can_cast(kind: SyntaxKind) -> bool {
27001        kind == SyntaxKind::SET_EXPRESSION
27002    }
27003    #[inline]
27004    fn cast(syntax: SyntaxNode) -> Option<Self> {
27005        if Self::can_cast(syntax.kind()) {
27006            Some(Self { syntax })
27007        } else {
27008            None
27009        }
27010    }
27011    #[inline]
27012    fn syntax(&self) -> &SyntaxNode {
27013        &self.syntax
27014    }
27015}
27016impl AstNode for SetFuncOption {
27017    #[inline]
27018    fn can_cast(kind: SyntaxKind) -> bool {
27019        kind == SyntaxKind::SET_FUNC_OPTION
27020    }
27021    #[inline]
27022    fn cast(syntax: SyntaxNode) -> Option<Self> {
27023        if Self::can_cast(syntax.kind()) {
27024            Some(Self { syntax })
27025        } else {
27026            None
27027        }
27028    }
27029    #[inline]
27030    fn syntax(&self) -> &SyntaxNode {
27031        &self.syntax
27032    }
27033}
27034impl AstNode for SetGenerated {
27035    #[inline]
27036    fn can_cast(kind: SyntaxKind) -> bool {
27037        kind == SyntaxKind::SET_GENERATED
27038    }
27039    #[inline]
27040    fn cast(syntax: SyntaxNode) -> Option<Self> {
27041        if Self::can_cast(syntax.kind()) {
27042            Some(Self { syntax })
27043        } else {
27044            None
27045        }
27046    }
27047    #[inline]
27048    fn syntax(&self) -> &SyntaxNode {
27049        &self.syntax
27050    }
27051}
27052impl AstNode for SetGeneratedOptions {
27053    #[inline]
27054    fn can_cast(kind: SyntaxKind) -> bool {
27055        kind == SyntaxKind::SET_GENERATED_OPTIONS
27056    }
27057    #[inline]
27058    fn cast(syntax: SyntaxNode) -> Option<Self> {
27059        if Self::can_cast(syntax.kind()) {
27060            Some(Self { syntax })
27061        } else {
27062            None
27063        }
27064    }
27065    #[inline]
27066    fn syntax(&self) -> &SyntaxNode {
27067        &self.syntax
27068    }
27069}
27070impl AstNode for SetLogged {
27071    #[inline]
27072    fn can_cast(kind: SyntaxKind) -> bool {
27073        kind == SyntaxKind::SET_LOGGED
27074    }
27075    #[inline]
27076    fn cast(syntax: SyntaxNode) -> Option<Self> {
27077        if Self::can_cast(syntax.kind()) {
27078            Some(Self { syntax })
27079        } else {
27080            None
27081        }
27082    }
27083    #[inline]
27084    fn syntax(&self) -> &SyntaxNode {
27085        &self.syntax
27086    }
27087}
27088impl AstNode for SetMultipleColumns {
27089    #[inline]
27090    fn can_cast(kind: SyntaxKind) -> bool {
27091        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
27092    }
27093    #[inline]
27094    fn cast(syntax: SyntaxNode) -> Option<Self> {
27095        if Self::can_cast(syntax.kind()) {
27096            Some(Self { syntax })
27097        } else {
27098            None
27099        }
27100    }
27101    #[inline]
27102    fn syntax(&self) -> &SyntaxNode {
27103        &self.syntax
27104    }
27105}
27106impl AstNode for SetNotNull {
27107    #[inline]
27108    fn can_cast(kind: SyntaxKind) -> bool {
27109        kind == SyntaxKind::SET_NOT_NULL
27110    }
27111    #[inline]
27112    fn cast(syntax: SyntaxNode) -> Option<Self> {
27113        if Self::can_cast(syntax.kind()) {
27114            Some(Self { syntax })
27115        } else {
27116            None
27117        }
27118    }
27119    #[inline]
27120    fn syntax(&self) -> &SyntaxNode {
27121        &self.syntax
27122    }
27123}
27124impl AstNode for SetNullColumns {
27125    #[inline]
27126    fn can_cast(kind: SyntaxKind) -> bool {
27127        kind == SyntaxKind::SET_NULL_COLUMNS
27128    }
27129    #[inline]
27130    fn cast(syntax: SyntaxNode) -> Option<Self> {
27131        if Self::can_cast(syntax.kind()) {
27132            Some(Self { syntax })
27133        } else {
27134            None
27135        }
27136    }
27137    #[inline]
27138    fn syntax(&self) -> &SyntaxNode {
27139        &self.syntax
27140    }
27141}
27142impl AstNode for SetOptions {
27143    #[inline]
27144    fn can_cast(kind: SyntaxKind) -> bool {
27145        kind == SyntaxKind::SET_OPTIONS
27146    }
27147    #[inline]
27148    fn cast(syntax: SyntaxNode) -> Option<Self> {
27149        if Self::can_cast(syntax.kind()) {
27150            Some(Self { syntax })
27151        } else {
27152            None
27153        }
27154    }
27155    #[inline]
27156    fn syntax(&self) -> &SyntaxNode {
27157        &self.syntax
27158    }
27159}
27160impl AstNode for SetOptionsList {
27161    #[inline]
27162    fn can_cast(kind: SyntaxKind) -> bool {
27163        kind == SyntaxKind::SET_OPTIONS_LIST
27164    }
27165    #[inline]
27166    fn cast(syntax: SyntaxNode) -> Option<Self> {
27167        if Self::can_cast(syntax.kind()) {
27168            Some(Self { syntax })
27169        } else {
27170            None
27171        }
27172    }
27173    #[inline]
27174    fn syntax(&self) -> &SyntaxNode {
27175        &self.syntax
27176    }
27177}
27178impl AstNode for SetRole {
27179    #[inline]
27180    fn can_cast(kind: SyntaxKind) -> bool {
27181        kind == SyntaxKind::SET_ROLE
27182    }
27183    #[inline]
27184    fn cast(syntax: SyntaxNode) -> Option<Self> {
27185        if Self::can_cast(syntax.kind()) {
27186            Some(Self { syntax })
27187        } else {
27188            None
27189        }
27190    }
27191    #[inline]
27192    fn syntax(&self) -> &SyntaxNode {
27193        &self.syntax
27194    }
27195}
27196impl AstNode for SetSchema {
27197    #[inline]
27198    fn can_cast(kind: SyntaxKind) -> bool {
27199        kind == SyntaxKind::SET_SCHEMA
27200    }
27201    #[inline]
27202    fn cast(syntax: SyntaxNode) -> Option<Self> {
27203        if Self::can_cast(syntax.kind()) {
27204            Some(Self { syntax })
27205        } else {
27206            None
27207        }
27208    }
27209    #[inline]
27210    fn syntax(&self) -> &SyntaxNode {
27211        &self.syntax
27212    }
27213}
27214impl AstNode for SetSequenceOption {
27215    #[inline]
27216    fn can_cast(kind: SyntaxKind) -> bool {
27217        kind == SyntaxKind::SET_SEQUENCE_OPTION
27218    }
27219    #[inline]
27220    fn cast(syntax: SyntaxNode) -> Option<Self> {
27221        if Self::can_cast(syntax.kind()) {
27222            Some(Self { syntax })
27223        } else {
27224            None
27225        }
27226    }
27227    #[inline]
27228    fn syntax(&self) -> &SyntaxNode {
27229        &self.syntax
27230    }
27231}
27232impl AstNode for SetSessionAuth {
27233    #[inline]
27234    fn can_cast(kind: SyntaxKind) -> bool {
27235        kind == SyntaxKind::SET_SESSION_AUTH
27236    }
27237    #[inline]
27238    fn cast(syntax: SyntaxNode) -> Option<Self> {
27239        if Self::can_cast(syntax.kind()) {
27240            Some(Self { syntax })
27241        } else {
27242            None
27243        }
27244    }
27245    #[inline]
27246    fn syntax(&self) -> &SyntaxNode {
27247        &self.syntax
27248    }
27249}
27250impl AstNode for SetSingleColumn {
27251    #[inline]
27252    fn can_cast(kind: SyntaxKind) -> bool {
27253        kind == SyntaxKind::SET_SINGLE_COLUMN
27254    }
27255    #[inline]
27256    fn cast(syntax: SyntaxNode) -> Option<Self> {
27257        if Self::can_cast(syntax.kind()) {
27258            Some(Self { syntax })
27259        } else {
27260            None
27261        }
27262    }
27263    #[inline]
27264    fn syntax(&self) -> &SyntaxNode {
27265        &self.syntax
27266    }
27267}
27268impl AstNode for SetStatistics {
27269    #[inline]
27270    fn can_cast(kind: SyntaxKind) -> bool {
27271        kind == SyntaxKind::SET_STATISTICS
27272    }
27273    #[inline]
27274    fn cast(syntax: SyntaxNode) -> Option<Self> {
27275        if Self::can_cast(syntax.kind()) {
27276            Some(Self { syntax })
27277        } else {
27278            None
27279        }
27280    }
27281    #[inline]
27282    fn syntax(&self) -> &SyntaxNode {
27283        &self.syntax
27284    }
27285}
27286impl AstNode for SetStorage {
27287    #[inline]
27288    fn can_cast(kind: SyntaxKind) -> bool {
27289        kind == SyntaxKind::SET_STORAGE
27290    }
27291    #[inline]
27292    fn cast(syntax: SyntaxNode) -> Option<Self> {
27293        if Self::can_cast(syntax.kind()) {
27294            Some(Self { syntax })
27295        } else {
27296            None
27297        }
27298    }
27299    #[inline]
27300    fn syntax(&self) -> &SyntaxNode {
27301        &self.syntax
27302    }
27303}
27304impl AstNode for SetTablespace {
27305    #[inline]
27306    fn can_cast(kind: SyntaxKind) -> bool {
27307        kind == SyntaxKind::SET_TABLESPACE
27308    }
27309    #[inline]
27310    fn cast(syntax: SyntaxNode) -> Option<Self> {
27311        if Self::can_cast(syntax.kind()) {
27312            Some(Self { syntax })
27313        } else {
27314            None
27315        }
27316    }
27317    #[inline]
27318    fn syntax(&self) -> &SyntaxNode {
27319        &self.syntax
27320    }
27321}
27322impl AstNode for SetTransaction {
27323    #[inline]
27324    fn can_cast(kind: SyntaxKind) -> bool {
27325        kind == SyntaxKind::SET_TRANSACTION
27326    }
27327    #[inline]
27328    fn cast(syntax: SyntaxNode) -> Option<Self> {
27329        if Self::can_cast(syntax.kind()) {
27330            Some(Self { syntax })
27331        } else {
27332            None
27333        }
27334    }
27335    #[inline]
27336    fn syntax(&self) -> &SyntaxNode {
27337        &self.syntax
27338    }
27339}
27340impl AstNode for SetType {
27341    #[inline]
27342    fn can_cast(kind: SyntaxKind) -> bool {
27343        kind == SyntaxKind::SET_TYPE
27344    }
27345    #[inline]
27346    fn cast(syntax: SyntaxNode) -> Option<Self> {
27347        if Self::can_cast(syntax.kind()) {
27348            Some(Self { syntax })
27349        } else {
27350            None
27351        }
27352    }
27353    #[inline]
27354    fn syntax(&self) -> &SyntaxNode {
27355        &self.syntax
27356    }
27357}
27358impl AstNode for SetUnlogged {
27359    #[inline]
27360    fn can_cast(kind: SyntaxKind) -> bool {
27361        kind == SyntaxKind::SET_UNLOGGED
27362    }
27363    #[inline]
27364    fn cast(syntax: SyntaxNode) -> Option<Self> {
27365        if Self::can_cast(syntax.kind()) {
27366            Some(Self { syntax })
27367        } else {
27368            None
27369        }
27370    }
27371    #[inline]
27372    fn syntax(&self) -> &SyntaxNode {
27373        &self.syntax
27374    }
27375}
27376impl AstNode for SetWithoutCluster {
27377    #[inline]
27378    fn can_cast(kind: SyntaxKind) -> bool {
27379        kind == SyntaxKind::SET_WITHOUT_CLUSTER
27380    }
27381    #[inline]
27382    fn cast(syntax: SyntaxNode) -> Option<Self> {
27383        if Self::can_cast(syntax.kind()) {
27384            Some(Self { syntax })
27385        } else {
27386            None
27387        }
27388    }
27389    #[inline]
27390    fn syntax(&self) -> &SyntaxNode {
27391        &self.syntax
27392    }
27393}
27394impl AstNode for SetWithoutOids {
27395    #[inline]
27396    fn can_cast(kind: SyntaxKind) -> bool {
27397        kind == SyntaxKind::SET_WITHOUT_OIDS
27398    }
27399    #[inline]
27400    fn cast(syntax: SyntaxNode) -> Option<Self> {
27401        if Self::can_cast(syntax.kind()) {
27402            Some(Self { syntax })
27403        } else {
27404            None
27405        }
27406    }
27407    #[inline]
27408    fn syntax(&self) -> &SyntaxNode {
27409        &self.syntax
27410    }
27411}
27412impl AstNode for Show {
27413    #[inline]
27414    fn can_cast(kind: SyntaxKind) -> bool {
27415        kind == SyntaxKind::SHOW
27416    }
27417    #[inline]
27418    fn cast(syntax: SyntaxNode) -> Option<Self> {
27419        if Self::can_cast(syntax.kind()) {
27420            Some(Self { syntax })
27421        } else {
27422            None
27423        }
27424    }
27425    #[inline]
27426    fn syntax(&self) -> &SyntaxNode {
27427        &self.syntax
27428    }
27429}
27430impl AstNode for SimilarTo {
27431    #[inline]
27432    fn can_cast(kind: SyntaxKind) -> bool {
27433        kind == SyntaxKind::SIMILAR_TO
27434    }
27435    #[inline]
27436    fn cast(syntax: SyntaxNode) -> Option<Self> {
27437        if Self::can_cast(syntax.kind()) {
27438            Some(Self { syntax })
27439        } else {
27440            None
27441        }
27442    }
27443    #[inline]
27444    fn syntax(&self) -> &SyntaxNode {
27445        &self.syntax
27446    }
27447}
27448impl AstNode for SliceExpr {
27449    #[inline]
27450    fn can_cast(kind: SyntaxKind) -> bool {
27451        kind == SyntaxKind::SLICE_EXPR
27452    }
27453    #[inline]
27454    fn cast(syntax: SyntaxNode) -> Option<Self> {
27455        if Self::can_cast(syntax.kind()) {
27456            Some(Self { syntax })
27457        } else {
27458            None
27459        }
27460    }
27461    #[inline]
27462    fn syntax(&self) -> &SyntaxNode {
27463        &self.syntax
27464    }
27465}
27466impl AstNode for SomeFn {
27467    #[inline]
27468    fn can_cast(kind: SyntaxKind) -> bool {
27469        kind == SyntaxKind::SOME_FN
27470    }
27471    #[inline]
27472    fn cast(syntax: SyntaxNode) -> Option<Self> {
27473        if Self::can_cast(syntax.kind()) {
27474            Some(Self { syntax })
27475        } else {
27476            None
27477        }
27478    }
27479    #[inline]
27480    fn syntax(&self) -> &SyntaxNode {
27481        &self.syntax
27482    }
27483}
27484impl AstNode for SortAsc {
27485    #[inline]
27486    fn can_cast(kind: SyntaxKind) -> bool {
27487        kind == SyntaxKind::SORT_ASC
27488    }
27489    #[inline]
27490    fn cast(syntax: SyntaxNode) -> Option<Self> {
27491        if Self::can_cast(syntax.kind()) {
27492            Some(Self { syntax })
27493        } else {
27494            None
27495        }
27496    }
27497    #[inline]
27498    fn syntax(&self) -> &SyntaxNode {
27499        &self.syntax
27500    }
27501}
27502impl AstNode for SortBy {
27503    #[inline]
27504    fn can_cast(kind: SyntaxKind) -> bool {
27505        kind == SyntaxKind::SORT_BY
27506    }
27507    #[inline]
27508    fn cast(syntax: SyntaxNode) -> Option<Self> {
27509        if Self::can_cast(syntax.kind()) {
27510            Some(Self { syntax })
27511        } else {
27512            None
27513        }
27514    }
27515    #[inline]
27516    fn syntax(&self) -> &SyntaxNode {
27517        &self.syntax
27518    }
27519}
27520impl AstNode for SortByList {
27521    #[inline]
27522    fn can_cast(kind: SyntaxKind) -> bool {
27523        kind == SyntaxKind::SORT_BY_LIST
27524    }
27525    #[inline]
27526    fn cast(syntax: SyntaxNode) -> Option<Self> {
27527        if Self::can_cast(syntax.kind()) {
27528            Some(Self { syntax })
27529        } else {
27530            None
27531        }
27532    }
27533    #[inline]
27534    fn syntax(&self) -> &SyntaxNode {
27535        &self.syntax
27536    }
27537}
27538impl AstNode for SortDesc {
27539    #[inline]
27540    fn can_cast(kind: SyntaxKind) -> bool {
27541        kind == SyntaxKind::SORT_DESC
27542    }
27543    #[inline]
27544    fn cast(syntax: SyntaxNode) -> Option<Self> {
27545        if Self::can_cast(syntax.kind()) {
27546            Some(Self { syntax })
27547        } else {
27548            None
27549        }
27550    }
27551    #[inline]
27552    fn syntax(&self) -> &SyntaxNode {
27553        &self.syntax
27554    }
27555}
27556impl AstNode for SortUsing {
27557    #[inline]
27558    fn can_cast(kind: SyntaxKind) -> bool {
27559        kind == SyntaxKind::SORT_USING
27560    }
27561    #[inline]
27562    fn cast(syntax: SyntaxNode) -> Option<Self> {
27563        if Self::can_cast(syntax.kind()) {
27564            Some(Self { syntax })
27565        } else {
27566            None
27567        }
27568    }
27569    #[inline]
27570    fn syntax(&self) -> &SyntaxNode {
27571        &self.syntax
27572    }
27573}
27574impl AstNode for SourceFile {
27575    #[inline]
27576    fn can_cast(kind: SyntaxKind) -> bool {
27577        kind == SyntaxKind::SOURCE_FILE
27578    }
27579    #[inline]
27580    fn cast(syntax: SyntaxNode) -> Option<Self> {
27581        if Self::can_cast(syntax.kind()) {
27582            Some(Self { syntax })
27583        } else {
27584            None
27585        }
27586    }
27587    #[inline]
27588    fn syntax(&self) -> &SyntaxNode {
27589        &self.syntax
27590    }
27591}
27592impl AstNode for SplitPartition {
27593    #[inline]
27594    fn can_cast(kind: SyntaxKind) -> bool {
27595        kind == SyntaxKind::SPLIT_PARTITION
27596    }
27597    #[inline]
27598    fn cast(syntax: SyntaxNode) -> Option<Self> {
27599        if Self::can_cast(syntax.kind()) {
27600            Some(Self { syntax })
27601        } else {
27602            None
27603        }
27604    }
27605    #[inline]
27606    fn syntax(&self) -> &SyntaxNode {
27607        &self.syntax
27608    }
27609}
27610impl AstNode for Storage {
27611    #[inline]
27612    fn can_cast(kind: SyntaxKind) -> bool {
27613        kind == SyntaxKind::STORAGE
27614    }
27615    #[inline]
27616    fn cast(syntax: SyntaxNode) -> Option<Self> {
27617        if Self::can_cast(syntax.kind()) {
27618            Some(Self { syntax })
27619        } else {
27620            None
27621        }
27622    }
27623    #[inline]
27624    fn syntax(&self) -> &SyntaxNode {
27625        &self.syntax
27626    }
27627}
27628impl AstNode for StrictFuncOption {
27629    #[inline]
27630    fn can_cast(kind: SyntaxKind) -> bool {
27631        kind == SyntaxKind::STRICT_FUNC_OPTION
27632    }
27633    #[inline]
27634    fn cast(syntax: SyntaxNode) -> Option<Self> {
27635        if Self::can_cast(syntax.kind()) {
27636            Some(Self { syntax })
27637        } else {
27638            None
27639        }
27640    }
27641    #[inline]
27642    fn syntax(&self) -> &SyntaxNode {
27643        &self.syntax
27644    }
27645}
27646impl AstNode for SubstringFn {
27647    #[inline]
27648    fn can_cast(kind: SyntaxKind) -> bool {
27649        kind == SyntaxKind::SUBSTRING_FN
27650    }
27651    #[inline]
27652    fn cast(syntax: SyntaxNode) -> Option<Self> {
27653        if Self::can_cast(syntax.kind()) {
27654            Some(Self { syntax })
27655        } else {
27656            None
27657        }
27658    }
27659    #[inline]
27660    fn syntax(&self) -> &SyntaxNode {
27661        &self.syntax
27662    }
27663}
27664impl AstNode for SupportFuncOption {
27665    #[inline]
27666    fn can_cast(kind: SyntaxKind) -> bool {
27667        kind == SyntaxKind::SUPPORT_FUNC_OPTION
27668    }
27669    #[inline]
27670    fn cast(syntax: SyntaxNode) -> Option<Self> {
27671        if Self::can_cast(syntax.kind()) {
27672            Some(Self { syntax })
27673        } else {
27674            None
27675        }
27676    }
27677    #[inline]
27678    fn syntax(&self) -> &SyntaxNode {
27679        &self.syntax
27680    }
27681}
27682impl AstNode for Table {
27683    #[inline]
27684    fn can_cast(kind: SyntaxKind) -> bool {
27685        kind == SyntaxKind::TABLE
27686    }
27687    #[inline]
27688    fn cast(syntax: SyntaxNode) -> Option<Self> {
27689        if Self::can_cast(syntax.kind()) {
27690            Some(Self { syntax })
27691        } else {
27692            None
27693        }
27694    }
27695    #[inline]
27696    fn syntax(&self) -> &SyntaxNode {
27697        &self.syntax
27698    }
27699}
27700impl AstNode for TableAndColumns {
27701    #[inline]
27702    fn can_cast(kind: SyntaxKind) -> bool {
27703        kind == SyntaxKind::TABLE_AND_COLUMNS
27704    }
27705    #[inline]
27706    fn cast(syntax: SyntaxNode) -> Option<Self> {
27707        if Self::can_cast(syntax.kind()) {
27708            Some(Self { syntax })
27709        } else {
27710            None
27711        }
27712    }
27713    #[inline]
27714    fn syntax(&self) -> &SyntaxNode {
27715        &self.syntax
27716    }
27717}
27718impl AstNode for TableAndColumnsList {
27719    #[inline]
27720    fn can_cast(kind: SyntaxKind) -> bool {
27721        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
27722    }
27723    #[inline]
27724    fn cast(syntax: SyntaxNode) -> Option<Self> {
27725        if Self::can_cast(syntax.kind()) {
27726            Some(Self { syntax })
27727        } else {
27728            None
27729        }
27730    }
27731    #[inline]
27732    fn syntax(&self) -> &SyntaxNode {
27733        &self.syntax
27734    }
27735}
27736impl AstNode for TableArgList {
27737    #[inline]
27738    fn can_cast(kind: SyntaxKind) -> bool {
27739        kind == SyntaxKind::TABLE_ARG_LIST
27740    }
27741    #[inline]
27742    fn cast(syntax: SyntaxNode) -> Option<Self> {
27743        if Self::can_cast(syntax.kind()) {
27744            Some(Self { syntax })
27745        } else {
27746            None
27747        }
27748    }
27749    #[inline]
27750    fn syntax(&self) -> &SyntaxNode {
27751        &self.syntax
27752    }
27753}
27754impl AstNode for TableList {
27755    #[inline]
27756    fn can_cast(kind: SyntaxKind) -> bool {
27757        kind == SyntaxKind::TABLE_LIST
27758    }
27759    #[inline]
27760    fn cast(syntax: SyntaxNode) -> Option<Self> {
27761        if Self::can_cast(syntax.kind()) {
27762            Some(Self { syntax })
27763        } else {
27764            None
27765        }
27766    }
27767    #[inline]
27768    fn syntax(&self) -> &SyntaxNode {
27769        &self.syntax
27770    }
27771}
27772impl AstNode for TablesampleClause {
27773    #[inline]
27774    fn can_cast(kind: SyntaxKind) -> bool {
27775        kind == SyntaxKind::TABLESAMPLE_CLAUSE
27776    }
27777    #[inline]
27778    fn cast(syntax: SyntaxNode) -> Option<Self> {
27779        if Self::can_cast(syntax.kind()) {
27780            Some(Self { syntax })
27781        } else {
27782            None
27783        }
27784    }
27785    #[inline]
27786    fn syntax(&self) -> &SyntaxNode {
27787        &self.syntax
27788    }
27789}
27790impl AstNode for Tablespace {
27791    #[inline]
27792    fn can_cast(kind: SyntaxKind) -> bool {
27793        kind == SyntaxKind::TABLESPACE
27794    }
27795    #[inline]
27796    fn cast(syntax: SyntaxNode) -> Option<Self> {
27797        if Self::can_cast(syntax.kind()) {
27798            Some(Self { syntax })
27799        } else {
27800            None
27801        }
27802    }
27803    #[inline]
27804    fn syntax(&self) -> &SyntaxNode {
27805        &self.syntax
27806    }
27807}
27808impl AstNode for Target {
27809    #[inline]
27810    fn can_cast(kind: SyntaxKind) -> bool {
27811        kind == SyntaxKind::TARGET
27812    }
27813    #[inline]
27814    fn cast(syntax: SyntaxNode) -> Option<Self> {
27815        if Self::can_cast(syntax.kind()) {
27816            Some(Self { syntax })
27817        } else {
27818            None
27819        }
27820    }
27821    #[inline]
27822    fn syntax(&self) -> &SyntaxNode {
27823        &self.syntax
27824    }
27825}
27826impl AstNode for TargetList {
27827    #[inline]
27828    fn can_cast(kind: SyntaxKind) -> bool {
27829        kind == SyntaxKind::TARGET_LIST
27830    }
27831    #[inline]
27832    fn cast(syntax: SyntaxNode) -> Option<Self> {
27833        if Self::can_cast(syntax.kind()) {
27834            Some(Self { syntax })
27835        } else {
27836            None
27837        }
27838    }
27839    #[inline]
27840    fn syntax(&self) -> &SyntaxNode {
27841        &self.syntax
27842    }
27843}
27844impl AstNode for TimeType {
27845    #[inline]
27846    fn can_cast(kind: SyntaxKind) -> bool {
27847        kind == SyntaxKind::TIME_TYPE
27848    }
27849    #[inline]
27850    fn cast(syntax: SyntaxNode) -> Option<Self> {
27851        if Self::can_cast(syntax.kind()) {
27852            Some(Self { syntax })
27853        } else {
27854            None
27855        }
27856    }
27857    #[inline]
27858    fn syntax(&self) -> &SyntaxNode {
27859        &self.syntax
27860    }
27861}
27862impl AstNode for Timing {
27863    #[inline]
27864    fn can_cast(kind: SyntaxKind) -> bool {
27865        kind == SyntaxKind::TIMING
27866    }
27867    #[inline]
27868    fn cast(syntax: SyntaxNode) -> Option<Self> {
27869        if Self::can_cast(syntax.kind()) {
27870            Some(Self { syntax })
27871        } else {
27872            None
27873        }
27874    }
27875    #[inline]
27876    fn syntax(&self) -> &SyntaxNode {
27877        &self.syntax
27878    }
27879}
27880impl AstNode for TransactionModeList {
27881    #[inline]
27882    fn can_cast(kind: SyntaxKind) -> bool {
27883        kind == SyntaxKind::TRANSACTION_MODE_LIST
27884    }
27885    #[inline]
27886    fn cast(syntax: SyntaxNode) -> Option<Self> {
27887        if Self::can_cast(syntax.kind()) {
27888            Some(Self { syntax })
27889        } else {
27890            None
27891        }
27892    }
27893    #[inline]
27894    fn syntax(&self) -> &SyntaxNode {
27895        &self.syntax
27896    }
27897}
27898impl AstNode for TransformFromFunc {
27899    #[inline]
27900    fn can_cast(kind: SyntaxKind) -> bool {
27901        kind == SyntaxKind::TRANSFORM_FROM_FUNC
27902    }
27903    #[inline]
27904    fn cast(syntax: SyntaxNode) -> Option<Self> {
27905        if Self::can_cast(syntax.kind()) {
27906            Some(Self { syntax })
27907        } else {
27908            None
27909        }
27910    }
27911    #[inline]
27912    fn syntax(&self) -> &SyntaxNode {
27913        &self.syntax
27914    }
27915}
27916impl AstNode for TransformFuncOption {
27917    #[inline]
27918    fn can_cast(kind: SyntaxKind) -> bool {
27919        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
27920    }
27921    #[inline]
27922    fn cast(syntax: SyntaxNode) -> Option<Self> {
27923        if Self::can_cast(syntax.kind()) {
27924            Some(Self { syntax })
27925        } else {
27926            None
27927        }
27928    }
27929    #[inline]
27930    fn syntax(&self) -> &SyntaxNode {
27931        &self.syntax
27932    }
27933}
27934impl AstNode for TransformToFunc {
27935    #[inline]
27936    fn can_cast(kind: SyntaxKind) -> bool {
27937        kind == SyntaxKind::TRANSFORM_TO_FUNC
27938    }
27939    #[inline]
27940    fn cast(syntax: SyntaxNode) -> Option<Self> {
27941        if Self::can_cast(syntax.kind()) {
27942            Some(Self { syntax })
27943        } else {
27944            None
27945        }
27946    }
27947    #[inline]
27948    fn syntax(&self) -> &SyntaxNode {
27949        &self.syntax
27950    }
27951}
27952impl AstNode for TriggerEvent {
27953    #[inline]
27954    fn can_cast(kind: SyntaxKind) -> bool {
27955        kind == SyntaxKind::TRIGGER_EVENT
27956    }
27957    #[inline]
27958    fn cast(syntax: SyntaxNode) -> Option<Self> {
27959        if Self::can_cast(syntax.kind()) {
27960            Some(Self { syntax })
27961        } else {
27962            None
27963        }
27964    }
27965    #[inline]
27966    fn syntax(&self) -> &SyntaxNode {
27967        &self.syntax
27968    }
27969}
27970impl AstNode for TriggerEventList {
27971    #[inline]
27972    fn can_cast(kind: SyntaxKind) -> bool {
27973        kind == SyntaxKind::TRIGGER_EVENT_LIST
27974    }
27975    #[inline]
27976    fn cast(syntax: SyntaxNode) -> Option<Self> {
27977        if Self::can_cast(syntax.kind()) {
27978            Some(Self { syntax })
27979        } else {
27980            None
27981        }
27982    }
27983    #[inline]
27984    fn syntax(&self) -> &SyntaxNode {
27985        &self.syntax
27986    }
27987}
27988impl AstNode for TriggerEventUpdate {
27989    #[inline]
27990    fn can_cast(kind: SyntaxKind) -> bool {
27991        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
27992    }
27993    #[inline]
27994    fn cast(syntax: SyntaxNode) -> Option<Self> {
27995        if Self::can_cast(syntax.kind()) {
27996            Some(Self { syntax })
27997        } else {
27998            None
27999        }
28000    }
28001    #[inline]
28002    fn syntax(&self) -> &SyntaxNode {
28003        &self.syntax
28004    }
28005}
28006impl AstNode for TrimFn {
28007    #[inline]
28008    fn can_cast(kind: SyntaxKind) -> bool {
28009        kind == SyntaxKind::TRIM_FN
28010    }
28011    #[inline]
28012    fn cast(syntax: SyntaxNode) -> Option<Self> {
28013        if Self::can_cast(syntax.kind()) {
28014            Some(Self { syntax })
28015        } else {
28016            None
28017        }
28018    }
28019    #[inline]
28020    fn syntax(&self) -> &SyntaxNode {
28021        &self.syntax
28022    }
28023}
28024impl AstNode for Truncate {
28025    #[inline]
28026    fn can_cast(kind: SyntaxKind) -> bool {
28027        kind == SyntaxKind::TRUNCATE
28028    }
28029    #[inline]
28030    fn cast(syntax: SyntaxNode) -> Option<Self> {
28031        if Self::can_cast(syntax.kind()) {
28032            Some(Self { syntax })
28033        } else {
28034            None
28035        }
28036    }
28037    #[inline]
28038    fn syntax(&self) -> &SyntaxNode {
28039        &self.syntax
28040    }
28041}
28042impl AstNode for TupleExpr {
28043    #[inline]
28044    fn can_cast(kind: SyntaxKind) -> bool {
28045        kind == SyntaxKind::TUPLE_EXPR
28046    }
28047    #[inline]
28048    fn cast(syntax: SyntaxNode) -> Option<Self> {
28049        if Self::can_cast(syntax.kind()) {
28050            Some(Self { syntax })
28051        } else {
28052            None
28053        }
28054    }
28055    #[inline]
28056    fn syntax(&self) -> &SyntaxNode {
28057        &self.syntax
28058    }
28059}
28060impl AstNode for UnicodeNormalForm {
28061    #[inline]
28062    fn can_cast(kind: SyntaxKind) -> bool {
28063        kind == SyntaxKind::UNICODE_NORMAL_FORM
28064    }
28065    #[inline]
28066    fn cast(syntax: SyntaxNode) -> Option<Self> {
28067        if Self::can_cast(syntax.kind()) {
28068            Some(Self { syntax })
28069        } else {
28070            None
28071        }
28072    }
28073    #[inline]
28074    fn syntax(&self) -> &SyntaxNode {
28075        &self.syntax
28076    }
28077}
28078impl AstNode for UniqueConstraint {
28079    #[inline]
28080    fn can_cast(kind: SyntaxKind) -> bool {
28081        kind == SyntaxKind::UNIQUE_CONSTRAINT
28082    }
28083    #[inline]
28084    fn cast(syntax: SyntaxNode) -> Option<Self> {
28085        if Self::can_cast(syntax.kind()) {
28086            Some(Self { syntax })
28087        } else {
28088            None
28089        }
28090    }
28091    #[inline]
28092    fn syntax(&self) -> &SyntaxNode {
28093        &self.syntax
28094    }
28095}
28096impl AstNode for Unlisten {
28097    #[inline]
28098    fn can_cast(kind: SyntaxKind) -> bool {
28099        kind == SyntaxKind::UNLISTEN
28100    }
28101    #[inline]
28102    fn cast(syntax: SyntaxNode) -> Option<Self> {
28103        if Self::can_cast(syntax.kind()) {
28104            Some(Self { syntax })
28105        } else {
28106            None
28107        }
28108    }
28109    #[inline]
28110    fn syntax(&self) -> &SyntaxNode {
28111        &self.syntax
28112    }
28113}
28114impl AstNode for Update {
28115    #[inline]
28116    fn can_cast(kind: SyntaxKind) -> bool {
28117        kind == SyntaxKind::UPDATE
28118    }
28119    #[inline]
28120    fn cast(syntax: SyntaxNode) -> Option<Self> {
28121        if Self::can_cast(syntax.kind()) {
28122            Some(Self { syntax })
28123        } else {
28124            None
28125        }
28126    }
28127    #[inline]
28128    fn syntax(&self) -> &SyntaxNode {
28129        &self.syntax
28130    }
28131}
28132impl AstNode for UsingClause {
28133    #[inline]
28134    fn can_cast(kind: SyntaxKind) -> bool {
28135        kind == SyntaxKind::USING_CLAUSE
28136    }
28137    #[inline]
28138    fn cast(syntax: SyntaxNode) -> Option<Self> {
28139        if Self::can_cast(syntax.kind()) {
28140            Some(Self { syntax })
28141        } else {
28142            None
28143        }
28144    }
28145    #[inline]
28146    fn syntax(&self) -> &SyntaxNode {
28147        &self.syntax
28148    }
28149}
28150impl AstNode for UsingExprClause {
28151    #[inline]
28152    fn can_cast(kind: SyntaxKind) -> bool {
28153        kind == SyntaxKind::USING_EXPR_CLAUSE
28154    }
28155    #[inline]
28156    fn cast(syntax: SyntaxNode) -> Option<Self> {
28157        if Self::can_cast(syntax.kind()) {
28158            Some(Self { syntax })
28159        } else {
28160            None
28161        }
28162    }
28163    #[inline]
28164    fn syntax(&self) -> &SyntaxNode {
28165        &self.syntax
28166    }
28167}
28168impl AstNode for UsingIndex {
28169    #[inline]
28170    fn can_cast(kind: SyntaxKind) -> bool {
28171        kind == SyntaxKind::USING_INDEX
28172    }
28173    #[inline]
28174    fn cast(syntax: SyntaxNode) -> Option<Self> {
28175        if Self::can_cast(syntax.kind()) {
28176            Some(Self { syntax })
28177        } else {
28178            None
28179        }
28180    }
28181    #[inline]
28182    fn syntax(&self) -> &SyntaxNode {
28183        &self.syntax
28184    }
28185}
28186impl AstNode for UsingMethod {
28187    #[inline]
28188    fn can_cast(kind: SyntaxKind) -> bool {
28189        kind == SyntaxKind::USING_METHOD
28190    }
28191    #[inline]
28192    fn cast(syntax: SyntaxNode) -> Option<Self> {
28193        if Self::can_cast(syntax.kind()) {
28194            Some(Self { syntax })
28195        } else {
28196            None
28197        }
28198    }
28199    #[inline]
28200    fn syntax(&self) -> &SyntaxNode {
28201        &self.syntax
28202    }
28203}
28204impl AstNode for UsingOnClause {
28205    #[inline]
28206    fn can_cast(kind: SyntaxKind) -> bool {
28207        kind == SyntaxKind::USING_ON_CLAUSE
28208    }
28209    #[inline]
28210    fn cast(syntax: SyntaxNode) -> Option<Self> {
28211        if Self::can_cast(syntax.kind()) {
28212            Some(Self { syntax })
28213        } else {
28214            None
28215        }
28216    }
28217    #[inline]
28218    fn syntax(&self) -> &SyntaxNode {
28219        &self.syntax
28220    }
28221}
28222impl AstNode for Vacuum {
28223    #[inline]
28224    fn can_cast(kind: SyntaxKind) -> bool {
28225        kind == SyntaxKind::VACUUM
28226    }
28227    #[inline]
28228    fn cast(syntax: SyntaxNode) -> Option<Self> {
28229        if Self::can_cast(syntax.kind()) {
28230            Some(Self { syntax })
28231        } else {
28232            None
28233        }
28234    }
28235    #[inline]
28236    fn syntax(&self) -> &SyntaxNode {
28237        &self.syntax
28238    }
28239}
28240impl AstNode for VacuumOption {
28241    #[inline]
28242    fn can_cast(kind: SyntaxKind) -> bool {
28243        kind == SyntaxKind::VACUUM_OPTION
28244    }
28245    #[inline]
28246    fn cast(syntax: SyntaxNode) -> Option<Self> {
28247        if Self::can_cast(syntax.kind()) {
28248            Some(Self { syntax })
28249        } else {
28250            None
28251        }
28252    }
28253    #[inline]
28254    fn syntax(&self) -> &SyntaxNode {
28255        &self.syntax
28256    }
28257}
28258impl AstNode for VacuumOptionList {
28259    #[inline]
28260    fn can_cast(kind: SyntaxKind) -> bool {
28261        kind == SyntaxKind::VACUUM_OPTION_LIST
28262    }
28263    #[inline]
28264    fn cast(syntax: SyntaxNode) -> Option<Self> {
28265        if Self::can_cast(syntax.kind()) {
28266            Some(Self { syntax })
28267        } else {
28268            None
28269        }
28270    }
28271    #[inline]
28272    fn syntax(&self) -> &SyntaxNode {
28273        &self.syntax
28274    }
28275}
28276impl AstNode for ValidateConstraint {
28277    #[inline]
28278    fn can_cast(kind: SyntaxKind) -> bool {
28279        kind == SyntaxKind::VALIDATE_CONSTRAINT
28280    }
28281    #[inline]
28282    fn cast(syntax: SyntaxNode) -> Option<Self> {
28283        if Self::can_cast(syntax.kind()) {
28284            Some(Self { syntax })
28285        } else {
28286            None
28287        }
28288    }
28289    #[inline]
28290    fn syntax(&self) -> &SyntaxNode {
28291        &self.syntax
28292    }
28293}
28294impl AstNode for Values {
28295    #[inline]
28296    fn can_cast(kind: SyntaxKind) -> bool {
28297        kind == SyntaxKind::VALUES
28298    }
28299    #[inline]
28300    fn cast(syntax: SyntaxNode) -> Option<Self> {
28301        if Self::can_cast(syntax.kind()) {
28302            Some(Self { syntax })
28303        } else {
28304            None
28305        }
28306    }
28307    #[inline]
28308    fn syntax(&self) -> &SyntaxNode {
28309        &self.syntax
28310    }
28311}
28312impl AstNode for Variant {
28313    #[inline]
28314    fn can_cast(kind: SyntaxKind) -> bool {
28315        kind == SyntaxKind::VARIANT
28316    }
28317    #[inline]
28318    fn cast(syntax: SyntaxNode) -> Option<Self> {
28319        if Self::can_cast(syntax.kind()) {
28320            Some(Self { syntax })
28321        } else {
28322            None
28323        }
28324    }
28325    #[inline]
28326    fn syntax(&self) -> &SyntaxNode {
28327        &self.syntax
28328    }
28329}
28330impl AstNode for VariantList {
28331    #[inline]
28332    fn can_cast(kind: SyntaxKind) -> bool {
28333        kind == SyntaxKind::VARIANT_LIST
28334    }
28335    #[inline]
28336    fn cast(syntax: SyntaxNode) -> Option<Self> {
28337        if Self::can_cast(syntax.kind()) {
28338            Some(Self { syntax })
28339        } else {
28340            None
28341        }
28342    }
28343    #[inline]
28344    fn syntax(&self) -> &SyntaxNode {
28345        &self.syntax
28346    }
28347}
28348impl AstNode for VolatilityFuncOption {
28349    #[inline]
28350    fn can_cast(kind: SyntaxKind) -> bool {
28351        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
28352    }
28353    #[inline]
28354    fn cast(syntax: SyntaxNode) -> Option<Self> {
28355        if Self::can_cast(syntax.kind()) {
28356            Some(Self { syntax })
28357        } else {
28358            None
28359        }
28360    }
28361    #[inline]
28362    fn syntax(&self) -> &SyntaxNode {
28363        &self.syntax
28364    }
28365}
28366impl AstNode for WhenClause {
28367    #[inline]
28368    fn can_cast(kind: SyntaxKind) -> bool {
28369        kind == SyntaxKind::WHEN_CLAUSE
28370    }
28371    #[inline]
28372    fn cast(syntax: SyntaxNode) -> Option<Self> {
28373        if Self::can_cast(syntax.kind()) {
28374            Some(Self { syntax })
28375        } else {
28376            None
28377        }
28378    }
28379    #[inline]
28380    fn syntax(&self) -> &SyntaxNode {
28381        &self.syntax
28382    }
28383}
28384impl AstNode for WhenClauseList {
28385    #[inline]
28386    fn can_cast(kind: SyntaxKind) -> bool {
28387        kind == SyntaxKind::WHEN_CLAUSE_LIST
28388    }
28389    #[inline]
28390    fn cast(syntax: SyntaxNode) -> Option<Self> {
28391        if Self::can_cast(syntax.kind()) {
28392            Some(Self { syntax })
28393        } else {
28394            None
28395        }
28396    }
28397    #[inline]
28398    fn syntax(&self) -> &SyntaxNode {
28399        &self.syntax
28400    }
28401}
28402impl AstNode for WhenCondition {
28403    #[inline]
28404    fn can_cast(kind: SyntaxKind) -> bool {
28405        kind == SyntaxKind::WHEN_CONDITION
28406    }
28407    #[inline]
28408    fn cast(syntax: SyntaxNode) -> Option<Self> {
28409        if Self::can_cast(syntax.kind()) {
28410            Some(Self { syntax })
28411        } else {
28412            None
28413        }
28414    }
28415    #[inline]
28416    fn syntax(&self) -> &SyntaxNode {
28417        &self.syntax
28418    }
28419}
28420impl AstNode for WhereClause {
28421    #[inline]
28422    fn can_cast(kind: SyntaxKind) -> bool {
28423        kind == SyntaxKind::WHERE_CLAUSE
28424    }
28425    #[inline]
28426    fn cast(syntax: SyntaxNode) -> Option<Self> {
28427        if Self::can_cast(syntax.kind()) {
28428            Some(Self { syntax })
28429        } else {
28430            None
28431        }
28432    }
28433    #[inline]
28434    fn syntax(&self) -> &SyntaxNode {
28435        &self.syntax
28436    }
28437}
28438impl AstNode for WhereConditionClause {
28439    #[inline]
28440    fn can_cast(kind: SyntaxKind) -> bool {
28441        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
28442    }
28443    #[inline]
28444    fn cast(syntax: SyntaxNode) -> Option<Self> {
28445        if Self::can_cast(syntax.kind()) {
28446            Some(Self { syntax })
28447        } else {
28448            None
28449        }
28450    }
28451    #[inline]
28452    fn syntax(&self) -> &SyntaxNode {
28453        &self.syntax
28454    }
28455}
28456impl AstNode for WhereCurrentOf {
28457    #[inline]
28458    fn can_cast(kind: SyntaxKind) -> bool {
28459        kind == SyntaxKind::WHERE_CURRENT_OF
28460    }
28461    #[inline]
28462    fn cast(syntax: SyntaxNode) -> Option<Self> {
28463        if Self::can_cast(syntax.kind()) {
28464            Some(Self { syntax })
28465        } else {
28466            None
28467        }
28468    }
28469    #[inline]
28470    fn syntax(&self) -> &SyntaxNode {
28471        &self.syntax
28472    }
28473}
28474impl AstNode for WindowClause {
28475    #[inline]
28476    fn can_cast(kind: SyntaxKind) -> bool {
28477        kind == SyntaxKind::WINDOW_CLAUSE
28478    }
28479    #[inline]
28480    fn cast(syntax: SyntaxNode) -> Option<Self> {
28481        if Self::can_cast(syntax.kind()) {
28482            Some(Self { syntax })
28483        } else {
28484            None
28485        }
28486    }
28487    #[inline]
28488    fn syntax(&self) -> &SyntaxNode {
28489        &self.syntax
28490    }
28491}
28492impl AstNode for WindowDef {
28493    #[inline]
28494    fn can_cast(kind: SyntaxKind) -> bool {
28495        kind == SyntaxKind::WINDOW_DEF
28496    }
28497    #[inline]
28498    fn cast(syntax: SyntaxNode) -> Option<Self> {
28499        if Self::can_cast(syntax.kind()) {
28500            Some(Self { syntax })
28501        } else {
28502            None
28503        }
28504    }
28505    #[inline]
28506    fn syntax(&self) -> &SyntaxNode {
28507        &self.syntax
28508    }
28509}
28510impl AstNode for WindowFuncOption {
28511    #[inline]
28512    fn can_cast(kind: SyntaxKind) -> bool {
28513        kind == SyntaxKind::WINDOW_FUNC_OPTION
28514    }
28515    #[inline]
28516    fn cast(syntax: SyntaxNode) -> Option<Self> {
28517        if Self::can_cast(syntax.kind()) {
28518            Some(Self { syntax })
28519        } else {
28520            None
28521        }
28522    }
28523    #[inline]
28524    fn syntax(&self) -> &SyntaxNode {
28525        &self.syntax
28526    }
28527}
28528impl AstNode for WindowSpec {
28529    #[inline]
28530    fn can_cast(kind: SyntaxKind) -> bool {
28531        kind == SyntaxKind::WINDOW_SPEC
28532    }
28533    #[inline]
28534    fn cast(syntax: SyntaxNode) -> Option<Self> {
28535        if Self::can_cast(syntax.kind()) {
28536            Some(Self { syntax })
28537        } else {
28538            None
28539        }
28540    }
28541    #[inline]
28542    fn syntax(&self) -> &SyntaxNode {
28543        &self.syntax
28544    }
28545}
28546impl AstNode for WithCheckExprClause {
28547    #[inline]
28548    fn can_cast(kind: SyntaxKind) -> bool {
28549        kind == SyntaxKind::WITH_CHECK_EXPR_CLAUSE
28550    }
28551    #[inline]
28552    fn cast(syntax: SyntaxNode) -> Option<Self> {
28553        if Self::can_cast(syntax.kind()) {
28554            Some(Self { syntax })
28555        } else {
28556            None
28557        }
28558    }
28559    #[inline]
28560    fn syntax(&self) -> &SyntaxNode {
28561        &self.syntax
28562    }
28563}
28564impl AstNode for WithClause {
28565    #[inline]
28566    fn can_cast(kind: SyntaxKind) -> bool {
28567        kind == SyntaxKind::WITH_CLAUSE
28568    }
28569    #[inline]
28570    fn cast(syntax: SyntaxNode) -> Option<Self> {
28571        if Self::can_cast(syntax.kind()) {
28572            Some(Self { syntax })
28573        } else {
28574            None
28575        }
28576    }
28577    #[inline]
28578    fn syntax(&self) -> &SyntaxNode {
28579        &self.syntax
28580    }
28581}
28582impl AstNode for WithData {
28583    #[inline]
28584    fn can_cast(kind: SyntaxKind) -> bool {
28585        kind == SyntaxKind::WITH_DATA
28586    }
28587    #[inline]
28588    fn cast(syntax: SyntaxNode) -> Option<Self> {
28589        if Self::can_cast(syntax.kind()) {
28590            Some(Self { syntax })
28591        } else {
28592            None
28593        }
28594    }
28595    #[inline]
28596    fn syntax(&self) -> &SyntaxNode {
28597        &self.syntax
28598    }
28599}
28600impl AstNode for WithNoData {
28601    #[inline]
28602    fn can_cast(kind: SyntaxKind) -> bool {
28603        kind == SyntaxKind::WITH_NO_DATA
28604    }
28605    #[inline]
28606    fn cast(syntax: SyntaxNode) -> Option<Self> {
28607        if Self::can_cast(syntax.kind()) {
28608            Some(Self { syntax })
28609        } else {
28610            None
28611        }
28612    }
28613    #[inline]
28614    fn syntax(&self) -> &SyntaxNode {
28615        &self.syntax
28616    }
28617}
28618impl AstNode for WithOptions {
28619    #[inline]
28620    fn can_cast(kind: SyntaxKind) -> bool {
28621        kind == SyntaxKind::WITH_OPTIONS
28622    }
28623    #[inline]
28624    fn cast(syntax: SyntaxNode) -> Option<Self> {
28625        if Self::can_cast(syntax.kind()) {
28626            Some(Self { syntax })
28627        } else {
28628            None
28629        }
28630    }
28631    #[inline]
28632    fn syntax(&self) -> &SyntaxNode {
28633        &self.syntax
28634    }
28635}
28636impl AstNode for WithParams {
28637    #[inline]
28638    fn can_cast(kind: SyntaxKind) -> bool {
28639        kind == SyntaxKind::WITH_PARAMS
28640    }
28641    #[inline]
28642    fn cast(syntax: SyntaxNode) -> Option<Self> {
28643        if Self::can_cast(syntax.kind()) {
28644            Some(Self { syntax })
28645        } else {
28646            None
28647        }
28648    }
28649    #[inline]
28650    fn syntax(&self) -> &SyntaxNode {
28651        &self.syntax
28652    }
28653}
28654impl AstNode for WithTable {
28655    #[inline]
28656    fn can_cast(kind: SyntaxKind) -> bool {
28657        kind == SyntaxKind::WITH_TABLE
28658    }
28659    #[inline]
28660    fn cast(syntax: SyntaxNode) -> Option<Self> {
28661        if Self::can_cast(syntax.kind()) {
28662            Some(Self { syntax })
28663        } else {
28664            None
28665        }
28666    }
28667    #[inline]
28668    fn syntax(&self) -> &SyntaxNode {
28669        &self.syntax
28670    }
28671}
28672impl AstNode for WithTimezone {
28673    #[inline]
28674    fn can_cast(kind: SyntaxKind) -> bool {
28675        kind == SyntaxKind::WITH_TIMEZONE
28676    }
28677    #[inline]
28678    fn cast(syntax: SyntaxNode) -> Option<Self> {
28679        if Self::can_cast(syntax.kind()) {
28680            Some(Self { syntax })
28681        } else {
28682            None
28683        }
28684    }
28685    #[inline]
28686    fn syntax(&self) -> &SyntaxNode {
28687        &self.syntax
28688    }
28689}
28690impl AstNode for WithinClause {
28691    #[inline]
28692    fn can_cast(kind: SyntaxKind) -> bool {
28693        kind == SyntaxKind::WITHIN_CLAUSE
28694    }
28695    #[inline]
28696    fn cast(syntax: SyntaxNode) -> Option<Self> {
28697        if Self::can_cast(syntax.kind()) {
28698            Some(Self { syntax })
28699        } else {
28700            None
28701        }
28702    }
28703    #[inline]
28704    fn syntax(&self) -> &SyntaxNode {
28705        &self.syntax
28706    }
28707}
28708impl AstNode for WithoutOids {
28709    #[inline]
28710    fn can_cast(kind: SyntaxKind) -> bool {
28711        kind == SyntaxKind::WITHOUT_OIDS
28712    }
28713    #[inline]
28714    fn cast(syntax: SyntaxNode) -> Option<Self> {
28715        if Self::can_cast(syntax.kind()) {
28716            Some(Self { syntax })
28717        } else {
28718            None
28719        }
28720    }
28721    #[inline]
28722    fn syntax(&self) -> &SyntaxNode {
28723        &self.syntax
28724    }
28725}
28726impl AstNode for WithoutTimezone {
28727    #[inline]
28728    fn can_cast(kind: SyntaxKind) -> bool {
28729        kind == SyntaxKind::WITHOUT_TIMEZONE
28730    }
28731    #[inline]
28732    fn cast(syntax: SyntaxNode) -> Option<Self> {
28733        if Self::can_cast(syntax.kind()) {
28734            Some(Self { syntax })
28735        } else {
28736            None
28737        }
28738    }
28739    #[inline]
28740    fn syntax(&self) -> &SyntaxNode {
28741        &self.syntax
28742    }
28743}
28744impl AstNode for XmlAttributeList {
28745    #[inline]
28746    fn can_cast(kind: SyntaxKind) -> bool {
28747        kind == SyntaxKind::XML_ATTRIBUTE_LIST
28748    }
28749    #[inline]
28750    fn cast(syntax: SyntaxNode) -> Option<Self> {
28751        if Self::can_cast(syntax.kind()) {
28752            Some(Self { syntax })
28753        } else {
28754            None
28755        }
28756    }
28757    #[inline]
28758    fn syntax(&self) -> &SyntaxNode {
28759        &self.syntax
28760    }
28761}
28762impl AstNode for XmlColumnOption {
28763    #[inline]
28764    fn can_cast(kind: SyntaxKind) -> bool {
28765        kind == SyntaxKind::XML_COLUMN_OPTION
28766    }
28767    #[inline]
28768    fn cast(syntax: SyntaxNode) -> Option<Self> {
28769        if Self::can_cast(syntax.kind()) {
28770            Some(Self { syntax })
28771        } else {
28772            None
28773        }
28774    }
28775    #[inline]
28776    fn syntax(&self) -> &SyntaxNode {
28777        &self.syntax
28778    }
28779}
28780impl AstNode for XmlColumnOptionList {
28781    #[inline]
28782    fn can_cast(kind: SyntaxKind) -> bool {
28783        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
28784    }
28785    #[inline]
28786    fn cast(syntax: SyntaxNode) -> Option<Self> {
28787        if Self::can_cast(syntax.kind()) {
28788            Some(Self { syntax })
28789        } else {
28790            None
28791        }
28792    }
28793    #[inline]
28794    fn syntax(&self) -> &SyntaxNode {
28795        &self.syntax
28796    }
28797}
28798impl AstNode for XmlElementFn {
28799    #[inline]
28800    fn can_cast(kind: SyntaxKind) -> bool {
28801        kind == SyntaxKind::XML_ELEMENT_FN
28802    }
28803    #[inline]
28804    fn cast(syntax: SyntaxNode) -> Option<Self> {
28805        if Self::can_cast(syntax.kind()) {
28806            Some(Self { syntax })
28807        } else {
28808            None
28809        }
28810    }
28811    #[inline]
28812    fn syntax(&self) -> &SyntaxNode {
28813        &self.syntax
28814    }
28815}
28816impl AstNode for XmlExistsFn {
28817    #[inline]
28818    fn can_cast(kind: SyntaxKind) -> bool {
28819        kind == SyntaxKind::XML_EXISTS_FN
28820    }
28821    #[inline]
28822    fn cast(syntax: SyntaxNode) -> Option<Self> {
28823        if Self::can_cast(syntax.kind()) {
28824            Some(Self { syntax })
28825        } else {
28826            None
28827        }
28828    }
28829    #[inline]
28830    fn syntax(&self) -> &SyntaxNode {
28831        &self.syntax
28832    }
28833}
28834impl AstNode for XmlForestFn {
28835    #[inline]
28836    fn can_cast(kind: SyntaxKind) -> bool {
28837        kind == SyntaxKind::XML_FOREST_FN
28838    }
28839    #[inline]
28840    fn cast(syntax: SyntaxNode) -> Option<Self> {
28841        if Self::can_cast(syntax.kind()) {
28842            Some(Self { syntax })
28843        } else {
28844            None
28845        }
28846    }
28847    #[inline]
28848    fn syntax(&self) -> &SyntaxNode {
28849        &self.syntax
28850    }
28851}
28852impl AstNode for XmlNamespace {
28853    #[inline]
28854    fn can_cast(kind: SyntaxKind) -> bool {
28855        kind == SyntaxKind::XML_NAMESPACE
28856    }
28857    #[inline]
28858    fn cast(syntax: SyntaxNode) -> Option<Self> {
28859        if Self::can_cast(syntax.kind()) {
28860            Some(Self { syntax })
28861        } else {
28862            None
28863        }
28864    }
28865    #[inline]
28866    fn syntax(&self) -> &SyntaxNode {
28867        &self.syntax
28868    }
28869}
28870impl AstNode for XmlNamespaceList {
28871    #[inline]
28872    fn can_cast(kind: SyntaxKind) -> bool {
28873        kind == SyntaxKind::XML_NAMESPACE_LIST
28874    }
28875    #[inline]
28876    fn cast(syntax: SyntaxNode) -> Option<Self> {
28877        if Self::can_cast(syntax.kind()) {
28878            Some(Self { syntax })
28879        } else {
28880            None
28881        }
28882    }
28883    #[inline]
28884    fn syntax(&self) -> &SyntaxNode {
28885        &self.syntax
28886    }
28887}
28888impl AstNode for XmlParseFn {
28889    #[inline]
28890    fn can_cast(kind: SyntaxKind) -> bool {
28891        kind == SyntaxKind::XML_PARSE_FN
28892    }
28893    #[inline]
28894    fn cast(syntax: SyntaxNode) -> Option<Self> {
28895        if Self::can_cast(syntax.kind()) {
28896            Some(Self { syntax })
28897        } else {
28898            None
28899        }
28900    }
28901    #[inline]
28902    fn syntax(&self) -> &SyntaxNode {
28903        &self.syntax
28904    }
28905}
28906impl AstNode for XmlPassingMech {
28907    #[inline]
28908    fn can_cast(kind: SyntaxKind) -> bool {
28909        kind == SyntaxKind::XML_PASSING_MECH
28910    }
28911    #[inline]
28912    fn cast(syntax: SyntaxNode) -> Option<Self> {
28913        if Self::can_cast(syntax.kind()) {
28914            Some(Self { syntax })
28915        } else {
28916            None
28917        }
28918    }
28919    #[inline]
28920    fn syntax(&self) -> &SyntaxNode {
28921        &self.syntax
28922    }
28923}
28924impl AstNode for XmlPiFn {
28925    #[inline]
28926    fn can_cast(kind: SyntaxKind) -> bool {
28927        kind == SyntaxKind::XML_PI_FN
28928    }
28929    #[inline]
28930    fn cast(syntax: SyntaxNode) -> Option<Self> {
28931        if Self::can_cast(syntax.kind()) {
28932            Some(Self { syntax })
28933        } else {
28934            None
28935        }
28936    }
28937    #[inline]
28938    fn syntax(&self) -> &SyntaxNode {
28939        &self.syntax
28940    }
28941}
28942impl AstNode for XmlRootFn {
28943    #[inline]
28944    fn can_cast(kind: SyntaxKind) -> bool {
28945        kind == SyntaxKind::XML_ROOT_FN
28946    }
28947    #[inline]
28948    fn cast(syntax: SyntaxNode) -> Option<Self> {
28949        if Self::can_cast(syntax.kind()) {
28950            Some(Self { syntax })
28951        } else {
28952            None
28953        }
28954    }
28955    #[inline]
28956    fn syntax(&self) -> &SyntaxNode {
28957        &self.syntax
28958    }
28959}
28960impl AstNode for XmlRowPassingClause {
28961    #[inline]
28962    fn can_cast(kind: SyntaxKind) -> bool {
28963        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
28964    }
28965    #[inline]
28966    fn cast(syntax: SyntaxNode) -> Option<Self> {
28967        if Self::can_cast(syntax.kind()) {
28968            Some(Self { syntax })
28969        } else {
28970            None
28971        }
28972    }
28973    #[inline]
28974    fn syntax(&self) -> &SyntaxNode {
28975        &self.syntax
28976    }
28977}
28978impl AstNode for XmlSerializeFn {
28979    #[inline]
28980    fn can_cast(kind: SyntaxKind) -> bool {
28981        kind == SyntaxKind::XML_SERIALIZE_FN
28982    }
28983    #[inline]
28984    fn cast(syntax: SyntaxNode) -> Option<Self> {
28985        if Self::can_cast(syntax.kind()) {
28986            Some(Self { syntax })
28987        } else {
28988            None
28989        }
28990    }
28991    #[inline]
28992    fn syntax(&self) -> &SyntaxNode {
28993        &self.syntax
28994    }
28995}
28996impl AstNode for XmlTable {
28997    #[inline]
28998    fn can_cast(kind: SyntaxKind) -> bool {
28999        kind == SyntaxKind::XML_TABLE
29000    }
29001    #[inline]
29002    fn cast(syntax: SyntaxNode) -> Option<Self> {
29003        if Self::can_cast(syntax.kind()) {
29004            Some(Self { syntax })
29005        } else {
29006            None
29007        }
29008    }
29009    #[inline]
29010    fn syntax(&self) -> &SyntaxNode {
29011        &self.syntax
29012    }
29013}
29014impl AstNode for XmlTableColumn {
29015    #[inline]
29016    fn can_cast(kind: SyntaxKind) -> bool {
29017        kind == SyntaxKind::XML_TABLE_COLUMN
29018    }
29019    #[inline]
29020    fn cast(syntax: SyntaxNode) -> Option<Self> {
29021        if Self::can_cast(syntax.kind()) {
29022            Some(Self { syntax })
29023        } else {
29024            None
29025        }
29026    }
29027    #[inline]
29028    fn syntax(&self) -> &SyntaxNode {
29029        &self.syntax
29030    }
29031}
29032impl AstNode for XmlTableColumnList {
29033    #[inline]
29034    fn can_cast(kind: SyntaxKind) -> bool {
29035        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
29036    }
29037    #[inline]
29038    fn cast(syntax: SyntaxNode) -> Option<Self> {
29039        if Self::can_cast(syntax.kind()) {
29040            Some(Self { syntax })
29041        } else {
29042            None
29043        }
29044    }
29045    #[inline]
29046    fn syntax(&self) -> &SyntaxNode {
29047        &self.syntax
29048    }
29049}
29050impl AstNode for AlterColumnOption {
29051    #[inline]
29052    fn can_cast(kind: SyntaxKind) -> bool {
29053        matches!(
29054            kind,
29055            SyntaxKind::ADD_GENERATED
29056                | SyntaxKind::DROP_DEFAULT
29057                | SyntaxKind::DROP_EXPRESSION
29058                | SyntaxKind::DROP_IDENTITY
29059                | SyntaxKind::DROP_NOT_NULL
29060                | SyntaxKind::INHERIT
29061                | SyntaxKind::NO_INHERIT
29062                | SyntaxKind::RESET_OPTIONS
29063                | SyntaxKind::RESTART
29064                | SyntaxKind::SET_COMPRESSION
29065                | SyntaxKind::SET_DEFAULT
29066                | SyntaxKind::SET_EXPRESSION
29067                | SyntaxKind::SET_GENERATED
29068                | SyntaxKind::SET_GENERATED_OPTIONS
29069                | SyntaxKind::SET_NOT_NULL
29070                | SyntaxKind::SET_OPTIONS
29071                | SyntaxKind::SET_OPTIONS_LIST
29072                | SyntaxKind::SET_SEQUENCE_OPTION
29073                | SyntaxKind::SET_STATISTICS
29074                | SyntaxKind::SET_STORAGE
29075                | SyntaxKind::SET_TYPE
29076        )
29077    }
29078    #[inline]
29079    fn cast(syntax: SyntaxNode) -> Option<Self> {
29080        let res = match syntax.kind() {
29081            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
29082            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
29083            SyntaxKind::DROP_EXPRESSION => {
29084                AlterColumnOption::DropExpression(DropExpression { syntax })
29085            }
29086            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
29087            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
29088            SyntaxKind::INHERIT => AlterColumnOption::Inherit(Inherit { syntax }),
29089            SyntaxKind::NO_INHERIT => AlterColumnOption::NoInherit(NoInherit { syntax }),
29090            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
29091            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
29092            SyntaxKind::SET_COMPRESSION => {
29093                AlterColumnOption::SetCompression(SetCompression { syntax })
29094            }
29095            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
29096            SyntaxKind::SET_EXPRESSION => {
29097                AlterColumnOption::SetExpression(SetExpression { syntax })
29098            }
29099            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
29100            SyntaxKind::SET_GENERATED_OPTIONS => {
29101                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
29102            }
29103            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
29104            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
29105            SyntaxKind::SET_OPTIONS_LIST => {
29106                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
29107            }
29108            SyntaxKind::SET_SEQUENCE_OPTION => {
29109                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
29110            }
29111            SyntaxKind::SET_STATISTICS => {
29112                AlterColumnOption::SetStatistics(SetStatistics { syntax })
29113            }
29114            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
29115            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
29116            _ => {
29117                return None;
29118            }
29119        };
29120        Some(res)
29121    }
29122    #[inline]
29123    fn syntax(&self) -> &SyntaxNode {
29124        match self {
29125            AlterColumnOption::AddGenerated(it) => &it.syntax,
29126            AlterColumnOption::DropDefault(it) => &it.syntax,
29127            AlterColumnOption::DropExpression(it) => &it.syntax,
29128            AlterColumnOption::DropIdentity(it) => &it.syntax,
29129            AlterColumnOption::DropNotNull(it) => &it.syntax,
29130            AlterColumnOption::Inherit(it) => &it.syntax,
29131            AlterColumnOption::NoInherit(it) => &it.syntax,
29132            AlterColumnOption::ResetOptions(it) => &it.syntax,
29133            AlterColumnOption::Restart(it) => &it.syntax,
29134            AlterColumnOption::SetCompression(it) => &it.syntax,
29135            AlterColumnOption::SetDefault(it) => &it.syntax,
29136            AlterColumnOption::SetExpression(it) => &it.syntax,
29137            AlterColumnOption::SetGenerated(it) => &it.syntax,
29138            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
29139            AlterColumnOption::SetNotNull(it) => &it.syntax,
29140            AlterColumnOption::SetOptions(it) => &it.syntax,
29141            AlterColumnOption::SetOptionsList(it) => &it.syntax,
29142            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
29143            AlterColumnOption::SetStatistics(it) => &it.syntax,
29144            AlterColumnOption::SetStorage(it) => &it.syntax,
29145            AlterColumnOption::SetType(it) => &it.syntax,
29146        }
29147    }
29148}
29149impl From<AddGenerated> for AlterColumnOption {
29150    #[inline]
29151    fn from(node: AddGenerated) -> AlterColumnOption {
29152        AlterColumnOption::AddGenerated(node)
29153    }
29154}
29155impl From<DropDefault> for AlterColumnOption {
29156    #[inline]
29157    fn from(node: DropDefault) -> AlterColumnOption {
29158        AlterColumnOption::DropDefault(node)
29159    }
29160}
29161impl From<DropExpression> for AlterColumnOption {
29162    #[inline]
29163    fn from(node: DropExpression) -> AlterColumnOption {
29164        AlterColumnOption::DropExpression(node)
29165    }
29166}
29167impl From<DropIdentity> for AlterColumnOption {
29168    #[inline]
29169    fn from(node: DropIdentity) -> AlterColumnOption {
29170        AlterColumnOption::DropIdentity(node)
29171    }
29172}
29173impl From<DropNotNull> for AlterColumnOption {
29174    #[inline]
29175    fn from(node: DropNotNull) -> AlterColumnOption {
29176        AlterColumnOption::DropNotNull(node)
29177    }
29178}
29179impl From<Inherit> for AlterColumnOption {
29180    #[inline]
29181    fn from(node: Inherit) -> AlterColumnOption {
29182        AlterColumnOption::Inherit(node)
29183    }
29184}
29185impl From<NoInherit> for AlterColumnOption {
29186    #[inline]
29187    fn from(node: NoInherit) -> AlterColumnOption {
29188        AlterColumnOption::NoInherit(node)
29189    }
29190}
29191impl From<ResetOptions> for AlterColumnOption {
29192    #[inline]
29193    fn from(node: ResetOptions) -> AlterColumnOption {
29194        AlterColumnOption::ResetOptions(node)
29195    }
29196}
29197impl From<Restart> for AlterColumnOption {
29198    #[inline]
29199    fn from(node: Restart) -> AlterColumnOption {
29200        AlterColumnOption::Restart(node)
29201    }
29202}
29203impl From<SetCompression> for AlterColumnOption {
29204    #[inline]
29205    fn from(node: SetCompression) -> AlterColumnOption {
29206        AlterColumnOption::SetCompression(node)
29207    }
29208}
29209impl From<SetDefault> for AlterColumnOption {
29210    #[inline]
29211    fn from(node: SetDefault) -> AlterColumnOption {
29212        AlterColumnOption::SetDefault(node)
29213    }
29214}
29215impl From<SetExpression> for AlterColumnOption {
29216    #[inline]
29217    fn from(node: SetExpression) -> AlterColumnOption {
29218        AlterColumnOption::SetExpression(node)
29219    }
29220}
29221impl From<SetGenerated> for AlterColumnOption {
29222    #[inline]
29223    fn from(node: SetGenerated) -> AlterColumnOption {
29224        AlterColumnOption::SetGenerated(node)
29225    }
29226}
29227impl From<SetGeneratedOptions> for AlterColumnOption {
29228    #[inline]
29229    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
29230        AlterColumnOption::SetGeneratedOptions(node)
29231    }
29232}
29233impl From<SetNotNull> for AlterColumnOption {
29234    #[inline]
29235    fn from(node: SetNotNull) -> AlterColumnOption {
29236        AlterColumnOption::SetNotNull(node)
29237    }
29238}
29239impl From<SetOptions> for AlterColumnOption {
29240    #[inline]
29241    fn from(node: SetOptions) -> AlterColumnOption {
29242        AlterColumnOption::SetOptions(node)
29243    }
29244}
29245impl From<SetOptionsList> for AlterColumnOption {
29246    #[inline]
29247    fn from(node: SetOptionsList) -> AlterColumnOption {
29248        AlterColumnOption::SetOptionsList(node)
29249    }
29250}
29251impl From<SetSequenceOption> for AlterColumnOption {
29252    #[inline]
29253    fn from(node: SetSequenceOption) -> AlterColumnOption {
29254        AlterColumnOption::SetSequenceOption(node)
29255    }
29256}
29257impl From<SetStatistics> for AlterColumnOption {
29258    #[inline]
29259    fn from(node: SetStatistics) -> AlterColumnOption {
29260        AlterColumnOption::SetStatistics(node)
29261    }
29262}
29263impl From<SetStorage> for AlterColumnOption {
29264    #[inline]
29265    fn from(node: SetStorage) -> AlterColumnOption {
29266        AlterColumnOption::SetStorage(node)
29267    }
29268}
29269impl From<SetType> for AlterColumnOption {
29270    #[inline]
29271    fn from(node: SetType) -> AlterColumnOption {
29272        AlterColumnOption::SetType(node)
29273    }
29274}
29275impl AstNode for AlterDomainAction {
29276    #[inline]
29277    fn can_cast(kind: SyntaxKind) -> bool {
29278        matches!(
29279            kind,
29280            SyntaxKind::ADD_CONSTRAINT
29281                | SyntaxKind::DROP_CONSTRAINT
29282                | SyntaxKind::DROP_DEFAULT
29283                | SyntaxKind::DROP_NOT_NULL
29284                | SyntaxKind::OWNER_TO
29285                | SyntaxKind::RENAME_CONSTRAINT
29286                | SyntaxKind::RENAME_TO
29287                | SyntaxKind::SET_DEFAULT
29288                | SyntaxKind::SET_NOT_NULL
29289                | SyntaxKind::SET_SCHEMA
29290                | SyntaxKind::VALIDATE_CONSTRAINT
29291        )
29292    }
29293    #[inline]
29294    fn cast(syntax: SyntaxNode) -> Option<Self> {
29295        let res = match syntax.kind() {
29296            SyntaxKind::ADD_CONSTRAINT => {
29297                AlterDomainAction::AddConstraint(AddConstraint { syntax })
29298            }
29299            SyntaxKind::DROP_CONSTRAINT => {
29300                AlterDomainAction::DropConstraint(DropConstraint { syntax })
29301            }
29302            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
29303            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
29304            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
29305            SyntaxKind::RENAME_CONSTRAINT => {
29306                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
29307            }
29308            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
29309            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
29310            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
29311            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
29312            SyntaxKind::VALIDATE_CONSTRAINT => {
29313                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
29314            }
29315            _ => {
29316                return None;
29317            }
29318        };
29319        Some(res)
29320    }
29321    #[inline]
29322    fn syntax(&self) -> &SyntaxNode {
29323        match self {
29324            AlterDomainAction::AddConstraint(it) => &it.syntax,
29325            AlterDomainAction::DropConstraint(it) => &it.syntax,
29326            AlterDomainAction::DropDefault(it) => &it.syntax,
29327            AlterDomainAction::DropNotNull(it) => &it.syntax,
29328            AlterDomainAction::OwnerTo(it) => &it.syntax,
29329            AlterDomainAction::RenameConstraint(it) => &it.syntax,
29330            AlterDomainAction::RenameTo(it) => &it.syntax,
29331            AlterDomainAction::SetDefault(it) => &it.syntax,
29332            AlterDomainAction::SetNotNull(it) => &it.syntax,
29333            AlterDomainAction::SetSchema(it) => &it.syntax,
29334            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
29335        }
29336    }
29337}
29338impl From<AddConstraint> for AlterDomainAction {
29339    #[inline]
29340    fn from(node: AddConstraint) -> AlterDomainAction {
29341        AlterDomainAction::AddConstraint(node)
29342    }
29343}
29344impl From<DropConstraint> for AlterDomainAction {
29345    #[inline]
29346    fn from(node: DropConstraint) -> AlterDomainAction {
29347        AlterDomainAction::DropConstraint(node)
29348    }
29349}
29350impl From<DropDefault> for AlterDomainAction {
29351    #[inline]
29352    fn from(node: DropDefault) -> AlterDomainAction {
29353        AlterDomainAction::DropDefault(node)
29354    }
29355}
29356impl From<DropNotNull> for AlterDomainAction {
29357    #[inline]
29358    fn from(node: DropNotNull) -> AlterDomainAction {
29359        AlterDomainAction::DropNotNull(node)
29360    }
29361}
29362impl From<OwnerTo> for AlterDomainAction {
29363    #[inline]
29364    fn from(node: OwnerTo) -> AlterDomainAction {
29365        AlterDomainAction::OwnerTo(node)
29366    }
29367}
29368impl From<RenameConstraint> for AlterDomainAction {
29369    #[inline]
29370    fn from(node: RenameConstraint) -> AlterDomainAction {
29371        AlterDomainAction::RenameConstraint(node)
29372    }
29373}
29374impl From<RenameTo> for AlterDomainAction {
29375    #[inline]
29376    fn from(node: RenameTo) -> AlterDomainAction {
29377        AlterDomainAction::RenameTo(node)
29378    }
29379}
29380impl From<SetDefault> for AlterDomainAction {
29381    #[inline]
29382    fn from(node: SetDefault) -> AlterDomainAction {
29383        AlterDomainAction::SetDefault(node)
29384    }
29385}
29386impl From<SetNotNull> for AlterDomainAction {
29387    #[inline]
29388    fn from(node: SetNotNull) -> AlterDomainAction {
29389        AlterDomainAction::SetNotNull(node)
29390    }
29391}
29392impl From<SetSchema> for AlterDomainAction {
29393    #[inline]
29394    fn from(node: SetSchema) -> AlterDomainAction {
29395        AlterDomainAction::SetSchema(node)
29396    }
29397}
29398impl From<ValidateConstraint> for AlterDomainAction {
29399    #[inline]
29400    fn from(node: ValidateConstraint) -> AlterDomainAction {
29401        AlterDomainAction::ValidateConstraint(node)
29402    }
29403}
29404impl AstNode for AlterIndexAction {
29405    #[inline]
29406    fn can_cast(kind: SyntaxKind) -> bool {
29407        matches!(
29408            kind,
29409            SyntaxKind::ALTER_SET_STATISTICS
29410                | SyntaxKind::ATTACH_PARTITION
29411                | SyntaxKind::DEPENDS_ON_EXTENSION
29412                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
29413                | SyntaxKind::RENAME_TO
29414                | SyntaxKind::RESET_OPTIONS
29415                | SyntaxKind::SET_OPTIONS
29416                | SyntaxKind::SET_TABLESPACE
29417        )
29418    }
29419    #[inline]
29420    fn cast(syntax: SyntaxNode) -> Option<Self> {
29421        let res = match syntax.kind() {
29422            SyntaxKind::ALTER_SET_STATISTICS => {
29423                AlterIndexAction::AlterSetStatistics(AlterSetStatistics { syntax })
29424            }
29425            SyntaxKind::ATTACH_PARTITION => {
29426                AlterIndexAction::AttachPartition(AttachPartition { syntax })
29427            }
29428            SyntaxKind::DEPENDS_ON_EXTENSION => {
29429                AlterIndexAction::DependsOnExtension(DependsOnExtension { syntax })
29430            }
29431            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
29432                AlterIndexAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
29433            }
29434            SyntaxKind::RENAME_TO => AlterIndexAction::RenameTo(RenameTo { syntax }),
29435            SyntaxKind::RESET_OPTIONS => AlterIndexAction::ResetOptions(ResetOptions { syntax }),
29436            SyntaxKind::SET_OPTIONS => AlterIndexAction::SetOptions(SetOptions { syntax }),
29437            SyntaxKind::SET_TABLESPACE => AlterIndexAction::SetTablespace(SetTablespace { syntax }),
29438            _ => {
29439                return None;
29440            }
29441        };
29442        Some(res)
29443    }
29444    #[inline]
29445    fn syntax(&self) -> &SyntaxNode {
29446        match self {
29447            AlterIndexAction::AlterSetStatistics(it) => &it.syntax,
29448            AlterIndexAction::AttachPartition(it) => &it.syntax,
29449            AlterIndexAction::DependsOnExtension(it) => &it.syntax,
29450            AlterIndexAction::NoDependsOnExtension(it) => &it.syntax,
29451            AlterIndexAction::RenameTo(it) => &it.syntax,
29452            AlterIndexAction::ResetOptions(it) => &it.syntax,
29453            AlterIndexAction::SetOptions(it) => &it.syntax,
29454            AlterIndexAction::SetTablespace(it) => &it.syntax,
29455        }
29456    }
29457}
29458impl From<AlterSetStatistics> for AlterIndexAction {
29459    #[inline]
29460    fn from(node: AlterSetStatistics) -> AlterIndexAction {
29461        AlterIndexAction::AlterSetStatistics(node)
29462    }
29463}
29464impl From<AttachPartition> for AlterIndexAction {
29465    #[inline]
29466    fn from(node: AttachPartition) -> AlterIndexAction {
29467        AlterIndexAction::AttachPartition(node)
29468    }
29469}
29470impl From<DependsOnExtension> for AlterIndexAction {
29471    #[inline]
29472    fn from(node: DependsOnExtension) -> AlterIndexAction {
29473        AlterIndexAction::DependsOnExtension(node)
29474    }
29475}
29476impl From<NoDependsOnExtension> for AlterIndexAction {
29477    #[inline]
29478    fn from(node: NoDependsOnExtension) -> AlterIndexAction {
29479        AlterIndexAction::NoDependsOnExtension(node)
29480    }
29481}
29482impl From<RenameTo> for AlterIndexAction {
29483    #[inline]
29484    fn from(node: RenameTo) -> AlterIndexAction {
29485        AlterIndexAction::RenameTo(node)
29486    }
29487}
29488impl From<ResetOptions> for AlterIndexAction {
29489    #[inline]
29490    fn from(node: ResetOptions) -> AlterIndexAction {
29491        AlterIndexAction::ResetOptions(node)
29492    }
29493}
29494impl From<SetOptions> for AlterIndexAction {
29495    #[inline]
29496    fn from(node: SetOptions) -> AlterIndexAction {
29497        AlterIndexAction::SetOptions(node)
29498    }
29499}
29500impl From<SetTablespace> for AlterIndexAction {
29501    #[inline]
29502    fn from(node: SetTablespace) -> AlterIndexAction {
29503        AlterIndexAction::SetTablespace(node)
29504    }
29505}
29506impl AstNode for AlterMaterializedViewAction {
29507    #[inline]
29508    fn can_cast(kind: SyntaxKind) -> bool {
29509        matches!(
29510            kind,
29511            SyntaxKind::DEPENDS_ON_EXTENSION
29512                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
29513                | SyntaxKind::RENAME_COLUMN
29514                | SyntaxKind::RENAME_TO
29515                | SyntaxKind::SET_SCHEMA
29516        )
29517    }
29518    #[inline]
29519    fn cast(syntax: SyntaxNode) -> Option<Self> {
29520        let res = match syntax.kind() {
29521            SyntaxKind::DEPENDS_ON_EXTENSION => {
29522                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
29523            }
29524            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
29525                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
29526            }
29527            SyntaxKind::RENAME_COLUMN => {
29528                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
29529            }
29530            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
29531            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
29532            _ => {
29533                if let Some(result) = AlterTableAction::cast(syntax) {
29534                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
29535                }
29536                return None;
29537            }
29538        };
29539        Some(res)
29540    }
29541    #[inline]
29542    fn syntax(&self) -> &SyntaxNode {
29543        match self {
29544            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
29545            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
29546            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
29547            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
29548            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
29549            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
29550        }
29551    }
29552}
29553impl From<DependsOnExtension> for AlterMaterializedViewAction {
29554    #[inline]
29555    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
29556        AlterMaterializedViewAction::DependsOnExtension(node)
29557    }
29558}
29559impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
29560    #[inline]
29561    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
29562        AlterMaterializedViewAction::NoDependsOnExtension(node)
29563    }
29564}
29565impl From<RenameColumn> for AlterMaterializedViewAction {
29566    #[inline]
29567    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
29568        AlterMaterializedViewAction::RenameColumn(node)
29569    }
29570}
29571impl From<RenameTo> for AlterMaterializedViewAction {
29572    #[inline]
29573    fn from(node: RenameTo) -> AlterMaterializedViewAction {
29574        AlterMaterializedViewAction::RenameTo(node)
29575    }
29576}
29577impl From<SetSchema> for AlterMaterializedViewAction {
29578    #[inline]
29579    fn from(node: SetSchema) -> AlterMaterializedViewAction {
29580        AlterMaterializedViewAction::SetSchema(node)
29581    }
29582}
29583impl AstNode for AlterTableAction {
29584    #[inline]
29585    fn can_cast(kind: SyntaxKind) -> bool {
29586        matches!(
29587            kind,
29588            SyntaxKind::ADD_COLUMN
29589                | SyntaxKind::ADD_CONSTRAINT
29590                | SyntaxKind::ALTER_COLUMN
29591                | SyntaxKind::ALTER_CONSTRAINT
29592                | SyntaxKind::ATTACH_PARTITION
29593                | SyntaxKind::CLUSTER_ON
29594                | SyntaxKind::DETACH_PARTITION
29595                | SyntaxKind::DISABLE_RLS
29596                | SyntaxKind::DISABLE_RULE
29597                | SyntaxKind::DISABLE_TRIGGER
29598                | SyntaxKind::DROP_COLUMN
29599                | SyntaxKind::DROP_CONSTRAINT
29600                | SyntaxKind::ENABLE_ALWAYS_RULE
29601                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
29602                | SyntaxKind::ENABLE_REPLICA_RULE
29603                | SyntaxKind::ENABLE_REPLICA_TRIGGER
29604                | SyntaxKind::ENABLE_RLS
29605                | SyntaxKind::ENABLE_RULE
29606                | SyntaxKind::ENABLE_TRIGGER
29607                | SyntaxKind::FORCE_RLS
29608                | SyntaxKind::INHERIT_TABLE
29609                | SyntaxKind::MERGE_PARTITIONS
29610                | SyntaxKind::NO_FORCE_RLS
29611                | SyntaxKind::NO_INHERIT_TABLE
29612                | SyntaxKind::NOT_OF
29613                | SyntaxKind::OF_TYPE
29614                | SyntaxKind::OPTION_ITEM_LIST
29615                | SyntaxKind::OWNER_TO
29616                | SyntaxKind::RENAME_COLUMN
29617                | SyntaxKind::RENAME_CONSTRAINT
29618                | SyntaxKind::RENAME_TO
29619                | SyntaxKind::REPLICA_IDENTITY
29620                | SyntaxKind::RESET_OPTIONS
29621                | SyntaxKind::SET_ACCESS_METHOD
29622                | SyntaxKind::SET_LOGGED
29623                | SyntaxKind::SET_OPTIONS
29624                | SyntaxKind::SET_SCHEMA
29625                | SyntaxKind::SET_TABLESPACE
29626                | SyntaxKind::SET_UNLOGGED
29627                | SyntaxKind::SET_WITHOUT_CLUSTER
29628                | SyntaxKind::SET_WITHOUT_OIDS
29629                | SyntaxKind::SPLIT_PARTITION
29630                | SyntaxKind::VALIDATE_CONSTRAINT
29631        )
29632    }
29633    #[inline]
29634    fn cast(syntax: SyntaxNode) -> Option<Self> {
29635        let res = match syntax.kind() {
29636            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
29637            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
29638            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
29639            SyntaxKind::ALTER_CONSTRAINT => {
29640                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
29641            }
29642            SyntaxKind::ATTACH_PARTITION => {
29643                AlterTableAction::AttachPartition(AttachPartition { syntax })
29644            }
29645            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
29646            SyntaxKind::DETACH_PARTITION => {
29647                AlterTableAction::DetachPartition(DetachPartition { syntax })
29648            }
29649            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
29650            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
29651            SyntaxKind::DISABLE_TRIGGER => {
29652                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
29653            }
29654            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
29655            SyntaxKind::DROP_CONSTRAINT => {
29656                AlterTableAction::DropConstraint(DropConstraint { syntax })
29657            }
29658            SyntaxKind::ENABLE_ALWAYS_RULE => {
29659                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
29660            }
29661            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
29662                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
29663            }
29664            SyntaxKind::ENABLE_REPLICA_RULE => {
29665                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
29666            }
29667            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
29668                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
29669            }
29670            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
29671            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
29672            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
29673            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
29674            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
29675            SyntaxKind::MERGE_PARTITIONS => {
29676                AlterTableAction::MergePartitions(MergePartitions { syntax })
29677            }
29678            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
29679            SyntaxKind::NO_INHERIT_TABLE => {
29680                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
29681            }
29682            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
29683            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
29684            SyntaxKind::OPTION_ITEM_LIST => {
29685                AlterTableAction::OptionItemList(OptionItemList { syntax })
29686            }
29687            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
29688            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
29689            SyntaxKind::RENAME_CONSTRAINT => {
29690                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
29691            }
29692            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
29693            SyntaxKind::REPLICA_IDENTITY => {
29694                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
29695            }
29696            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
29697            SyntaxKind::SET_ACCESS_METHOD => {
29698                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
29699            }
29700            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
29701            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
29702            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
29703            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
29704            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
29705            SyntaxKind::SET_WITHOUT_CLUSTER => {
29706                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
29707            }
29708            SyntaxKind::SET_WITHOUT_OIDS => {
29709                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
29710            }
29711            SyntaxKind::SPLIT_PARTITION => {
29712                AlterTableAction::SplitPartition(SplitPartition { syntax })
29713            }
29714            SyntaxKind::VALIDATE_CONSTRAINT => {
29715                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
29716            }
29717            _ => {
29718                return None;
29719            }
29720        };
29721        Some(res)
29722    }
29723    #[inline]
29724    fn syntax(&self) -> &SyntaxNode {
29725        match self {
29726            AlterTableAction::AddColumn(it) => &it.syntax,
29727            AlterTableAction::AddConstraint(it) => &it.syntax,
29728            AlterTableAction::AlterColumn(it) => &it.syntax,
29729            AlterTableAction::AlterConstraint(it) => &it.syntax,
29730            AlterTableAction::AttachPartition(it) => &it.syntax,
29731            AlterTableAction::ClusterOn(it) => &it.syntax,
29732            AlterTableAction::DetachPartition(it) => &it.syntax,
29733            AlterTableAction::DisableRls(it) => &it.syntax,
29734            AlterTableAction::DisableRule(it) => &it.syntax,
29735            AlterTableAction::DisableTrigger(it) => &it.syntax,
29736            AlterTableAction::DropColumn(it) => &it.syntax,
29737            AlterTableAction::DropConstraint(it) => &it.syntax,
29738            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
29739            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
29740            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
29741            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
29742            AlterTableAction::EnableRls(it) => &it.syntax,
29743            AlterTableAction::EnableRule(it) => &it.syntax,
29744            AlterTableAction::EnableTrigger(it) => &it.syntax,
29745            AlterTableAction::ForceRls(it) => &it.syntax,
29746            AlterTableAction::InheritTable(it) => &it.syntax,
29747            AlterTableAction::MergePartitions(it) => &it.syntax,
29748            AlterTableAction::NoForceRls(it) => &it.syntax,
29749            AlterTableAction::NoInheritTable(it) => &it.syntax,
29750            AlterTableAction::NotOf(it) => &it.syntax,
29751            AlterTableAction::OfType(it) => &it.syntax,
29752            AlterTableAction::OptionItemList(it) => &it.syntax,
29753            AlterTableAction::OwnerTo(it) => &it.syntax,
29754            AlterTableAction::RenameColumn(it) => &it.syntax,
29755            AlterTableAction::RenameConstraint(it) => &it.syntax,
29756            AlterTableAction::RenameTo(it) => &it.syntax,
29757            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
29758            AlterTableAction::ResetOptions(it) => &it.syntax,
29759            AlterTableAction::SetAccessMethod(it) => &it.syntax,
29760            AlterTableAction::SetLogged(it) => &it.syntax,
29761            AlterTableAction::SetOptions(it) => &it.syntax,
29762            AlterTableAction::SetSchema(it) => &it.syntax,
29763            AlterTableAction::SetTablespace(it) => &it.syntax,
29764            AlterTableAction::SetUnlogged(it) => &it.syntax,
29765            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
29766            AlterTableAction::SetWithoutOids(it) => &it.syntax,
29767            AlterTableAction::SplitPartition(it) => &it.syntax,
29768            AlterTableAction::ValidateConstraint(it) => &it.syntax,
29769        }
29770    }
29771}
29772impl From<AddColumn> for AlterTableAction {
29773    #[inline]
29774    fn from(node: AddColumn) -> AlterTableAction {
29775        AlterTableAction::AddColumn(node)
29776    }
29777}
29778impl From<AddConstraint> for AlterTableAction {
29779    #[inline]
29780    fn from(node: AddConstraint) -> AlterTableAction {
29781        AlterTableAction::AddConstraint(node)
29782    }
29783}
29784impl From<AlterColumn> for AlterTableAction {
29785    #[inline]
29786    fn from(node: AlterColumn) -> AlterTableAction {
29787        AlterTableAction::AlterColumn(node)
29788    }
29789}
29790impl From<AlterConstraint> for AlterTableAction {
29791    #[inline]
29792    fn from(node: AlterConstraint) -> AlterTableAction {
29793        AlterTableAction::AlterConstraint(node)
29794    }
29795}
29796impl From<AttachPartition> for AlterTableAction {
29797    #[inline]
29798    fn from(node: AttachPartition) -> AlterTableAction {
29799        AlterTableAction::AttachPartition(node)
29800    }
29801}
29802impl From<ClusterOn> for AlterTableAction {
29803    #[inline]
29804    fn from(node: ClusterOn) -> AlterTableAction {
29805        AlterTableAction::ClusterOn(node)
29806    }
29807}
29808impl From<DetachPartition> for AlterTableAction {
29809    #[inline]
29810    fn from(node: DetachPartition) -> AlterTableAction {
29811        AlterTableAction::DetachPartition(node)
29812    }
29813}
29814impl From<DisableRls> for AlterTableAction {
29815    #[inline]
29816    fn from(node: DisableRls) -> AlterTableAction {
29817        AlterTableAction::DisableRls(node)
29818    }
29819}
29820impl From<DisableRule> for AlterTableAction {
29821    #[inline]
29822    fn from(node: DisableRule) -> AlterTableAction {
29823        AlterTableAction::DisableRule(node)
29824    }
29825}
29826impl From<DisableTrigger> for AlterTableAction {
29827    #[inline]
29828    fn from(node: DisableTrigger) -> AlterTableAction {
29829        AlterTableAction::DisableTrigger(node)
29830    }
29831}
29832impl From<DropColumn> for AlterTableAction {
29833    #[inline]
29834    fn from(node: DropColumn) -> AlterTableAction {
29835        AlterTableAction::DropColumn(node)
29836    }
29837}
29838impl From<DropConstraint> for AlterTableAction {
29839    #[inline]
29840    fn from(node: DropConstraint) -> AlterTableAction {
29841        AlterTableAction::DropConstraint(node)
29842    }
29843}
29844impl From<EnableAlwaysRule> for AlterTableAction {
29845    #[inline]
29846    fn from(node: EnableAlwaysRule) -> AlterTableAction {
29847        AlterTableAction::EnableAlwaysRule(node)
29848    }
29849}
29850impl From<EnableAlwaysTrigger> for AlterTableAction {
29851    #[inline]
29852    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
29853        AlterTableAction::EnableAlwaysTrigger(node)
29854    }
29855}
29856impl From<EnableReplicaRule> for AlterTableAction {
29857    #[inline]
29858    fn from(node: EnableReplicaRule) -> AlterTableAction {
29859        AlterTableAction::EnableReplicaRule(node)
29860    }
29861}
29862impl From<EnableReplicaTrigger> for AlterTableAction {
29863    #[inline]
29864    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
29865        AlterTableAction::EnableReplicaTrigger(node)
29866    }
29867}
29868impl From<EnableRls> for AlterTableAction {
29869    #[inline]
29870    fn from(node: EnableRls) -> AlterTableAction {
29871        AlterTableAction::EnableRls(node)
29872    }
29873}
29874impl From<EnableRule> for AlterTableAction {
29875    #[inline]
29876    fn from(node: EnableRule) -> AlterTableAction {
29877        AlterTableAction::EnableRule(node)
29878    }
29879}
29880impl From<EnableTrigger> for AlterTableAction {
29881    #[inline]
29882    fn from(node: EnableTrigger) -> AlterTableAction {
29883        AlterTableAction::EnableTrigger(node)
29884    }
29885}
29886impl From<ForceRls> for AlterTableAction {
29887    #[inline]
29888    fn from(node: ForceRls) -> AlterTableAction {
29889        AlterTableAction::ForceRls(node)
29890    }
29891}
29892impl From<InheritTable> for AlterTableAction {
29893    #[inline]
29894    fn from(node: InheritTable) -> AlterTableAction {
29895        AlterTableAction::InheritTable(node)
29896    }
29897}
29898impl From<MergePartitions> for AlterTableAction {
29899    #[inline]
29900    fn from(node: MergePartitions) -> AlterTableAction {
29901        AlterTableAction::MergePartitions(node)
29902    }
29903}
29904impl From<NoForceRls> for AlterTableAction {
29905    #[inline]
29906    fn from(node: NoForceRls) -> AlterTableAction {
29907        AlterTableAction::NoForceRls(node)
29908    }
29909}
29910impl From<NoInheritTable> for AlterTableAction {
29911    #[inline]
29912    fn from(node: NoInheritTable) -> AlterTableAction {
29913        AlterTableAction::NoInheritTable(node)
29914    }
29915}
29916impl From<NotOf> for AlterTableAction {
29917    #[inline]
29918    fn from(node: NotOf) -> AlterTableAction {
29919        AlterTableAction::NotOf(node)
29920    }
29921}
29922impl From<OfType> for AlterTableAction {
29923    #[inline]
29924    fn from(node: OfType) -> AlterTableAction {
29925        AlterTableAction::OfType(node)
29926    }
29927}
29928impl From<OptionItemList> for AlterTableAction {
29929    #[inline]
29930    fn from(node: OptionItemList) -> AlterTableAction {
29931        AlterTableAction::OptionItemList(node)
29932    }
29933}
29934impl From<OwnerTo> for AlterTableAction {
29935    #[inline]
29936    fn from(node: OwnerTo) -> AlterTableAction {
29937        AlterTableAction::OwnerTo(node)
29938    }
29939}
29940impl From<RenameColumn> for AlterTableAction {
29941    #[inline]
29942    fn from(node: RenameColumn) -> AlterTableAction {
29943        AlterTableAction::RenameColumn(node)
29944    }
29945}
29946impl From<RenameConstraint> for AlterTableAction {
29947    #[inline]
29948    fn from(node: RenameConstraint) -> AlterTableAction {
29949        AlterTableAction::RenameConstraint(node)
29950    }
29951}
29952impl From<RenameTo> for AlterTableAction {
29953    #[inline]
29954    fn from(node: RenameTo) -> AlterTableAction {
29955        AlterTableAction::RenameTo(node)
29956    }
29957}
29958impl From<ReplicaIdentity> for AlterTableAction {
29959    #[inline]
29960    fn from(node: ReplicaIdentity) -> AlterTableAction {
29961        AlterTableAction::ReplicaIdentity(node)
29962    }
29963}
29964impl From<ResetOptions> for AlterTableAction {
29965    #[inline]
29966    fn from(node: ResetOptions) -> AlterTableAction {
29967        AlterTableAction::ResetOptions(node)
29968    }
29969}
29970impl From<SetAccessMethod> for AlterTableAction {
29971    #[inline]
29972    fn from(node: SetAccessMethod) -> AlterTableAction {
29973        AlterTableAction::SetAccessMethod(node)
29974    }
29975}
29976impl From<SetLogged> for AlterTableAction {
29977    #[inline]
29978    fn from(node: SetLogged) -> AlterTableAction {
29979        AlterTableAction::SetLogged(node)
29980    }
29981}
29982impl From<SetOptions> for AlterTableAction {
29983    #[inline]
29984    fn from(node: SetOptions) -> AlterTableAction {
29985        AlterTableAction::SetOptions(node)
29986    }
29987}
29988impl From<SetSchema> for AlterTableAction {
29989    #[inline]
29990    fn from(node: SetSchema) -> AlterTableAction {
29991        AlterTableAction::SetSchema(node)
29992    }
29993}
29994impl From<SetTablespace> for AlterTableAction {
29995    #[inline]
29996    fn from(node: SetTablespace) -> AlterTableAction {
29997        AlterTableAction::SetTablespace(node)
29998    }
29999}
30000impl From<SetUnlogged> for AlterTableAction {
30001    #[inline]
30002    fn from(node: SetUnlogged) -> AlterTableAction {
30003        AlterTableAction::SetUnlogged(node)
30004    }
30005}
30006impl From<SetWithoutCluster> for AlterTableAction {
30007    #[inline]
30008    fn from(node: SetWithoutCluster) -> AlterTableAction {
30009        AlterTableAction::SetWithoutCluster(node)
30010    }
30011}
30012impl From<SetWithoutOids> for AlterTableAction {
30013    #[inline]
30014    fn from(node: SetWithoutOids) -> AlterTableAction {
30015        AlterTableAction::SetWithoutOids(node)
30016    }
30017}
30018impl From<SplitPartition> for AlterTableAction {
30019    #[inline]
30020    fn from(node: SplitPartition) -> AlterTableAction {
30021        AlterTableAction::SplitPartition(node)
30022    }
30023}
30024impl From<ValidateConstraint> for AlterTableAction {
30025    #[inline]
30026    fn from(node: ValidateConstraint) -> AlterTableAction {
30027        AlterTableAction::ValidateConstraint(node)
30028    }
30029}
30030impl AstNode for ColumnConstraint {
30031    #[inline]
30032    fn can_cast(kind: SyntaxKind) -> bool {
30033        matches!(
30034            kind,
30035            SyntaxKind::CHECK_CONSTRAINT
30036                | SyntaxKind::DEFAULT_CONSTRAINT
30037                | SyntaxKind::EXCLUDE_CONSTRAINT
30038                | SyntaxKind::NOT_NULL_CONSTRAINT
30039                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
30040                | SyntaxKind::REFERENCES_CONSTRAINT
30041                | SyntaxKind::UNIQUE_CONSTRAINT
30042        )
30043    }
30044    #[inline]
30045    fn cast(syntax: SyntaxNode) -> Option<Self> {
30046        let res = match syntax.kind() {
30047            SyntaxKind::CHECK_CONSTRAINT => {
30048                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
30049            }
30050            SyntaxKind::DEFAULT_CONSTRAINT => {
30051                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
30052            }
30053            SyntaxKind::EXCLUDE_CONSTRAINT => {
30054                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
30055            }
30056            SyntaxKind::NOT_NULL_CONSTRAINT => {
30057                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
30058            }
30059            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
30060                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
30061            }
30062            SyntaxKind::REFERENCES_CONSTRAINT => {
30063                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
30064            }
30065            SyntaxKind::UNIQUE_CONSTRAINT => {
30066                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
30067            }
30068            _ => {
30069                return None;
30070            }
30071        };
30072        Some(res)
30073    }
30074    #[inline]
30075    fn syntax(&self) -> &SyntaxNode {
30076        match self {
30077            ColumnConstraint::CheckConstraint(it) => &it.syntax,
30078            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
30079            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
30080            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
30081            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
30082            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
30083            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
30084        }
30085    }
30086}
30087impl From<CheckConstraint> for ColumnConstraint {
30088    #[inline]
30089    fn from(node: CheckConstraint) -> ColumnConstraint {
30090        ColumnConstraint::CheckConstraint(node)
30091    }
30092}
30093impl From<DefaultConstraint> for ColumnConstraint {
30094    #[inline]
30095    fn from(node: DefaultConstraint) -> ColumnConstraint {
30096        ColumnConstraint::DefaultConstraint(node)
30097    }
30098}
30099impl From<ExcludeConstraint> for ColumnConstraint {
30100    #[inline]
30101    fn from(node: ExcludeConstraint) -> ColumnConstraint {
30102        ColumnConstraint::ExcludeConstraint(node)
30103    }
30104}
30105impl From<NotNullConstraint> for ColumnConstraint {
30106    #[inline]
30107    fn from(node: NotNullConstraint) -> ColumnConstraint {
30108        ColumnConstraint::NotNullConstraint(node)
30109    }
30110}
30111impl From<PrimaryKeyConstraint> for ColumnConstraint {
30112    #[inline]
30113    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
30114        ColumnConstraint::PrimaryKeyConstraint(node)
30115    }
30116}
30117impl From<ReferencesConstraint> for ColumnConstraint {
30118    #[inline]
30119    fn from(node: ReferencesConstraint) -> ColumnConstraint {
30120        ColumnConstraint::ReferencesConstraint(node)
30121    }
30122}
30123impl From<UniqueConstraint> for ColumnConstraint {
30124    #[inline]
30125    fn from(node: UniqueConstraint) -> ColumnConstraint {
30126        ColumnConstraint::UniqueConstraint(node)
30127    }
30128}
30129impl AstNode for ConfigValue {
30130    #[inline]
30131    fn can_cast(kind: SyntaxKind) -> bool {
30132        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
30133    }
30134    #[inline]
30135    fn cast(syntax: SyntaxNode) -> Option<Self> {
30136        let res = match syntax.kind() {
30137            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
30138            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
30139            _ => {
30140                return None;
30141            }
30142        };
30143        Some(res)
30144    }
30145    #[inline]
30146    fn syntax(&self) -> &SyntaxNode {
30147        match self {
30148            ConfigValue::Literal(it) => &it.syntax,
30149            ConfigValue::NameRef(it) => &it.syntax,
30150        }
30151    }
30152}
30153impl From<Literal> for ConfigValue {
30154    #[inline]
30155    fn from(node: Literal) -> ConfigValue {
30156        ConfigValue::Literal(node)
30157    }
30158}
30159impl From<NameRef> for ConfigValue {
30160    #[inline]
30161    fn from(node: NameRef) -> ConfigValue {
30162        ConfigValue::NameRef(node)
30163    }
30164}
30165impl AstNode for ConflictAction {
30166    #[inline]
30167    fn can_cast(kind: SyntaxKind) -> bool {
30168        matches!(
30169            kind,
30170            SyntaxKind::CONFLICT_DO_NOTHING
30171                | SyntaxKind::CONFLICT_DO_SELECT
30172                | SyntaxKind::CONFLICT_DO_UPDATE_SET
30173        )
30174    }
30175    #[inline]
30176    fn cast(syntax: SyntaxNode) -> Option<Self> {
30177        let res = match syntax.kind() {
30178            SyntaxKind::CONFLICT_DO_NOTHING => {
30179                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
30180            }
30181            SyntaxKind::CONFLICT_DO_SELECT => {
30182                ConflictAction::ConflictDoSelect(ConflictDoSelect { syntax })
30183            }
30184            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
30185                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
30186            }
30187            _ => {
30188                return None;
30189            }
30190        };
30191        Some(res)
30192    }
30193    #[inline]
30194    fn syntax(&self) -> &SyntaxNode {
30195        match self {
30196            ConflictAction::ConflictDoNothing(it) => &it.syntax,
30197            ConflictAction::ConflictDoSelect(it) => &it.syntax,
30198            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
30199        }
30200    }
30201}
30202impl From<ConflictDoNothing> for ConflictAction {
30203    #[inline]
30204    fn from(node: ConflictDoNothing) -> ConflictAction {
30205        ConflictAction::ConflictDoNothing(node)
30206    }
30207}
30208impl From<ConflictDoSelect> for ConflictAction {
30209    #[inline]
30210    fn from(node: ConflictDoSelect) -> ConflictAction {
30211        ConflictAction::ConflictDoSelect(node)
30212    }
30213}
30214impl From<ConflictDoUpdateSet> for ConflictAction {
30215    #[inline]
30216    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
30217        ConflictAction::ConflictDoUpdateSet(node)
30218    }
30219}
30220impl AstNode for ConflictTarget {
30221    #[inline]
30222    fn can_cast(kind: SyntaxKind) -> bool {
30223        matches!(
30224            kind,
30225            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
30226        )
30227    }
30228    #[inline]
30229    fn cast(syntax: SyntaxNode) -> Option<Self> {
30230        let res = match syntax.kind() {
30231            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
30232                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
30233            }
30234            SyntaxKind::CONFLICT_ON_INDEX => {
30235                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
30236            }
30237            _ => {
30238                return None;
30239            }
30240        };
30241        Some(res)
30242    }
30243    #[inline]
30244    fn syntax(&self) -> &SyntaxNode {
30245        match self {
30246            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
30247            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
30248        }
30249    }
30250}
30251impl From<ConflictOnConstraint> for ConflictTarget {
30252    #[inline]
30253    fn from(node: ConflictOnConstraint) -> ConflictTarget {
30254        ConflictTarget::ConflictOnConstraint(node)
30255    }
30256}
30257impl From<ConflictOnIndex> for ConflictTarget {
30258    #[inline]
30259    fn from(node: ConflictOnIndex) -> ConflictTarget {
30260        ConflictTarget::ConflictOnIndex(node)
30261    }
30262}
30263impl AstNode for Constraint {
30264    #[inline]
30265    fn can_cast(kind: SyntaxKind) -> bool {
30266        matches!(
30267            kind,
30268            SyntaxKind::CHECK_CONSTRAINT
30269                | SyntaxKind::DEFAULT_CONSTRAINT
30270                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
30271                | SyntaxKind::GENERATED_CONSTRAINT
30272                | SyntaxKind::NOT_NULL_CONSTRAINT
30273                | SyntaxKind::NULL_CONSTRAINT
30274                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
30275                | SyntaxKind::REFERENCES_CONSTRAINT
30276                | SyntaxKind::UNIQUE_CONSTRAINT
30277        )
30278    }
30279    #[inline]
30280    fn cast(syntax: SyntaxNode) -> Option<Self> {
30281        let res = match syntax.kind() {
30282            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
30283            SyntaxKind::DEFAULT_CONSTRAINT => {
30284                Constraint::DefaultConstraint(DefaultConstraint { syntax })
30285            }
30286            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
30287                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
30288            }
30289            SyntaxKind::GENERATED_CONSTRAINT => {
30290                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
30291            }
30292            SyntaxKind::NOT_NULL_CONSTRAINT => {
30293                Constraint::NotNullConstraint(NotNullConstraint { syntax })
30294            }
30295            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
30296            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
30297                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
30298            }
30299            SyntaxKind::REFERENCES_CONSTRAINT => {
30300                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
30301            }
30302            SyntaxKind::UNIQUE_CONSTRAINT => {
30303                Constraint::UniqueConstraint(UniqueConstraint { syntax })
30304            }
30305            _ => {
30306                return None;
30307            }
30308        };
30309        Some(res)
30310    }
30311    #[inline]
30312    fn syntax(&self) -> &SyntaxNode {
30313        match self {
30314            Constraint::CheckConstraint(it) => &it.syntax,
30315            Constraint::DefaultConstraint(it) => &it.syntax,
30316            Constraint::ForeignKeyConstraint(it) => &it.syntax,
30317            Constraint::GeneratedConstraint(it) => &it.syntax,
30318            Constraint::NotNullConstraint(it) => &it.syntax,
30319            Constraint::NullConstraint(it) => &it.syntax,
30320            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
30321            Constraint::ReferencesConstraint(it) => &it.syntax,
30322            Constraint::UniqueConstraint(it) => &it.syntax,
30323        }
30324    }
30325}
30326impl From<CheckConstraint> for Constraint {
30327    #[inline]
30328    fn from(node: CheckConstraint) -> Constraint {
30329        Constraint::CheckConstraint(node)
30330    }
30331}
30332impl From<DefaultConstraint> for Constraint {
30333    #[inline]
30334    fn from(node: DefaultConstraint) -> Constraint {
30335        Constraint::DefaultConstraint(node)
30336    }
30337}
30338impl From<ForeignKeyConstraint> for Constraint {
30339    #[inline]
30340    fn from(node: ForeignKeyConstraint) -> Constraint {
30341        Constraint::ForeignKeyConstraint(node)
30342    }
30343}
30344impl From<GeneratedConstraint> for Constraint {
30345    #[inline]
30346    fn from(node: GeneratedConstraint) -> Constraint {
30347        Constraint::GeneratedConstraint(node)
30348    }
30349}
30350impl From<NotNullConstraint> for Constraint {
30351    #[inline]
30352    fn from(node: NotNullConstraint) -> Constraint {
30353        Constraint::NotNullConstraint(node)
30354    }
30355}
30356impl From<NullConstraint> for Constraint {
30357    #[inline]
30358    fn from(node: NullConstraint) -> Constraint {
30359        Constraint::NullConstraint(node)
30360    }
30361}
30362impl From<PrimaryKeyConstraint> for Constraint {
30363    #[inline]
30364    fn from(node: PrimaryKeyConstraint) -> Constraint {
30365        Constraint::PrimaryKeyConstraint(node)
30366    }
30367}
30368impl From<ReferencesConstraint> for Constraint {
30369    #[inline]
30370    fn from(node: ReferencesConstraint) -> Constraint {
30371        Constraint::ReferencesConstraint(node)
30372    }
30373}
30374impl From<UniqueConstraint> for Constraint {
30375    #[inline]
30376    fn from(node: UniqueConstraint) -> Constraint {
30377        Constraint::UniqueConstraint(node)
30378    }
30379}
30380impl AstNode for ExplainStmt {
30381    #[inline]
30382    fn can_cast(kind: SyntaxKind) -> bool {
30383        matches!(
30384            kind,
30385            SyntaxKind::COMPOUND_SELECT
30386                | SyntaxKind::CREATE_MATERIALIZED_VIEW
30387                | SyntaxKind::CREATE_TABLE_AS
30388                | SyntaxKind::DECLARE
30389                | SyntaxKind::DELETE
30390                | SyntaxKind::EXECUTE
30391                | SyntaxKind::INSERT
30392                | SyntaxKind::MERGE
30393                | SyntaxKind::PAREN_SELECT
30394                | SyntaxKind::SELECT
30395                | SyntaxKind::SELECT_INTO
30396                | SyntaxKind::TABLE
30397                | SyntaxKind::UPDATE
30398                | SyntaxKind::VALUES
30399        )
30400    }
30401    #[inline]
30402    fn cast(syntax: SyntaxNode) -> Option<Self> {
30403        let res = match syntax.kind() {
30404            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
30405            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
30406                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
30407            }
30408            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
30409            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
30410            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
30411            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
30412            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
30413            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
30414            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
30415            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
30416            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
30417            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
30418            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
30419            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
30420            _ => {
30421                return None;
30422            }
30423        };
30424        Some(res)
30425    }
30426    #[inline]
30427    fn syntax(&self) -> &SyntaxNode {
30428        match self {
30429            ExplainStmt::CompoundSelect(it) => &it.syntax,
30430            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
30431            ExplainStmt::CreateTableAs(it) => &it.syntax,
30432            ExplainStmt::Declare(it) => &it.syntax,
30433            ExplainStmt::Delete(it) => &it.syntax,
30434            ExplainStmt::Execute(it) => &it.syntax,
30435            ExplainStmt::Insert(it) => &it.syntax,
30436            ExplainStmt::Merge(it) => &it.syntax,
30437            ExplainStmt::ParenSelect(it) => &it.syntax,
30438            ExplainStmt::Select(it) => &it.syntax,
30439            ExplainStmt::SelectInto(it) => &it.syntax,
30440            ExplainStmt::Table(it) => &it.syntax,
30441            ExplainStmt::Update(it) => &it.syntax,
30442            ExplainStmt::Values(it) => &it.syntax,
30443        }
30444    }
30445}
30446impl From<CompoundSelect> for ExplainStmt {
30447    #[inline]
30448    fn from(node: CompoundSelect) -> ExplainStmt {
30449        ExplainStmt::CompoundSelect(node)
30450    }
30451}
30452impl From<CreateMaterializedView> for ExplainStmt {
30453    #[inline]
30454    fn from(node: CreateMaterializedView) -> ExplainStmt {
30455        ExplainStmt::CreateMaterializedView(node)
30456    }
30457}
30458impl From<CreateTableAs> for ExplainStmt {
30459    #[inline]
30460    fn from(node: CreateTableAs) -> ExplainStmt {
30461        ExplainStmt::CreateTableAs(node)
30462    }
30463}
30464impl From<Declare> for ExplainStmt {
30465    #[inline]
30466    fn from(node: Declare) -> ExplainStmt {
30467        ExplainStmt::Declare(node)
30468    }
30469}
30470impl From<Delete> for ExplainStmt {
30471    #[inline]
30472    fn from(node: Delete) -> ExplainStmt {
30473        ExplainStmt::Delete(node)
30474    }
30475}
30476impl From<Execute> for ExplainStmt {
30477    #[inline]
30478    fn from(node: Execute) -> ExplainStmt {
30479        ExplainStmt::Execute(node)
30480    }
30481}
30482impl From<Insert> for ExplainStmt {
30483    #[inline]
30484    fn from(node: Insert) -> ExplainStmt {
30485        ExplainStmt::Insert(node)
30486    }
30487}
30488impl From<Merge> for ExplainStmt {
30489    #[inline]
30490    fn from(node: Merge) -> ExplainStmt {
30491        ExplainStmt::Merge(node)
30492    }
30493}
30494impl From<ParenSelect> for ExplainStmt {
30495    #[inline]
30496    fn from(node: ParenSelect) -> ExplainStmt {
30497        ExplainStmt::ParenSelect(node)
30498    }
30499}
30500impl From<Select> for ExplainStmt {
30501    #[inline]
30502    fn from(node: Select) -> ExplainStmt {
30503        ExplainStmt::Select(node)
30504    }
30505}
30506impl From<SelectInto> for ExplainStmt {
30507    #[inline]
30508    fn from(node: SelectInto) -> ExplainStmt {
30509        ExplainStmt::SelectInto(node)
30510    }
30511}
30512impl From<Table> for ExplainStmt {
30513    #[inline]
30514    fn from(node: Table) -> ExplainStmt {
30515        ExplainStmt::Table(node)
30516    }
30517}
30518impl From<Update> for ExplainStmt {
30519    #[inline]
30520    fn from(node: Update) -> ExplainStmt {
30521        ExplainStmt::Update(node)
30522    }
30523}
30524impl From<Values> for ExplainStmt {
30525    #[inline]
30526    fn from(node: Values) -> ExplainStmt {
30527        ExplainStmt::Values(node)
30528    }
30529}
30530impl AstNode for Expr {
30531    #[inline]
30532    fn can_cast(kind: SyntaxKind) -> bool {
30533        matches!(
30534            kind,
30535            SyntaxKind::ARRAY_EXPR
30536                | SyntaxKind::BETWEEN_EXPR
30537                | SyntaxKind::BIN_EXPR
30538                | SyntaxKind::CALL_EXPR
30539                | SyntaxKind::CASE_EXPR
30540                | SyntaxKind::CAST_EXPR
30541                | SyntaxKind::FIELD_EXPR
30542                | SyntaxKind::INDEX_EXPR
30543                | SyntaxKind::LITERAL
30544                | SyntaxKind::NAME_REF
30545                | SyntaxKind::PAREN_EXPR
30546                | SyntaxKind::POSTFIX_EXPR
30547                | SyntaxKind::PREFIX_EXPR
30548                | SyntaxKind::SLICE_EXPR
30549                | SyntaxKind::TUPLE_EXPR
30550        )
30551    }
30552    #[inline]
30553    fn cast(syntax: SyntaxNode) -> Option<Self> {
30554        let res = match syntax.kind() {
30555            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
30556            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
30557            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
30558            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
30559            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
30560            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
30561            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
30562            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
30563            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
30564            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
30565            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
30566            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
30567            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
30568            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
30569            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
30570            _ => {
30571                return None;
30572            }
30573        };
30574        Some(res)
30575    }
30576    #[inline]
30577    fn syntax(&self) -> &SyntaxNode {
30578        match self {
30579            Expr::ArrayExpr(it) => &it.syntax,
30580            Expr::BetweenExpr(it) => &it.syntax,
30581            Expr::BinExpr(it) => &it.syntax,
30582            Expr::CallExpr(it) => &it.syntax,
30583            Expr::CaseExpr(it) => &it.syntax,
30584            Expr::CastExpr(it) => &it.syntax,
30585            Expr::FieldExpr(it) => &it.syntax,
30586            Expr::IndexExpr(it) => &it.syntax,
30587            Expr::Literal(it) => &it.syntax,
30588            Expr::NameRef(it) => &it.syntax,
30589            Expr::ParenExpr(it) => &it.syntax,
30590            Expr::PostfixExpr(it) => &it.syntax,
30591            Expr::PrefixExpr(it) => &it.syntax,
30592            Expr::SliceExpr(it) => &it.syntax,
30593            Expr::TupleExpr(it) => &it.syntax,
30594        }
30595    }
30596}
30597impl From<ArrayExpr> for Expr {
30598    #[inline]
30599    fn from(node: ArrayExpr) -> Expr {
30600        Expr::ArrayExpr(node)
30601    }
30602}
30603impl From<BetweenExpr> for Expr {
30604    #[inline]
30605    fn from(node: BetweenExpr) -> Expr {
30606        Expr::BetweenExpr(node)
30607    }
30608}
30609impl From<BinExpr> for Expr {
30610    #[inline]
30611    fn from(node: BinExpr) -> Expr {
30612        Expr::BinExpr(node)
30613    }
30614}
30615impl From<CallExpr> for Expr {
30616    #[inline]
30617    fn from(node: CallExpr) -> Expr {
30618        Expr::CallExpr(node)
30619    }
30620}
30621impl From<CaseExpr> for Expr {
30622    #[inline]
30623    fn from(node: CaseExpr) -> Expr {
30624        Expr::CaseExpr(node)
30625    }
30626}
30627impl From<CastExpr> for Expr {
30628    #[inline]
30629    fn from(node: CastExpr) -> Expr {
30630        Expr::CastExpr(node)
30631    }
30632}
30633impl From<FieldExpr> for Expr {
30634    #[inline]
30635    fn from(node: FieldExpr) -> Expr {
30636        Expr::FieldExpr(node)
30637    }
30638}
30639impl From<IndexExpr> for Expr {
30640    #[inline]
30641    fn from(node: IndexExpr) -> Expr {
30642        Expr::IndexExpr(node)
30643    }
30644}
30645impl From<Literal> for Expr {
30646    #[inline]
30647    fn from(node: Literal) -> Expr {
30648        Expr::Literal(node)
30649    }
30650}
30651impl From<NameRef> for Expr {
30652    #[inline]
30653    fn from(node: NameRef) -> Expr {
30654        Expr::NameRef(node)
30655    }
30656}
30657impl From<ParenExpr> for Expr {
30658    #[inline]
30659    fn from(node: ParenExpr) -> Expr {
30660        Expr::ParenExpr(node)
30661    }
30662}
30663impl From<PostfixExpr> for Expr {
30664    #[inline]
30665    fn from(node: PostfixExpr) -> Expr {
30666        Expr::PostfixExpr(node)
30667    }
30668}
30669impl From<PrefixExpr> for Expr {
30670    #[inline]
30671    fn from(node: PrefixExpr) -> Expr {
30672        Expr::PrefixExpr(node)
30673    }
30674}
30675impl From<SliceExpr> for Expr {
30676    #[inline]
30677    fn from(node: SliceExpr) -> Expr {
30678        Expr::SliceExpr(node)
30679    }
30680}
30681impl From<TupleExpr> for Expr {
30682    #[inline]
30683    fn from(node: TupleExpr) -> Expr {
30684        Expr::TupleExpr(node)
30685    }
30686}
30687impl AstNode for FuncOption {
30688    #[inline]
30689    fn can_cast(kind: SyntaxKind) -> bool {
30690        matches!(
30691            kind,
30692            SyntaxKind::AS_FUNC_OPTION
30693                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
30694                | SyntaxKind::COST_FUNC_OPTION
30695                | SyntaxKind::LANGUAGE_FUNC_OPTION
30696                | SyntaxKind::LEAKPROOF_FUNC_OPTION
30697                | SyntaxKind::PARALLEL_FUNC_OPTION
30698                | SyntaxKind::RESET_FUNC_OPTION
30699                | SyntaxKind::RETURN_FUNC_OPTION
30700                | SyntaxKind::ROWS_FUNC_OPTION
30701                | SyntaxKind::SECURITY_FUNC_OPTION
30702                | SyntaxKind::SET_FUNC_OPTION
30703                | SyntaxKind::STRICT_FUNC_OPTION
30704                | SyntaxKind::SUPPORT_FUNC_OPTION
30705                | SyntaxKind::TRANSFORM_FUNC_OPTION
30706                | SyntaxKind::VOLATILITY_FUNC_OPTION
30707                | SyntaxKind::WINDOW_FUNC_OPTION
30708        )
30709    }
30710    #[inline]
30711    fn cast(syntax: SyntaxNode) -> Option<Self> {
30712        let res = match syntax.kind() {
30713            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
30714            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
30715                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
30716            }
30717            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
30718            SyntaxKind::LANGUAGE_FUNC_OPTION => {
30719                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
30720            }
30721            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
30722                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
30723            }
30724            SyntaxKind::PARALLEL_FUNC_OPTION => {
30725                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
30726            }
30727            SyntaxKind::RESET_FUNC_OPTION => {
30728                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
30729            }
30730            SyntaxKind::RETURN_FUNC_OPTION => {
30731                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
30732            }
30733            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
30734            SyntaxKind::SECURITY_FUNC_OPTION => {
30735                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
30736            }
30737            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
30738            SyntaxKind::STRICT_FUNC_OPTION => {
30739                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
30740            }
30741            SyntaxKind::SUPPORT_FUNC_OPTION => {
30742                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
30743            }
30744            SyntaxKind::TRANSFORM_FUNC_OPTION => {
30745                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
30746            }
30747            SyntaxKind::VOLATILITY_FUNC_OPTION => {
30748                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
30749            }
30750            SyntaxKind::WINDOW_FUNC_OPTION => {
30751                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
30752            }
30753            _ => {
30754                return None;
30755            }
30756        };
30757        Some(res)
30758    }
30759    #[inline]
30760    fn syntax(&self) -> &SyntaxNode {
30761        match self {
30762            FuncOption::AsFuncOption(it) => &it.syntax,
30763            FuncOption::BeginFuncOptionList(it) => &it.syntax,
30764            FuncOption::CostFuncOption(it) => &it.syntax,
30765            FuncOption::LanguageFuncOption(it) => &it.syntax,
30766            FuncOption::LeakproofFuncOption(it) => &it.syntax,
30767            FuncOption::ParallelFuncOption(it) => &it.syntax,
30768            FuncOption::ResetFuncOption(it) => &it.syntax,
30769            FuncOption::ReturnFuncOption(it) => &it.syntax,
30770            FuncOption::RowsFuncOption(it) => &it.syntax,
30771            FuncOption::SecurityFuncOption(it) => &it.syntax,
30772            FuncOption::SetFuncOption(it) => &it.syntax,
30773            FuncOption::StrictFuncOption(it) => &it.syntax,
30774            FuncOption::SupportFuncOption(it) => &it.syntax,
30775            FuncOption::TransformFuncOption(it) => &it.syntax,
30776            FuncOption::VolatilityFuncOption(it) => &it.syntax,
30777            FuncOption::WindowFuncOption(it) => &it.syntax,
30778        }
30779    }
30780}
30781impl From<AsFuncOption> for FuncOption {
30782    #[inline]
30783    fn from(node: AsFuncOption) -> FuncOption {
30784        FuncOption::AsFuncOption(node)
30785    }
30786}
30787impl From<BeginFuncOptionList> for FuncOption {
30788    #[inline]
30789    fn from(node: BeginFuncOptionList) -> FuncOption {
30790        FuncOption::BeginFuncOptionList(node)
30791    }
30792}
30793impl From<CostFuncOption> for FuncOption {
30794    #[inline]
30795    fn from(node: CostFuncOption) -> FuncOption {
30796        FuncOption::CostFuncOption(node)
30797    }
30798}
30799impl From<LanguageFuncOption> for FuncOption {
30800    #[inline]
30801    fn from(node: LanguageFuncOption) -> FuncOption {
30802        FuncOption::LanguageFuncOption(node)
30803    }
30804}
30805impl From<LeakproofFuncOption> for FuncOption {
30806    #[inline]
30807    fn from(node: LeakproofFuncOption) -> FuncOption {
30808        FuncOption::LeakproofFuncOption(node)
30809    }
30810}
30811impl From<ParallelFuncOption> for FuncOption {
30812    #[inline]
30813    fn from(node: ParallelFuncOption) -> FuncOption {
30814        FuncOption::ParallelFuncOption(node)
30815    }
30816}
30817impl From<ResetFuncOption> for FuncOption {
30818    #[inline]
30819    fn from(node: ResetFuncOption) -> FuncOption {
30820        FuncOption::ResetFuncOption(node)
30821    }
30822}
30823impl From<ReturnFuncOption> for FuncOption {
30824    #[inline]
30825    fn from(node: ReturnFuncOption) -> FuncOption {
30826        FuncOption::ReturnFuncOption(node)
30827    }
30828}
30829impl From<RowsFuncOption> for FuncOption {
30830    #[inline]
30831    fn from(node: RowsFuncOption) -> FuncOption {
30832        FuncOption::RowsFuncOption(node)
30833    }
30834}
30835impl From<SecurityFuncOption> for FuncOption {
30836    #[inline]
30837    fn from(node: SecurityFuncOption) -> FuncOption {
30838        FuncOption::SecurityFuncOption(node)
30839    }
30840}
30841impl From<SetFuncOption> for FuncOption {
30842    #[inline]
30843    fn from(node: SetFuncOption) -> FuncOption {
30844        FuncOption::SetFuncOption(node)
30845    }
30846}
30847impl From<StrictFuncOption> for FuncOption {
30848    #[inline]
30849    fn from(node: StrictFuncOption) -> FuncOption {
30850        FuncOption::StrictFuncOption(node)
30851    }
30852}
30853impl From<SupportFuncOption> for FuncOption {
30854    #[inline]
30855    fn from(node: SupportFuncOption) -> FuncOption {
30856        FuncOption::SupportFuncOption(node)
30857    }
30858}
30859impl From<TransformFuncOption> for FuncOption {
30860    #[inline]
30861    fn from(node: TransformFuncOption) -> FuncOption {
30862        FuncOption::TransformFuncOption(node)
30863    }
30864}
30865impl From<VolatilityFuncOption> for FuncOption {
30866    #[inline]
30867    fn from(node: VolatilityFuncOption) -> FuncOption {
30868        FuncOption::VolatilityFuncOption(node)
30869    }
30870}
30871impl From<WindowFuncOption> for FuncOption {
30872    #[inline]
30873    fn from(node: WindowFuncOption) -> FuncOption {
30874        FuncOption::WindowFuncOption(node)
30875    }
30876}
30877impl AstNode for GroupBy {
30878    #[inline]
30879    fn can_cast(kind: SyntaxKind) -> bool {
30880        matches!(
30881            kind,
30882            SyntaxKind::GROUPING_CUBE
30883                | SyntaxKind::GROUPING_EXPR
30884                | SyntaxKind::GROUPING_ROLLUP
30885                | SyntaxKind::GROUPING_SETS
30886        )
30887    }
30888    #[inline]
30889    fn cast(syntax: SyntaxNode) -> Option<Self> {
30890        let res = match syntax.kind() {
30891            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
30892            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
30893            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
30894            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
30895            _ => {
30896                return None;
30897            }
30898        };
30899        Some(res)
30900    }
30901    #[inline]
30902    fn syntax(&self) -> &SyntaxNode {
30903        match self {
30904            GroupBy::GroupingCube(it) => &it.syntax,
30905            GroupBy::GroupingExpr(it) => &it.syntax,
30906            GroupBy::GroupingRollup(it) => &it.syntax,
30907            GroupBy::GroupingSets(it) => &it.syntax,
30908        }
30909    }
30910}
30911impl From<GroupingCube> for GroupBy {
30912    #[inline]
30913    fn from(node: GroupingCube) -> GroupBy {
30914        GroupBy::GroupingCube(node)
30915    }
30916}
30917impl From<GroupingExpr> for GroupBy {
30918    #[inline]
30919    fn from(node: GroupingExpr) -> GroupBy {
30920        GroupBy::GroupingExpr(node)
30921    }
30922}
30923impl From<GroupingRollup> for GroupBy {
30924    #[inline]
30925    fn from(node: GroupingRollup) -> GroupBy {
30926        GroupBy::GroupingRollup(node)
30927    }
30928}
30929impl From<GroupingSets> for GroupBy {
30930    #[inline]
30931    fn from(node: GroupingSets) -> GroupBy {
30932        GroupBy::GroupingSets(node)
30933    }
30934}
30935impl AstNode for JoinType {
30936    #[inline]
30937    fn can_cast(kind: SyntaxKind) -> bool {
30938        matches!(
30939            kind,
30940            SyntaxKind::JOIN_CROSS
30941                | SyntaxKind::JOIN_FULL
30942                | SyntaxKind::JOIN_INNER
30943                | SyntaxKind::JOIN_LEFT
30944                | SyntaxKind::JOIN_RIGHT
30945        )
30946    }
30947    #[inline]
30948    fn cast(syntax: SyntaxNode) -> Option<Self> {
30949        let res = match syntax.kind() {
30950            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
30951            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
30952            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
30953            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
30954            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
30955            _ => {
30956                return None;
30957            }
30958        };
30959        Some(res)
30960    }
30961    #[inline]
30962    fn syntax(&self) -> &SyntaxNode {
30963        match self {
30964            JoinType::JoinCross(it) => &it.syntax,
30965            JoinType::JoinFull(it) => &it.syntax,
30966            JoinType::JoinInner(it) => &it.syntax,
30967            JoinType::JoinLeft(it) => &it.syntax,
30968            JoinType::JoinRight(it) => &it.syntax,
30969        }
30970    }
30971}
30972impl From<JoinCross> for JoinType {
30973    #[inline]
30974    fn from(node: JoinCross) -> JoinType {
30975        JoinType::JoinCross(node)
30976    }
30977}
30978impl From<JoinFull> for JoinType {
30979    #[inline]
30980    fn from(node: JoinFull) -> JoinType {
30981        JoinType::JoinFull(node)
30982    }
30983}
30984impl From<JoinInner> for JoinType {
30985    #[inline]
30986    fn from(node: JoinInner) -> JoinType {
30987        JoinType::JoinInner(node)
30988    }
30989}
30990impl From<JoinLeft> for JoinType {
30991    #[inline]
30992    fn from(node: JoinLeft) -> JoinType {
30993        JoinType::JoinLeft(node)
30994    }
30995}
30996impl From<JoinRight> for JoinType {
30997    #[inline]
30998    fn from(node: JoinRight) -> JoinType {
30999        JoinType::JoinRight(node)
31000    }
31001}
31002impl AstNode for JsonBehavior {
31003    #[inline]
31004    fn can_cast(kind: SyntaxKind) -> bool {
31005        matches!(
31006            kind,
31007            SyntaxKind::JSON_BEHAVIOR_DEFAULT
31008                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
31009                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
31010                | SyntaxKind::JSON_BEHAVIOR_ERROR
31011                | SyntaxKind::JSON_BEHAVIOR_FALSE
31012                | SyntaxKind::JSON_BEHAVIOR_NULL
31013                | SyntaxKind::JSON_BEHAVIOR_TRUE
31014                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
31015        )
31016    }
31017    #[inline]
31018    fn cast(syntax: SyntaxNode) -> Option<Self> {
31019        let res = match syntax.kind() {
31020            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
31021                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
31022            }
31023            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
31024                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
31025            }
31026            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
31027                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
31028            }
31029            SyntaxKind::JSON_BEHAVIOR_ERROR => {
31030                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
31031            }
31032            SyntaxKind::JSON_BEHAVIOR_FALSE => {
31033                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
31034            }
31035            SyntaxKind::JSON_BEHAVIOR_NULL => {
31036                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
31037            }
31038            SyntaxKind::JSON_BEHAVIOR_TRUE => {
31039                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
31040            }
31041            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
31042                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
31043            }
31044            _ => {
31045                return None;
31046            }
31047        };
31048        Some(res)
31049    }
31050    #[inline]
31051    fn syntax(&self) -> &SyntaxNode {
31052        match self {
31053            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
31054            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
31055            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
31056            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
31057            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
31058            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
31059            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
31060            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
31061        }
31062    }
31063}
31064impl From<JsonBehaviorDefault> for JsonBehavior {
31065    #[inline]
31066    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
31067        JsonBehavior::JsonBehaviorDefault(node)
31068    }
31069}
31070impl From<JsonBehaviorEmptyArray> for JsonBehavior {
31071    #[inline]
31072    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
31073        JsonBehavior::JsonBehaviorEmptyArray(node)
31074    }
31075}
31076impl From<JsonBehaviorEmptyObject> for JsonBehavior {
31077    #[inline]
31078    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
31079        JsonBehavior::JsonBehaviorEmptyObject(node)
31080    }
31081}
31082impl From<JsonBehaviorError> for JsonBehavior {
31083    #[inline]
31084    fn from(node: JsonBehaviorError) -> JsonBehavior {
31085        JsonBehavior::JsonBehaviorError(node)
31086    }
31087}
31088impl From<JsonBehaviorFalse> for JsonBehavior {
31089    #[inline]
31090    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
31091        JsonBehavior::JsonBehaviorFalse(node)
31092    }
31093}
31094impl From<JsonBehaviorNull> for JsonBehavior {
31095    #[inline]
31096    fn from(node: JsonBehaviorNull) -> JsonBehavior {
31097        JsonBehavior::JsonBehaviorNull(node)
31098    }
31099}
31100impl From<JsonBehaviorTrue> for JsonBehavior {
31101    #[inline]
31102    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
31103        JsonBehavior::JsonBehaviorTrue(node)
31104    }
31105}
31106impl From<JsonBehaviorUnknown> for JsonBehavior {
31107    #[inline]
31108    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
31109        JsonBehavior::JsonBehaviorUnknown(node)
31110    }
31111}
31112impl AstNode for MatchType {
31113    #[inline]
31114    fn can_cast(kind: SyntaxKind) -> bool {
31115        matches!(
31116            kind,
31117            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
31118        )
31119    }
31120    #[inline]
31121    fn cast(syntax: SyntaxNode) -> Option<Self> {
31122        let res = match syntax.kind() {
31123            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
31124            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
31125            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
31126            _ => {
31127                return None;
31128            }
31129        };
31130        Some(res)
31131    }
31132    #[inline]
31133    fn syntax(&self) -> &SyntaxNode {
31134        match self {
31135            MatchType::MatchFull(it) => &it.syntax,
31136            MatchType::MatchPartial(it) => &it.syntax,
31137            MatchType::MatchSimple(it) => &it.syntax,
31138        }
31139    }
31140}
31141impl From<MatchFull> for MatchType {
31142    #[inline]
31143    fn from(node: MatchFull) -> MatchType {
31144        MatchType::MatchFull(node)
31145    }
31146}
31147impl From<MatchPartial> for MatchType {
31148    #[inline]
31149    fn from(node: MatchPartial) -> MatchType {
31150        MatchType::MatchPartial(node)
31151    }
31152}
31153impl From<MatchSimple> for MatchType {
31154    #[inline]
31155    fn from(node: MatchSimple) -> MatchType {
31156        MatchType::MatchSimple(node)
31157    }
31158}
31159impl AstNode for MergeAction {
31160    #[inline]
31161    fn can_cast(kind: SyntaxKind) -> bool {
31162        matches!(
31163            kind,
31164            SyntaxKind::MERGE_DELETE
31165                | SyntaxKind::MERGE_DO_NOTHING
31166                | SyntaxKind::MERGE_INSERT
31167                | SyntaxKind::MERGE_UPDATE
31168        )
31169    }
31170    #[inline]
31171    fn cast(syntax: SyntaxNode) -> Option<Self> {
31172        let res = match syntax.kind() {
31173            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
31174            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
31175            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
31176            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
31177            _ => {
31178                return None;
31179            }
31180        };
31181        Some(res)
31182    }
31183    #[inline]
31184    fn syntax(&self) -> &SyntaxNode {
31185        match self {
31186            MergeAction::MergeDelete(it) => &it.syntax,
31187            MergeAction::MergeDoNothing(it) => &it.syntax,
31188            MergeAction::MergeInsert(it) => &it.syntax,
31189            MergeAction::MergeUpdate(it) => &it.syntax,
31190        }
31191    }
31192}
31193impl From<MergeDelete> for MergeAction {
31194    #[inline]
31195    fn from(node: MergeDelete) -> MergeAction {
31196        MergeAction::MergeDelete(node)
31197    }
31198}
31199impl From<MergeDoNothing> for MergeAction {
31200    #[inline]
31201    fn from(node: MergeDoNothing) -> MergeAction {
31202        MergeAction::MergeDoNothing(node)
31203    }
31204}
31205impl From<MergeInsert> for MergeAction {
31206    #[inline]
31207    fn from(node: MergeInsert) -> MergeAction {
31208        MergeAction::MergeInsert(node)
31209    }
31210}
31211impl From<MergeUpdate> for MergeAction {
31212    #[inline]
31213    fn from(node: MergeUpdate) -> MergeAction {
31214        MergeAction::MergeUpdate(node)
31215    }
31216}
31217impl AstNode for MergeWhenClause {
31218    #[inline]
31219    fn can_cast(kind: SyntaxKind) -> bool {
31220        matches!(
31221            kind,
31222            SyntaxKind::MERGE_WHEN_MATCHED
31223                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
31224                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
31225        )
31226    }
31227    #[inline]
31228    fn cast(syntax: SyntaxNode) -> Option<Self> {
31229        let res = match syntax.kind() {
31230            SyntaxKind::MERGE_WHEN_MATCHED => {
31231                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
31232            }
31233            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
31234                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
31235            }
31236            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
31237                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
31238            }
31239            _ => {
31240                return None;
31241            }
31242        };
31243        Some(res)
31244    }
31245    #[inline]
31246    fn syntax(&self) -> &SyntaxNode {
31247        match self {
31248            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
31249            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
31250            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
31251        }
31252    }
31253}
31254impl From<MergeWhenMatched> for MergeWhenClause {
31255    #[inline]
31256    fn from(node: MergeWhenMatched) -> MergeWhenClause {
31257        MergeWhenClause::MergeWhenMatched(node)
31258    }
31259}
31260impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
31261    #[inline]
31262    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
31263        MergeWhenClause::MergeWhenNotMatchedSource(node)
31264    }
31265}
31266impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
31267    #[inline]
31268    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
31269        MergeWhenClause::MergeWhenNotMatchedTarget(node)
31270    }
31271}
31272impl AstNode for OnCommitAction {
31273    #[inline]
31274    fn can_cast(kind: SyntaxKind) -> bool {
31275        matches!(
31276            kind,
31277            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
31278        )
31279    }
31280    #[inline]
31281    fn cast(syntax: SyntaxNode) -> Option<Self> {
31282        let res = match syntax.kind() {
31283            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
31284            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
31285            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
31286            _ => {
31287                return None;
31288            }
31289        };
31290        Some(res)
31291    }
31292    #[inline]
31293    fn syntax(&self) -> &SyntaxNode {
31294        match self {
31295            OnCommitAction::DeleteRows(it) => &it.syntax,
31296            OnCommitAction::Drop(it) => &it.syntax,
31297            OnCommitAction::PreserveRows(it) => &it.syntax,
31298        }
31299    }
31300}
31301impl From<DeleteRows> for OnCommitAction {
31302    #[inline]
31303    fn from(node: DeleteRows) -> OnCommitAction {
31304        OnCommitAction::DeleteRows(node)
31305    }
31306}
31307impl From<Drop> for OnCommitAction {
31308    #[inline]
31309    fn from(node: Drop) -> OnCommitAction {
31310        OnCommitAction::Drop(node)
31311    }
31312}
31313impl From<PreserveRows> for OnCommitAction {
31314    #[inline]
31315    fn from(node: PreserveRows) -> OnCommitAction {
31316        OnCommitAction::PreserveRows(node)
31317    }
31318}
31319impl AstNode for ParamMode {
31320    #[inline]
31321    fn can_cast(kind: SyntaxKind) -> bool {
31322        matches!(
31323            kind,
31324            SyntaxKind::PARAM_IN
31325                | SyntaxKind::PARAM_IN_OUT
31326                | SyntaxKind::PARAM_OUT
31327                | SyntaxKind::PARAM_VARIADIC
31328        )
31329    }
31330    #[inline]
31331    fn cast(syntax: SyntaxNode) -> Option<Self> {
31332        let res = match syntax.kind() {
31333            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
31334            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
31335            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
31336            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
31337            _ => {
31338                return None;
31339            }
31340        };
31341        Some(res)
31342    }
31343    #[inline]
31344    fn syntax(&self) -> &SyntaxNode {
31345        match self {
31346            ParamMode::ParamIn(it) => &it.syntax,
31347            ParamMode::ParamInOut(it) => &it.syntax,
31348            ParamMode::ParamOut(it) => &it.syntax,
31349            ParamMode::ParamVariadic(it) => &it.syntax,
31350        }
31351    }
31352}
31353impl From<ParamIn> for ParamMode {
31354    #[inline]
31355    fn from(node: ParamIn) -> ParamMode {
31356        ParamMode::ParamIn(node)
31357    }
31358}
31359impl From<ParamInOut> for ParamMode {
31360    #[inline]
31361    fn from(node: ParamInOut) -> ParamMode {
31362        ParamMode::ParamInOut(node)
31363    }
31364}
31365impl From<ParamOut> for ParamMode {
31366    #[inline]
31367    fn from(node: ParamOut) -> ParamMode {
31368        ParamMode::ParamOut(node)
31369    }
31370}
31371impl From<ParamVariadic> for ParamMode {
31372    #[inline]
31373    fn from(node: ParamVariadic) -> ParamMode {
31374        ParamMode::ParamVariadic(node)
31375    }
31376}
31377impl AstNode for PartitionType {
31378    #[inline]
31379    fn can_cast(kind: SyntaxKind) -> bool {
31380        matches!(
31381            kind,
31382            SyntaxKind::PARTITION_DEFAULT
31383                | SyntaxKind::PARTITION_FOR_VALUES_FROM
31384                | SyntaxKind::PARTITION_FOR_VALUES_IN
31385                | SyntaxKind::PARTITION_FOR_VALUES_WITH
31386        )
31387    }
31388    #[inline]
31389    fn cast(syntax: SyntaxNode) -> Option<Self> {
31390        let res = match syntax.kind() {
31391            SyntaxKind::PARTITION_DEFAULT => {
31392                PartitionType::PartitionDefault(PartitionDefault { syntax })
31393            }
31394            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
31395                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
31396            }
31397            SyntaxKind::PARTITION_FOR_VALUES_IN => {
31398                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
31399            }
31400            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
31401                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
31402            }
31403            _ => {
31404                return None;
31405            }
31406        };
31407        Some(res)
31408    }
31409    #[inline]
31410    fn syntax(&self) -> &SyntaxNode {
31411        match self {
31412            PartitionType::PartitionDefault(it) => &it.syntax,
31413            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
31414            PartitionType::PartitionForValuesIn(it) => &it.syntax,
31415            PartitionType::PartitionForValuesWith(it) => &it.syntax,
31416        }
31417    }
31418}
31419impl From<PartitionDefault> for PartitionType {
31420    #[inline]
31421    fn from(node: PartitionDefault) -> PartitionType {
31422        PartitionType::PartitionDefault(node)
31423    }
31424}
31425impl From<PartitionForValuesFrom> for PartitionType {
31426    #[inline]
31427    fn from(node: PartitionForValuesFrom) -> PartitionType {
31428        PartitionType::PartitionForValuesFrom(node)
31429    }
31430}
31431impl From<PartitionForValuesIn> for PartitionType {
31432    #[inline]
31433    fn from(node: PartitionForValuesIn) -> PartitionType {
31434        PartitionType::PartitionForValuesIn(node)
31435    }
31436}
31437impl From<PartitionForValuesWith> for PartitionType {
31438    #[inline]
31439    fn from(node: PartitionForValuesWith) -> PartitionType {
31440        PartitionType::PartitionForValuesWith(node)
31441    }
31442}
31443impl AstNode for PreparableStmt {
31444    #[inline]
31445    fn can_cast(kind: SyntaxKind) -> bool {
31446        matches!(
31447            kind,
31448            SyntaxKind::COMPOUND_SELECT
31449                | SyntaxKind::DELETE
31450                | SyntaxKind::INSERT
31451                | SyntaxKind::MERGE
31452                | SyntaxKind::SELECT
31453                | SyntaxKind::SELECT_INTO
31454                | SyntaxKind::TABLE
31455                | SyntaxKind::UPDATE
31456                | SyntaxKind::VALUES
31457        )
31458    }
31459    #[inline]
31460    fn cast(syntax: SyntaxNode) -> Option<Self> {
31461        let res = match syntax.kind() {
31462            SyntaxKind::COMPOUND_SELECT => {
31463                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
31464            }
31465            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
31466            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
31467            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
31468            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
31469            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
31470            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
31471            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
31472            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
31473            _ => {
31474                return None;
31475            }
31476        };
31477        Some(res)
31478    }
31479    #[inline]
31480    fn syntax(&self) -> &SyntaxNode {
31481        match self {
31482            PreparableStmt::CompoundSelect(it) => &it.syntax,
31483            PreparableStmt::Delete(it) => &it.syntax,
31484            PreparableStmt::Insert(it) => &it.syntax,
31485            PreparableStmt::Merge(it) => &it.syntax,
31486            PreparableStmt::Select(it) => &it.syntax,
31487            PreparableStmt::SelectInto(it) => &it.syntax,
31488            PreparableStmt::Table(it) => &it.syntax,
31489            PreparableStmt::Update(it) => &it.syntax,
31490            PreparableStmt::Values(it) => &it.syntax,
31491        }
31492    }
31493}
31494impl From<CompoundSelect> for PreparableStmt {
31495    #[inline]
31496    fn from(node: CompoundSelect) -> PreparableStmt {
31497        PreparableStmt::CompoundSelect(node)
31498    }
31499}
31500impl From<Delete> for PreparableStmt {
31501    #[inline]
31502    fn from(node: Delete) -> PreparableStmt {
31503        PreparableStmt::Delete(node)
31504    }
31505}
31506impl From<Insert> for PreparableStmt {
31507    #[inline]
31508    fn from(node: Insert) -> PreparableStmt {
31509        PreparableStmt::Insert(node)
31510    }
31511}
31512impl From<Merge> for PreparableStmt {
31513    #[inline]
31514    fn from(node: Merge) -> PreparableStmt {
31515        PreparableStmt::Merge(node)
31516    }
31517}
31518impl From<Select> for PreparableStmt {
31519    #[inline]
31520    fn from(node: Select) -> PreparableStmt {
31521        PreparableStmt::Select(node)
31522    }
31523}
31524impl From<SelectInto> for PreparableStmt {
31525    #[inline]
31526    fn from(node: SelectInto) -> PreparableStmt {
31527        PreparableStmt::SelectInto(node)
31528    }
31529}
31530impl From<Table> for PreparableStmt {
31531    #[inline]
31532    fn from(node: Table) -> PreparableStmt {
31533        PreparableStmt::Table(node)
31534    }
31535}
31536impl From<Update> for PreparableStmt {
31537    #[inline]
31538    fn from(node: Update) -> PreparableStmt {
31539        PreparableStmt::Update(node)
31540    }
31541}
31542impl From<Values> for PreparableStmt {
31543    #[inline]
31544    fn from(node: Values) -> PreparableStmt {
31545        PreparableStmt::Values(node)
31546    }
31547}
31548impl AstNode for RefAction {
31549    #[inline]
31550    fn can_cast(kind: SyntaxKind) -> bool {
31551        matches!(
31552            kind,
31553            SyntaxKind::CASCADE
31554                | SyntaxKind::NO_ACTION
31555                | SyntaxKind::RESTRICT
31556                | SyntaxKind::SET_DEFAULT_COLUMNS
31557                | SyntaxKind::SET_NULL_COLUMNS
31558        )
31559    }
31560    #[inline]
31561    fn cast(syntax: SyntaxNode) -> Option<Self> {
31562        let res = match syntax.kind() {
31563            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
31564            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
31565            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
31566            SyntaxKind::SET_DEFAULT_COLUMNS => {
31567                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
31568            }
31569            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
31570            _ => {
31571                return None;
31572            }
31573        };
31574        Some(res)
31575    }
31576    #[inline]
31577    fn syntax(&self) -> &SyntaxNode {
31578        match self {
31579            RefAction::Cascade(it) => &it.syntax,
31580            RefAction::NoAction(it) => &it.syntax,
31581            RefAction::Restrict(it) => &it.syntax,
31582            RefAction::SetDefaultColumns(it) => &it.syntax,
31583            RefAction::SetNullColumns(it) => &it.syntax,
31584        }
31585    }
31586}
31587impl From<Cascade> for RefAction {
31588    #[inline]
31589    fn from(node: Cascade) -> RefAction {
31590        RefAction::Cascade(node)
31591    }
31592}
31593impl From<NoAction> for RefAction {
31594    #[inline]
31595    fn from(node: NoAction) -> RefAction {
31596        RefAction::NoAction(node)
31597    }
31598}
31599impl From<Restrict> for RefAction {
31600    #[inline]
31601    fn from(node: Restrict) -> RefAction {
31602        RefAction::Restrict(node)
31603    }
31604}
31605impl From<SetDefaultColumns> for RefAction {
31606    #[inline]
31607    fn from(node: SetDefaultColumns) -> RefAction {
31608        RefAction::SetDefaultColumns(node)
31609    }
31610}
31611impl From<SetNullColumns> for RefAction {
31612    #[inline]
31613    fn from(node: SetNullColumns) -> RefAction {
31614        RefAction::SetNullColumns(node)
31615    }
31616}
31617impl AstNode for SchemaElement {
31618    #[inline]
31619    fn can_cast(kind: SyntaxKind) -> bool {
31620        matches!(
31621            kind,
31622            SyntaxKind::CREATE_INDEX
31623                | SyntaxKind::CREATE_SEQUENCE
31624                | SyntaxKind::CREATE_TABLE
31625                | SyntaxKind::CREATE_TRIGGER
31626                | SyntaxKind::CREATE_VIEW
31627                | SyntaxKind::GRANT
31628        )
31629    }
31630    #[inline]
31631    fn cast(syntax: SyntaxNode) -> Option<Self> {
31632        let res = match syntax.kind() {
31633            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
31634            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
31635            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
31636            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
31637            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
31638            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
31639            _ => {
31640                return None;
31641            }
31642        };
31643        Some(res)
31644    }
31645    #[inline]
31646    fn syntax(&self) -> &SyntaxNode {
31647        match self {
31648            SchemaElement::CreateIndex(it) => &it.syntax,
31649            SchemaElement::CreateSequence(it) => &it.syntax,
31650            SchemaElement::CreateTable(it) => &it.syntax,
31651            SchemaElement::CreateTrigger(it) => &it.syntax,
31652            SchemaElement::CreateView(it) => &it.syntax,
31653            SchemaElement::Grant(it) => &it.syntax,
31654        }
31655    }
31656}
31657impl From<CreateIndex> for SchemaElement {
31658    #[inline]
31659    fn from(node: CreateIndex) -> SchemaElement {
31660        SchemaElement::CreateIndex(node)
31661    }
31662}
31663impl From<CreateSequence> for SchemaElement {
31664    #[inline]
31665    fn from(node: CreateSequence) -> SchemaElement {
31666        SchemaElement::CreateSequence(node)
31667    }
31668}
31669impl From<CreateTable> for SchemaElement {
31670    #[inline]
31671    fn from(node: CreateTable) -> SchemaElement {
31672        SchemaElement::CreateTable(node)
31673    }
31674}
31675impl From<CreateTrigger> for SchemaElement {
31676    #[inline]
31677    fn from(node: CreateTrigger) -> SchemaElement {
31678        SchemaElement::CreateTrigger(node)
31679    }
31680}
31681impl From<CreateView> for SchemaElement {
31682    #[inline]
31683    fn from(node: CreateView) -> SchemaElement {
31684        SchemaElement::CreateView(node)
31685    }
31686}
31687impl From<Grant> for SchemaElement {
31688    #[inline]
31689    fn from(node: Grant) -> SchemaElement {
31690        SchemaElement::Grant(node)
31691    }
31692}
31693impl AstNode for SelectVariant {
31694    #[inline]
31695    fn can_cast(kind: SyntaxKind) -> bool {
31696        matches!(
31697            kind,
31698            SyntaxKind::COMPOUND_SELECT
31699                | SyntaxKind::PAREN_SELECT
31700                | SyntaxKind::SELECT
31701                | SyntaxKind::SELECT_INTO
31702                | SyntaxKind::TABLE
31703                | SyntaxKind::VALUES
31704        )
31705    }
31706    #[inline]
31707    fn cast(syntax: SyntaxNode) -> Option<Self> {
31708        let res = match syntax.kind() {
31709            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
31710            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
31711            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
31712            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
31713            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
31714            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
31715            _ => {
31716                return None;
31717            }
31718        };
31719        Some(res)
31720    }
31721    #[inline]
31722    fn syntax(&self) -> &SyntaxNode {
31723        match self {
31724            SelectVariant::CompoundSelect(it) => &it.syntax,
31725            SelectVariant::ParenSelect(it) => &it.syntax,
31726            SelectVariant::Select(it) => &it.syntax,
31727            SelectVariant::SelectInto(it) => &it.syntax,
31728            SelectVariant::Table(it) => &it.syntax,
31729            SelectVariant::Values(it) => &it.syntax,
31730        }
31731    }
31732}
31733impl From<CompoundSelect> for SelectVariant {
31734    #[inline]
31735    fn from(node: CompoundSelect) -> SelectVariant {
31736        SelectVariant::CompoundSelect(node)
31737    }
31738}
31739impl From<ParenSelect> for SelectVariant {
31740    #[inline]
31741    fn from(node: ParenSelect) -> SelectVariant {
31742        SelectVariant::ParenSelect(node)
31743    }
31744}
31745impl From<Select> for SelectVariant {
31746    #[inline]
31747    fn from(node: Select) -> SelectVariant {
31748        SelectVariant::Select(node)
31749    }
31750}
31751impl From<SelectInto> for SelectVariant {
31752    #[inline]
31753    fn from(node: SelectInto) -> SelectVariant {
31754        SelectVariant::SelectInto(node)
31755    }
31756}
31757impl From<Table> for SelectVariant {
31758    #[inline]
31759    fn from(node: Table) -> SelectVariant {
31760        SelectVariant::Table(node)
31761    }
31762}
31763impl From<Values> for SelectVariant {
31764    #[inline]
31765    fn from(node: Values) -> SelectVariant {
31766        SelectVariant::Values(node)
31767    }
31768}
31769impl AstNode for SetColumn {
31770    #[inline]
31771    fn can_cast(kind: SyntaxKind) -> bool {
31772        matches!(
31773            kind,
31774            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
31775        )
31776    }
31777    #[inline]
31778    fn cast(syntax: SyntaxNode) -> Option<Self> {
31779        let res = match syntax.kind() {
31780            SyntaxKind::SET_MULTIPLE_COLUMNS => {
31781                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
31782            }
31783            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
31784            _ => {
31785                return None;
31786            }
31787        };
31788        Some(res)
31789    }
31790    #[inline]
31791    fn syntax(&self) -> &SyntaxNode {
31792        match self {
31793            SetColumn::SetMultipleColumns(it) => &it.syntax,
31794            SetColumn::SetSingleColumn(it) => &it.syntax,
31795        }
31796    }
31797}
31798impl From<SetMultipleColumns> for SetColumn {
31799    #[inline]
31800    fn from(node: SetMultipleColumns) -> SetColumn {
31801        SetColumn::SetMultipleColumns(node)
31802    }
31803}
31804impl From<SetSingleColumn> for SetColumn {
31805    #[inline]
31806    fn from(node: SetSingleColumn) -> SetColumn {
31807        SetColumn::SetSingleColumn(node)
31808    }
31809}
31810impl AstNode for Stmt {
31811    #[inline]
31812    fn can_cast(kind: SyntaxKind) -> bool {
31813        matches!(
31814            kind,
31815            SyntaxKind::ALTER_AGGREGATE
31816                | SyntaxKind::ALTER_COLLATION
31817                | SyntaxKind::ALTER_CONVERSION
31818                | SyntaxKind::ALTER_DATABASE
31819                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
31820                | SyntaxKind::ALTER_DOMAIN
31821                | SyntaxKind::ALTER_EVENT_TRIGGER
31822                | SyntaxKind::ALTER_EXTENSION
31823                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
31824                | SyntaxKind::ALTER_FOREIGN_TABLE
31825                | SyntaxKind::ALTER_FUNCTION
31826                | SyntaxKind::ALTER_GROUP
31827                | SyntaxKind::ALTER_INDEX
31828                | SyntaxKind::ALTER_LANGUAGE
31829                | SyntaxKind::ALTER_LARGE_OBJECT
31830                | SyntaxKind::ALTER_MATERIALIZED_VIEW
31831                | SyntaxKind::ALTER_OPERATOR
31832                | SyntaxKind::ALTER_OPERATOR_CLASS
31833                | SyntaxKind::ALTER_OPERATOR_FAMILY
31834                | SyntaxKind::ALTER_POLICY
31835                | SyntaxKind::ALTER_PROCEDURE
31836                | SyntaxKind::ALTER_PUBLICATION
31837                | SyntaxKind::ALTER_ROLE
31838                | SyntaxKind::ALTER_ROUTINE
31839                | SyntaxKind::ALTER_RULE
31840                | SyntaxKind::ALTER_SCHEMA
31841                | SyntaxKind::ALTER_SEQUENCE
31842                | SyntaxKind::ALTER_SERVER
31843                | SyntaxKind::ALTER_STATISTICS
31844                | SyntaxKind::ALTER_SUBSCRIPTION
31845                | SyntaxKind::ALTER_SYSTEM
31846                | SyntaxKind::ALTER_TABLE
31847                | SyntaxKind::ALTER_TABLESPACE
31848                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
31849                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
31850                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
31851                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
31852                | SyntaxKind::ALTER_TRIGGER
31853                | SyntaxKind::ALTER_TYPE
31854                | SyntaxKind::ALTER_USER
31855                | SyntaxKind::ALTER_USER_MAPPING
31856                | SyntaxKind::ALTER_VIEW
31857                | SyntaxKind::ANALYZE
31858                | SyntaxKind::BEGIN
31859                | SyntaxKind::CALL
31860                | SyntaxKind::CHECKPOINT
31861                | SyntaxKind::CLOSE
31862                | SyntaxKind::CLUSTER
31863                | SyntaxKind::COMMENT_ON
31864                | SyntaxKind::COMMIT
31865                | SyntaxKind::COPY
31866                | SyntaxKind::CREATE_ACCESS_METHOD
31867                | SyntaxKind::CREATE_AGGREGATE
31868                | SyntaxKind::CREATE_CAST
31869                | SyntaxKind::CREATE_COLLATION
31870                | SyntaxKind::CREATE_CONVERSION
31871                | SyntaxKind::CREATE_DATABASE
31872                | SyntaxKind::CREATE_DOMAIN
31873                | SyntaxKind::CREATE_EVENT_TRIGGER
31874                | SyntaxKind::CREATE_EXTENSION
31875                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
31876                | SyntaxKind::CREATE_FOREIGN_TABLE
31877                | SyntaxKind::CREATE_FUNCTION
31878                | SyntaxKind::CREATE_GROUP
31879                | SyntaxKind::CREATE_INDEX
31880                | SyntaxKind::CREATE_LANGUAGE
31881                | SyntaxKind::CREATE_MATERIALIZED_VIEW
31882                | SyntaxKind::CREATE_OPERATOR
31883                | SyntaxKind::CREATE_OPERATOR_CLASS
31884                | SyntaxKind::CREATE_OPERATOR_FAMILY
31885                | SyntaxKind::CREATE_POLICY
31886                | SyntaxKind::CREATE_PROCEDURE
31887                | SyntaxKind::CREATE_PUBLICATION
31888                | SyntaxKind::CREATE_ROLE
31889                | SyntaxKind::CREATE_RULE
31890                | SyntaxKind::CREATE_SCHEMA
31891                | SyntaxKind::CREATE_SEQUENCE
31892                | SyntaxKind::CREATE_SERVER
31893                | SyntaxKind::CREATE_STATISTICS
31894                | SyntaxKind::CREATE_SUBSCRIPTION
31895                | SyntaxKind::CREATE_TABLE
31896                | SyntaxKind::CREATE_TABLE_AS
31897                | SyntaxKind::CREATE_TABLESPACE
31898                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
31899                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
31900                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
31901                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
31902                | SyntaxKind::CREATE_TRANSFORM
31903                | SyntaxKind::CREATE_TRIGGER
31904                | SyntaxKind::CREATE_TYPE
31905                | SyntaxKind::CREATE_USER
31906                | SyntaxKind::CREATE_USER_MAPPING
31907                | SyntaxKind::CREATE_VIEW
31908                | SyntaxKind::DEALLOCATE
31909                | SyntaxKind::DECLARE
31910                | SyntaxKind::DELETE
31911                | SyntaxKind::DISCARD
31912                | SyntaxKind::DO
31913                | SyntaxKind::DROP_ACCESS_METHOD
31914                | SyntaxKind::DROP_AGGREGATE
31915                | SyntaxKind::DROP_CAST
31916                | SyntaxKind::DROP_COLLATION
31917                | SyntaxKind::DROP_CONVERSION
31918                | SyntaxKind::DROP_DATABASE
31919                | SyntaxKind::DROP_DOMAIN
31920                | SyntaxKind::DROP_EVENT_TRIGGER
31921                | SyntaxKind::DROP_EXTENSION
31922                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
31923                | SyntaxKind::DROP_FOREIGN_TABLE
31924                | SyntaxKind::DROP_FUNCTION
31925                | SyntaxKind::DROP_GROUP
31926                | SyntaxKind::DROP_INDEX
31927                | SyntaxKind::DROP_LANGUAGE
31928                | SyntaxKind::DROP_MATERIALIZED_VIEW
31929                | SyntaxKind::DROP_OPERATOR
31930                | SyntaxKind::DROP_OPERATOR_CLASS
31931                | SyntaxKind::DROP_OPERATOR_FAMILY
31932                | SyntaxKind::DROP_OWNED
31933                | SyntaxKind::DROP_POLICY
31934                | SyntaxKind::DROP_PROCEDURE
31935                | SyntaxKind::DROP_PUBLICATION
31936                | SyntaxKind::DROP_ROLE
31937                | SyntaxKind::DROP_ROUTINE
31938                | SyntaxKind::DROP_RULE
31939                | SyntaxKind::DROP_SCHEMA
31940                | SyntaxKind::DROP_SEQUENCE
31941                | SyntaxKind::DROP_SERVER
31942                | SyntaxKind::DROP_STATISTICS
31943                | SyntaxKind::DROP_SUBSCRIPTION
31944                | SyntaxKind::DROP_TABLE
31945                | SyntaxKind::DROP_TABLESPACE
31946                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
31947                | SyntaxKind::DROP_TEXT_SEARCH_DICT
31948                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
31949                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
31950                | SyntaxKind::DROP_TRANSFORM
31951                | SyntaxKind::DROP_TRIGGER
31952                | SyntaxKind::DROP_TYPE
31953                | SyntaxKind::DROP_USER
31954                | SyntaxKind::DROP_USER_MAPPING
31955                | SyntaxKind::DROP_VIEW
31956                | SyntaxKind::EXECUTE
31957                | SyntaxKind::EXPLAIN
31958                | SyntaxKind::FETCH
31959                | SyntaxKind::GRANT
31960                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
31961                | SyntaxKind::INSERT
31962                | SyntaxKind::LISTEN
31963                | SyntaxKind::LOAD
31964                | SyntaxKind::LOCK
31965                | SyntaxKind::MERGE
31966                | SyntaxKind::MOVE
31967                | SyntaxKind::NOTIFY
31968                | SyntaxKind::PAREN_SELECT
31969                | SyntaxKind::PREPARE
31970                | SyntaxKind::PREPARE_TRANSACTION
31971                | SyntaxKind::REASSIGN
31972                | SyntaxKind::REFRESH
31973                | SyntaxKind::REINDEX
31974                | SyntaxKind::RELEASE_SAVEPOINT
31975                | SyntaxKind::RESET
31976                | SyntaxKind::RESET_SESSION_AUTH
31977                | SyntaxKind::REVOKE
31978                | SyntaxKind::ROLLBACK
31979                | SyntaxKind::SAVEPOINT
31980                | SyntaxKind::SECURITY_LABEL
31981                | SyntaxKind::SELECT
31982                | SyntaxKind::SELECT_INTO
31983                | SyntaxKind::SET
31984                | SyntaxKind::SET_CONSTRAINTS
31985                | SyntaxKind::SET_ROLE
31986                | SyntaxKind::SET_SESSION_AUTH
31987                | SyntaxKind::SET_TRANSACTION
31988                | SyntaxKind::SHOW
31989                | SyntaxKind::TABLE
31990                | SyntaxKind::TRUNCATE
31991                | SyntaxKind::UNLISTEN
31992                | SyntaxKind::UPDATE
31993                | SyntaxKind::VACUUM
31994                | SyntaxKind::VALUES
31995        )
31996    }
31997    #[inline]
31998    fn cast(syntax: SyntaxNode) -> Option<Self> {
31999        let res = match syntax.kind() {
32000            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
32001            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
32002            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
32003            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
32004            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
32005                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
32006            }
32007            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
32008            SyntaxKind::ALTER_EVENT_TRIGGER => {
32009                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
32010            }
32011            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
32012            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
32013                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
32014            }
32015            SyntaxKind::ALTER_FOREIGN_TABLE => {
32016                Stmt::AlterForeignTable(AlterForeignTable { syntax })
32017            }
32018            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
32019            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
32020            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
32021            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
32022            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
32023            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
32024                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
32025            }
32026            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
32027            SyntaxKind::ALTER_OPERATOR_CLASS => {
32028                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
32029            }
32030            SyntaxKind::ALTER_OPERATOR_FAMILY => {
32031                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
32032            }
32033            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
32034            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
32035            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
32036            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
32037            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
32038            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
32039            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
32040            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
32041            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
32042            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
32043            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
32044            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
32045            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
32046            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
32047            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
32048                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
32049            }
32050            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
32051                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
32052            }
32053            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
32054                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
32055            }
32056            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
32057                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
32058            }
32059            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
32060            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
32061            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
32062            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
32063            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
32064            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
32065            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
32066            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
32067            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
32068            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
32069            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
32070            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
32071            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
32072            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
32073            SyntaxKind::CREATE_ACCESS_METHOD => {
32074                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
32075            }
32076            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
32077            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
32078            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
32079            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
32080            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
32081            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
32082            SyntaxKind::CREATE_EVENT_TRIGGER => {
32083                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
32084            }
32085            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
32086            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
32087                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
32088            }
32089            SyntaxKind::CREATE_FOREIGN_TABLE => {
32090                Stmt::CreateForeignTable(CreateForeignTable { syntax })
32091            }
32092            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
32093            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
32094            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
32095            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
32096            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
32097                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
32098            }
32099            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
32100            SyntaxKind::CREATE_OPERATOR_CLASS => {
32101                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
32102            }
32103            SyntaxKind::CREATE_OPERATOR_FAMILY => {
32104                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
32105            }
32106            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
32107            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
32108            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
32109            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
32110            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
32111            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
32112            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
32113            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
32114            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
32115            SyntaxKind::CREATE_SUBSCRIPTION => {
32116                Stmt::CreateSubscription(CreateSubscription { syntax })
32117            }
32118            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
32119            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
32120            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
32121            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
32122                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
32123            }
32124            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
32125                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
32126            }
32127            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
32128                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
32129            }
32130            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
32131                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
32132            }
32133            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
32134            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
32135            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
32136            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
32137            SyntaxKind::CREATE_USER_MAPPING => {
32138                Stmt::CreateUserMapping(CreateUserMapping { syntax })
32139            }
32140            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
32141            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
32142            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
32143            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
32144            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
32145            SyntaxKind::DO => Stmt::Do(Do { syntax }),
32146            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
32147            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
32148            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
32149            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
32150            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
32151            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
32152            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
32153            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
32154            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
32155            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
32156                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
32157            }
32158            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
32159            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
32160            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
32161            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
32162            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
32163            SyntaxKind::DROP_MATERIALIZED_VIEW => {
32164                Stmt::DropMaterializedView(DropMaterializedView { syntax })
32165            }
32166            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
32167            SyntaxKind::DROP_OPERATOR_CLASS => {
32168                Stmt::DropOperatorClass(DropOperatorClass { syntax })
32169            }
32170            SyntaxKind::DROP_OPERATOR_FAMILY => {
32171                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
32172            }
32173            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
32174            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
32175            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
32176            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
32177            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
32178            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
32179            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
32180            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
32181            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
32182            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
32183            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
32184            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
32185            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
32186            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
32187            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
32188                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
32189            }
32190            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
32191                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
32192            }
32193            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
32194                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
32195            }
32196            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
32197                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
32198            }
32199            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
32200            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
32201            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
32202            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
32203            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
32204            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
32205            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
32206            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
32207            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
32208            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
32209            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
32210                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
32211            }
32212            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
32213            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
32214            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
32215            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
32216            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
32217            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
32218            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
32219            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
32220            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
32221            SyntaxKind::PREPARE_TRANSACTION => {
32222                Stmt::PrepareTransaction(PrepareTransaction { syntax })
32223            }
32224            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
32225            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
32226            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
32227            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
32228            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
32229            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
32230            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
32231            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
32232            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
32233            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
32234            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
32235            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
32236            SyntaxKind::SET => Stmt::Set(Set { syntax }),
32237            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
32238            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
32239            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
32240            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
32241            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
32242            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
32243            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
32244            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
32245            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
32246            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
32247            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
32248            _ => {
32249                return None;
32250            }
32251        };
32252        Some(res)
32253    }
32254    #[inline]
32255    fn syntax(&self) -> &SyntaxNode {
32256        match self {
32257            Stmt::AlterAggregate(it) => &it.syntax,
32258            Stmt::AlterCollation(it) => &it.syntax,
32259            Stmt::AlterConversion(it) => &it.syntax,
32260            Stmt::AlterDatabase(it) => &it.syntax,
32261            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
32262            Stmt::AlterDomain(it) => &it.syntax,
32263            Stmt::AlterEventTrigger(it) => &it.syntax,
32264            Stmt::AlterExtension(it) => &it.syntax,
32265            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
32266            Stmt::AlterForeignTable(it) => &it.syntax,
32267            Stmt::AlterFunction(it) => &it.syntax,
32268            Stmt::AlterGroup(it) => &it.syntax,
32269            Stmt::AlterIndex(it) => &it.syntax,
32270            Stmt::AlterLanguage(it) => &it.syntax,
32271            Stmt::AlterLargeObject(it) => &it.syntax,
32272            Stmt::AlterMaterializedView(it) => &it.syntax,
32273            Stmt::AlterOperator(it) => &it.syntax,
32274            Stmt::AlterOperatorClass(it) => &it.syntax,
32275            Stmt::AlterOperatorFamily(it) => &it.syntax,
32276            Stmt::AlterPolicy(it) => &it.syntax,
32277            Stmt::AlterProcedure(it) => &it.syntax,
32278            Stmt::AlterPublication(it) => &it.syntax,
32279            Stmt::AlterRole(it) => &it.syntax,
32280            Stmt::AlterRoutine(it) => &it.syntax,
32281            Stmt::AlterRule(it) => &it.syntax,
32282            Stmt::AlterSchema(it) => &it.syntax,
32283            Stmt::AlterSequence(it) => &it.syntax,
32284            Stmt::AlterServer(it) => &it.syntax,
32285            Stmt::AlterStatistics(it) => &it.syntax,
32286            Stmt::AlterSubscription(it) => &it.syntax,
32287            Stmt::AlterSystem(it) => &it.syntax,
32288            Stmt::AlterTable(it) => &it.syntax,
32289            Stmt::AlterTablespace(it) => &it.syntax,
32290            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
32291            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
32292            Stmt::AlterTextSearchParser(it) => &it.syntax,
32293            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
32294            Stmt::AlterTrigger(it) => &it.syntax,
32295            Stmt::AlterType(it) => &it.syntax,
32296            Stmt::AlterUser(it) => &it.syntax,
32297            Stmt::AlterUserMapping(it) => &it.syntax,
32298            Stmt::AlterView(it) => &it.syntax,
32299            Stmt::Analyze(it) => &it.syntax,
32300            Stmt::Begin(it) => &it.syntax,
32301            Stmt::Call(it) => &it.syntax,
32302            Stmt::Checkpoint(it) => &it.syntax,
32303            Stmt::Close(it) => &it.syntax,
32304            Stmt::Cluster(it) => &it.syntax,
32305            Stmt::CommentOn(it) => &it.syntax,
32306            Stmt::Commit(it) => &it.syntax,
32307            Stmt::Copy(it) => &it.syntax,
32308            Stmt::CreateAccessMethod(it) => &it.syntax,
32309            Stmt::CreateAggregate(it) => &it.syntax,
32310            Stmt::CreateCast(it) => &it.syntax,
32311            Stmt::CreateCollation(it) => &it.syntax,
32312            Stmt::CreateConversion(it) => &it.syntax,
32313            Stmt::CreateDatabase(it) => &it.syntax,
32314            Stmt::CreateDomain(it) => &it.syntax,
32315            Stmt::CreateEventTrigger(it) => &it.syntax,
32316            Stmt::CreateExtension(it) => &it.syntax,
32317            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
32318            Stmt::CreateForeignTable(it) => &it.syntax,
32319            Stmt::CreateFunction(it) => &it.syntax,
32320            Stmt::CreateGroup(it) => &it.syntax,
32321            Stmt::CreateIndex(it) => &it.syntax,
32322            Stmt::CreateLanguage(it) => &it.syntax,
32323            Stmt::CreateMaterializedView(it) => &it.syntax,
32324            Stmt::CreateOperator(it) => &it.syntax,
32325            Stmt::CreateOperatorClass(it) => &it.syntax,
32326            Stmt::CreateOperatorFamily(it) => &it.syntax,
32327            Stmt::CreatePolicy(it) => &it.syntax,
32328            Stmt::CreateProcedure(it) => &it.syntax,
32329            Stmt::CreatePublication(it) => &it.syntax,
32330            Stmt::CreateRole(it) => &it.syntax,
32331            Stmt::CreateRule(it) => &it.syntax,
32332            Stmt::CreateSchema(it) => &it.syntax,
32333            Stmt::CreateSequence(it) => &it.syntax,
32334            Stmt::CreateServer(it) => &it.syntax,
32335            Stmt::CreateStatistics(it) => &it.syntax,
32336            Stmt::CreateSubscription(it) => &it.syntax,
32337            Stmt::CreateTable(it) => &it.syntax,
32338            Stmt::CreateTableAs(it) => &it.syntax,
32339            Stmt::CreateTablespace(it) => &it.syntax,
32340            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
32341            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
32342            Stmt::CreateTextSearchParser(it) => &it.syntax,
32343            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
32344            Stmt::CreateTransform(it) => &it.syntax,
32345            Stmt::CreateTrigger(it) => &it.syntax,
32346            Stmt::CreateType(it) => &it.syntax,
32347            Stmt::CreateUser(it) => &it.syntax,
32348            Stmt::CreateUserMapping(it) => &it.syntax,
32349            Stmt::CreateView(it) => &it.syntax,
32350            Stmt::Deallocate(it) => &it.syntax,
32351            Stmt::Declare(it) => &it.syntax,
32352            Stmt::Delete(it) => &it.syntax,
32353            Stmt::Discard(it) => &it.syntax,
32354            Stmt::Do(it) => &it.syntax,
32355            Stmt::DropAccessMethod(it) => &it.syntax,
32356            Stmt::DropAggregate(it) => &it.syntax,
32357            Stmt::DropCast(it) => &it.syntax,
32358            Stmt::DropCollation(it) => &it.syntax,
32359            Stmt::DropConversion(it) => &it.syntax,
32360            Stmt::DropDatabase(it) => &it.syntax,
32361            Stmt::DropDomain(it) => &it.syntax,
32362            Stmt::DropEventTrigger(it) => &it.syntax,
32363            Stmt::DropExtension(it) => &it.syntax,
32364            Stmt::DropForeignDataWrapper(it) => &it.syntax,
32365            Stmt::DropForeignTable(it) => &it.syntax,
32366            Stmt::DropFunction(it) => &it.syntax,
32367            Stmt::DropGroup(it) => &it.syntax,
32368            Stmt::DropIndex(it) => &it.syntax,
32369            Stmt::DropLanguage(it) => &it.syntax,
32370            Stmt::DropMaterializedView(it) => &it.syntax,
32371            Stmt::DropOperator(it) => &it.syntax,
32372            Stmt::DropOperatorClass(it) => &it.syntax,
32373            Stmt::DropOperatorFamily(it) => &it.syntax,
32374            Stmt::DropOwned(it) => &it.syntax,
32375            Stmt::DropPolicy(it) => &it.syntax,
32376            Stmt::DropProcedure(it) => &it.syntax,
32377            Stmt::DropPublication(it) => &it.syntax,
32378            Stmt::DropRole(it) => &it.syntax,
32379            Stmt::DropRoutine(it) => &it.syntax,
32380            Stmt::DropRule(it) => &it.syntax,
32381            Stmt::DropSchema(it) => &it.syntax,
32382            Stmt::DropSequence(it) => &it.syntax,
32383            Stmt::DropServer(it) => &it.syntax,
32384            Stmt::DropStatistics(it) => &it.syntax,
32385            Stmt::DropSubscription(it) => &it.syntax,
32386            Stmt::DropTable(it) => &it.syntax,
32387            Stmt::DropTablespace(it) => &it.syntax,
32388            Stmt::DropTextSearchConfig(it) => &it.syntax,
32389            Stmt::DropTextSearchDict(it) => &it.syntax,
32390            Stmt::DropTextSearchParser(it) => &it.syntax,
32391            Stmt::DropTextSearchTemplate(it) => &it.syntax,
32392            Stmt::DropTransform(it) => &it.syntax,
32393            Stmt::DropTrigger(it) => &it.syntax,
32394            Stmt::DropType(it) => &it.syntax,
32395            Stmt::DropUser(it) => &it.syntax,
32396            Stmt::DropUserMapping(it) => &it.syntax,
32397            Stmt::DropView(it) => &it.syntax,
32398            Stmt::Execute(it) => &it.syntax,
32399            Stmt::Explain(it) => &it.syntax,
32400            Stmt::Fetch(it) => &it.syntax,
32401            Stmt::Grant(it) => &it.syntax,
32402            Stmt::ImportForeignSchema(it) => &it.syntax,
32403            Stmt::Insert(it) => &it.syntax,
32404            Stmt::Listen(it) => &it.syntax,
32405            Stmt::Load(it) => &it.syntax,
32406            Stmt::Lock(it) => &it.syntax,
32407            Stmt::Merge(it) => &it.syntax,
32408            Stmt::Move(it) => &it.syntax,
32409            Stmt::Notify(it) => &it.syntax,
32410            Stmt::ParenSelect(it) => &it.syntax,
32411            Stmt::Prepare(it) => &it.syntax,
32412            Stmt::PrepareTransaction(it) => &it.syntax,
32413            Stmt::Reassign(it) => &it.syntax,
32414            Stmt::Refresh(it) => &it.syntax,
32415            Stmt::Reindex(it) => &it.syntax,
32416            Stmt::ReleaseSavepoint(it) => &it.syntax,
32417            Stmt::Reset(it) => &it.syntax,
32418            Stmt::ResetSessionAuth(it) => &it.syntax,
32419            Stmt::Revoke(it) => &it.syntax,
32420            Stmt::Rollback(it) => &it.syntax,
32421            Stmt::Savepoint(it) => &it.syntax,
32422            Stmt::SecurityLabel(it) => &it.syntax,
32423            Stmt::Select(it) => &it.syntax,
32424            Stmt::SelectInto(it) => &it.syntax,
32425            Stmt::Set(it) => &it.syntax,
32426            Stmt::SetConstraints(it) => &it.syntax,
32427            Stmt::SetRole(it) => &it.syntax,
32428            Stmt::SetSessionAuth(it) => &it.syntax,
32429            Stmt::SetTransaction(it) => &it.syntax,
32430            Stmt::Show(it) => &it.syntax,
32431            Stmt::Table(it) => &it.syntax,
32432            Stmt::Truncate(it) => &it.syntax,
32433            Stmt::Unlisten(it) => &it.syntax,
32434            Stmt::Update(it) => &it.syntax,
32435            Stmt::Vacuum(it) => &it.syntax,
32436            Stmt::Values(it) => &it.syntax,
32437        }
32438    }
32439}
32440impl From<AlterAggregate> for Stmt {
32441    #[inline]
32442    fn from(node: AlterAggregate) -> Stmt {
32443        Stmt::AlterAggregate(node)
32444    }
32445}
32446impl From<AlterCollation> for Stmt {
32447    #[inline]
32448    fn from(node: AlterCollation) -> Stmt {
32449        Stmt::AlterCollation(node)
32450    }
32451}
32452impl From<AlterConversion> for Stmt {
32453    #[inline]
32454    fn from(node: AlterConversion) -> Stmt {
32455        Stmt::AlterConversion(node)
32456    }
32457}
32458impl From<AlterDatabase> for Stmt {
32459    #[inline]
32460    fn from(node: AlterDatabase) -> Stmt {
32461        Stmt::AlterDatabase(node)
32462    }
32463}
32464impl From<AlterDefaultPrivileges> for Stmt {
32465    #[inline]
32466    fn from(node: AlterDefaultPrivileges) -> Stmt {
32467        Stmt::AlterDefaultPrivileges(node)
32468    }
32469}
32470impl From<AlterDomain> for Stmt {
32471    #[inline]
32472    fn from(node: AlterDomain) -> Stmt {
32473        Stmt::AlterDomain(node)
32474    }
32475}
32476impl From<AlterEventTrigger> for Stmt {
32477    #[inline]
32478    fn from(node: AlterEventTrigger) -> Stmt {
32479        Stmt::AlterEventTrigger(node)
32480    }
32481}
32482impl From<AlterExtension> for Stmt {
32483    #[inline]
32484    fn from(node: AlterExtension) -> Stmt {
32485        Stmt::AlterExtension(node)
32486    }
32487}
32488impl From<AlterForeignDataWrapper> for Stmt {
32489    #[inline]
32490    fn from(node: AlterForeignDataWrapper) -> Stmt {
32491        Stmt::AlterForeignDataWrapper(node)
32492    }
32493}
32494impl From<AlterForeignTable> for Stmt {
32495    #[inline]
32496    fn from(node: AlterForeignTable) -> Stmt {
32497        Stmt::AlterForeignTable(node)
32498    }
32499}
32500impl From<AlterFunction> for Stmt {
32501    #[inline]
32502    fn from(node: AlterFunction) -> Stmt {
32503        Stmt::AlterFunction(node)
32504    }
32505}
32506impl From<AlterGroup> for Stmt {
32507    #[inline]
32508    fn from(node: AlterGroup) -> Stmt {
32509        Stmt::AlterGroup(node)
32510    }
32511}
32512impl From<AlterIndex> for Stmt {
32513    #[inline]
32514    fn from(node: AlterIndex) -> Stmt {
32515        Stmt::AlterIndex(node)
32516    }
32517}
32518impl From<AlterLanguage> for Stmt {
32519    #[inline]
32520    fn from(node: AlterLanguage) -> Stmt {
32521        Stmt::AlterLanguage(node)
32522    }
32523}
32524impl From<AlterLargeObject> for Stmt {
32525    #[inline]
32526    fn from(node: AlterLargeObject) -> Stmt {
32527        Stmt::AlterLargeObject(node)
32528    }
32529}
32530impl From<AlterMaterializedView> for Stmt {
32531    #[inline]
32532    fn from(node: AlterMaterializedView) -> Stmt {
32533        Stmt::AlterMaterializedView(node)
32534    }
32535}
32536impl From<AlterOperator> for Stmt {
32537    #[inline]
32538    fn from(node: AlterOperator) -> Stmt {
32539        Stmt::AlterOperator(node)
32540    }
32541}
32542impl From<AlterOperatorClass> for Stmt {
32543    #[inline]
32544    fn from(node: AlterOperatorClass) -> Stmt {
32545        Stmt::AlterOperatorClass(node)
32546    }
32547}
32548impl From<AlterOperatorFamily> for Stmt {
32549    #[inline]
32550    fn from(node: AlterOperatorFamily) -> Stmt {
32551        Stmt::AlterOperatorFamily(node)
32552    }
32553}
32554impl From<AlterPolicy> for Stmt {
32555    #[inline]
32556    fn from(node: AlterPolicy) -> Stmt {
32557        Stmt::AlterPolicy(node)
32558    }
32559}
32560impl From<AlterProcedure> for Stmt {
32561    #[inline]
32562    fn from(node: AlterProcedure) -> Stmt {
32563        Stmt::AlterProcedure(node)
32564    }
32565}
32566impl From<AlterPublication> for Stmt {
32567    #[inline]
32568    fn from(node: AlterPublication) -> Stmt {
32569        Stmt::AlterPublication(node)
32570    }
32571}
32572impl From<AlterRole> for Stmt {
32573    #[inline]
32574    fn from(node: AlterRole) -> Stmt {
32575        Stmt::AlterRole(node)
32576    }
32577}
32578impl From<AlterRoutine> for Stmt {
32579    #[inline]
32580    fn from(node: AlterRoutine) -> Stmt {
32581        Stmt::AlterRoutine(node)
32582    }
32583}
32584impl From<AlterRule> for Stmt {
32585    #[inline]
32586    fn from(node: AlterRule) -> Stmt {
32587        Stmt::AlterRule(node)
32588    }
32589}
32590impl From<AlterSchema> for Stmt {
32591    #[inline]
32592    fn from(node: AlterSchema) -> Stmt {
32593        Stmt::AlterSchema(node)
32594    }
32595}
32596impl From<AlterSequence> for Stmt {
32597    #[inline]
32598    fn from(node: AlterSequence) -> Stmt {
32599        Stmt::AlterSequence(node)
32600    }
32601}
32602impl From<AlterServer> for Stmt {
32603    #[inline]
32604    fn from(node: AlterServer) -> Stmt {
32605        Stmt::AlterServer(node)
32606    }
32607}
32608impl From<AlterStatistics> for Stmt {
32609    #[inline]
32610    fn from(node: AlterStatistics) -> Stmt {
32611        Stmt::AlterStatistics(node)
32612    }
32613}
32614impl From<AlterSubscription> for Stmt {
32615    #[inline]
32616    fn from(node: AlterSubscription) -> Stmt {
32617        Stmt::AlterSubscription(node)
32618    }
32619}
32620impl From<AlterSystem> for Stmt {
32621    #[inline]
32622    fn from(node: AlterSystem) -> Stmt {
32623        Stmt::AlterSystem(node)
32624    }
32625}
32626impl From<AlterTable> for Stmt {
32627    #[inline]
32628    fn from(node: AlterTable) -> Stmt {
32629        Stmt::AlterTable(node)
32630    }
32631}
32632impl From<AlterTablespace> for Stmt {
32633    #[inline]
32634    fn from(node: AlterTablespace) -> Stmt {
32635        Stmt::AlterTablespace(node)
32636    }
32637}
32638impl From<AlterTextSearchConfiguration> for Stmt {
32639    #[inline]
32640    fn from(node: AlterTextSearchConfiguration) -> Stmt {
32641        Stmt::AlterTextSearchConfiguration(node)
32642    }
32643}
32644impl From<AlterTextSearchDictionary> for Stmt {
32645    #[inline]
32646    fn from(node: AlterTextSearchDictionary) -> Stmt {
32647        Stmt::AlterTextSearchDictionary(node)
32648    }
32649}
32650impl From<AlterTextSearchParser> for Stmt {
32651    #[inline]
32652    fn from(node: AlterTextSearchParser) -> Stmt {
32653        Stmt::AlterTextSearchParser(node)
32654    }
32655}
32656impl From<AlterTextSearchTemplate> for Stmt {
32657    #[inline]
32658    fn from(node: AlterTextSearchTemplate) -> Stmt {
32659        Stmt::AlterTextSearchTemplate(node)
32660    }
32661}
32662impl From<AlterTrigger> for Stmt {
32663    #[inline]
32664    fn from(node: AlterTrigger) -> Stmt {
32665        Stmt::AlterTrigger(node)
32666    }
32667}
32668impl From<AlterType> for Stmt {
32669    #[inline]
32670    fn from(node: AlterType) -> Stmt {
32671        Stmt::AlterType(node)
32672    }
32673}
32674impl From<AlterUser> for Stmt {
32675    #[inline]
32676    fn from(node: AlterUser) -> Stmt {
32677        Stmt::AlterUser(node)
32678    }
32679}
32680impl From<AlterUserMapping> for Stmt {
32681    #[inline]
32682    fn from(node: AlterUserMapping) -> Stmt {
32683        Stmt::AlterUserMapping(node)
32684    }
32685}
32686impl From<AlterView> for Stmt {
32687    #[inline]
32688    fn from(node: AlterView) -> Stmt {
32689        Stmt::AlterView(node)
32690    }
32691}
32692impl From<Analyze> for Stmt {
32693    #[inline]
32694    fn from(node: Analyze) -> Stmt {
32695        Stmt::Analyze(node)
32696    }
32697}
32698impl From<Begin> for Stmt {
32699    #[inline]
32700    fn from(node: Begin) -> Stmt {
32701        Stmt::Begin(node)
32702    }
32703}
32704impl From<Call> for Stmt {
32705    #[inline]
32706    fn from(node: Call) -> Stmt {
32707        Stmt::Call(node)
32708    }
32709}
32710impl From<Checkpoint> for Stmt {
32711    #[inline]
32712    fn from(node: Checkpoint) -> Stmt {
32713        Stmt::Checkpoint(node)
32714    }
32715}
32716impl From<Close> for Stmt {
32717    #[inline]
32718    fn from(node: Close) -> Stmt {
32719        Stmt::Close(node)
32720    }
32721}
32722impl From<Cluster> for Stmt {
32723    #[inline]
32724    fn from(node: Cluster) -> Stmt {
32725        Stmt::Cluster(node)
32726    }
32727}
32728impl From<CommentOn> for Stmt {
32729    #[inline]
32730    fn from(node: CommentOn) -> Stmt {
32731        Stmt::CommentOn(node)
32732    }
32733}
32734impl From<Commit> for Stmt {
32735    #[inline]
32736    fn from(node: Commit) -> Stmt {
32737        Stmt::Commit(node)
32738    }
32739}
32740impl From<Copy> for Stmt {
32741    #[inline]
32742    fn from(node: Copy) -> Stmt {
32743        Stmt::Copy(node)
32744    }
32745}
32746impl From<CreateAccessMethod> for Stmt {
32747    #[inline]
32748    fn from(node: CreateAccessMethod) -> Stmt {
32749        Stmt::CreateAccessMethod(node)
32750    }
32751}
32752impl From<CreateAggregate> for Stmt {
32753    #[inline]
32754    fn from(node: CreateAggregate) -> Stmt {
32755        Stmt::CreateAggregate(node)
32756    }
32757}
32758impl From<CreateCast> for Stmt {
32759    #[inline]
32760    fn from(node: CreateCast) -> Stmt {
32761        Stmt::CreateCast(node)
32762    }
32763}
32764impl From<CreateCollation> for Stmt {
32765    #[inline]
32766    fn from(node: CreateCollation) -> Stmt {
32767        Stmt::CreateCollation(node)
32768    }
32769}
32770impl From<CreateConversion> for Stmt {
32771    #[inline]
32772    fn from(node: CreateConversion) -> Stmt {
32773        Stmt::CreateConversion(node)
32774    }
32775}
32776impl From<CreateDatabase> for Stmt {
32777    #[inline]
32778    fn from(node: CreateDatabase) -> Stmt {
32779        Stmt::CreateDatabase(node)
32780    }
32781}
32782impl From<CreateDomain> for Stmt {
32783    #[inline]
32784    fn from(node: CreateDomain) -> Stmt {
32785        Stmt::CreateDomain(node)
32786    }
32787}
32788impl From<CreateEventTrigger> for Stmt {
32789    #[inline]
32790    fn from(node: CreateEventTrigger) -> Stmt {
32791        Stmt::CreateEventTrigger(node)
32792    }
32793}
32794impl From<CreateExtension> for Stmt {
32795    #[inline]
32796    fn from(node: CreateExtension) -> Stmt {
32797        Stmt::CreateExtension(node)
32798    }
32799}
32800impl From<CreateForeignDataWrapper> for Stmt {
32801    #[inline]
32802    fn from(node: CreateForeignDataWrapper) -> Stmt {
32803        Stmt::CreateForeignDataWrapper(node)
32804    }
32805}
32806impl From<CreateForeignTable> for Stmt {
32807    #[inline]
32808    fn from(node: CreateForeignTable) -> Stmt {
32809        Stmt::CreateForeignTable(node)
32810    }
32811}
32812impl From<CreateFunction> for Stmt {
32813    #[inline]
32814    fn from(node: CreateFunction) -> Stmt {
32815        Stmt::CreateFunction(node)
32816    }
32817}
32818impl From<CreateGroup> for Stmt {
32819    #[inline]
32820    fn from(node: CreateGroup) -> Stmt {
32821        Stmt::CreateGroup(node)
32822    }
32823}
32824impl From<CreateIndex> for Stmt {
32825    #[inline]
32826    fn from(node: CreateIndex) -> Stmt {
32827        Stmt::CreateIndex(node)
32828    }
32829}
32830impl From<CreateLanguage> for Stmt {
32831    #[inline]
32832    fn from(node: CreateLanguage) -> Stmt {
32833        Stmt::CreateLanguage(node)
32834    }
32835}
32836impl From<CreateMaterializedView> for Stmt {
32837    #[inline]
32838    fn from(node: CreateMaterializedView) -> Stmt {
32839        Stmt::CreateMaterializedView(node)
32840    }
32841}
32842impl From<CreateOperator> for Stmt {
32843    #[inline]
32844    fn from(node: CreateOperator) -> Stmt {
32845        Stmt::CreateOperator(node)
32846    }
32847}
32848impl From<CreateOperatorClass> for Stmt {
32849    #[inline]
32850    fn from(node: CreateOperatorClass) -> Stmt {
32851        Stmt::CreateOperatorClass(node)
32852    }
32853}
32854impl From<CreateOperatorFamily> for Stmt {
32855    #[inline]
32856    fn from(node: CreateOperatorFamily) -> Stmt {
32857        Stmt::CreateOperatorFamily(node)
32858    }
32859}
32860impl From<CreatePolicy> for Stmt {
32861    #[inline]
32862    fn from(node: CreatePolicy) -> Stmt {
32863        Stmt::CreatePolicy(node)
32864    }
32865}
32866impl From<CreateProcedure> for Stmt {
32867    #[inline]
32868    fn from(node: CreateProcedure) -> Stmt {
32869        Stmt::CreateProcedure(node)
32870    }
32871}
32872impl From<CreatePublication> for Stmt {
32873    #[inline]
32874    fn from(node: CreatePublication) -> Stmt {
32875        Stmt::CreatePublication(node)
32876    }
32877}
32878impl From<CreateRole> for Stmt {
32879    #[inline]
32880    fn from(node: CreateRole) -> Stmt {
32881        Stmt::CreateRole(node)
32882    }
32883}
32884impl From<CreateRule> for Stmt {
32885    #[inline]
32886    fn from(node: CreateRule) -> Stmt {
32887        Stmt::CreateRule(node)
32888    }
32889}
32890impl From<CreateSchema> for Stmt {
32891    #[inline]
32892    fn from(node: CreateSchema) -> Stmt {
32893        Stmt::CreateSchema(node)
32894    }
32895}
32896impl From<CreateSequence> for Stmt {
32897    #[inline]
32898    fn from(node: CreateSequence) -> Stmt {
32899        Stmt::CreateSequence(node)
32900    }
32901}
32902impl From<CreateServer> for Stmt {
32903    #[inline]
32904    fn from(node: CreateServer) -> Stmt {
32905        Stmt::CreateServer(node)
32906    }
32907}
32908impl From<CreateStatistics> for Stmt {
32909    #[inline]
32910    fn from(node: CreateStatistics) -> Stmt {
32911        Stmt::CreateStatistics(node)
32912    }
32913}
32914impl From<CreateSubscription> for Stmt {
32915    #[inline]
32916    fn from(node: CreateSubscription) -> Stmt {
32917        Stmt::CreateSubscription(node)
32918    }
32919}
32920impl From<CreateTable> for Stmt {
32921    #[inline]
32922    fn from(node: CreateTable) -> Stmt {
32923        Stmt::CreateTable(node)
32924    }
32925}
32926impl From<CreateTableAs> for Stmt {
32927    #[inline]
32928    fn from(node: CreateTableAs) -> Stmt {
32929        Stmt::CreateTableAs(node)
32930    }
32931}
32932impl From<CreateTablespace> for Stmt {
32933    #[inline]
32934    fn from(node: CreateTablespace) -> Stmt {
32935        Stmt::CreateTablespace(node)
32936    }
32937}
32938impl From<CreateTextSearchConfiguration> for Stmt {
32939    #[inline]
32940    fn from(node: CreateTextSearchConfiguration) -> Stmt {
32941        Stmt::CreateTextSearchConfiguration(node)
32942    }
32943}
32944impl From<CreateTextSearchDictionary> for Stmt {
32945    #[inline]
32946    fn from(node: CreateTextSearchDictionary) -> Stmt {
32947        Stmt::CreateTextSearchDictionary(node)
32948    }
32949}
32950impl From<CreateTextSearchParser> for Stmt {
32951    #[inline]
32952    fn from(node: CreateTextSearchParser) -> Stmt {
32953        Stmt::CreateTextSearchParser(node)
32954    }
32955}
32956impl From<CreateTextSearchTemplate> for Stmt {
32957    #[inline]
32958    fn from(node: CreateTextSearchTemplate) -> Stmt {
32959        Stmt::CreateTextSearchTemplate(node)
32960    }
32961}
32962impl From<CreateTransform> for Stmt {
32963    #[inline]
32964    fn from(node: CreateTransform) -> Stmt {
32965        Stmt::CreateTransform(node)
32966    }
32967}
32968impl From<CreateTrigger> for Stmt {
32969    #[inline]
32970    fn from(node: CreateTrigger) -> Stmt {
32971        Stmt::CreateTrigger(node)
32972    }
32973}
32974impl From<CreateType> for Stmt {
32975    #[inline]
32976    fn from(node: CreateType) -> Stmt {
32977        Stmt::CreateType(node)
32978    }
32979}
32980impl From<CreateUser> for Stmt {
32981    #[inline]
32982    fn from(node: CreateUser) -> Stmt {
32983        Stmt::CreateUser(node)
32984    }
32985}
32986impl From<CreateUserMapping> for Stmt {
32987    #[inline]
32988    fn from(node: CreateUserMapping) -> Stmt {
32989        Stmt::CreateUserMapping(node)
32990    }
32991}
32992impl From<CreateView> for Stmt {
32993    #[inline]
32994    fn from(node: CreateView) -> Stmt {
32995        Stmt::CreateView(node)
32996    }
32997}
32998impl From<Deallocate> for Stmt {
32999    #[inline]
33000    fn from(node: Deallocate) -> Stmt {
33001        Stmt::Deallocate(node)
33002    }
33003}
33004impl From<Declare> for Stmt {
33005    #[inline]
33006    fn from(node: Declare) -> Stmt {
33007        Stmt::Declare(node)
33008    }
33009}
33010impl From<Delete> for Stmt {
33011    #[inline]
33012    fn from(node: Delete) -> Stmt {
33013        Stmt::Delete(node)
33014    }
33015}
33016impl From<Discard> for Stmt {
33017    #[inline]
33018    fn from(node: Discard) -> Stmt {
33019        Stmt::Discard(node)
33020    }
33021}
33022impl From<Do> for Stmt {
33023    #[inline]
33024    fn from(node: Do) -> Stmt {
33025        Stmt::Do(node)
33026    }
33027}
33028impl From<DropAccessMethod> for Stmt {
33029    #[inline]
33030    fn from(node: DropAccessMethod) -> Stmt {
33031        Stmt::DropAccessMethod(node)
33032    }
33033}
33034impl From<DropAggregate> for Stmt {
33035    #[inline]
33036    fn from(node: DropAggregate) -> Stmt {
33037        Stmt::DropAggregate(node)
33038    }
33039}
33040impl From<DropCast> for Stmt {
33041    #[inline]
33042    fn from(node: DropCast) -> Stmt {
33043        Stmt::DropCast(node)
33044    }
33045}
33046impl From<DropCollation> for Stmt {
33047    #[inline]
33048    fn from(node: DropCollation) -> Stmt {
33049        Stmt::DropCollation(node)
33050    }
33051}
33052impl From<DropConversion> for Stmt {
33053    #[inline]
33054    fn from(node: DropConversion) -> Stmt {
33055        Stmt::DropConversion(node)
33056    }
33057}
33058impl From<DropDatabase> for Stmt {
33059    #[inline]
33060    fn from(node: DropDatabase) -> Stmt {
33061        Stmt::DropDatabase(node)
33062    }
33063}
33064impl From<DropDomain> for Stmt {
33065    #[inline]
33066    fn from(node: DropDomain) -> Stmt {
33067        Stmt::DropDomain(node)
33068    }
33069}
33070impl From<DropEventTrigger> for Stmt {
33071    #[inline]
33072    fn from(node: DropEventTrigger) -> Stmt {
33073        Stmt::DropEventTrigger(node)
33074    }
33075}
33076impl From<DropExtension> for Stmt {
33077    #[inline]
33078    fn from(node: DropExtension) -> Stmt {
33079        Stmt::DropExtension(node)
33080    }
33081}
33082impl From<DropForeignDataWrapper> for Stmt {
33083    #[inline]
33084    fn from(node: DropForeignDataWrapper) -> Stmt {
33085        Stmt::DropForeignDataWrapper(node)
33086    }
33087}
33088impl From<DropForeignTable> for Stmt {
33089    #[inline]
33090    fn from(node: DropForeignTable) -> Stmt {
33091        Stmt::DropForeignTable(node)
33092    }
33093}
33094impl From<DropFunction> for Stmt {
33095    #[inline]
33096    fn from(node: DropFunction) -> Stmt {
33097        Stmt::DropFunction(node)
33098    }
33099}
33100impl From<DropGroup> for Stmt {
33101    #[inline]
33102    fn from(node: DropGroup) -> Stmt {
33103        Stmt::DropGroup(node)
33104    }
33105}
33106impl From<DropIndex> for Stmt {
33107    #[inline]
33108    fn from(node: DropIndex) -> Stmt {
33109        Stmt::DropIndex(node)
33110    }
33111}
33112impl From<DropLanguage> for Stmt {
33113    #[inline]
33114    fn from(node: DropLanguage) -> Stmt {
33115        Stmt::DropLanguage(node)
33116    }
33117}
33118impl From<DropMaterializedView> for Stmt {
33119    #[inline]
33120    fn from(node: DropMaterializedView) -> Stmt {
33121        Stmt::DropMaterializedView(node)
33122    }
33123}
33124impl From<DropOperator> for Stmt {
33125    #[inline]
33126    fn from(node: DropOperator) -> Stmt {
33127        Stmt::DropOperator(node)
33128    }
33129}
33130impl From<DropOperatorClass> for Stmt {
33131    #[inline]
33132    fn from(node: DropOperatorClass) -> Stmt {
33133        Stmt::DropOperatorClass(node)
33134    }
33135}
33136impl From<DropOperatorFamily> for Stmt {
33137    #[inline]
33138    fn from(node: DropOperatorFamily) -> Stmt {
33139        Stmt::DropOperatorFamily(node)
33140    }
33141}
33142impl From<DropOwned> for Stmt {
33143    #[inline]
33144    fn from(node: DropOwned) -> Stmt {
33145        Stmt::DropOwned(node)
33146    }
33147}
33148impl From<DropPolicy> for Stmt {
33149    #[inline]
33150    fn from(node: DropPolicy) -> Stmt {
33151        Stmt::DropPolicy(node)
33152    }
33153}
33154impl From<DropProcedure> for Stmt {
33155    #[inline]
33156    fn from(node: DropProcedure) -> Stmt {
33157        Stmt::DropProcedure(node)
33158    }
33159}
33160impl From<DropPublication> for Stmt {
33161    #[inline]
33162    fn from(node: DropPublication) -> Stmt {
33163        Stmt::DropPublication(node)
33164    }
33165}
33166impl From<DropRole> for Stmt {
33167    #[inline]
33168    fn from(node: DropRole) -> Stmt {
33169        Stmt::DropRole(node)
33170    }
33171}
33172impl From<DropRoutine> for Stmt {
33173    #[inline]
33174    fn from(node: DropRoutine) -> Stmt {
33175        Stmt::DropRoutine(node)
33176    }
33177}
33178impl From<DropRule> for Stmt {
33179    #[inline]
33180    fn from(node: DropRule) -> Stmt {
33181        Stmt::DropRule(node)
33182    }
33183}
33184impl From<DropSchema> for Stmt {
33185    #[inline]
33186    fn from(node: DropSchema) -> Stmt {
33187        Stmt::DropSchema(node)
33188    }
33189}
33190impl From<DropSequence> for Stmt {
33191    #[inline]
33192    fn from(node: DropSequence) -> Stmt {
33193        Stmt::DropSequence(node)
33194    }
33195}
33196impl From<DropServer> for Stmt {
33197    #[inline]
33198    fn from(node: DropServer) -> Stmt {
33199        Stmt::DropServer(node)
33200    }
33201}
33202impl From<DropStatistics> for Stmt {
33203    #[inline]
33204    fn from(node: DropStatistics) -> Stmt {
33205        Stmt::DropStatistics(node)
33206    }
33207}
33208impl From<DropSubscription> for Stmt {
33209    #[inline]
33210    fn from(node: DropSubscription) -> Stmt {
33211        Stmt::DropSubscription(node)
33212    }
33213}
33214impl From<DropTable> for Stmt {
33215    #[inline]
33216    fn from(node: DropTable) -> Stmt {
33217        Stmt::DropTable(node)
33218    }
33219}
33220impl From<DropTablespace> for Stmt {
33221    #[inline]
33222    fn from(node: DropTablespace) -> Stmt {
33223        Stmt::DropTablespace(node)
33224    }
33225}
33226impl From<DropTextSearchConfig> for Stmt {
33227    #[inline]
33228    fn from(node: DropTextSearchConfig) -> Stmt {
33229        Stmt::DropTextSearchConfig(node)
33230    }
33231}
33232impl From<DropTextSearchDict> for Stmt {
33233    #[inline]
33234    fn from(node: DropTextSearchDict) -> Stmt {
33235        Stmt::DropTextSearchDict(node)
33236    }
33237}
33238impl From<DropTextSearchParser> for Stmt {
33239    #[inline]
33240    fn from(node: DropTextSearchParser) -> Stmt {
33241        Stmt::DropTextSearchParser(node)
33242    }
33243}
33244impl From<DropTextSearchTemplate> for Stmt {
33245    #[inline]
33246    fn from(node: DropTextSearchTemplate) -> Stmt {
33247        Stmt::DropTextSearchTemplate(node)
33248    }
33249}
33250impl From<DropTransform> for Stmt {
33251    #[inline]
33252    fn from(node: DropTransform) -> Stmt {
33253        Stmt::DropTransform(node)
33254    }
33255}
33256impl From<DropTrigger> for Stmt {
33257    #[inline]
33258    fn from(node: DropTrigger) -> Stmt {
33259        Stmt::DropTrigger(node)
33260    }
33261}
33262impl From<DropType> for Stmt {
33263    #[inline]
33264    fn from(node: DropType) -> Stmt {
33265        Stmt::DropType(node)
33266    }
33267}
33268impl From<DropUser> for Stmt {
33269    #[inline]
33270    fn from(node: DropUser) -> Stmt {
33271        Stmt::DropUser(node)
33272    }
33273}
33274impl From<DropUserMapping> for Stmt {
33275    #[inline]
33276    fn from(node: DropUserMapping) -> Stmt {
33277        Stmt::DropUserMapping(node)
33278    }
33279}
33280impl From<DropView> for Stmt {
33281    #[inline]
33282    fn from(node: DropView) -> Stmt {
33283        Stmt::DropView(node)
33284    }
33285}
33286impl From<Execute> for Stmt {
33287    #[inline]
33288    fn from(node: Execute) -> Stmt {
33289        Stmt::Execute(node)
33290    }
33291}
33292impl From<Explain> for Stmt {
33293    #[inline]
33294    fn from(node: Explain) -> Stmt {
33295        Stmt::Explain(node)
33296    }
33297}
33298impl From<Fetch> for Stmt {
33299    #[inline]
33300    fn from(node: Fetch) -> Stmt {
33301        Stmt::Fetch(node)
33302    }
33303}
33304impl From<Grant> for Stmt {
33305    #[inline]
33306    fn from(node: Grant) -> Stmt {
33307        Stmt::Grant(node)
33308    }
33309}
33310impl From<ImportForeignSchema> for Stmt {
33311    #[inline]
33312    fn from(node: ImportForeignSchema) -> Stmt {
33313        Stmt::ImportForeignSchema(node)
33314    }
33315}
33316impl From<Insert> for Stmt {
33317    #[inline]
33318    fn from(node: Insert) -> Stmt {
33319        Stmt::Insert(node)
33320    }
33321}
33322impl From<Listen> for Stmt {
33323    #[inline]
33324    fn from(node: Listen) -> Stmt {
33325        Stmt::Listen(node)
33326    }
33327}
33328impl From<Load> for Stmt {
33329    #[inline]
33330    fn from(node: Load) -> Stmt {
33331        Stmt::Load(node)
33332    }
33333}
33334impl From<Lock> for Stmt {
33335    #[inline]
33336    fn from(node: Lock) -> Stmt {
33337        Stmt::Lock(node)
33338    }
33339}
33340impl From<Merge> for Stmt {
33341    #[inline]
33342    fn from(node: Merge) -> Stmt {
33343        Stmt::Merge(node)
33344    }
33345}
33346impl From<Move> for Stmt {
33347    #[inline]
33348    fn from(node: Move) -> Stmt {
33349        Stmt::Move(node)
33350    }
33351}
33352impl From<Notify> for Stmt {
33353    #[inline]
33354    fn from(node: Notify) -> Stmt {
33355        Stmt::Notify(node)
33356    }
33357}
33358impl From<ParenSelect> for Stmt {
33359    #[inline]
33360    fn from(node: ParenSelect) -> Stmt {
33361        Stmt::ParenSelect(node)
33362    }
33363}
33364impl From<Prepare> for Stmt {
33365    #[inline]
33366    fn from(node: Prepare) -> Stmt {
33367        Stmt::Prepare(node)
33368    }
33369}
33370impl From<PrepareTransaction> for Stmt {
33371    #[inline]
33372    fn from(node: PrepareTransaction) -> Stmt {
33373        Stmt::PrepareTransaction(node)
33374    }
33375}
33376impl From<Reassign> for Stmt {
33377    #[inline]
33378    fn from(node: Reassign) -> Stmt {
33379        Stmt::Reassign(node)
33380    }
33381}
33382impl From<Refresh> for Stmt {
33383    #[inline]
33384    fn from(node: Refresh) -> Stmt {
33385        Stmt::Refresh(node)
33386    }
33387}
33388impl From<Reindex> for Stmt {
33389    #[inline]
33390    fn from(node: Reindex) -> Stmt {
33391        Stmt::Reindex(node)
33392    }
33393}
33394impl From<ReleaseSavepoint> for Stmt {
33395    #[inline]
33396    fn from(node: ReleaseSavepoint) -> Stmt {
33397        Stmt::ReleaseSavepoint(node)
33398    }
33399}
33400impl From<Reset> for Stmt {
33401    #[inline]
33402    fn from(node: Reset) -> Stmt {
33403        Stmt::Reset(node)
33404    }
33405}
33406impl From<ResetSessionAuth> for Stmt {
33407    #[inline]
33408    fn from(node: ResetSessionAuth) -> Stmt {
33409        Stmt::ResetSessionAuth(node)
33410    }
33411}
33412impl From<Revoke> for Stmt {
33413    #[inline]
33414    fn from(node: Revoke) -> Stmt {
33415        Stmt::Revoke(node)
33416    }
33417}
33418impl From<Rollback> for Stmt {
33419    #[inline]
33420    fn from(node: Rollback) -> Stmt {
33421        Stmt::Rollback(node)
33422    }
33423}
33424impl From<Savepoint> for Stmt {
33425    #[inline]
33426    fn from(node: Savepoint) -> Stmt {
33427        Stmt::Savepoint(node)
33428    }
33429}
33430impl From<SecurityLabel> for Stmt {
33431    #[inline]
33432    fn from(node: SecurityLabel) -> Stmt {
33433        Stmt::SecurityLabel(node)
33434    }
33435}
33436impl From<Select> for Stmt {
33437    #[inline]
33438    fn from(node: Select) -> Stmt {
33439        Stmt::Select(node)
33440    }
33441}
33442impl From<SelectInto> for Stmt {
33443    #[inline]
33444    fn from(node: SelectInto) -> Stmt {
33445        Stmt::SelectInto(node)
33446    }
33447}
33448impl From<Set> for Stmt {
33449    #[inline]
33450    fn from(node: Set) -> Stmt {
33451        Stmt::Set(node)
33452    }
33453}
33454impl From<SetConstraints> for Stmt {
33455    #[inline]
33456    fn from(node: SetConstraints) -> Stmt {
33457        Stmt::SetConstraints(node)
33458    }
33459}
33460impl From<SetRole> for Stmt {
33461    #[inline]
33462    fn from(node: SetRole) -> Stmt {
33463        Stmt::SetRole(node)
33464    }
33465}
33466impl From<SetSessionAuth> for Stmt {
33467    #[inline]
33468    fn from(node: SetSessionAuth) -> Stmt {
33469        Stmt::SetSessionAuth(node)
33470    }
33471}
33472impl From<SetTransaction> for Stmt {
33473    #[inline]
33474    fn from(node: SetTransaction) -> Stmt {
33475        Stmt::SetTransaction(node)
33476    }
33477}
33478impl From<Show> for Stmt {
33479    #[inline]
33480    fn from(node: Show) -> Stmt {
33481        Stmt::Show(node)
33482    }
33483}
33484impl From<Table> for Stmt {
33485    #[inline]
33486    fn from(node: Table) -> Stmt {
33487        Stmt::Table(node)
33488    }
33489}
33490impl From<Truncate> for Stmt {
33491    #[inline]
33492    fn from(node: Truncate) -> Stmt {
33493        Stmt::Truncate(node)
33494    }
33495}
33496impl From<Unlisten> for Stmt {
33497    #[inline]
33498    fn from(node: Unlisten) -> Stmt {
33499        Stmt::Unlisten(node)
33500    }
33501}
33502impl From<Update> for Stmt {
33503    #[inline]
33504    fn from(node: Update) -> Stmt {
33505        Stmt::Update(node)
33506    }
33507}
33508impl From<Vacuum> for Stmt {
33509    #[inline]
33510    fn from(node: Vacuum) -> Stmt {
33511        Stmt::Vacuum(node)
33512    }
33513}
33514impl From<Values> for Stmt {
33515    #[inline]
33516    fn from(node: Values) -> Stmt {
33517        Stmt::Values(node)
33518    }
33519}
33520impl AstNode for TableArg {
33521    #[inline]
33522    fn can_cast(kind: SyntaxKind) -> bool {
33523        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
33524    }
33525    #[inline]
33526    fn cast(syntax: SyntaxNode) -> Option<Self> {
33527        let res = match syntax.kind() {
33528            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
33529            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
33530            _ => {
33531                if let Some(result) = TableConstraint::cast(syntax) {
33532                    return Some(TableArg::TableConstraint(result));
33533                }
33534                return None;
33535            }
33536        };
33537        Some(res)
33538    }
33539    #[inline]
33540    fn syntax(&self) -> &SyntaxNode {
33541        match self {
33542            TableArg::Column(it) => &it.syntax,
33543            TableArg::LikeClause(it) => &it.syntax,
33544            TableArg::TableConstraint(it) => it.syntax(),
33545        }
33546    }
33547}
33548impl From<Column> for TableArg {
33549    #[inline]
33550    fn from(node: Column) -> TableArg {
33551        TableArg::Column(node)
33552    }
33553}
33554impl From<LikeClause> for TableArg {
33555    #[inline]
33556    fn from(node: LikeClause) -> TableArg {
33557        TableArg::LikeClause(node)
33558    }
33559}
33560impl AstNode for TableConstraint {
33561    #[inline]
33562    fn can_cast(kind: SyntaxKind) -> bool {
33563        matches!(
33564            kind,
33565            SyntaxKind::CHECK_CONSTRAINT
33566                | SyntaxKind::EXCLUDE_CONSTRAINT
33567                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
33568                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
33569                | SyntaxKind::UNIQUE_CONSTRAINT
33570        )
33571    }
33572    #[inline]
33573    fn cast(syntax: SyntaxNode) -> Option<Self> {
33574        let res = match syntax.kind() {
33575            SyntaxKind::CHECK_CONSTRAINT => {
33576                TableConstraint::CheckConstraint(CheckConstraint { syntax })
33577            }
33578            SyntaxKind::EXCLUDE_CONSTRAINT => {
33579                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
33580            }
33581            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
33582                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
33583            }
33584            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
33585                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
33586            }
33587            SyntaxKind::UNIQUE_CONSTRAINT => {
33588                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
33589            }
33590            _ => {
33591                return None;
33592            }
33593        };
33594        Some(res)
33595    }
33596    #[inline]
33597    fn syntax(&self) -> &SyntaxNode {
33598        match self {
33599            TableConstraint::CheckConstraint(it) => &it.syntax,
33600            TableConstraint::ExcludeConstraint(it) => &it.syntax,
33601            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
33602            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
33603            TableConstraint::UniqueConstraint(it) => &it.syntax,
33604        }
33605    }
33606}
33607impl From<CheckConstraint> for TableConstraint {
33608    #[inline]
33609    fn from(node: CheckConstraint) -> TableConstraint {
33610        TableConstraint::CheckConstraint(node)
33611    }
33612}
33613impl From<ExcludeConstraint> for TableConstraint {
33614    #[inline]
33615    fn from(node: ExcludeConstraint) -> TableConstraint {
33616        TableConstraint::ExcludeConstraint(node)
33617    }
33618}
33619impl From<ForeignKeyConstraint> for TableConstraint {
33620    #[inline]
33621    fn from(node: ForeignKeyConstraint) -> TableConstraint {
33622        TableConstraint::ForeignKeyConstraint(node)
33623    }
33624}
33625impl From<PrimaryKeyConstraint> for TableConstraint {
33626    #[inline]
33627    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
33628        TableConstraint::PrimaryKeyConstraint(node)
33629    }
33630}
33631impl From<UniqueConstraint> for TableConstraint {
33632    #[inline]
33633    fn from(node: UniqueConstraint) -> TableConstraint {
33634        TableConstraint::UniqueConstraint(node)
33635    }
33636}
33637impl AstNode for Timezone {
33638    #[inline]
33639    fn can_cast(kind: SyntaxKind) -> bool {
33640        matches!(
33641            kind,
33642            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
33643        )
33644    }
33645    #[inline]
33646    fn cast(syntax: SyntaxNode) -> Option<Self> {
33647        let res = match syntax.kind() {
33648            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
33649            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
33650            _ => {
33651                return None;
33652            }
33653        };
33654        Some(res)
33655    }
33656    #[inline]
33657    fn syntax(&self) -> &SyntaxNode {
33658        match self {
33659            Timezone::WithTimezone(it) => &it.syntax,
33660            Timezone::WithoutTimezone(it) => &it.syntax,
33661        }
33662    }
33663}
33664impl From<WithTimezone> for Timezone {
33665    #[inline]
33666    fn from(node: WithTimezone) -> Timezone {
33667        Timezone::WithTimezone(node)
33668    }
33669}
33670impl From<WithoutTimezone> for Timezone {
33671    #[inline]
33672    fn from(node: WithoutTimezone) -> Timezone {
33673        Timezone::WithoutTimezone(node)
33674    }
33675}
33676impl AstNode for TransactionMode {
33677    #[inline]
33678    fn can_cast(kind: SyntaxKind) -> bool {
33679        matches!(
33680            kind,
33681            SyntaxKind::DEFERRABLE
33682                | SyntaxKind::NOT_DEFERRABLE
33683                | SyntaxKind::READ_COMMITTED
33684                | SyntaxKind::READ_ONLY
33685                | SyntaxKind::READ_UNCOMMITTED
33686                | SyntaxKind::READ_WRITE
33687                | SyntaxKind::REPEATABLE_READ
33688                | SyntaxKind::SERIALIZABLE
33689        )
33690    }
33691    #[inline]
33692    fn cast(syntax: SyntaxNode) -> Option<Self> {
33693        let res = match syntax.kind() {
33694            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
33695            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
33696            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
33697            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
33698            SyntaxKind::READ_UNCOMMITTED => {
33699                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
33700            }
33701            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
33702            SyntaxKind::REPEATABLE_READ => {
33703                TransactionMode::RepeatableRead(RepeatableRead { syntax })
33704            }
33705            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
33706            _ => {
33707                return None;
33708            }
33709        };
33710        Some(res)
33711    }
33712    #[inline]
33713    fn syntax(&self) -> &SyntaxNode {
33714        match self {
33715            TransactionMode::Deferrable(it) => &it.syntax,
33716            TransactionMode::NotDeferrable(it) => &it.syntax,
33717            TransactionMode::ReadCommitted(it) => &it.syntax,
33718            TransactionMode::ReadOnly(it) => &it.syntax,
33719            TransactionMode::ReadUncommitted(it) => &it.syntax,
33720            TransactionMode::ReadWrite(it) => &it.syntax,
33721            TransactionMode::RepeatableRead(it) => &it.syntax,
33722            TransactionMode::Serializable(it) => &it.syntax,
33723        }
33724    }
33725}
33726impl From<Deferrable> for TransactionMode {
33727    #[inline]
33728    fn from(node: Deferrable) -> TransactionMode {
33729        TransactionMode::Deferrable(node)
33730    }
33731}
33732impl From<NotDeferrable> for TransactionMode {
33733    #[inline]
33734    fn from(node: NotDeferrable) -> TransactionMode {
33735        TransactionMode::NotDeferrable(node)
33736    }
33737}
33738impl From<ReadCommitted> for TransactionMode {
33739    #[inline]
33740    fn from(node: ReadCommitted) -> TransactionMode {
33741        TransactionMode::ReadCommitted(node)
33742    }
33743}
33744impl From<ReadOnly> for TransactionMode {
33745    #[inline]
33746    fn from(node: ReadOnly) -> TransactionMode {
33747        TransactionMode::ReadOnly(node)
33748    }
33749}
33750impl From<ReadUncommitted> for TransactionMode {
33751    #[inline]
33752    fn from(node: ReadUncommitted) -> TransactionMode {
33753        TransactionMode::ReadUncommitted(node)
33754    }
33755}
33756impl From<ReadWrite> for TransactionMode {
33757    #[inline]
33758    fn from(node: ReadWrite) -> TransactionMode {
33759        TransactionMode::ReadWrite(node)
33760    }
33761}
33762impl From<RepeatableRead> for TransactionMode {
33763    #[inline]
33764    fn from(node: RepeatableRead) -> TransactionMode {
33765        TransactionMode::RepeatableRead(node)
33766    }
33767}
33768impl From<Serializable> for TransactionMode {
33769    #[inline]
33770    fn from(node: Serializable) -> TransactionMode {
33771        TransactionMode::Serializable(node)
33772    }
33773}
33774impl AstNode for Type {
33775    #[inline]
33776    fn can_cast(kind: SyntaxKind) -> bool {
33777        matches!(
33778            kind,
33779            SyntaxKind::ARRAY_TYPE
33780                | SyntaxKind::BIT_TYPE
33781                | SyntaxKind::CHAR_TYPE
33782                | SyntaxKind::DOUBLE_TYPE
33783                | SyntaxKind::EXPR_TYPE
33784                | SyntaxKind::INTERVAL_TYPE
33785                | SyntaxKind::PATH_TYPE
33786                | SyntaxKind::PERCENT_TYPE
33787                | SyntaxKind::TIME_TYPE
33788        )
33789    }
33790    #[inline]
33791    fn cast(syntax: SyntaxNode) -> Option<Self> {
33792        let res = match syntax.kind() {
33793            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
33794            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
33795            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
33796            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
33797            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
33798            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
33799            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
33800            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
33801            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
33802            _ => {
33803                return None;
33804            }
33805        };
33806        Some(res)
33807    }
33808    #[inline]
33809    fn syntax(&self) -> &SyntaxNode {
33810        match self {
33811            Type::ArrayType(it) => &it.syntax,
33812            Type::BitType(it) => &it.syntax,
33813            Type::CharType(it) => &it.syntax,
33814            Type::DoubleType(it) => &it.syntax,
33815            Type::ExprType(it) => &it.syntax,
33816            Type::IntervalType(it) => &it.syntax,
33817            Type::PathType(it) => &it.syntax,
33818            Type::PercentType(it) => &it.syntax,
33819            Type::TimeType(it) => &it.syntax,
33820        }
33821    }
33822}
33823impl From<ArrayType> for Type {
33824    #[inline]
33825    fn from(node: ArrayType) -> Type {
33826        Type::ArrayType(node)
33827    }
33828}
33829impl From<BitType> for Type {
33830    #[inline]
33831    fn from(node: BitType) -> Type {
33832        Type::BitType(node)
33833    }
33834}
33835impl From<CharType> for Type {
33836    #[inline]
33837    fn from(node: CharType) -> Type {
33838        Type::CharType(node)
33839    }
33840}
33841impl From<DoubleType> for Type {
33842    #[inline]
33843    fn from(node: DoubleType) -> Type {
33844        Type::DoubleType(node)
33845    }
33846}
33847impl From<ExprType> for Type {
33848    #[inline]
33849    fn from(node: ExprType) -> Type {
33850        Type::ExprType(node)
33851    }
33852}
33853impl From<IntervalType> for Type {
33854    #[inline]
33855    fn from(node: IntervalType) -> Type {
33856        Type::IntervalType(node)
33857    }
33858}
33859impl From<PathType> for Type {
33860    #[inline]
33861    fn from(node: PathType) -> Type {
33862        Type::PathType(node)
33863    }
33864}
33865impl From<PercentType> for Type {
33866    #[inline]
33867    fn from(node: PercentType) -> Type {
33868        Type::PercentType(node)
33869    }
33870}
33871impl From<TimeType> for Type {
33872    #[inline]
33873    fn from(node: TimeType) -> Type {
33874        Type::TimeType(node)
33875    }
33876}
33877impl AstNode for WithQuery {
33878    #[inline]
33879    fn can_cast(kind: SyntaxKind) -> bool {
33880        matches!(
33881            kind,
33882            SyntaxKind::COMPOUND_SELECT
33883                | SyntaxKind::DELETE
33884                | SyntaxKind::INSERT
33885                | SyntaxKind::MERGE
33886                | SyntaxKind::PAREN_SELECT
33887                | SyntaxKind::SELECT
33888                | SyntaxKind::TABLE
33889                | SyntaxKind::UPDATE
33890                | SyntaxKind::VALUES
33891        )
33892    }
33893    #[inline]
33894    fn cast(syntax: SyntaxNode) -> Option<Self> {
33895        let res = match syntax.kind() {
33896            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
33897            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
33898            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
33899            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
33900            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
33901            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
33902            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
33903            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
33904            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
33905            _ => {
33906                return None;
33907            }
33908        };
33909        Some(res)
33910    }
33911    #[inline]
33912    fn syntax(&self) -> &SyntaxNode {
33913        match self {
33914            WithQuery::CompoundSelect(it) => &it.syntax,
33915            WithQuery::Delete(it) => &it.syntax,
33916            WithQuery::Insert(it) => &it.syntax,
33917            WithQuery::Merge(it) => &it.syntax,
33918            WithQuery::ParenSelect(it) => &it.syntax,
33919            WithQuery::Select(it) => &it.syntax,
33920            WithQuery::Table(it) => &it.syntax,
33921            WithQuery::Update(it) => &it.syntax,
33922            WithQuery::Values(it) => &it.syntax,
33923        }
33924    }
33925}
33926impl From<CompoundSelect> for WithQuery {
33927    #[inline]
33928    fn from(node: CompoundSelect) -> WithQuery {
33929        WithQuery::CompoundSelect(node)
33930    }
33931}
33932impl From<Delete> for WithQuery {
33933    #[inline]
33934    fn from(node: Delete) -> WithQuery {
33935        WithQuery::Delete(node)
33936    }
33937}
33938impl From<Insert> for WithQuery {
33939    #[inline]
33940    fn from(node: Insert) -> WithQuery {
33941        WithQuery::Insert(node)
33942    }
33943}
33944impl From<Merge> for WithQuery {
33945    #[inline]
33946    fn from(node: Merge) -> WithQuery {
33947        WithQuery::Merge(node)
33948    }
33949}
33950impl From<ParenSelect> for WithQuery {
33951    #[inline]
33952    fn from(node: ParenSelect) -> WithQuery {
33953        WithQuery::ParenSelect(node)
33954    }
33955}
33956impl From<Select> for WithQuery {
33957    #[inline]
33958    fn from(node: Select) -> WithQuery {
33959        WithQuery::Select(node)
33960    }
33961}
33962impl From<Table> for WithQuery {
33963    #[inline]
33964    fn from(node: Table) -> WithQuery {
33965        WithQuery::Table(node)
33966    }
33967}
33968impl From<Update> for WithQuery {
33969    #[inline]
33970    fn from(node: Update) -> WithQuery {
33971        WithQuery::Update(node)
33972    }
33973}
33974impl From<Values> for WithQuery {
33975    #[inline]
33976    fn from(node: Values) -> WithQuery {
33977        WithQuery::Values(node)
33978    }
33979}